@c8y/ngx-components 1019.7.15 → 1019.10.1

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.
Files changed (150) hide show
  1. package/bookmarks/bookmarks.component.d.ts +0 -1
  2. package/bookmarks/bookmarks.component.d.ts.map +1 -1
  3. package/bookmarks/bookmarks.service.d.ts +5 -2
  4. package/bookmarks/bookmarks.service.d.ts.map +1 -1
  5. package/core/common/asset-link.pipe.d.ts +18 -0
  6. package/core/common/asset-link.pipe.d.ts.map +1 -0
  7. package/core/common/common.module.d.ts +3 -2
  8. package/core/common/common.module.d.ts.map +1 -1
  9. package/core/common/group.service.d.ts +28 -0
  10. package/core/common/group.service.d.ts.map +1 -1
  11. package/core/common/index.d.ts +1 -0
  12. package/core/common/index.d.ts.map +1 -1
  13. package/core/common/loading.component.d.ts +18 -1
  14. package/core/common/loading.component.d.ts.map +1 -1
  15. package/core/common/progress-bar.component.d.ts +3 -0
  16. package/core/common/progress-bar.component.d.ts.map +1 -1
  17. package/core/forms/range.component.d.ts +9 -4
  18. package/core/forms/range.component.d.ts.map +1 -1
  19. package/core/product-experience/gainsight.service.d.ts.map +1 -1
  20. package/esm2022/actility-device-registration/actility-device-registration.component.mjs +1 -1
  21. package/esm2022/assets-navigator/asset-selector/miller-view.component.mjs +1 -1
  22. package/esm2022/bookmarks/bookmarks.component.mjs +2 -11
  23. package/esm2022/bookmarks/bookmarks.service.mjs +22 -10
  24. package/esm2022/cockpit-config/setup/cockpit-setup-stepper-buttons.component.mjs +3 -3
  25. package/esm2022/core/application/app-switcher-inline.component.mjs +1 -1
  26. package/esm2022/core/common/asset-link.pipe.mjs +33 -0
  27. package/esm2022/core/common/common.module.mjs +22 -4
  28. package/esm2022/core/common/group.service.mjs +33 -1
  29. package/esm2022/core/common/index.mjs +2 -1
  30. package/esm2022/core/common/loading.component.mjs +38 -24
  31. package/esm2022/core/common/progress-bar.component.mjs +4 -1
  32. package/esm2022/core/dashboard/widgets-dashboard.component.mjs +1 -1
  33. package/esm2022/core/data-grid/data-grid.component.mjs +4 -4
  34. package/esm2022/core/drop-area/drop-area.component.mjs +1 -1
  35. package/esm2022/core/dynamic-forms/typeahead/typeahead.type.component.mjs +1 -1
  36. package/esm2022/core/file-picker-form-control/file-picker-form-control.component.mjs +1 -1
  37. package/esm2022/core/forms/range.component.mjs +18 -9
  38. package/esm2022/core/help/help.component.mjs +1 -1
  39. package/esm2022/core/product-experience/gainsight.service.mjs +16 -25
  40. package/esm2022/core/search/search-input.component.mjs +1 -1
  41. package/esm2022/datapoint-library/list/datapoint-library-list.component.mjs +2 -2
  42. package/esm2022/datapoint-selector/datapoint-selector.component.mjs +1 -1
  43. package/esm2022/default-subscriptions/default-subscriptions.component.mjs +1 -1
  44. package/esm2022/ecosystem/application-properties/application-properties.component.mjs +1 -1
  45. package/esm2022/ecosystem/application-properties/subscription-modal/subscription-modal.component.mjs +1 -1
  46. package/esm2022/ecosystem/application-properties/update-application-modal/update-application-modal.component.mjs +3 -3
  47. package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +3 -3
  48. package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +3 -3
  49. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +3 -3
  50. package/esm2022/ecosystem/packages/package-versions/package-contents/packages-contents.component.mjs +1 -1
  51. package/esm2022/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.mjs +1 -1
  52. package/esm2022/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.mjs +3 -3
  53. package/esm2022/file-preview/file-preview.component.mjs +3 -3
  54. package/esm2022/files-repository/files-repository.component.mjs +1 -1
  55. package/esm2022/loriot-device-registration/loriot-device-registration.component.mjs +1 -1
  56. package/esm2022/protocol-lpwan/lpwan-set-device-protocol.component.mjs +1 -1
  57. package/esm2022/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.mjs +1 -1
  58. package/esm2022/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.mjs +1 -1
  59. package/esm2022/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.mjs +1 -1
  60. package/esm2022/protocol-opcua/opcua-address-space-tree.component.mjs +1 -1
  61. package/esm2022/protocol-opcua/opcua-address-space.component.mjs +1 -1
  62. package/esm2022/register-device/extensible/single/extensible-device-registration-modal.component.mjs +3 -3
  63. package/esm2022/replace-device-wizard/replace-device-wizard.component.mjs +2 -2
  64. package/esm2022/reports/export-schedules.component.mjs +1 -1
  65. package/esm2022/repository/software/list/software-list.component.mjs +1 -1
  66. package/esm2022/services/services-device-tab/services-device-tab.component.mjs +1 -1
  67. package/esm2022/sigfox-device-registration/sigfox-device-registration.component.mjs +1 -1
  68. package/esm2022/sub-assets/asset-properties.component.mjs +1 -1
  69. package/esm2022/tenants/tenant-list/tenant-list.component.mjs +1 -1
  70. package/esm2022/widgets/implementations/device-management-welcome/welcome.component.mjs +1 -1
  71. package/esm2022/widgets/implementations/image/image-widget-config/image-widget-config.component.mjs +2 -2
  72. package/esm2022/widgets/implementations/image/image-widget-view/image-widget-view.component.mjs +1 -1
  73. package/esm2022/widgets/implementations/kpi/kpi-widget-view/kpi-widget-view.component.mjs +1 -1
  74. package/esm2022/widgets/implementations/map/map-event-info.component.mjs +1 -1
  75. package/esm2022/widgets/implementations/map/map-widget-config.component.mjs +2 -2
  76. package/esm2022/widgets/implementations/map/map-widget.component.mjs +3 -3
  77. package/esm2022/widgets/implementations/map/map-widget.module.mjs +5 -3
  78. package/esm2022/widgets/widgets.module.mjs +2 -2
  79. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +1 -1
  80. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  81. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +1 -1
  82. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  83. package/fesm2022/c8y-ngx-components-bookmarks.mjs +24 -23
  84. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  85. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +2 -2
  86. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  87. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +1 -1
  88. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
  89. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +1 -1
  90. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  91. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +1 -1
  92. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  93. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +2 -2
  94. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  95. package/fesm2022/c8y-ngx-components-ecosystem.mjs +12 -12
  96. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  97. package/fesm2022/c8y-ngx-components-file-preview.mjs +2 -2
  98. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  99. package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
  100. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  101. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +1 -1
  102. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  103. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +4 -4
  104. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  105. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +2 -2
  106. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  107. package/fesm2022/c8y-ngx-components-register-device.mjs +2 -2
  108. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  109. package/fesm2022/c8y-ngx-components-replace-device-wizard.mjs +1 -1
  110. package/fesm2022/c8y-ngx-components-replace-device-wizard.mjs.map +1 -1
  111. package/fesm2022/c8y-ngx-components-reports.mjs +1 -1
  112. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  113. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  114. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  115. package/fesm2022/c8y-ngx-components-services.mjs +1 -1
  116. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  117. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +1 -1
  118. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  119. package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
  120. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  121. package/fesm2022/c8y-ngx-components-tenants.mjs +1 -1
  122. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  123. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +1 -1
  124. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  125. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +2 -2
  126. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
  127. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +1 -1
  128. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  129. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +8 -6
  130. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  131. package/fesm2022/c8y-ngx-components-widgets.mjs +1 -1
  132. package/fesm2022/c8y-ngx-components-widgets.mjs.map +1 -1
  133. package/fesm2022/c8y-ngx-components.mjs +408 -315
  134. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  135. package/locales/de.po +84 -15
  136. package/locales/es.po +230 -161
  137. package/locales/fr.po +169 -100
  138. package/locales/ja_JP.po +392 -188
  139. package/locales/ko.po +327 -177
  140. package/locales/locales.pot +3 -0
  141. package/locales/nl.po +180 -111
  142. package/locales/pl.po +194 -125
  143. package/locales/pt_BR.po +195 -126
  144. package/locales/ru.po +0 -367
  145. package/locales/zh_CN.po +345 -195
  146. package/locales/zh_TW.po +348 -198
  147. package/package.json +1 -1
  148. package/widgets/implementations/map/map-widget.module.d.ts +1 -1
  149. package/widgets/implementations/map/map-widget.module.d.ts.map +1 -1
  150. package/widgets/widgets.module.d.ts +1 -1
@@ -25,7 +25,6 @@ export declare class BookmarksComponent {
25
25
  addBookmark(): Promise<void>;
26
26
  editBookmarks(): Promise<void>;
27
27
  openUrl(url: string): void;
28
- private convertBookmarkLinkToObject;
29
28
  static ɵfac: i0.ɵɵFactoryDeclaration<BookmarksComponent, never>;
30
29
  static ɵcmp: i0.ɵɵComponentDeclaration<BookmarksComponent, "c8y-bookmarks", never, {}, {}, never, never, false, never>;
31
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarks.component.d.ts","sourceRoot":"","sources":["../../bookmarks/bookmarks.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAGtD,qBAIa,kBAAkB;IAYT,OAAO,CAAC,QAAQ;IAClC,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IAlBvB,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,kBAAkB,MAA8D;IAChF,gBAAgB,MAId;IACF,aAAa,MAA8D;gBAG/C,QAAQ,EAAE,QAAQ,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,eAAe,EACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAKhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmB1B,OAAO,CAAC,2BAA2B;yCAhFxB,kBAAkB;2CAAlB,kBAAkB;CAyF9B"}
1
+ {"version":3,"file":"bookmarks.component.d.ts","sourceRoot":"","sources":["../../bookmarks/bookmarks.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAGtD,qBAIa,kBAAkB;IAYT,OAAO,CAAC,QAAQ;IAClC,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IAlBvB,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,kBAAkB,MAA8D;IAChF,gBAAgB,MAId;IACF,aAAa,MAA8D;gBAG/C,QAAQ,EAAE,QAAQ,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,eAAe,EACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAKhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;yCA9Df,kBAAkB;2CAAlB,kBAAkB;CAgF9B"}
@@ -1,16 +1,19 @@
1
1
  import { UserPreferencesService } from '@c8y/ngx-components';
2
+ import { TranslateService } from '@ngx-translate/core';
2
3
  import { Bookmark } from './bookmark.model';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class BookmarkService {
6
+ private translateService;
5
7
  private userPreferencesService;
6
- USER_PREFERENCES_BOOKMARKS_KEY: string;
8
+ readonly USER_PREFERENCES_BOOKMARKS_KEY = "bookmarks";
7
9
  updatedBookmarks: Bookmark[];
8
- constructor(userPreferencesService: UserPreferencesService);
10
+ constructor(translateService: TranslateService, userPreferencesService: UserPreferencesService);
9
11
  updateBookmarksInStorage(newBookmarks: Bookmark[]): Promise<void>;
10
12
  getCurrentActiveNodeIcon(document: Document): string;
11
13
  extractIconName(input: string): string | null;
12
14
  getBookmarks(): Promise<Bookmark[]>;
13
15
  generateRandomID(): string;
16
+ convertBookmarkLinkToObject(title: string, url: string, icon: string): Bookmark;
14
17
  private getIconElement;
15
18
  private setUserPreferencesBookmarks;
16
19
  static ɵfac: i0.ɵɵFactoryDeclaration<BookmarkService, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarks.service.d.ts","sourceRoot":"","sources":["../../bookmarks/bookmarks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;;AAE5C,qBACa,eAAe;IAKd,OAAO,CAAC,sBAAsB;IAJ1C,8BAA8B,SAAe;IAE7C,gBAAgB,EAAE,QAAQ,EAAE,CAAC;gBAET,sBAAsB,EAAE,sBAAsB;IAE5D,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAcpD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYvC,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAOzC,gBAAgB;IAOhB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,2BAA2B;yCAlExB,eAAe;6CAAf,eAAe;CAsE3B"}
1
+ {"version":3,"file":"bookmarks.service.d.ts","sourceRoot":"","sources":["../../bookmarks/bookmarks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;;AAE5C,qBACa,eAAe;IAMxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,sBAAsB;IANhC,QAAQ,CAAC,8BAA8B,eAAe;IAEtD,gBAAgB,EAAE,QAAQ,EAAE,CAAC;gBAGnB,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB;IAGlD,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAcpD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYvC,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQzC,gBAAgB;IAOhB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;IAW/E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,2BAA2B;yCAjFxB,eAAe;6CAAf,eAAe;CAqF3B"}
@@ -0,0 +1,18 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { IManagedObject } from '@c8y/client';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Converts a managed object into a context-aware URL, depending on its type and fragments.
6
+ * Usage:
7
+ *
8
+ * ```html
9
+ * {{ managedObject | assetLink }} <!-- e.g. '/device/<moId>' or '/group/<moId> -->
10
+ * ```
11
+ */
12
+ export declare class AssetLinkPipe implements PipeTransform {
13
+ private groupService;
14
+ transform(mo: IManagedObject): string;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<AssetLinkPipe, never>;
16
+ static ɵpipe: i0.ɵɵPipeDeclaration<AssetLinkPipe, "assetLink", true>;
17
+ }
18
+ //# sourceMappingURL=asset-link.pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-link.pipe.d.ts","sourceRoot":"","sources":["../../../core/common/asset-link.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAU,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;;AAE7C;;;;;;;GAOG;AACH,qBAIa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,YAAY,CAAwB;IAE5C,SAAS,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;yCAH1B,aAAa;uCAAb,aAAa;CAUzB"}
@@ -37,7 +37,8 @@ import * as i31 from "@angular/common";
37
37
  import * as i32 from "../i18n/i18n.module";
38
38
  import * as i33 from "ngx-bootstrap/tooltip";
39
39
  import * as i34 from "@angular/cdk/scrolling";
40
- import * as i35 from "./component-outlet.directive";
40
+ import * as i35 from "./asset-link.pipe";
41
+ import * as i36 from "./component-outlet.directive";
41
42
  export declare function initializeServices(translateService: TranslateService, state: AppStateService, userPreferences: UserPreferencesService): () => void;
42
43
  /**
43
44
  * Commonly used directives, data access and translation. This module is the shared
@@ -66,7 +67,7 @@ export declare class CommonModule {
66
67
  static forRoot(): ModuleWithProviders<CommonModule>;
67
68
  constructor();
68
69
  static ɵfac: i0.ɵɵFactoryDeclaration<CommonModule, never>;
69
- static ɵmod: i0.ɵɵNgModuleDeclaration<CommonModule, [typeof i1.EmptyStateComponent, typeof i2.IconDirective, typeof i3.OutletDirective, typeof i4.HumanizePipe, typeof i5.ShouldShowMoPipe, typeof i6.GetGroupIconPipe, typeof i7.HumanizeAppNamePipe, typeof i8.IfAllowedDirective, typeof i9.ShortenUserNamePipe, typeof i10.UserNameInitialsPipe, typeof i11.ForOfDirective, typeof i12.LoadMoreComponent, typeof i13.MapFunctionPipe, typeof i14.ProgressBarComponent, typeof i15.DatePipe, typeof i16.NumberPipe, typeof i17.LoadingComponent, typeof i18.DropdownDirectionDirective, typeof i19.TextareaAutoresizeDirective, typeof i20.TabsetAriaDirective, typeof i21.OperationResultComponent, typeof i22.VirtualScrollerWrapperComponent, typeof i23.VirtualScrollWindowDirective, typeof i24.BytesPipe, typeof i25.ShowIfFilterPipe, typeof i26.SkipLinkDirective, typeof i27.MarkdownToHtmlPipe, typeof i28.MoNamePipe, typeof i29.GenericFileIconPipe, typeof i30.StringifyObjectPipe], [typeof i31.CommonModule, typeof i32.I18nModule, typeof i33.TooltipModule, typeof i34.ScrollingModule, typeof i35.C8yComponentOutlet], [typeof i1.EmptyStateComponent, typeof i2.IconDirective, typeof i3.OutletDirective, typeof i32.I18nModule, typeof i31.CommonModule, typeof i7.HumanizeAppNamePipe, typeof i4.HumanizePipe, typeof i5.ShouldShowMoPipe, typeof i6.GetGroupIconPipe, typeof i8.IfAllowedDirective, typeof i9.ShortenUserNamePipe, typeof i10.UserNameInitialsPipe, typeof i11.ForOfDirective, typeof i12.LoadMoreComponent, typeof i13.MapFunctionPipe, typeof i14.ProgressBarComponent, typeof i15.DatePipe, typeof i16.NumberPipe, typeof i17.LoadingComponent, typeof i18.DropdownDirectionDirective, typeof i19.TextareaAutoresizeDirective, typeof i20.TabsetAriaDirective, typeof i21.OperationResultComponent, typeof i22.VirtualScrollerWrapperComponent, typeof i23.VirtualScrollWindowDirective, typeof i24.BytesPipe, typeof i25.ShowIfFilterPipe, typeof i26.SkipLinkDirective, typeof i27.MarkdownToHtmlPipe, typeof i28.MoNamePipe, typeof i29.GenericFileIconPipe, typeof i30.StringifyObjectPipe, typeof i35.C8yComponentOutlet]>;
70
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CommonModule, [typeof i1.EmptyStateComponent, typeof i2.IconDirective, typeof i3.OutletDirective, typeof i4.HumanizePipe, typeof i5.ShouldShowMoPipe, typeof i6.GetGroupIconPipe, typeof i7.HumanizeAppNamePipe, typeof i8.IfAllowedDirective, typeof i9.ShortenUserNamePipe, typeof i10.UserNameInitialsPipe, typeof i11.ForOfDirective, typeof i12.LoadMoreComponent, typeof i13.MapFunctionPipe, typeof i14.ProgressBarComponent, typeof i15.DatePipe, typeof i16.NumberPipe, typeof i17.LoadingComponent, typeof i18.DropdownDirectionDirective, typeof i19.TextareaAutoresizeDirective, typeof i20.TabsetAriaDirective, typeof i21.OperationResultComponent, typeof i22.VirtualScrollerWrapperComponent, typeof i23.VirtualScrollWindowDirective, typeof i24.BytesPipe, typeof i25.ShowIfFilterPipe, typeof i26.SkipLinkDirective, typeof i27.MarkdownToHtmlPipe, typeof i28.MoNamePipe, typeof i29.GenericFileIconPipe, typeof i30.StringifyObjectPipe], [typeof i31.CommonModule, typeof i32.I18nModule, typeof i33.TooltipModule, typeof i34.ScrollingModule, typeof i35.AssetLinkPipe, typeof i36.C8yComponentOutlet], [typeof i1.EmptyStateComponent, typeof i2.IconDirective, typeof i3.OutletDirective, typeof i32.I18nModule, typeof i31.CommonModule, typeof i7.HumanizeAppNamePipe, typeof i4.HumanizePipe, typeof i5.ShouldShowMoPipe, typeof i6.GetGroupIconPipe, typeof i8.IfAllowedDirective, typeof i9.ShortenUserNamePipe, typeof i10.UserNameInitialsPipe, typeof i11.ForOfDirective, typeof i12.LoadMoreComponent, typeof i13.MapFunctionPipe, typeof i14.ProgressBarComponent, typeof i15.DatePipe, typeof i16.NumberPipe, typeof i17.LoadingComponent, typeof i18.DropdownDirectionDirective, typeof i19.TextareaAutoresizeDirective, typeof i20.TabsetAriaDirective, typeof i21.OperationResultComponent, typeof i22.VirtualScrollerWrapperComponent, typeof i23.VirtualScrollWindowDirective, typeof i24.BytesPipe, typeof i25.ShowIfFilterPipe, typeof i26.SkipLinkDirective, typeof i27.MarkdownToHtmlPipe, typeof i28.MoNamePipe, typeof i29.GenericFileIconPipe, typeof i30.StringifyObjectPipe, typeof i35.AssetLinkPipe, typeof i36.C8yComponentOutlet]>;
70
71
  static ɵinj: i0.ɵɵInjectorDeclaration<CommonModule>;
71
72
  }
72
73
  //# sourceMappingURL=common.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.module.d.ts","sourceRoot":"","sources":["../../../core/common/common.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,mBAAmB,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA6B7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKrF,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,eAAe,EACtB,eAAe,EAAE,sBAAsB,cA4BxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAsEa,YAAY;IACvB,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE;IAwB9B,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC,YAAY,CAAC;;yCAzBxC,YAAY;0CAAZ,YAAY;0CAAZ,YAAY;CAkCxB"}
1
+ {"version":3,"file":"common.module.d.ts","sourceRoot":"","sources":["../../../core/common/common.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,mBAAmB,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA6B7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMrF,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,eAAe,EACtB,eAAe,EAAE,sBAAsB,cA4BxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBA8Ea,YAAY;IACvB,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE;IAwB9B,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC,YAAY,CAAC;;yCAzBxC,YAAY;0CAAZ,YAAY;0CAAZ,YAAY;CAkCxB"}
@@ -3,15 +3,37 @@ import { AssetTypesService } from '../asset-types/asset-types.service';
3
3
  import * as i0 from "@angular/core";
4
4
  declare const MO_TYPES: readonly ["asset", "dynamicGroup", "brokerSource", "brokerSourceInactive", "group", "other"];
5
5
  type MoTypes = (typeof MO_TYPES)[number];
6
+ type AssetTypes = Omit<MoTypes, 'brokerSource' | 'brokerSourceInactive'>;
6
7
  type GroupIcon = Partial<{
7
8
  icon: string;
8
9
  iconOpen?: string;
9
10
  iconClass?: string;
10
11
  }>;
11
12
  type GroupIcons = Partial<Record<MoTypes, GroupIcon>>;
13
+ /**
14
+ * Enumerates the supported asset paths.
15
+ */
16
+ export declare enum ASSET_PATH {
17
+ /**
18
+ * The default asset path.
19
+ */
20
+ DEFAULT = "group",
21
+ /**
22
+ * The asset path for devices.
23
+ */
24
+ DEVICE = "device"
25
+ }
26
+ /**
27
+ * Asset paths.
28
+ */
29
+ type AssetPath = `${ASSET_PATH}`;
12
30
  export declare class GroupService {
13
31
  private assetTypesService;
14
32
  readonly icons: GroupIcons;
33
+ /**
34
+ * A mapping of managed object types to their corresponding asset path.
35
+ */
36
+ assetPaths: Map<AssetTypes, AssetPath>;
15
37
  dataBrokerSourceFragmentInactive: string;
16
38
  constructor(assetTypesService: AssetTypesService);
17
39
  /**
@@ -66,6 +88,12 @@ export declare class GroupService {
66
88
  * @returns Returns true if the managed object is a device.
67
89
  */
68
90
  isDevice(mo: IManagedObject): boolean;
91
+ /**
92
+ * Retrieves the path associated with a given managed object.
93
+ * @param mo The managed object for which the asset path is to be retrieved.
94
+ * @returns The path associated with the managed object's type.
95
+ */
96
+ getAssetPath(mo: IManagedObject): AssetPath;
69
97
  private getAssetCustomIcon;
70
98
  private getDefaultIcon;
71
99
  private determineMoType;
@@ -1 +1 @@
1
- {"version":3,"file":"group.service.d.ts","sourceRoot":"","sources":["../../../core/common/group.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAGvE,QAAA,MAAM,QAAQ,8FAOJ,CAAC;AAEX,KAAK,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzC,KAAK,SAAS,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElF,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtD,qBAGa,YAAY;IAyBX,OAAO,CAAC,iBAAiB;IAxBrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAqBxB;IACF,gCAAgC,SAAgD;gBAE5D,iBAAiB,EAAE,iBAAiB;IAExD;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAavF;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAIpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAI3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAMzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,cAAc;IAMrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,cAAc;IAI1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,cAAc;IAS7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,cAAc;IAI3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;yCAjIZ,YAAY;6CAAZ,YAAY;CAwJxB"}
1
+ {"version":3,"file":"group.service.d.ts","sourceRoot":"","sources":["../../../core/common/group.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAGvE,QAAA,MAAM,QAAQ,8FAOJ,CAAC;AAEX,KAAK,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzC,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,sBAAsB,CAAC,CAAC;AAEzE,KAAK,SAAS,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElF,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtD;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,OAAO,UAAU;IAEjB;;OAEG;IACH,MAAM,WAAW;CAClB;AACD;;GAEG;AACH,KAAK,SAAS,GAAG,GAAG,UAAU,EAAE,CAAC;AAEjC,qBAGa,YAAY;IAqCX,OAAO,CAAC,iBAAiB;IApCrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAqBxB;IAEF;;OAEG;IACH,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAMnC;IAEH,gCAAgC,SAAgD;gBAE5D,iBAAiB,EAAE,iBAAiB;IAExD;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAavF;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAIpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAI3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAMzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,cAAc;IAMrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,cAAc;IAI1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,cAAc;IAS7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,cAAc;IAI3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS;IAI3C,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;yCAtJZ,YAAY;6CAAZ,YAAY;CA6KxB"}
@@ -59,4 +59,5 @@ export * from './virtual-scroll/virtual-scroll-window-strategy';
59
59
  export * from './virtual-scroll/virtual-scroll-window.directive';
60
60
  export * from './virtual-scroll/virtual-scroller-wrapper.component';
61
61
  export * from './zip.service';
62
+ export * from './asset-link.pipe';
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,qDAAqD,CAAC;AACpE,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,qDAAqD,CAAC;AACpE,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -1,6 +1,23 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class LoadingComponent {
3
+ /**
4
+ * Defining the layout of the loading component. By default the
5
+ * component loading activity is used.
6
+ */
7
+ layout: 'component' | 'application' | 'page';
8
+ /**
9
+ * If set, a progress bar is shown. The layout property is ignored.
10
+ */
11
+ progress: number;
12
+ /**
13
+ * Showing a message while loading. The application layout by default shows the label `Loading…`.
14
+ */
15
+ message: string;
16
+ /**
17
+ * @ignore
18
+ */
19
+ get defaultLoadingMessage(): string;
3
20
  static ɵfac: i0.ɵɵFactoryDeclaration<LoadingComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingComponent, "c8y-loading", never, {}, {}, never, never, false, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoadingComponent, "c8y-loading", never, { "layout": { "alias": "layout"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "message": { "alias": "message"; "required": false; }; }, {}, never, never, false, never>;
5
22
  }
6
23
  //# sourceMappingURL=loading.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading.component.d.ts","sourceRoot":"","sources":["../../../core/common/loading.component.ts"],"names":[],"mappings":";AAEA,qBAYa,gBAAgB;yCAAhB,gBAAgB;2CAAhB,gBAAgB;CAAG"}
1
+ {"version":3,"file":"loading.component.d.ts","sourceRoot":"","sources":["../../../core/common/loading.component.ts"],"names":[],"mappings":";AAGA,qBAIa,gBAAgB;IAC3B;;;OAGG;IACM,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAe;IAEpE;;OAEG;IACM,QAAQ,EAAE,MAAM,CAAQ;IAEjC;;OAEG;IACM,OAAO,EAAE,MAAM,CAAQ;IAEhC;;OAEG;IACH,IAAI,qBAAqB,WAKxB;yCAzBU,gBAAgB;2CAAhB,gBAAgB;CA0B5B"}
@@ -1,4 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
+ /**
3
+ * @deprecated Use `c8y-loading` instead.
4
+ */
2
5
  export declare class ProgressBarComponent {
3
6
  message: string;
4
7
  progress: number;
@@ -1 +1 @@
1
- {"version":3,"file":"progress-bar.component.d.ts","sourceRoot":"","sources":["../../../core/common/progress-bar.component.ts"],"names":[],"mappings":";AAGA,qBAIa,oBAAoB;IACtB,OAAO,EAAE,MAAM,CAAuB;IACtC,QAAQ,EAAE,MAAM,CAAQ;yCAFtB,oBAAoB;2CAApB,oBAAoB;CAGhC"}
1
+ {"version":3,"file":"progress-bar.component.d.ts","sourceRoot":"","sources":["../../../core/common/progress-bar.component.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH,qBAIa,oBAAoB;IACtB,OAAO,EAAE,MAAM,CAAuB;IACtC,QAAQ,EAAE,MAAM,CAAQ;yCAFtB,oBAAoB;2CAApB,oBAAoB;CAGhC"}
@@ -3,16 +3,21 @@ import { ControlValueAccessor } from '@angular/forms';
3
3
  import { RangeDirective } from './range.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
- * An component which renders a range slider in Cumulocity layout. You need
7
- * to wrap the default range input in this component.
6
+ * A component to render a range slider in Cumulocity UI. You need to wrap the default range
7
+ * input in this component, then use one of the four available options for the value display mode:
8
+ * `pop`, `start`, `end`, and `inline`
8
9
  *
9
10
  * ```html
10
- * <c8y-range>
11
+ * <c8y-range valueDisplayMode="inline">
11
12
  * <input id="range" type="range" min="0" max="100000" value="0" step="1">
12
13
  * </c8y-range>
13
14
  * ```
14
15
  */
15
16
  export declare class RangeComponent implements OnDestroy, ControlValueAccessor {
17
+ /**
18
+ * Value display mode, available options: `pop`, `start`, `end`, and `inline` (fallback)
19
+ */
20
+ valueDisplayMode: 'pop' | 'inline' | 'end' | 'start';
16
21
  /**
17
22
  * The range input
18
23
  */
@@ -69,6 +74,6 @@ export declare class RangeComponent implements OnDestroy, ControlValueAccessor {
69
74
  */
70
75
  updatePosition(): void;
71
76
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeComponent, never>;
72
- static ɵcmp: i0.ɵɵComponentDeclaration<RangeComponent, "c8y-range", never, {}, {}, ["range", "rangeValue"], ["*"], false, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<RangeComponent, "c8y-range", never, { "valueDisplayMode": { "alias": "valueDisplayMode"; "required": false; }; }, {}, ["range", "rangeValue"], ["*"], false, never>;
73
78
  }
74
79
  //# sourceMappingURL=range.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"range.component.d.ts","sourceRoot":"","sources":["../../../core/forms/range.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;AAEnD;;;;;;;;;GASG;AACH,qBAWa,cAAe,YAAW,SAAS,EAAE,oBAAoB;IACpE;;OAEG;IAEH,KAAK,EAAE,cAAc,CAAC;IACtB;;OAEG;IAEH,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI;IAKjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,WAAW;IASX;;OAEG;IACH,cAAc;yCAnFH,cAAc;2CAAd,cAAc;CAyF1B"}
1
+ {"version":3,"file":"range.component.d.ts","sourceRoot":"","sources":["../../../core/forms/range.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,SAAS,EAAS,WAAW,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;AAEnD;;;;;;;;;;GAUG;AACH,qBAWa,cAAe,YAAW,SAAS,EAAE,oBAAoB;IACpE;;OAEG;IACM,gBAAgB,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAY;IACzE;;OAEG;IAEH,KAAK,EAAE,cAAc,CAAC;IACtB;;OAEG;IAEH,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI;IAKjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,WAAW;IASX;;OAEG;IACH,cAAc;yCAvFH,cAAc;2CAAd,cAAc;CA6F1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"gainsight.service.d.ts","sourceRoot":"","sources":["../../../core/product-experience/gainsight.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gainsight.service.d.ts","sourceRoot":"","sources":["../../../core/product-experience/gainsight.service.ts"],"names":[],"mappings":"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"}
@@ -231,7 +231,7 @@ export class ActilityDeviceRegistrationComponent {
231
231
  this.unsubscribe$.complete();
232
232
  }
233
233
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActilityDeviceRegistrationComponent, deps: [{ token: i1.BsModalRef }, { token: i2.ActilityDeviceRegistrationService }, { token: i3.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActilityDeviceRegistrationComponent, selector: "c8y-actility-registration", ngImport: i0, template: "<c8y-modal\n [title]=\"'Actility LoRa registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'c8y-device-connect'\"></span>\n </ng-container>\n\n <ng-container *ngIf=\"state === 'loadPending'; else registrationForm\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-container>\n\n <!--Formly schema is rendered-->\n <ng-template #registrationForm>\n <c8y-stepper\n [hideStepProgress]=\"true\"\n c8y-modal-body\n linear\n *ngIf=\"(errorMessages$ | async).length === 0; else errorMessagesPresent\"\n >\n <cdk-step [stepControl]=\"form\">\n <div class=\"p-b-16\">\n <p class=\"modal-subtitle sticky-top\">\n {{ 'Register a single Actility device' | translate }}\n </p>\n <formly-form\n class=\"formly-group-array-cols d-block p-l-24 p-r-24 p-t-16\"\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n ></formly-form>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [labels]=\"registrationStepLabels\"\n (onNext)=\"register($event)\"\n (onCancel)=\"bsModalRef.hide()\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [pending]=\"state === 'registrationPending'\"\n [disabled]=\"!form?.valid\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <!--success scenario-->\n <div\n class=\"p-16 text-center\"\n *ngIf=\"state === 'registrationPending'\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"m-24\">\n <c8y-operation-result\n class=\"lead m-b-0\"\n type=\"success\"\n *ngIf=\"state === 'registrationSuccess'\"\n text=\"{{ 'Device registered' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n (onCustom)=\"bsModalRef.hide()\"\n [showButtons]=\"{ custom: true }\"\n [labels]=\"finalStepLabels\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n </ng-template>\n\n <!--Failure scenario-->\n <ng-template #errorMessagesPresent>\n <div class=\"m-24\">\n <c8y-operation-result\n class=\"lead\"\n type=\"error\"\n *ngIf=\"state === 'registrationError'\"\n text=\"{{ 'Failed to register' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n <div\n class=\"m-b-8\"\n *ngFor=\"let msg of errorMessages$ | async\"\n data-cy=\"actility-device-registration.component--registration-error\"\n [ngClass]=\"{\n 'text-center': state === 'registrationError',\n 'alert alert-danger': state === 'loadError'\n }\"\n >\n <span [innerHTML]=\"msg | translate\"></span>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"bsModalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-template>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: i3.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i3.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i3.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i5.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i3.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i6.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActilityDeviceRegistrationComponent, selector: "c8y-actility-registration", ngImport: i0, template: "<c8y-modal\n [title]=\"'Actility LoRa registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'c8y-device-connect'\"></span>\n </ng-container>\n\n <ng-container *ngIf=\"state === 'loadPending'; else registrationForm\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-container>\n\n <!--Formly schema is rendered-->\n <ng-template #registrationForm>\n <c8y-stepper\n [hideStepProgress]=\"true\"\n c8y-modal-body\n linear\n *ngIf=\"(errorMessages$ | async).length === 0; else errorMessagesPresent\"\n >\n <cdk-step [stepControl]=\"form\">\n <div class=\"p-b-16\">\n <p class=\"modal-subtitle sticky-top\">\n {{ 'Register a single Actility device' | translate }}\n </p>\n <formly-form\n class=\"formly-group-array-cols d-block p-l-24 p-r-24 p-t-16\"\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n ></formly-form>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [labels]=\"registrationStepLabels\"\n (onNext)=\"register($event)\"\n (onCancel)=\"bsModalRef.hide()\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [pending]=\"state === 'registrationPending'\"\n [disabled]=\"!form?.valid\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <!--success scenario-->\n <div\n class=\"p-16 text-center\"\n *ngIf=\"state === 'registrationPending'\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"m-24\">\n <c8y-operation-result\n class=\"lead m-b-0\"\n type=\"success\"\n *ngIf=\"state === 'registrationSuccess'\"\n text=\"{{ 'Device registered' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n (onCustom)=\"bsModalRef.hide()\"\n [showButtons]=\"{ custom: true }\"\n [labels]=\"finalStepLabels\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n </ng-template>\n\n <!--Failure scenario-->\n <ng-template #errorMessagesPresent>\n <div class=\"m-24\">\n <c8y-operation-result\n class=\"lead\"\n type=\"error\"\n *ngIf=\"state === 'registrationError'\"\n text=\"{{ 'Failed to register' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n ></c8y-operation-result>\n <div\n class=\"m-b-8\"\n *ngFor=\"let msg of errorMessages$ | async\"\n data-cy=\"actility-device-registration.component--registration-error\"\n [ngClass]=\"{\n 'text-center': state === 'registrationError',\n 'alert alert-danger': state === 'loadError'\n }\"\n >\n <span [innerHTML]=\"msg | translate\"></span>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"bsModalRef.hide()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-template>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i3.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i3.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i3.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i5.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i3.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i6.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
235
235
  }
236
236
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActilityDeviceRegistrationComponent, decorators: [{
237
237
  type: Component,
@@ -143,7 +143,7 @@ export class MillerViewComponent extends AssetSelectorBase {
143
143
  useExisting: forwardRef(() => MillerViewComponent),
144
144
  multi: true
145
145
  }
146
- ], viewQueries: [{ propertyName: "millerViewWrapper", first: true, predicate: ["millerViewWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #millerViewWrapper\n class=\"miller-view-wrapper {{config.label}}\"\n [ngClass]=\"{ 'single-column': config.singleColumn,\n 'p-t-40': (config.label?.length && !config.search && !config.multi)\n || (!config.label?.length && !config.search && config.multi)\n || (!config.search && config.multi && config.singleColumn && !config.label?.length),\n\n 'p-t-48': (config.search && !config.multi && !config.singleColumn)\n || (config.search && !config.multi && config.singleColumn && !config.label?.length),\n 'p-t-56': (config.multi && !config.search && config.label?.length),\n 'p-t-72': (config.search && config.multi && !config.singleColumn) \n || (config.search && config.multi && config.singleColumn && !config.label?.length)\n || (config.search && !config.multi && config.singleColumn && config.label?.length),\n 'p-t-96': config.singleColumn && config.multi && config.search && config.label?.length}\"\n>\n <div *ngFor=\"let column of columns; index as i\" class=\"miller-column bg-inherit\">\n <c8y-asset-selector\n [config]=\"config\"\n [index]=\"i\"\n [active]=\"columns[i + 1]\"\n [rootNode]=\"column\"\n [selectedItems]=\"selected || []\"\n [selectedDevice]=\"selectedDevice\"\n (onSelected)=\"onSelectionChange($event)\"\n (onClearSelected)=\"onClearSelected.emit()\"\n (onRowSelected)=\"addNewColumn($event)\"\n (onLoad)=\"onLoad($event)\"\n [container]=\"container\"\n class=\"bg-inherit\"\n >\n </c8y-asset-selector>\n\n <div class=\"p-relative p-b-64\" *ngIf=\"isLoading && columnIndex === i && !selectedDevice\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!column.children.length && !isLoading\" class=\"p-l-8 p-r-8\">\n <c8y-ui-empty-state\n *ngIf=\"!filterText; else noSearchResults\"\n [icon]=\"'folder-open'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'The selected asset has no children.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-template #noSearchResults>\n <c8y-ui-empty-state\n [icon]=\"'folder-open'\"\n [title]=\"'No results to display for the current filter.' | translate\"\n [subtitle]=\"'There are no assets matching the filter.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i4.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: i6.AssetSelectorComponent, selector: "c8y-asset-selector", inputs: ["config", "active", "index", "asset", "selectedDevice", "selected", "rootNode", "selectedItems", "container"], outputs: ["onSelected", "onClearSelected", "onRowSelected", "onLoad"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }] }); }
146
+ ], viewQueries: [{ propertyName: "millerViewWrapper", first: true, predicate: ["millerViewWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #millerViewWrapper\n class=\"miller-view-wrapper {{config.label}}\"\n [ngClass]=\"{ 'single-column': config.singleColumn,\n 'p-t-40': (config.label?.length && !config.search && !config.multi)\n || (!config.label?.length && !config.search && config.multi)\n || (!config.search && config.multi && config.singleColumn && !config.label?.length),\n\n 'p-t-48': (config.search && !config.multi && !config.singleColumn)\n || (config.search && !config.multi && config.singleColumn && !config.label?.length),\n 'p-t-56': (config.multi && !config.search && config.label?.length),\n 'p-t-72': (config.search && config.multi && !config.singleColumn) \n || (config.search && config.multi && config.singleColumn && !config.label?.length)\n || (config.search && !config.multi && config.singleColumn && config.label?.length),\n 'p-t-96': config.singleColumn && config.multi && config.search && config.label?.length}\"\n>\n <div *ngFor=\"let column of columns; index as i\" class=\"miller-column bg-inherit\">\n <c8y-asset-selector\n [config]=\"config\"\n [index]=\"i\"\n [active]=\"columns[i + 1]\"\n [rootNode]=\"column\"\n [selectedItems]=\"selected || []\"\n [selectedDevice]=\"selectedDevice\"\n (onSelected)=\"onSelectionChange($event)\"\n (onClearSelected)=\"onClearSelected.emit()\"\n (onRowSelected)=\"addNewColumn($event)\"\n (onLoad)=\"onLoad($event)\"\n [container]=\"container\"\n class=\"bg-inherit\"\n >\n </c8y-asset-selector>\n\n <div class=\"p-relative p-b-64\" *ngIf=\"isLoading && columnIndex === i && !selectedDevice\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!column.children.length && !isLoading\" class=\"p-l-8 p-r-8\">\n <c8y-ui-empty-state\n *ngIf=\"!filterText; else noSearchResults\"\n [icon]=\"'folder-open'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'The selected asset has no children.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-template #noSearchResults>\n <c8y-ui-empty-state\n [icon]=\"'folder-open'\"\n [title]=\"'No results to display for the current filter.' | translate\"\n [subtitle]=\"'There are no assets matching the filter.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i4.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i6.AssetSelectorComponent, selector: "c8y-asset-selector", inputs: ["config", "active", "index", "asset", "selectedDevice", "selected", "rootNode", "selectedItems", "container"], outputs: ["onSelected", "onClearSelected", "onRowSelected", "onLoad"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }] }); }
147
147
  }
148
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MillerViewComponent, decorators: [{
149
149
  type: Component,
@@ -39,7 +39,7 @@ export class BookmarksComponent {
39
39
  this.alertService.warning(gettext('Bookmark with the same URL is already added.'));
40
40
  return;
41
41
  }
42
- const linkObject = this.convertBookmarkLinkToObject(currentHref, this.bookmarksService.getCurrentActiveNodeIcon(this.document));
42
+ const linkObject = this.bookmarkService.convertBookmarkLinkToObject(this.document.title, currentHref, this.bookmarksService.getCurrentActiveNodeIcon(this.document));
43
43
  this.bookmarks.push(linkObject);
44
44
  await this.bookmarkService.updateBookmarksInStorage(this.bookmarks);
45
45
  this.alertService.success(gettext('Bookmark added.'));
@@ -75,15 +75,6 @@ export class BookmarksComponent {
75
75
  }
76
76
  window.open(url, '_self');
77
77
  }
78
- convertBookmarkLinkToObject(url, icon) {
79
- const title = this.document.title;
80
- return {
81
- id: this.bookmarkService.generateRandomID(),
82
- label: title.includes('Cumulocity') ? title.replace('Cumulocity - ', '') : 'Bookmark',
83
- url,
84
- icon
85
- };
86
- }
87
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BookmarksComponent, deps: [{ token: Document }, { token: i1.TranslateService }, { token: i2.BookmarkService }, { token: i3.AlertService }, { token: i2.BookmarkService }, { token: i4.BsModalService }, { token: i5.Router }, { token: i3.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
88
79
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BookmarksComponent, selector: "c8y-bookmarks", ngImport: i0, template: "<div class=\"separator-top p-t-8 m-t-auto c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Bookmarks' | translate }}</span>\n <button\n class=\"btn-dot m-l-auto\"\n tooltip=\"{{ 'Edit bookmarks' | translate }}\"\n [attr.aria-label]=\"'Edit bookmarks' | translate\"\n container=\"body\"\n placement=\"left\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n (click)=\"editBookmarks()\"\n type=\"button\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n >\n <i c8yIcon=\"cog\" class=\"text-14 m-0\"></i>\n </button>\n</div>\n<div class=\"c8y-right-drawer__item p-t-0 p-b-8\" *ngIf=\"bookmarks?.length\">\n <button\n class=\"btn btn-default btn-sm\"\n (click)=\"addBookmark()\"\n type=\"button\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n >\n <i c8yIcon=\"plus-circle-o\" class=\"m-t-0 m-b-0 text-14\"></i>\n <span>{{ addButtonText }}</span>\n </button>\n</div>\n<ng-container *ngFor=\"let bookmark of bookmarks\">\n <button\n title=\"{{ bookmark.label }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n (click)=\"openUrl(bookmark.url)\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n >\n <i [c8yIcon]=\"bookmark.icon\" *ngIf=\"bookmark.icon\"></i>\n <span class=\"text-truncate\">{{ bookmark.label }}</span>\n </button>\n</ng-container>\n<div class=\"p-t-8 p-b-8\">\n <ng-container *ngIf=\"!bookmarks?.length\">\n <span class=\"c8y-right-drawer__item text-muted text-bold text-14 p-b-0\">\n {{ emptyMessageHeader }}\n </span>\n <span class=\"c8y-right-drawer__item text-12 p-t-0\">\n <span class=\"text-muted\">{{ emptyMessageBody }}</span>\n </span>\n <div class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n (click)=\"addBookmark()\"\n type=\"button\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n >\n <i c8yIcon=\"plus-circle-o\" class=\"m-t-0 m-b-0 text-14\"></i>\n <span>{{ addButtonText }}</span>\n </button>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
89
80
  }
@@ -94,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
94
85
  type: Inject,
95
86
  args: [Document]
96
87
  }] }, { type: i1.TranslateService }, { type: i2.BookmarkService }, { type: i3.AlertService }, { type: i2.BookmarkService }, { type: i4.BsModalService }, { type: i5.Router }, { type: i3.HeaderService }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jvb2ttYXJrcy9ib29rbWFya3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQU1uRixNQUFNLE9BQU8sa0JBQWtCO0lBVzdCLFlBQzRCLFFBQWtCLEVBQ3BDLGdCQUFrQyxFQUNsQyxnQkFBaUMsRUFDakMsWUFBMEIsRUFDMUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLGFBQTRCO1FBUFYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFj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QyxRQUFRLEVBQUU7WUFDNUMsT0FBTztTQUNSO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLDJCQUEyQixDQUFDLEdBQVcsRUFBRSxJQUFZO1FBQzNELE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzFDLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDckYsR0FBRztZQUNILElBQUk7U0FDTCxDQUFDO0lBQ0osQ0FBQzsrR0F4RlUsa0JBQWtCLGtCQVluQixRQUFRO21HQVpQLGtCQUFrQixxRENoQi9CLDhsRUE4REE7OzRGRDlDYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZUFBZTs7MEJBZXRCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIGFzIERvY3VtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0LCBIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2ttYXJrIH0gZnJvbSAnLi9ib29rbWFyay5tb2RlbCc7XG5pbXBvcnQgeyBCb29rbWFya1NlcnZpY2UgfSBmcm9tICcuL2Jvb2ttYXJrcy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRCb29rbWFya3NDb21wb25lbnQgfSBmcm9tICcuL2VkaXQtYm9va21hcmtzL2VkaXQtYm9va21hcmtzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1ib29rbWFya3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9va21hcmtzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCb29rbWFya3NDb21wb25lbnQge1xuICBkcmF3ZXJPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYm9va21hcmtzOiBCb29rbWFya1tdO1xuICBlbXB0eU1lc3NhZ2VIZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdObyBib29rbWFya3MgeWV0JykpO1xuICBlbXB0eU1lc3NhZ2VCb2R5ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgZ2V0dGV4dChcbiAgICAgICdOYXZpZ2F0ZSB0byB0aGUgZGVzaXJlZCBwYWdlIGFuZCBjbGljayB0aGUgXCJBZGQgY3VycmVudCBwYWdlXCIgYnV0dG9uLiBFZGl0aW5nLCBkZWxldGluZyBhbmQgcmVvcmRlcmluZyBhcmUgcG9zc2libGUgYnkgY2xpY2tpbmcgb24gdGhlIGNvZyB3aGVlbC4nXG4gICAgKVxuICApO1xuICBhZGRCdXR0b25UZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQWRkIGN1cnJlbnQgcGFnZScpKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERvY3VtZW50KSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBib29rbWFya3NTZXJ2aWNlOiBCb29rbWFya1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGJvb2ttYXJrU2VydmljZTogQm9va21hcmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZHJhd2VyT3BlbiQgPSB0aGlzLmhlYWRlclNlcnZpY2UucmlnaHREcmF3ZXJPcGVuJDtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuYm9va21hcmtzID0gYXdhaXQgdGhpcy5ib29rbWFya1NlcnZpY2UuZ2V0Qm9va21hcmtzKCk7XG4gIH1cblxuICBhc3luYyBhZGRCb29rbWFyaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50SHJlZiA9IHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZjtcbiAgICBpZiAodGhpcy5ib29rbWFya3Muc29tZShib29rbWFyayA9PiBib29rbWFyay51cmwgPT09IGN1cnJlbnRIcmVmKSkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyhnZXR0ZXh0KCdCb29rbWFyayB3aXRoIHRoZSBzYW1lIFVSTCBpcyBhbHJlYWR5IGFkZGVkLicpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGlua09iamVjdCA9IHRoaXMuY29udmVydEJvb2ttYXJrTGlua1RvT2JqZWN0KFxuICAgICAgY3VycmVudEhyZWYsXG4gICAgICB0aGlzLmJvb2ttYXJrc1NlcnZpY2UuZ2V0Q3VycmVudEFjdGl2ZU5vZGVJY29uKHRoaXMuZG9jdW1lbnQpXG4gICAgKTtcbiAgICB0aGlzLmJvb2ttYXJrcy5wdXNoKGxpbmtPYmplY3QpO1xuICAgIGF3YWl0IHRoaXMuYm9va21hcmtTZXJ2aWNlLnVwZGF0ZUJvb2ttYXJrc0luU3RvcmFnZSh0aGlzLmJvb2ttYXJrcyk7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdCb29rbWFyayBhZGRlZC4nKSk7XG4gIH1cblxuICBhc3luYyBlZGl0Qm9va21hcmtzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBpbml0aWFsU3RhdGU6IFBpY2s8RWRpdEJvb2ttYXJrc0NvbXBvbmVudCwgJ2Jvb2ttYXJrcyc+ID0ge1xuICAgICAgICBib29rbWFya3M6IGNsb25lRGVlcCh0aGlzLmJvb2ttYXJrcylcbiAgICAgIH07XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhFZGl0Qm9va21hcmtzQ29tcG9uZW50LCB7XG4gICAgICAgIGNsYXNzOiAnbW9kYWwtbWQnLFxuICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgIGluaXRpYWxTdGF0ZTogaW5pdGlhbFN0YXRlLFxuICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgICB9KS5jb250ZW50IGFzIEVkaXRCb29rbWFya3NDb21wb25lbnQ7XG4gICAgICB0aGlzLmJvb2ttYXJrcyA9IGF3YWl0IG1vZGFsUmVmLnJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBvcGVuVXJsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkVXJsID0gbmV3IFVSTCh1cmwpO1xuXG4gICAgaWYgKFxuICAgICAgcGFyc2VkVXJsLmhvc3RuYW1lID09PSBsb2NhdGlvbi5ob3N0bmFtZSAmJlxuICAgICAgcGFyc2VkVXJsLnBhdGhuYW1lLmluY2x1ZGVzKGxvY2F0aW9uLnBhdGhuYW1lKVxuICAgICkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChwYXJzZWRVcmwuaGFzaC5zdWJzdHJpbmcoMSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG9ubHkgcG9zc2libGUgaWYgdGhlIGV4dGVybmFsIGJvb2ttYXJrIFVSTCBoYXMgYmVlbiBzYXZlZCB1c2luZyB0aGUgQVBJXG4gICAgaWYgKHBhcnNlZFVybC5ob3N0bmFtZSAhPT0gbG9jYXRpb24uaG9zdG5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aW5kb3cub3Blbih1cmwsICdfc2VsZicpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0Qm9va21hcmtMaW5rVG9PYmplY3QodXJsOiBzdHJpbmcsIGljb246IHN0cmluZyk6IEJvb2ttYXJrIHtcbiAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gdGhpcy5kb2N1bWVudC50aXRsZTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuYm9va21hcmtTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tSUQoKSxcbiAgICAgIGxhYmVsOiB0aXRsZS5pbmNsdWRlcygnQ3VtdWxvY2l0eScpID8gdGl0bGUucmVwbGFjZSgnQ3VtdWxvY2l0eSAtICcsICcnKSA6ICdCb29rbWFyaycsXG4gICAgICB1cmwsXG4gICAgICBpY29uXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlcGFyYXRvci10b3AgcC10LTggbS10LWF1dG8gYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSBzdGlja3ktdG9wXCI+XG4gIDxpIGM4eUljb249XCJib29rbWFya1wiPjwvaT5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJvbGRcIj57eyAnQm9va21hcmtzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuLWRvdCBtLWwtYXV0b1wiXG4gICAgdG9vbHRpcD1cInt7ICdFZGl0IGJvb2ttYXJrcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VkaXQgYm9va21hcmtzJyB8IHRyYW5zbGF0ZVwiXG4gICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgIFtkZWxheV09XCI1MDBcIlxuICAgIChjbGljayk9XCJlZGl0Qm9va21hcmtzKClcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJjb2dcIiBjbGFzcz1cInRleHQtMTQgbS0wXCI+PC9pPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2l0ZW0gcC10LTAgcC1iLThcIiAqbmdJZj1cImJvb2ttYXJrcz8ubGVuZ3RoXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgIChjbGljayk9XCJhZGRCb29rbWFyaygpXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbdGFiaW5kZXhdPVwiKGRyYXdlck9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGUtb1wiIGNsYXNzPVwibS10LTAgbS1iLTAgdGV4dC0xNFwiPjwvaT5cbiAgICA8c3Bhbj57eyBhZGRCdXR0b25UZXh0IH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYm9va21hcmsgb2YgYm9va21hcmtzXCI+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7IGJvb2ttYXJrLmxhYmVsIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2xpbmtcIlxuICAgIChjbGljayk9XCJvcGVuVXJsKGJvb2ttYXJrLnVybClcIlxuICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cImJvb2ttYXJrLmljb25cIiAqbmdJZj1cImJvb2ttYXJrLmljb25cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgYm9va21hcmsubGFiZWwgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwicC10LTggcC1iLThcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFib29rbWFya3M/Lmxlbmd0aFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSB0ZXh0LW11dGVkIHRleHQtYm9sZCB0ZXh0LTE0IHAtYi0wXCI+XG4gICAgICB7eyBlbXB0eU1lc3NhZ2VIZWFkZXIgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtIHRleHQtMTIgcC10LTBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZFwiPnt7IGVtcHR5TWVzc2FnZUJvZHkgfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgIChjbGljayk9XCJhZGRCb29rbWFyaygpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlLW9cIiBjbGFzcz1cIm0tdC0wIG0tYi0wIHRleHQtMTRcIj48L2k+XG4gICAgICAgIDxzcGFuPnt7IGFkZEJ1dHRvblRleHQgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jvb2ttYXJrcy9ib29rbWFya3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQU1uRixNQUFNLE9BQU8sa0JBQWtCO0lBVzdCLFlBQzRCLFFBQWtCLEVBQ3BDLGdCQUFrQyxFQUNsQyxnQkFBaUMsRUFDakMsWUFBMEIsRUFDMUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLGFBQTRCO1FBUFYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFj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RTtRQUMxRSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxPQUFPO1NBQ1I7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQS9FVSxrQkFBa0Isa0JBWW5CLFFBQVE7bUdBWlAsa0JBQWtCLHFEQ2hCL0IsOGxFQThEQTs7NEZEOUNhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxlQUFlOzswQkFldEIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgYXMgRG9jdW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQsIEhlYWRlclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9va21hcmsgfSBmcm9tICcuL2Jvb2ttYXJrLm1vZGVsJztcbmltcG9ydCB7IEJvb2ttYXJrU2VydmljZSB9IGZyb20gJy4vYm9va21hcmtzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vZWRpdC1ib29rbWFya3MvZWRpdC1ib29rbWFya3MuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJvb2ttYXJrcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib29rbWFya3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrc0NvbXBvbmVudCB7XG4gIGRyYXdlck9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBib29rbWFya3M6IEJvb2ttYXJrW107XG4gIGVtcHR5TWVzc2FnZUhlYWRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ05vIGJvb2ttYXJrcyB5ZXQnKSk7XG4gIGVtcHR5TWVzc2FnZUJvZHkgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICBnZXR0ZXh0KFxuICAgICAgJ05hdmlnYXRlIHRvIHRoZSBkZXNpcmVkIHBhZ2UgYW5kIGNsaWNrIHRoZSBcIkFkZCBjdXJyZW50IHBhZ2VcIiBidXR0b24uIEVkaXRpbmcsIGRlbGV0aW5nIGFuZCByZW9yZGVyaW5nIGFyZSBwb3NzaWJsZSBieSBjbGlja2luZyBvbiB0aGUgY29nIHdoZWVsLidcbiAgICApXG4gICk7XG4gIGFkZEJ1dHRvblRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdBZGQgY3VycmVudCBwYWdlJykpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRG9jdW1lbnQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJvb2ttYXJrc1NlcnZpY2U6IEJvb2ttYXJrU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYm9va21hcmtTZXJ2aWNlOiBCb29rbWFya1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGhlYWRlclNlcnZpY2U6IEhlYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5kcmF3ZXJPcGVuJCA9IHRoaXMuaGVhZGVyU2VydmljZS5yaWdodERyYXdlck9wZW4kO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5ib29rbWFya3MgPSBhd2FpdCB0aGlzLmJvb2ttYXJrU2VydmljZS5nZXRCb29rbWFya3MoKTtcbiAgfVxuXG4gIGFzeW5jIGFkZEJvb2ttYXJrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRIcmVmID0gdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmO1xuICAgIGlmICh0aGlzLmJvb2ttYXJrcy5zb21lKGJvb2ttYXJrID0+IGJvb2ttYXJrLnVybCA9PT0gY3VycmVudEhyZWYpKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuaW5nKGdldHRleHQoJ0Jvb2ttYXJrIHdpdGggdGhlIHNhbWUgVVJMIGlzIGFscmVhZHkgYWRkZWQuJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsaW5rT2JqZWN0ID0gdGhpcy5ib29rbWFya1NlcnZpY2UuY29udmVydEJvb2ttYXJrTGlua1RvT2JqZWN0KFxuICAgICAgdGhpcy5kb2N1bWVudC50aXRsZSxcbiAgICAgIGN1cnJlbnRIcmVmLFxuICAgICAgdGhpcy5ib29rbWFya3NTZXJ2aWNlLmdldEN1cnJlbnRBY3RpdmVOb2RlSWNvbih0aGlzLmRvY3VtZW50KVxuICAgICk7XG4gICAgdGhpcy5ib29rbWFya3MucHVzaChsaW5rT2JqZWN0KTtcbiAgICBhd2FpdCB0aGlzLmJvb2ttYXJrU2VydmljZS51cGRhdGVCb29rbWFya3NJblN0b3JhZ2UodGhpcy5ib29rbWFya3MpO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQm9va21hcmsgYWRkZWQuJykpO1xuICB9XG5cbiAgYXN5bmMgZWRpdEJvb2ttYXJrcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5pdGlhbFN0YXRlOiBQaWNrPEVkaXRCb29rbWFya3NDb21wb25lbnQsICdib29rbWFya3MnPiA9IHtcbiAgICAgICAgYm9va21hcmtzOiBjbG9uZURlZXAodGhpcy5ib29rbWFya3MpXG4gICAgICB9O1xuICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coRWRpdEJvb2ttYXJrc0NvbXBvbmVudCwge1xuICAgICAgICBjbGFzczogJ21vZGFsLW1kJyxcbiAgICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICBpbml0aWFsU3RhdGU6IGluaXRpYWxTdGF0ZSxcbiAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgfSkuY29udGVudCBhcyBFZGl0Qm9va21hcmtzQ29tcG9uZW50O1xuICAgICAgdGhpcy5ib29rbWFya3MgPSBhd2FpdCBtb2RhbFJlZi5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgb3BlblVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKTtcblxuICAgIGlmIChcbiAgICAgIHBhcnNlZFVybC5ob3N0bmFtZSA9PT0gbG9jYXRpb24uaG9zdG5hbWUgJiZcbiAgICAgIHBhcnNlZFVybC5wYXRobmFtZS5pbmNsdWRlcyhsb2NhdGlvbi5wYXRobmFtZSlcbiAgICApIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocGFyc2VkVXJsLmhhc2guc3Vic3RyaW5nKDEpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBvbmx5IHBvc3NpYmxlIGlmIHRoZSBleHRlcm5hbCBib29rbWFyayBVUkwgaGFzIGJlZW4gc2F2ZWQgdXNpbmcgdGhlIEFQSVxuICAgIGlmIChwYXJzZWRVcmwuaG9zdG5hbWUgIT09IGxvY2F0aW9uLmhvc3RuYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX3NlbGYnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlcGFyYXRvci10b3AgcC10LTggbS10LWF1dG8gYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSBzdGlja3ktdG9wXCI+XG4gIDxpIGM4eUljb249XCJib29rbWFya1wiPjwvaT5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJvbGRcIj57eyAnQm9va21hcmtzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuLWRvdCBtLWwtYXV0b1wiXG4gICAgdG9vbHRpcD1cInt7ICdFZGl0IGJvb2ttYXJrcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VkaXQgYm9va21hcmtzJyB8IHRyYW5zbGF0ZVwiXG4gICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgIFtkZWxheV09XCI1MDBcIlxuICAgIChjbGljayk9XCJlZGl0Qm9va21hcmtzKClcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJjb2dcIiBjbGFzcz1cInRleHQtMTQgbS0wXCI+PC9pPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2l0ZW0gcC10LTAgcC1iLThcIiAqbmdJZj1cImJvb2ttYXJrcz8ubGVuZ3RoXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgIChjbGljayk9XCJhZGRCb29rbWFyaygpXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbdGFiaW5kZXhdPVwiKGRyYXdlck9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGUtb1wiIGNsYXNzPVwibS10LTAgbS1iLTAgdGV4dC0xNFwiPjwvaT5cbiAgICA8c3Bhbj57eyBhZGRCdXR0b25UZXh0IH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYm9va21hcmsgb2YgYm9va21hcmtzXCI+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7IGJvb2ttYXJrLmxhYmVsIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2xpbmtcIlxuICAgIChjbGljayk9XCJvcGVuVXJsKGJvb2ttYXJrLnVybClcIlxuICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cImJvb2ttYXJrLmljb25cIiAqbmdJZj1cImJvb2ttYXJrLmljb25cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgYm9va21hcmsubGFiZWwgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwicC10LTggcC1iLThcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFib29rbWFya3M/Lmxlbmd0aFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSB0ZXh0LW11dGVkIHRleHQtYm9sZCB0ZXh0LTE0IHAtYi0wXCI+XG4gICAgICB7eyBlbXB0eU1lc3NhZ2VIZWFkZXIgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtIHRleHQtMTIgcC10LTBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZFwiPnt7IGVtcHR5TWVzc2FnZUJvZHkgfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgIChjbGljayk9XCJhZGRCb29rbWFyaygpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFt0YWJpbmRleF09XCIoZHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlLW9cIiBjbGFzcz1cIm0tdC0wIG0tYi0wIHRleHQtMTRcIj48L2k+XG4gICAgICAgIDxzcGFuPnt7IGFkZEJ1dHRvblRleHQgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,11 +1,14 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { UserPreferencesService } from '@c8y/ngx-components';
2
+ import { gettext, UserPreferencesService } from '@c8y/ngx-components';
3
+ import { TranslateService } from '@ngx-translate/core';
3
4
  import { uniqBy } from 'lodash-es';
4
- import { map } from 'rxjs/operators';
5
+ import { firstValueFrom, map } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "@c8y/ngx-components";
7
+ import * as i1 from "@ngx-translate/core";
8
+ import * as i2 from "@c8y/ngx-components";
7
9
  export class BookmarkService {
8
- constructor(userPreferencesService) {
10
+ constructor(translateService, userPreferencesService) {
11
+ this.translateService = translateService;
9
12
  this.userPreferencesService = userPreferencesService;
10
13
  this.USER_PREFERENCES_BOOKMARKS_KEY = 'bookmarks';
11
14
  }
@@ -35,16 +38,25 @@ export class BookmarkService {
35
38
  return iconName;
36
39
  }
37
40
  async getBookmarks() {
38
- return await this.userPreferencesService
41
+ return await firstValueFrom(this.userPreferencesService
39
42
  .get(this.USER_PREFERENCES_BOOKMARKS_KEY)
40
- .pipe(map((bookmarks) => bookmarks ?? []))
41
- .toPromise();
43
+ .pipe(map((bookmarks) => bookmarks ?? [])));
42
44
  }
43
45
  generateRandomID() {
44
46
  const array = new Uint8Array(16);
45
47
  crypto.getRandomValues(array);
46
48
  return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');
47
49
  }
50
+ convertBookmarkLinkToObject(title, url, icon) {
51
+ return {
52
+ id: this.generateRandomID(),
53
+ label: title.includes('Cumulocity')
54
+ ? title.replace('Cumulocity - ', '')
55
+ : this.translateService.instant(gettext('Bookmark')),
56
+ url,
57
+ icon
58
+ };
59
+ }
48
60
  getIconElement(document) {
49
61
  const currentActiveNode = document.querySelectorAll('.link.active');
50
62
  if (!currentActiveNode.length) {
@@ -57,11 +69,11 @@ export class BookmarkService {
57
69
  this.userPreferencesService.set(this.USER_PREFERENCES_BOOKMARKS_KEY, bookmarks);
58
70
  this.updatedBookmarks = bookmarks;
59
71
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BookmarkService, deps: [{ token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BookmarkService, deps: [{ token: i1.TranslateService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
73
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BookmarkService, providedIn: 'root' }); }
62
74
  }
63
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BookmarkService, decorators: [{
64
76
  type: Injectable,
65
77
  args: [{ providedIn: 'root' }]
66
- }], ctorParameters: function () { return [{ type: i1.UserPreferencesService }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ib29rbWFya3MvYm9va21hcmtzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSXJDLE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBSmxFLG1DQUE4QixHQUFHLFdBQVcsQ0FBQztJQUl3QixDQUFDO0lBRXRFLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxZQUF3QjtRQUNyRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQzNELENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUMvQyxDQUFDO1FBRUYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHdCQUF3QixDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUU1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckQsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUMzQixNQUFNLEtBQUssR0FBRyxtREFBbUQsQ0FBQztRQUNsRSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMvQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDdkUsT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUNoQixPQUFPLE1BQU0sSUFBSSxDQUFDLHNCQUFzQjthQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFxQixFQUFFLEVBQUUsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7YUFDckQsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWtCO1FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBYSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDNUQsT0FBTyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBeUIsQ0FBQztJQUNoRSxDQUFDO0lBRU8sMkJBQTJCLENBQUMsU0FBcUI7UUFDdkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDOytHQXJFVSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQm9va21hcmsgfSBmcm9tICcuL2Jvb2ttYXJrLm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCb29rbWFya1NlcnZpY2Uge1xuICBVU0VSX1BSRUZFUkVOQ0VTX0JPT0tNQVJLU19LRVkgPSAnYm9va21hcmtzJztcblxuICB1cGRhdGVkQm9va21hcmtzOiBCb29rbWFya1tdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSkge31cblxuICBhc3luYyB1cGRhdGVCb29rbWFya3NJblN0b3JhZ2UobmV3Qm9va21hcmtzOiBCb29rbWFya1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZXhpc3RpbmdCb29rbWFya3MgPSBhd2FpdCB0aGlzLmdldEJvb2ttYXJrcygpO1xuICAgIGNvbnN0IG1lcmdlZEJvb2ttYXJrcyA9IFsuLi5uZXdCb29rbWFya3MsIC4uLmV4aXN0aW5nQm9va21hcmtzXTtcbiAgICBjb25zdCBjbGVhbmVkQm9va21hcmtzID0gdW5pcUJ5KG1lcmdlZEJvb2ttYXJrcywgJ2lkJykuZmlsdGVyKFxuICAgICAgKGJvb2ttYXJrOiBCb29rbWFyaykgPT4gIWJvb2ttYXJrLm1hcmtUb1JlbW92ZVxuICAgICk7XG5cbiAgICB0aGlzLnNldFVzZXJQcmVmZXJlbmNlc0Jvb2ttYXJrcyhjbGVhbmVkQm9va21hcmtzKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRBY3RpdmVOb2RlSWNvbihkb2N1bWVudDogRG9jdW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IEJPT0tNQVJLID0gJ2Jvb2ttYXJrJztcblxuICAgIGNvbnN0IGljb25FbGVtZW50ID0gdGhpcy5nZXRJY29uRWxlbWVudChkb2N1bWVudCk7XG5cbiAgICBpZiAoIWljb25FbGVtZW50KSB7XG4gICAgICByZXR1cm4gQk9PS01BUks7XG4gICAgfVxuXG4gICAgY29uc3QgaWNvbkNsYXNzTmFtZSA9IGljb25FbGVtZW50LmNsYXNzTmFtZTtcbiAgICBjb25zdCBpY29uTmFtZSA9IHRoaXMuZXh0cmFjdEljb25OYW1lKGljb25DbGFzc05hbWUpO1xuICAgIHJldHVybiBpY29uTmFtZSB8fCBCT09LTUFSSztcbiAgfVxuXG4gIGV4dHJhY3RJY29uTmFtZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgcmVnZXggPSAvXFxiKD86ZGx0LSk/Yzh5LWljb24tKCg/OmM4eS0pP1xcdysoPzotW1xcdy1dKykqKVxcYi9nO1xuICAgIGxldCBpY29uTmFtZSA9IG51bGw7XG5cbiAgICBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAobWF0Y2hlZEljb25TdHJpbmcsIG5hbWUpID0+IHtcbiAgICAgIGljb25OYW1lID0gbWF0Y2hlZEljb25TdHJpbmcuc3RhcnRzV2l0aCgnZGx0LScpID8gbmFtZSA6ICdjOHktJyArIG5hbWU7XG4gICAgICByZXR1cm4gbWF0Y2hlZEljb25TdHJpbmc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaWNvbk5hbWU7XG4gIH1cblxuICBhc3luYyBnZXRCb29rbWFya3MoKTogUHJvbWlzZTxCb29rbWFya1tdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgLmdldCh0aGlzLlVTRVJfUFJFRkVSRU5DRVNfQk9PS01BUktTX0tFWSlcbiAgICAgIC5waXBlKG1hcCgoYm9va21hcmtzOiBCb29rbWFya1tdKSA9PiBib29rbWFya3MgPz8gW10pKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb21JRCgpIHtcbiAgICBjb25zdCBhcnJheSA9IG5ldyBVaW50OEFycmF5KDE2KTtcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKGFycmF5LCBieXRlID0+IGJ5dGUudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJY29uRWxlbWVudChkb2N1bWVudDogRG9jdW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVOb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxpbmsuYWN0aXZlJykgYXMgTm9kZUxpc3Q7XG4gICAgaWYgKCFjdXJyZW50QWN0aXZlTm9kZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBhY3RpdmVOb2RlID0gY3VycmVudEFjdGl2ZU5vZGUuaXRlbSgwKSBhcyBIVE1MRWxlbWVudDtcbiAgICByZXR1cm4gYWN0aXZlTm9kZS5maXJzdEVsZW1lbnRDaGlsZC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRVc2VyUHJlZmVyZW5jZXNCb29rbWFya3MoYm9va21hcmtzOiBCb29rbWFya1tdKTogdm9pZCB7XG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLnNldCh0aGlzLlVTRVJfUFJFRkVSRU5DRVNfQk9PS01BUktTX0tFWSwgYm9va21hcmtzKTtcbiAgICB0aGlzLnVwZGF0ZWRCb29rbWFya3MgPSBib29rbWFya3M7XG4gIH1cbn1cbiJdfQ==
78
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.UserPreferencesService }]; } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ib29rbWFya3MvYm9va21hcmtzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUkzQyxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNVLGdCQUFrQyxFQUNsQyxzQkFBOEM7UUFEOUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBTi9DLG1DQUE4QixHQUFHLFdBQVcsQ0FBQztJQU9uRCxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLFlBQXdCO1FBQ3JELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDaEUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDM0QsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQy9DLENBQUM7UUFFRixJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsUUFBa0I7UUFDekMsTUFBTSxRQUFRLEdBQUcs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REYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2ttYXJrIH0gZnJvbSAnLi9ib29rbWFyay5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQm9va21hcmtTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgVVNFUl9QUkVGRVJFTkNFU19CT09LTUFSS1NfS0VZID0gJ2Jvb2ttYXJrcyc7XG5cbiAgdXBkYXRlZEJvb2ttYXJrczogQm9va21hcmtbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB1cGRhdGVCb29rbWFya3NJblN0b3JhZ2UobmV3Qm9va21hcmtzOiBCb29rbWFya1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZXhpc3RpbmdCb29rbWFya3MgPSBhd2FpdCB0aGlzLmdldEJvb2ttYXJrcygpO1xuICAgIGNvbnN0IG1lcmdlZEJvb2ttYXJrcyA9IFsuLi5uZXdCb29rbWFya3MsIC4uLmV4aXN0aW5nQm9va21hcmtzXTtcbiAgICBjb25zdCBjbGVhbmVkQm9va21hcmtzID0gdW5pcUJ5KG1lcmdlZEJvb2ttYXJrcywgJ2lkJykuZmlsdGVyKFxuICAgICAgKGJvb2ttYXJrOiBCb29rbWFyaykgPT4gIWJvb2ttYXJrLm1hcmtUb1JlbW92ZVxuICAgICk7XG5cbiAgICB0aGlzLnNldFVzZXJQcmVmZXJlbmNlc0Jvb2ttYXJrcyhjbGVhbmVkQm9va21hcmtzKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRBY3RpdmVOb2RlSWNvbihkb2N1bWVudDogRG9jdW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IEJPT0tNQVJLID0gJ2Jvb2ttYXJrJztcblxuICAgIGNvbnN0IGljb25FbGVtZW50ID0gdGhpcy5nZXRJY29uRWxlbWVudChkb2N1bWVudCk7XG5cbiAgICBpZiAoIWljb25FbGVtZW50KSB7XG4gICAgICByZXR1cm4gQk9PS01BUks7XG4gICAgfVxuXG4gICAgY29uc3QgaWNvbkNsYXNzTmFtZSA9IGljb25FbGVtZW50LmNsYXNzTmFtZTtcbiAgICBjb25zdCBpY29uTmFtZSA9IHRoaXMuZXh0cmFjdEljb25OYW1lKGljb25DbGFzc05hbWUpO1xuICAgIHJldHVybiBpY29uTmFtZSB8fCBCT09LTUFSSztcbiAgfVxuXG4gIGV4dHJhY3RJY29uTmFtZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgcmVnZXggPSAvXFxiKD86ZGx0LSk/Yzh5LWljb24tKCg/OmM4eS0pP1xcdysoPzotW1xcdy1dKykqKVxcYi9nO1xuICAgIGxldCBpY29uTmFtZSA9IG51bGw7XG5cbiAgICBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAobWF0Y2hlZEljb25TdHJpbmcsIG5hbWUpID0+IHtcbiAgICAgIGljb25OYW1lID0gbWF0Y2hlZEljb25TdHJpbmcuc3RhcnRzV2l0aCgnZGx0LScpID8gbmFtZSA6ICdjOHktJyArIG5hbWU7XG4gICAgICByZXR1cm4gbWF0Y2hlZEljb25TdHJpbmc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaWNvbk5hbWU7XG4gIH1cblxuICBhc3luYyBnZXRCb29rbWFya3MoKTogUHJvbWlzZTxCb29rbWFya1tdPiB7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICAgICAgIC5nZXQodGhpcy5VU0VSX1BSRUZFUkVOQ0VTX0JPT0tNQVJLU19LRVkpXG4gICAgICAgIC5waXBlKG1hcCgoYm9va21hcmtzOiBCb29rbWFya1tdKSA9PiBib29rbWFya3MgPz8gW10pKVxuICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZVJhbmRvbUlEKCkge1xuICAgIGNvbnN0IGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMTYpO1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oYXJyYXksIGJ5dGUgPT4gYnl0ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gIH1cblxuICBjb252ZXJ0Qm9va21hcmtMaW5rVG9PYmplY3QodGl0bGU6IHN0cmluZywgdXJsOiBzdHJpbmcsIGljb246IHN0cmluZyk6IEJvb2ttYXJrIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuZ2VuZXJhdGVSYW5kb21JRCgpLFxuICAgICAgbGFiZWw6IHRpdGxlLmluY2x1ZGVzKCdDdW11bG9jaXR5JylcbiAgICAgICAgPyB0aXRsZS5yZXBsYWNlKCdDdW11bG9jaXR5IC0gJywgJycpXG4gICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQm9va21hcmsnKSksXG4gICAgICB1cmwsXG4gICAgICBpY29uXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWNvbkVsZW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlTm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5saW5rLmFjdGl2ZScpIGFzIE5vZGVMaXN0O1xuICAgIGlmICghY3VycmVudEFjdGl2ZU5vZGUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgYWN0aXZlTm9kZSA9IGN1cnJlbnRBY3RpdmVOb2RlLml0ZW0oMCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgcmV0dXJuIGFjdGl2ZU5vZGUuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXNlclByZWZlcmVuY2VzQm9va21hcmtzKGJvb2ttYXJrczogQm9va21hcmtbXSk6IHZvaWQge1xuICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5zZXQodGhpcy5VU0VSX1BSRUZFUkVOQ0VTX0JPT0tNQVJLU19LRVksIGJvb2ttYXJrcyk7XG4gICAgdGhpcy51cGRhdGVkQm9va21hcmtzID0gYm9va21hcmtzO1xuICB9XG59XG4iXX0=
@@ -8,11 +8,11 @@ export class CockpitSetupStepperButtonsComponent {
8
8
  this.onBack = new EventEmitter();
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CockpitSetupStepperButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: { index: "index" }, outputs: { onNext: "onNext", onBack: "onBack" }, ngImport: i0, template: "<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Save and continue\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: { index: "index" }, outputs: { onNext: "onNext", onBack: "onBack" }, ngImport: i0, template: "<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Continue\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CockpitSetupStepperButtonsComponent, decorators: [{
14
14
  type: Component,
15
- args: [{ selector: 'c8y-cockpit-setup-stepper-buttons', template: "<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Save and continue\n </button>\n</div>\n" }]
15
+ args: [{ selector: 'c8y-cockpit-setup-stepper-buttons', template: "<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Continue\n </button>\n</div>\n" }]
16
16
  }], propDecorators: { index: [{
17
17
  type: Input
18
18
  }], onNext: [{
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20
20
  }], onBack: [{
21
21
  type: Output
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29ja3BpdC1jb25maWcvc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29ja3BpdC1jb25maWcvc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU12RSxNQUFNLE9BQU8sbUNBQW1DO0lBSmhEO1FBTVksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FDN0M7K0dBSlksbUNBQW1DO21HQUFuQyxtQ0FBbUMsc0pDTmhELDZhQWNBOzs0RkRSYSxtQ0FBbUM7a0JBSi9DLFNBQVM7K0JBQ0UsbUNBQW1DOzhCQUlwQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29ja3BpdFNldHVwU3RlcHBlckJ1dHRvbnNDb21wb25lbnQge1xuICBASW5wdXQoKSBpbmRleDtcbiAgQE91dHB1dCgpIG9uTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG9uQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3IgZC1mbGV4IGotYy1jZW50ZXJcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib25CYWNrLmVtaXQoKVwiXG4gICAgKm5nSWY9XCJpbmRleCAhPT0gMFwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBQcmV2aW91c1xuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBkYXRhLWN5PVwiYzh5LWNvY2twaXQtc2V0dXAtc3RlcHBlci1idXR0b25zLS1zYXZlLWNvbnRpbnVlLWJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJvbk5leHQuZW1pdCgpXCIgdHJhbnNsYXRlPlxuICAgIFNhdmUgYW5kIGNvbnRpbnVlXG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29ja3BpdC1jb25maWcvc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29ja3BpdC1jb25maWcvc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwcGVyLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU12RSxNQUFNLE9BQU8sbUNBQW1DO0lBSmhEO1FBTVksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FDN0M7K0dBSlksbUNBQW1DO21HQUFuQyxtQ0FBbUMsc0pDTmhELG9hQWNBOzs0RkRSYSxtQ0FBbUM7a0JBSi9DLFNBQVM7K0JBQ0UsbUNBQW1DOzhCQUlwQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29ja3BpdFNldHVwU3RlcHBlckJ1dHRvbnNDb21wb25lbnQge1xuICBASW5wdXQoKSBpbmRleDtcbiAgQE91dHB1dCgpIG9uTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG9uQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3IgZC1mbGV4IGotYy1jZW50ZXJcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib25CYWNrLmVtaXQoKVwiXG4gICAgKm5nSWY9XCJpbmRleCAhPT0gMFwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBQcmV2aW91c1xuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBkYXRhLWN5PVwiYzh5LWNvY2twaXQtc2V0dXAtc3RlcHBlci1idXR0b25zLS1zYXZlLWNvbnRpbnVlLWJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJvbk5leHQuZW1pdCgpXCIgdHJhbnNsYXRlPlxuICAgIENvbnRpbnVlXG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=