ngx-bimplus-components 0.0.149-28792-3 → 0.0.150

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 (174) hide show
  1. package/assets/languages/strings_cs.json +72 -24
  2. package/assets/languages/strings_de.json +15 -4
  3. package/assets/languages/strings_en.json +5 -5
  4. package/assets/languages/strings_es.json +54 -6
  5. package/assets/languages/strings_fr.json +50 -6
  6. package/assets/languages/strings_it.json +50 -2
  7. package/assets/languages/strings_nl.json +796 -796
  8. package/assets/languages/strings_ro.json +55 -7
  9. package/assets/languages/strings_ru.json +93 -45
  10. package/assets/languages/strings_tr.json +50 -2
  11. package/assets/languages/strings_us.json +44 -8
  12. package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +7 -20
  13. package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +2 -5
  14. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +7 -7
  15. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.interface.mjs +1 -1
  16. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.service.mjs +4 -4
  17. package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +5 -5
  18. package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.interface.mjs +1 -1
  19. package/esm2022/lib/components/bimplus-contact/bimplus-contact.component.mjs +5 -5
  20. package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +3 -3
  21. package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +1 -1
  22. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +5 -5
  23. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
  24. package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +5 -5
  25. package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.interface.mjs +1 -1
  26. package/esm2022/lib/components/bimplus-floating-bar-body/bimplus-floating-bar-body.component.mjs +5 -5
  27. package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +5 -5
  28. package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +3 -3
  29. package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +4 -4
  30. package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +3 -3
  31. package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +4 -4
  32. package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +3 -3
  33. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +4 -4
  34. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.service.mjs +3 -3
  35. package/esm2022/lib/components/bimplus-language-menu/bimplus-language-menu.component.mjs +3 -3
  36. package/esm2022/lib/components/bimplus-localized-widget/bimplus-localized-widget.component.mjs +3 -3
  37. package/esm2022/lib/components/bimplus-main-menu/bimplus-main-menu.component.mjs +3 -3
  38. package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
  39. package/esm2022/lib/components/bimplus-notify/bimplus-notify.component.mjs +5 -5
  40. package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +5 -5
  41. package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +6 -5
  42. package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +5 -5
  43. package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +1 -1
  44. package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +3 -3
  45. package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +5 -5
  46. package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +5 -5
  47. package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +3 -3
  48. package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +7 -10
  49. package/esm2022/lib/components/bimplus-panel-toolbar/bimplus-panel-toolbar.component.mjs +5 -5
  50. package/esm2022/lib/components/bimplus-project-menu/bimplus-project-menu.component.mjs +3 -3
  51. package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +5 -5
  52. package/esm2022/lib/components/bimplus-sidenav/bimplus-sidenav.component.mjs +3 -3
  53. package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
  54. package/esm2022/lib/components/bimplus-storage-info/bimplus-storage-info.component.mjs +3 -3
  55. package/esm2022/lib/components/bimplus-text-message/bimplus-text-message.component.mjs +3 -3
  56. package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +3 -3
  57. package/esm2022/lib/components/bimplus-tool-hub/svgGenerator.mjs +1 -1
  58. package/esm2022/lib/components/bimplus-tool-hub/tool-hub-item/tool-hub-item.component.mjs +3 -3
  59. package/esm2022/lib/components/bimplus-tool-hub/tool-hub-sub-item/tool-hub-sub-item.component.mjs +3 -3
  60. package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.mjs +5 -5
  61. package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.interface.mjs +1 -1
  62. package/esm2022/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.mjs +5 -5
  63. package/esm2022/lib/components/bimplus-user-menu/bimplus-user-menu.component.mjs +3 -3
  64. package/esm2022/lib/components/bimplus-zoom/bimplus-zoom.component.mjs +5 -5
  65. package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +3 -3
  66. package/esm2022/lib/components/expansion-panel-header/expansion-panel-header.component.mjs +3 -3
  67. package/esm2022/lib/components/expansion-panel-header-actions/expansion-panel-header-actions.component.mjs +3 -3
  68. package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
  69. package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +6 -21
  70. package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
  71. package/esm2022/lib/components/project-models/project-models.component.mjs +3 -3
  72. package/esm2022/lib/components/project-models/project-models.interface.mjs +1 -1
  73. package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +5 -5
  74. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +4 -4
  75. package/esm2022/lib/directives/component-draggable/componentsDraggable.directive.mjs +3 -3
  76. package/esm2022/lib/directives/draggable.directive.mjs +3 -3
  77. package/esm2022/lib/directives/resizable.directive.mjs +4 -4
  78. package/esm2022/lib/directives/x-draggable.directive.mjs +3 -3
  79. package/esm2022/lib/interfaces/bimplus-opacity-properties.interface.mjs +1 -1
  80. package/esm2022/lib/interfaces/bimplus-visibility-properties.interface.mjs +1 -1
  81. package/esm2022/lib/ngx-bimplus-components.component.mjs +3 -3
  82. package/esm2022/lib/ngx-bimplus-components.service.mjs +3 -3
  83. package/esm2022/lib/pipes/pxsuffix.pipe.mjs +3 -3
  84. package/esm2022/lib/services/cursors.service.mjs +3 -3
  85. package/esm2022/lib/services/language-strings.service.mjs +3 -3
  86. package/esm2022/lib/services/layout-manager.service.mjs +3 -3
  87. package/esm2022/lib/services/local-storage.service.mjs +4 -4
  88. package/esm2022/lib/services/resize-observer.service.mjs +4 -4
  89. package/esm2022/lib/types/types.mjs +1 -1
  90. package/esm2022/lib/utils/filterString.mjs +1 -1
  91. package/esm2022/lib/utils/filterStructureFetcher.mjs +1 -1
  92. package/esm2022/lib/utils/utils.mjs +1 -1
  93. package/esm2022/public-api.mjs +1 -17
  94. package/fesm2022/ngx-bimplus-components.mjs +248 -2315
  95. package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
  96. package/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.d.ts +3 -9
  97. package/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.d.ts +0 -5
  98. package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +1 -1
  99. package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +7 -7
  100. package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +3 -3
  101. package/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.d.ts +0 -3
  102. package/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.d.ts +1 -1
  103. package/lib/components/object-properties-header/object-properties-header.component.d.ts +3 -5
  104. package/lib/components/object-properties-header/object-properties-header.interface.d.ts +0 -1
  105. package/package.json +5 -12
  106. package/public-api.d.ts +0 -16
  107. package/assets/images/default/Attachment_18_gray.svg +0 -1
  108. package/assets/images/default/Attachment_18_maincolor.svg +0 -3
  109. package/assets/images/default/Attachmentlink_18_gray.svg +0 -7
  110. package/assets/images/default/Attachmentlink_18_maincolor.svg +0 -7
  111. package/assets/images/default/Comments_18_gray.svg +0 -1
  112. package/assets/images/default/Comments_18_maincolor.svg +0 -4
  113. package/assets/images/default/Links_18_gray.svg +0 -1
  114. package/assets/images/default/Links_18_maincolor.svg +0 -4
  115. package/assets/images/default/ic_models.svg +0 -3
  116. package/assets/images/default/ic_models_maincolor.svg +0 -3
  117. package/assets/images/default/icn_grid_attachments.png +0 -0
  118. package/assets/images/default/icn_grid_hyperlinks.png +0 -0
  119. package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.component.mjs +0 -69
  120. package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.interface.mjs +0 -34
  121. package/esm2022/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.mjs +0 -82
  122. package/esm2022/lib/components/bimplus-attachments/services/bimplus-attachments.service.mjs +0 -49
  123. package/esm2022/lib/components/bimplus-comment/bimplus-comment.component.mjs +0 -68
  124. package/esm2022/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.mjs +0 -58
  125. package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +0 -242
  126. package/esm2022/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.mjs +0 -2
  127. package/esm2022/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.mjs +0 -73
  128. package/esm2022/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.mjs +0 -75
  129. package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.mjs +0 -38
  130. package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.mjs +0 -10
  131. package/esm2022/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.mjs +0 -89
  132. package/esm2022/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.mjs +0 -33
  133. package/esm2022/lib/components/bimplus-textarea/autoResizeTextarea.directive.mjs +0 -83
  134. package/esm2022/lib/components/bimplus-textarea/bimplus-textarea.component.mjs +0 -122
  135. package/esm2022/lib/components/links-to-documents/links-to-documents.component.interface.mjs +0 -2
  136. package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +0 -337
  137. package/esm2022/lib/components/object-hyperlinks/object-hyperlinks.component.mjs +0 -141
  138. package/esm2022/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.mjs +0 -36
  139. package/esm2022/lib/components/object-properties/object-properties.component.mjs +0 -261
  140. package/esm2022/lib/components/object-properties/object-properties.interface.mjs +0 -2
  141. package/esm2022/lib/components/object-properties-group/object-properties-group.component.mjs +0 -40
  142. package/esm2022/lib/components/object-properties-group/object-property-value/object-property-value.component.mjs +0 -55
  143. package/esm2022/lib/pipes/bit-converter.pipe.mjs +0 -46
  144. package/esm2022/lib/pipes/get-attribute-value.pipe.mjs +0 -110
  145. package/esm2022/lib/pipes/round.pipe.mjs +0 -20
  146. package/esm2022/lib/utils/objectProperties.mjs +0 -9
  147. package/lib/components/bimplus-attachments/bimplus-attachments.component.d.ts +0 -25
  148. package/lib/components/bimplus-attachments/bimplus-attachments.interface.d.ts +0 -19
  149. package/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.d.ts +0 -26
  150. package/lib/components/bimplus-attachments/services/bimplus-attachments.service.d.ts +0 -12
  151. package/lib/components/bimplus-comment/bimplus-comment.component.d.ts +0 -34
  152. package/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.d.ts +0 -17
  153. package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +0 -51
  154. package/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.d.ts +0 -11
  155. package/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.d.ts +0 -28
  156. package/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.d.ts +0 -23
  157. package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.d.ts +0 -16
  158. package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.d.ts +0 -18
  159. package/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.d.ts +0 -36
  160. package/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.d.ts +0 -15
  161. package/lib/components/bimplus-textarea/autoResizeTextarea.directive.d.ts +0 -24
  162. package/lib/components/bimplus-textarea/bimplus-textarea.component.d.ts +0 -42
  163. package/lib/components/links-to-documents/links-to-documents.component.d.ts +0 -55
  164. package/lib/components/links-to-documents/links-to-documents.component.interface.d.ts +0 -11
  165. package/lib/components/object-hyperlinks/object-hyperlinks.component.d.ts +0 -32
  166. package/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.d.ts +0 -15
  167. package/lib/components/object-properties/object-properties.component.d.ts +0 -45
  168. package/lib/components/object-properties/object-properties.interface.d.ts +0 -21
  169. package/lib/components/object-properties-group/object-properties-group.component.d.ts +0 -11
  170. package/lib/components/object-properties-group/object-property-value/object-property-value.component.d.ts +0 -14
  171. package/lib/pipes/bit-converter.pipe.d.ts +0 -17
  172. package/lib/pipes/get-attribute-value.pipe.d.ts +0 -23
  173. package/lib/pipes/round.pipe.d.ts +0 -7
  174. package/lib/utils/objectProperties.d.ts +0 -2
@@ -1,36 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { BimplusLocalizedWidgetComponent } from "../bimplus-localized-widget/bimplus-localized-widget.component";
3
- import { TranslateModule } from "@ngx-translate/core";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- export class ObjectHyperlinksItemComponent extends BimplusLocalizedWidgetComponent {
7
- constructor(translateService) {
8
- super(translateService);
9
- this.deleteButtonEnabled = true;
10
- this.deleteButtonClicked = new EventEmitter();
11
- }
12
- onDeleteButtonClick() {
13
- this.deleteButtonClicked.emit();
14
- }
15
- onDeleteButtonKeyDown($event) {
16
- if ($event.key === 'Enter' || $event.key === ' ') {
17
- $event.preventDefault();
18
- this.onDeleteButtonClick();
19
- }
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectHyperlinksItemComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ObjectHyperlinksItemComponent, isStandalone: true, selector: "lib-object-hyperlinks-item", inputs: { hyperlink: "hyperlink", deleteButtonEnabled: "deleteButtonEnabled" }, outputs: { deleteButtonClicked: "deleteButtonClicked" }, usesInheritance: true, ngImport: i0, template: "<div class=\"hyperlink-item\">\r\n @if (deleteButtonEnabled) {\r\n <div class=\"bim-list-button delete\" title=\"{{ '_Delete hyperlink' | translate }}\" (click)=\"onDeleteButtonClick()\"\r\n (keydown)=\"onDeleteButtonKeyDown($event)\">\r\n &#10005;&#xFE0E;\r\n </div>\r\n }\r\n\r\n <a href=\"{{ hyperlink?.url }}\" class='bim-hyperlink-url' target=\"_blank\" title=\"{{ hyperlink?.url }}\">\r\n <div class=\"bim-hyperlink-name\">\r\n {{ hyperlink?.name }}\r\n </div>\r\n </a>\r\n</div>\r\n", styles: [".hyperlink-item{border-bottom:solid .1rem var(--hyperlink-list-item-border-color);cursor:pointer;-webkit-user-select:none;user-select:none}.bim-list-button.delete{width:3.2rem;height:3.2rem;color:var(--details-controls-list-delete-button-text-color);float:right;display:flex;justify-content:center;align-items:center}.bim-list-button.delete:hover{color:var(--ui-text-1-color)}.bim-details-list-item{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center}.bim-hyperlink-name{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center;padding-left:3.5rem!important;background-image:url(data:image/png;base64,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);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-hyperlink-url{color:var(--brand-dark-color)!important;text-decoration:none!important;line-height:2em}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectHyperlinksItemComponent, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'lib-object-hyperlinks-item', standalone: true, imports: [
27
- TranslateModule
28
- ], template: "<div class=\"hyperlink-item\">\r\n @if (deleteButtonEnabled) {\r\n <div class=\"bim-list-button delete\" title=\"{{ '_Delete hyperlink' | translate }}\" (click)=\"onDeleteButtonClick()\"\r\n (keydown)=\"onDeleteButtonKeyDown($event)\">\r\n &#10005;&#xFE0E;\r\n </div>\r\n }\r\n\r\n <a href=\"{{ hyperlink?.url }}\" class='bim-hyperlink-url' target=\"_blank\" title=\"{{ hyperlink?.url }}\">\r\n <div class=\"bim-hyperlink-name\">\r\n {{ hyperlink?.name }}\r\n </div>\r\n </a>\r\n</div>\r\n", styles: [".hyperlink-item{border-bottom:solid .1rem var(--hyperlink-list-item-border-color);cursor:pointer;-webkit-user-select:none;user-select:none}.bim-list-button.delete{width:3.2rem;height:3.2rem;color:var(--details-controls-list-delete-button-text-color);float:right;display:flex;justify-content:center;align-items:center}.bim-list-button.delete:hover{color:var(--ui-text-1-color)}.bim-details-list-item{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center}.bim-hyperlink-name{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center;padding-left:3.5rem!important;background-image:url(data:image/png;base64,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);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-hyperlink-url{color:var(--brand-dark-color)!important;text-decoration:none!important;line-height:2em}\n"] }]
29
- }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { hyperlink: [{
30
- type: Input
31
- }], deleteButtonEnabled: [{
32
- type: Input
33
- }], deleteButtonClicked: [{
34
- type: Output
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWh5cGVybGlua3MtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtaHlwZXJsaW5rcy1pdGVtL29iamVjdC1oeXBlcmxpbmtzLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWh5cGVybGlua3MtaXRlbS9vYmplY3QtaHlwZXJsaW5rcy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBV3RFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwrQkFBK0I7SUFDaEYsWUFBWSxnQkFBa0M7UUFDNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFJaEIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBRW5DLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFMekQsQ0FBQztJQU9ELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQXFCO1FBQ3pDLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqRCxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7K0dBcEJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLHNQQ2QxQyw2Z0JBY0EsNjhKRExJLGVBQWU7OzRGQUtOLDZCQUE2QjtrQkFUekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7cUJBQ2hCO3FGQVNRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViU2RrIGZyb20gXCJiaW1wbHVzLXdlYnNka1wiO1xyXG5pbXBvcnQge0JpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnR9IGZyb20gXCIuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW9iamVjdC1oeXBlcmxpbmtzLWl0ZW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWh5cGVybGlua3MtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1oeXBlcmxpbmtzLWl0ZW0uY29tcG9uZW50Lmxlc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RIeXBlcmxpbmtzSXRlbUNvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBoeXBlcmxpbms6IFdlYlNkay5IeXBlcmxpbmsgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGVsZXRlQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBkZWxldGVCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbkRlbGV0ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxldGVCdXR0b25DbGlja2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlQnV0dG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInIHx8ICRldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgIHRoaXMub25EZWxldGVCdXR0b25DbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaHlwZXJsaW5rLWl0ZW1cIj5cclxuICBAaWYgKGRlbGV0ZUJ1dHRvbkVuYWJsZWQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJiaW0tbGlzdC1idXR0b24gZGVsZXRlXCIgdGl0bGU9XCJ7eyAnX0RlbGV0ZSBoeXBlcmxpbmsnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cIm9uRGVsZXRlQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgICAgIChrZXlkb3duKT1cIm9uRGVsZXRlQnV0dG9uS2V5RG93bigkZXZlbnQpXCI+XHJcbiAgICAgICYjMTAwMDU7JiN4RkUwRTtcclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgPGEgaHJlZj1cInt7IGh5cGVybGluaz8udXJsIH19XCIgY2xhc3M9J2JpbS1oeXBlcmxpbmstdXJsJyB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cInt7IGh5cGVybGluaz8udXJsIH19XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYmltLWh5cGVybGluay1uYW1lXCI+XHJcbiAgICAgIHt7IGh5cGVybGluaz8ubmFtZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9hPlxyXG48L2Rpdj5cclxuIl19
@@ -1,261 +0,0 @@
1
- import { Component, ViewEncapsulation, Input } from '@angular/core';
2
- import { ExpansionPanelComponent } from '../expansion-panel/expansion-panel.component';
3
- import { ExpansionPanelHeaderComponent } from '../expansion-panel-header/expansion-panel-header.component';
4
- import { BimplusLocalizedWidgetComponent } from '../bimplus-localized-widget/bimplus-localized-widget.component';
5
- import { TranslateModule } from '@ngx-translate/core';
6
- import { ObjectStructureNodeBuilder } from '../bimplus-object-structure/bimplus-object-structure.interface';
7
- import { from, BehaviorSubject } from 'rxjs';
8
- import { BimplusObjectStructureComponent } from '../bimplus-object-structure/bimplus-object-structure.component';
9
- import { ComplexPropertiesNodeBuilder } from '../bimplus-object-complex-properties/bimplus-object-complex-properties.interface';
10
- import { BimplusObjectComplexPropertiesComponent } from '../bimplus-object-complex-properties/bimplus-object-complex-properties.component';
11
- import { BimplusButtonsRowComponent } from "../bimplus-buttons-row/bimplus-buttons-row.component";
12
- import { BimplusScrollableContainerComponent } from '../bimplus-scrollable-container/bimplus-scrollable-container.component';
13
- import { ObjectPropertiesGroupComponent } from '../object-properties-group/object-properties-group.component';
14
- import { isObjectPropertyValueBlank } from '../../utils/objectProperties';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@ngx-translate/core";
17
- export class ObjectPropertiesComponent extends BimplusLocalizedWidgetComponent {
18
- constructor(translateService) {
19
- super(translateService);
20
- this._editMode = false;
21
- this._objectStructure = null;
22
- this._complexProperties = null;
23
- this.api = null;
24
- this.revision = undefined;
25
- this._currentObjectId$ = new BehaviorSubject("");
26
- this._currentPropertiesObjectId$ = new BehaviorSubject("");
27
- this._rootObjectId = "";
28
- this.buttonRowItems = [];
29
- this.configEditProperties = [];
30
- this.configEditedProperties = [];
31
- this.objectAttributeGroups = [];
32
- }
33
- get objectStructure() {
34
- return this._objectStructure;
35
- }
36
- get complexProperties() {
37
- return this._complexProperties;
38
- }
39
- set rootObjectId(id) {
40
- this._currentObjectId$.next(id);
41
- this._createObjectStructure(id, this.revision);
42
- this._rootObjectId = id;
43
- }
44
- get rootObjectId() {
45
- return this._rootObjectId;
46
- }
47
- _editPropertiesButtonsConfiguration() {
48
- this.configEditProperties.push({
49
- id: "edit-properties",
50
- title: this.translateService.instant('_Edit_properties'),
51
- tooltip: this.translateService.instant('_Edit_properties'),
52
- disabled: false,
53
- buttonStyle: 'primary'
54
- });
55
- }
56
- _editedPropertiesButtonsConfiguration() {
57
- this.configEditedProperties.push({
58
- id: "save-changed-properties",
59
- title: this.translateService.instant('_Save'),
60
- tooltip: this.translateService.instant('_Save'),
61
- disabled: true,
62
- buttonStyle: 'primary'
63
- });
64
- this.configEditedProperties.push({
65
- id: "cancel-editing-properties",
66
- title: this.translateService.instant('_Cancel'),
67
- tooltip: this.translateService.instant('_Cancel'),
68
- disabled: false,
69
- buttonStyle: 'secondary'
70
- });
71
- }
72
- ngOnInit() {
73
- this._editPropertiesButtonsConfiguration();
74
- this._editedPropertiesButtonsConfiguration();
75
- this.buttonRowItems = this.configEditProperties;
76
- this._currentPropertiesObjectId$.subscribe({
77
- next: (id) => {
78
- if (id) {
79
- this._createObjectProperties(id, this.revision);
80
- }
81
- }
82
- });
83
- this._currentObjectId$.subscribe({
84
- next: (id) => {
85
- this._currentPropertiesObjectId$.next(id);
86
- this._createComplexPropertiestructure(id, this.revision);
87
- }
88
- });
89
- }
90
- handleObjectStructureNodeSelected(node) {
91
- console.log(node);
92
- this._currentObjectId$.next(node.id);
93
- }
94
- handleComplexPropertyNodeSelected(node) {
95
- console.log(node);
96
- this._currentPropertiesObjectId$.next(node.id);
97
- }
98
- _loadObjectStructure(objectId, revision) {
99
- if (!this.api) {
100
- return;
101
- }
102
- if (!objectId) {
103
- return;
104
- }
105
- return from(this.api.objects.getTopology(objectId, revision, false, false, undefined));
106
- }
107
- _createObjectStructure(objectId, revision) {
108
- this._loadObjectStructure(objectId, revision)?.subscribe({
109
- next: (structureData) => {
110
- if (structureData) {
111
- this._objectStructure = ObjectStructureNodeBuilder.createFromResponse(structureData);
112
- }
113
- }
114
- });
115
- }
116
- _loadObjectComplexPropertiesStructure(objectId, revision) {
117
- if (!this.api) {
118
- return;
119
- }
120
- if (!objectId) {
121
- return;
122
- }
123
- return from(this.api.objects.getComplexPropertiesTopology(objectId, revision));
124
- }
125
- _createComplexPropertiestructure(objectId, revision) {
126
- this._loadObjectComplexPropertiesStructure(objectId, revision)?.subscribe({
127
- next: (structureData) => {
128
- if (structureData) {
129
- const complexProps = ComplexPropertiesNodeBuilder.createFromResponse(structureData);
130
- if (complexProps?.children?.length) {
131
- this._complexProperties = complexProps;
132
- }
133
- else {
134
- this._complexProperties = null;
135
- }
136
- }
137
- }
138
- });
139
- }
140
- _loadObjectProperties(objectId, revision) {
141
- if (!this.api) {
142
- return;
143
- }
144
- if (!objectId) {
145
- return;
146
- }
147
- return from(this.api.objects.get(objectId, revision, "8", undefined, false, undefined));
148
- }
149
- _createObjectProperties(objectId, revision) {
150
- this._loadObjectProperties(objectId, revision)?.subscribe({
151
- // properties response is badly structured, nearly impossible to create class structure from it. Therefore using shortcut
152
- // any for json response
153
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
154
- next: (propertiesData) => {
155
- this.objectAttributeGroups = this._createAttributeGroupsFromResponse(propertiesData);
156
- // this._syncAttributeStatesFromCriteria();
157
- },
158
- error: () => {
159
- this.objectAttributeGroups = [];
160
- }
161
- });
162
- }
163
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- _tooltip(attrib) {
165
- const nameTitle = this.translateService.instant('_Name');
166
- const name = attrib.name ? attrib.name : '';
167
- const descriptionTitle = this.translateService.instant("description");
168
- const description = attrib.description;
169
- const uuidTitle = this.translateService.instant("_UUID");
170
- const uuid = attrib.id;
171
- if (description === null || description === undefined || description === '') {
172
- return `${nameTitle}: ${name}\n${uuidTitle}: ${uuid}`;
173
- }
174
- return `${nameTitle}: ${name}\n${descriptionTitle}: ${description}\n${uuidTitle}: ${uuid}`;
175
- }
176
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
- _createAttributeGroupsFromResponse(propertiesData) {
178
- const groups = [];
179
- let localizedAttribGroups = null;
180
- if (propertiesData.localizedAttributeGroups) {
181
- localizedAttribGroups = propertiesData.localizedAttributeGroups;
182
- }
183
- if (!propertiesData.attributes) {
184
- return groups;
185
- }
186
- const attribGroups = propertiesData.attributes;
187
- for (const [groupName, attribsObject] of Object.entries(attribGroups)) {
188
- const newGroup = {
189
- name: groupName,
190
- expanded: false,
191
- attributes: []
192
- };
193
- if (localizedAttribGroups?.[groupName]) {
194
- newGroup.name = localizedAttribGroups[groupName];
195
- }
196
- if (!attribsObject) {
197
- continue;
198
- }
199
- for (const attrib of Object.values(attribsObject)) {
200
- const newAttrib = {
201
- id: attrib.id,
202
- name: attrib.name,
203
- description: attrib.description,
204
- value: attrib.value,
205
- group: attrib.group,
206
- type: attrib.type,
207
- unit: attrib.unit,
208
- decimal: attrib.decimal,
209
- control: attrib.control,
210
- enumdefinition: attrib.enumdefinition,
211
- isChangeable: attrib.isChangeable,
212
- tooltip: this._tooltip(attrib)
213
- };
214
- newGroup.attributes.push(newAttrib);
215
- }
216
- groups.push(newGroup);
217
- }
218
- return groups;
219
- }
220
- buttonClicked($event) {
221
- if ($event.id === "edit-properties") {
222
- console.log("Edit properties clicked");
223
- this.buttonRowItems = this.configEditedProperties;
224
- }
225
- if ($event.id === "save-changed-properties") {
226
- this.buttonRowItems = this.configEditProperties;
227
- console.log("Save changed properties clicked");
228
- }
229
- if ($event.id === "cancel-editing-properties") {
230
- this.buttonRowItems = this.configEditProperties;
231
- console.log("Cancel edit properties clicked");
232
- }
233
- }
234
- hasSetAnyAttribute(objectAttributeGroup) {
235
- return objectAttributeGroup.attributes.some((attrib) => {
236
- return !isObjectPropertyValueBlank(attrib);
237
- });
238
- }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertiesComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
240
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ObjectPropertiesComponent, isStandalone: true, selector: "lib-object-properties", inputs: { api: "api", revision: "revision", rootObjectId: "rootObjectId" }, usesInheritance: true, ngImport: i0, template: "<lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n/>\r\n\r\n<div class=\"object-properties\">\r\n <lib-bimplus-scrollable-container>\r\n <!-- Object structure-->\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-structure-header\">{{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if (objectStructure) {\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n />\r\n }\r\n </lib-expansion-panel>\r\n <!-- End Object structure-->\r\n\r\n <!-- Complex properties-->\r\n @if(complexProperties){\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n />\r\n </lib-expansion-panel>\r\n }\r\n <!-- End Complex properties-->\r\n\r\n @if(objectAttributeGroups.length > 0){\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-header\">{{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n @if(hasSetAnyAttribute(attribGroup)){\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-object-properties-group\r\n [attributesGroup]=\"attribGroup\"\r\n [editMode]=\"_editMode\"\r\n />\r\n </lib-expansion-panel>\r\n }\r\n }\r\n </lib-expansion-panel>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n</div>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}lib-bimplus-buttons-row{flex:0;--button-row-margin-right: .8rem}.object-properties{margin-left:.8rem;position:relative;flex:1}.object-properties .object-structure-header,.object-properties .object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.object-properties .object-properties-group-header{line-height:2.4rem}.object-properties lib-bimplus-object-structure{--bimplus-object-structure-background-color: var(--object-properties-background-color, var(--flat-tree-container-background-color-enabled))}.object-properties lib-bimplus-object-complex-properties{--bimplus-object-complex-properties-background-color: var(--object-properties-background-color, var(--flat-tree-container-background-color-enabled))}.object-properties lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}\n"], dependencies: [{ kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items"], outputs: ["fileChanged", "buttonClicked"] }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: ObjectPropertiesGroupComponent, selector: "lib-object-properties-group", inputs: ["editMode", "attributesGroup"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
241
- }
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertiesComponent, decorators: [{
243
- type: Component,
244
- args: [{ selector: 'lib-object-properties', standalone: true, imports: [
245
- ExpansionPanelComponent,
246
- ExpansionPanelHeaderComponent,
247
- TranslateModule,
248
- BimplusObjectStructureComponent,
249
- BimplusObjectComplexPropertiesComponent,
250
- BimplusButtonsRowComponent,
251
- BimplusScrollableContainerComponent,
252
- ObjectPropertiesGroupComponent
253
- ], encapsulation: ViewEncapsulation.ShadowDom, template: "<lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n/>\r\n\r\n<div class=\"object-properties\">\r\n <lib-bimplus-scrollable-container>\r\n <!-- Object structure-->\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-structure-header\">{{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if (objectStructure) {\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n />\r\n }\r\n </lib-expansion-panel>\r\n <!-- End Object structure-->\r\n\r\n <!-- Complex properties-->\r\n @if(complexProperties){\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n />\r\n </lib-expansion-panel>\r\n }\r\n <!-- End Complex properties-->\r\n\r\n @if(objectAttributeGroups.length > 0){\r\n <lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-header\">{{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n @if(hasSetAnyAttribute(attribGroup)){\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-object-properties-group\r\n [attributesGroup]=\"attribGroup\"\r\n [editMode]=\"_editMode\"\r\n />\r\n </lib-expansion-panel>\r\n }\r\n }\r\n </lib-expansion-panel>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n</div>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}lib-bimplus-buttons-row{flex:0;--button-row-margin-right: .8rem}.object-properties{margin-left:.8rem;position:relative;flex:1}.object-properties .object-structure-header,.object-properties .object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.object-properties .object-properties-group-header{line-height:2.4rem}.object-properties lib-bimplus-object-structure{--bimplus-object-structure-background-color: var(--object-properties-background-color, var(--flat-tree-container-background-color-enabled))}.object-properties lib-bimplus-object-complex-properties{--bimplus-object-complex-properties-background-color: var(--object-properties-background-color, var(--flat-tree-container-background-color-enabled))}.object-properties lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}\n"] }]
254
- }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { api: [{
255
- type: Input
256
- }], revision: [{
257
- type: Input
258
- }], rootObjectId: [{
259
- type: Input
260
- }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMvb2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMvb2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDUCxpQkFBaUIsRUFDakIsS0FBSyxFQUVSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUVILDBCQUEwQixFQUM3QixNQUFNLGdFQUFnRSxDQUFDO0FBRXhFLE9BQU8sRUFDTCxJQUFJLEVBQ0YsZUFBZSxFQUNsQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2pILE9BQU8sRUFFSCw0QkFBNEIsRUFDL0IsTUFBTSxrRkFBa0YsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUszSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVsRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3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d0JBQ3JCLDZCQUE2Qjt3QkFDN0IsZUFBZTt3QkFDZiwrQkFBK0I7d0JBQy9CLHVDQUF1Qzt3QkFDdkMsMEJBQTBCO3dCQUMxQixtQ0FBbUM7d0JBQ25DLDhCQUE4QjtxQkFDakMsaUJBR2MsaUJBQWlCLENBQUMsU0FBUztxRkFxQmpDLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50XHJcbiAgLCBWaWV3RW5jYXBzdWxhdGlvblxyXG4gICwgSW5wdXRcclxuICAsIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0U3RydWN0dXJlTm9kZVxyXG4gICwgT2JqZWN0U3RydWN0dXJlTm9kZUJ1aWxkZXJcclxufSBmcm9tICcuLi9iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmUvYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlLmludGVyZmFjZSc7XHJcbmltcG9ydCAqIGFzIFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XHJcbmltcG9ydCB7XHJcbiAgZnJvbVxyXG4gICwgQmVoYXZpb3JTdWJqZWN0XHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNPYmplY3RTdHJ1Y3R1cmVDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmUvYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcGxleFByb3BlcnRpZXNOb2RlXHJcbiAgLCBDb21wbGV4UHJvcGVydGllc05vZGVCdWlsZGVyXHJcbn0gZnJvbSAnLi4vYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzL2JpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0Q29tcGxleFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0QXR0cmlidXRlXHJcbiAgLCBPYmplY3RBdHRyaWJ1dGVHcm91cFxyXG59IGZyb20gJy4vb2JqZWN0LXByb3BlcnRpZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmltcGx1c0J1dHRvbnNSb3dDb21wb25lbnQgfSBmcm9tIFwiLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCaW1wbHVzQnV0dG9uUm93SXRlbSwgQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQgfSBmcm9tIFwiLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIvYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci5jb21wb25lbnQnXHJcbmltcG9ydCB7IE9iamVjdFByb3BlcnRpZXNHcm91cENvbXBvbmVudCB9IGZyb20gJy4uL29iamVjdC1wcm9wZXJ0aWVzLWdyb3VwL29iamVjdC1wcm9wZXJ0aWVzLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzT2JqZWN0UHJvcGVydHlWYWx1ZUJsYW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvb2JqZWN0UHJvcGVydGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1vYmplY3QtcHJvcGVydGllcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBFeHBhbnNpb25QYW5lbENvbXBvbmVudFxyXG4gICAgLCBFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudFxyXG4gICAgLCBUcmFuc2xhdGVNb2R1bGVcclxuICAgICwgQmltcGx1c09iamVjdFN0cnVjdHVyZUNvbXBvbmVudFxyXG4gICAgLCBCaW1wbHVzT2JqZWN0Q29tcGxleFByb3BlcnRpZXNDb21wb25lbnRcclxuICAgICwgQmltcGx1c0J1dHRvbnNSb3dDb21wb25lbnRcclxuICAgICwgQmltcGx1c1Njcm9sbGFibGVDb250YWluZXJDb21wb25lbnRcclxuICAgICwgT2JqZWN0UHJvcGVydGllc0dyb3VwQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RQcm9wZXJ0aWVzQ29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogIFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2VkaXRNb2RlID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX29iamVjdFN0cnVjdHVyZSA6IE9iamVjdFN0cnVjdHVyZU5vZGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZ2V0IG9iamVjdFN0cnVjdHVyZSgpOiBPYmplY3RTdHJ1Y3R1cmVOb2RlIHwgbnVsbHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RTdHJ1Y3R1cmVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbXBsZXhQcm9wZXJ0aWVzIDogQ29tcGxleFByb3BlcnRpZXNOb2RlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGdldCBjb21wbGV4UHJvcGVydGllcygpIDogQ29tcGxleFByb3BlcnRpZXNOb2RlIHwgbnVsbHtcclxuICAgcmV0dXJuIHRoaXMuX2NvbXBsZXhQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYXBpIDogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KGlkKTtcclxuICAgIHRoaXMuX2NyZWF0ZU9iamVjdFN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcblxyXG4gICAgdGhpcy5fcm9vdE9iamVjdElkID0gaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgcm9vdE9iamVjdElkKCkgOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5fcm9vdE9iamVjdElkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudE9iamVjdElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiAoXCJcIik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gKFwiXCIpO1xyXG4gIHByaXZhdGUgX3Jvb3RPYmplY3RJZCA6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGJ1dHRvblJvd0l0ZW1zOiBBcnJheTxCaW1wbHVzQnV0dG9uUm93SXRlbT4gPSBbXTtcclxuICBjb25maWdFZGl0UHJvcGVydGllczogQXJyYXk8QmltcGx1c0J1dHRvblJvd0l0ZW0+ID0gW107XHJcbiAgY29uZmlnRWRpdGVkUHJvcGVydGllczogQXJyYXk8QmltcGx1c0J1dHRvblJvd0l0ZW0+ID0gW107XHJcblxyXG4gIF9lZGl0UHJvcGVydGllc0J1dHRvbnNDb25maWd1cmF0aW9uKCkge1xyXG4gICAgdGhpcy5jb25maWdFZGl0UHJvcGVydGllcy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IFwiZWRpdC1wcm9wZXJ0aWVzXCJcclxuICAgICAgICAsIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0VkaXRfcHJvcGVydGllcycpXHJcbiAgICAgICAgLCB0b29sdGlwOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0VkaXRfcHJvcGVydGllcycpXHJcbiAgICAgICAgLCBkaXNhYmxlZDogZmFsc2VcclxuICAgICAgICAsIGJ1dHRvblN0eWxlOiAncHJpbWFyeSdcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIF9lZGl0ZWRQcm9wZXJ0aWVzQnV0dG9uc0NvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmNvbmZpZ0VkaXRlZFByb3BlcnRpZXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGlkOiBcInNhdmUtY2hhbmdlZC1wcm9wZXJ0aWVzXCJcclxuICAgICAgICAsIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX1NhdmUnKVxyXG4gICAgICAgICwgdG9vbHRpcDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19TYXZlJylcclxuICAgICAgICAsIGRpc2FibGVkOiB0cnVlXHJcbiAgICAgICAgLCBidXR0b25TdHlsZTogJ3ByaW1hcnknXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmNvbmZpZ0VkaXRlZFByb3BlcnRpZXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGlkOiBcImNhbmNlbC1lZGl0aW5nLXByb3BlcnRpZXNcIlxyXG4gICAgICAgICwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ2FuY2VsJylcclxuICAgICAgICAsIHRvb2x0aXA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ2FuY2VsJylcclxuICAgICAgICAsIGRpc2FibGVkOiBmYWxzZVxyXG4gICAgICAgICwgYnV0dG9uU3R5bGU6ICdzZWNvbmRhcnknXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX2VkaXRQcm9wZXJ0aWVzQnV0dG9uc0NvbmZpZ3VyYXRpb24oKTtcclxuICAgIHRoaXMuX2VkaXRlZFByb3BlcnRpZXNCdXR0b25zQ29uZmlndXJhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuYnV0dG9uUm93SXRlbXMgPSB0aGlzLmNvbmZpZ0VkaXRQcm9wZXJ0aWVzO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChpZCkgPT4ge1xyXG4gICAgICAgIGlmKGlkKXtcclxuICAgICAgICAgIHRoaXMuX2NyZWF0ZU9iamVjdFByb3BlcnRpZXMoaWQsIHRoaXMucmV2aXNpb24pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9jdXJyZW50T2JqZWN0SWQkLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChpZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLm5leHQoaWQpO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNvbXBsZXhQcm9wZXJ0aWVzdHJ1Y3R1cmUoaWQsIHRoaXMucmV2aXNpb24pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9iamVjdFN0cnVjdHVyZU5vZGVTZWxlY3RlZChub2RlIDogT2JqZWN0U3RydWN0dXJlTm9kZSl7XHJcbiAgICBjb25zb2xlLmxvZyhub2RlKTtcclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZChub2RlIDogQ29tcGxleFByb3BlcnRpZXNOb2RlKXtcclxuICAgIGNvbnNvbGUubG9nKG5vZGUpO1xyXG4gICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRPYmplY3RTdHJ1Y3R1cmUob2JqZWN0SWQgOiBzdHJpbmcsIHJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICAgIGlmKCF0aGlzLmFwaSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighb2JqZWN0SWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0VG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlT2JqZWN0U3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICB0aGlzLl9sb2FkT2JqZWN0U3RydWN0dXJlKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQgOihzdHJ1Y3R1cmVEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYoc3RydWN0dXJlRGF0YSl7XHJcbiAgICAgICAgICB0aGlzLl9vYmplY3RTdHJ1Y3R1cmUgPSBPYmplY3RTdHJ1Y3R1cmVOb2RlQnVpbGRlci5jcmVhdGVGcm9tUmVzcG9uc2Uoc3RydWN0dXJlRGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIW9iamVjdElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaS5vYmplY3RzLmdldENvbXBsZXhQcm9wZXJ0aWVzVG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVDb21wbGV4UHJvcGVydGllc3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICB0aGlzLl9sb2FkT2JqZWN0Q29tcGxleFByb3BlcnRpZXNTdHJ1Y3R1cmUob2JqZWN0SWQsIHJldmlzaW9uKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dCA6KHN0cnVjdHVyZURhdGEpID0+IHtcclxuICAgICAgICBpZihzdHJ1Y3R1cmVEYXRhKXtcclxuICAgICAgICAgIGNvbnN0IGNvbXBsZXhQcm9wcyA9IENvbXBsZXhQcm9wZXJ0aWVzTm9kZUJ1aWxkZXIuY3JlYXRlRnJvbVJlc3BvbnNlKHN0cnVjdHVyZURhdGEpO1xyXG4gICAgICAgICAgaWYoY29tcGxleFByb3BzPy5jaGlsZHJlbj8ubGVuZ3RoKXtcclxuICAgICAgICAgICAgdGhpcy5fY29tcGxleFByb3BlcnRpZXMgPSBjb21wbGV4UHJvcHM7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fY29tcGxleFByb3BlcnRpZXMgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9iamVjdEF0dHJpYnV0ZUdyb3VwcyA6IE9iamVjdEF0dHJpYnV0ZUdyb3VwW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdFByb3BlcnRpZXMob2JqZWN0SWQgOiBzdHJpbmcsIHJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICAgIGlmKCF0aGlzLmFwaSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighb2JqZWN0SWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0KG9iamVjdElkLCByZXZpc2lvbiwgXCI4XCIsIHVuZGVmaW5lZCwgZmFsc2UsIHVuZGVmaW5lZCApKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU9iamVjdFByb3BlcnRpZXMob2JqZWN0SWQgOiBzdHJpbmcsIHJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICAgIHRoaXMuX2xvYWRPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcblxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgcmVzcG9uc2UgaXMgYmFkbHkgc3RydWN0dXJlZCwgbmVhcmx5IGltcG9zc2libGUgdG8gY3JlYXRlIGNsYXNzIHN0cnVjdHVyZSBmcm9tIGl0LiBUaGVyZWZvcmUgdXNpbmcgc2hvcnRjdXRcclxuICAgICAgICAvLyBhbnkgZm9yIGpzb24gcmVzcG9uc2VcclxuXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHByb3BlcnRpZXNEYXRhIDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IHRoaXMuX2NyZWF0ZUF0dHJpYnV0ZUdyb3Vwc0Zyb21SZXNwb25zZShwcm9wZXJ0aWVzRGF0YSk7XHJcbiAgICAgICAgICAvLyB0aGlzLl9zeW5jQXR0cmlidXRlU3RhdGVzRnJvbUNyaXRlcmlhKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT57XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfdG9vbHRpcChhdHRyaWI6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBuYW1lVGl0bGU6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfTmFtZScpO1xyXG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gYXR0cmliLm5hbWUgPyBhdHRyaWIubmFtZSA6ICcnO1xyXG4gICAgY29uc3QgZGVzY3JpcHRpb25UaXRsZTogc3RyaW5nID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJkZXNjcmlwdGlvblwiKTtcclxuICAgIGNvbnN0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBhdHRyaWIuZGVzY3JpcHRpb247XHJcbiAgICBjb25zdCB1dWlkVGl0bGU6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiX1VVSURcIik7XHJcbiAgICBjb25zdCB1dWlkOiBzdHJpbmcgPSBhdHRyaWIuaWQ7XHJcbiAgICBpZihkZXNjcmlwdGlvbiA9PT0gbnVsbCB8fCBkZXNjcmlwdGlvbiA9PT0gdW5kZWZpbmVkIHx8IGRlc2NyaXB0aW9uID09PSAnJykge1xyXG4gICAgICAgcmV0dXJuIGAke25hbWVUaXRsZX06ICR7bmFtZX1cXG4ke3V1aWRUaXRsZX06ICR7dXVpZH1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke25hbWVUaXRsZX06ICR7bmFtZX1cXG4ke2Rlc2NyaXB0aW9uVGl0bGV9OiAke2Rlc2NyaXB0aW9ufVxcbiR7dXVpZFRpdGxlfTogJHt1dWlkfWA7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9jcmVhdGVBdHRyaWJ1dGVHcm91cHNGcm9tUmVzcG9uc2UocHJvcGVydGllc0RhdGEgOiBhbnkpe1xyXG5cclxuICAgIGNvbnN0IGdyb3VwcyA6IEFycmF5PE9iamVjdEF0dHJpYnV0ZUdyb3VwPiA9IFtdO1xyXG4gICAgbGV0IGxvY2FsaXplZEF0dHJpYkdyb3VwcyA9IG51bGw7XHJcbiAgICBpZihwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHMpe1xyXG4gICAgICBsb2NhbGl6ZWRBdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHM7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzKXtcclxuICAgICAgcmV0dXJuIGdyb3VwcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yKGNvbnN0IFtncm91cE5hbWUsIGF0dHJpYnNPYmplY3RdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYkdyb3Vwcykpe1xyXG5cclxuICAgICAgY29uc3QgbmV3R3JvdXAgOiBPYmplY3RBdHRyaWJ1dGVHcm91cCA9IHtcclxuICAgICAgICBuYW1lIDogZ3JvdXBOYW1lLFxyXG4gICAgICAgIGV4cGFuZGVkIDogZmFsc2UsXHJcbiAgICAgICAgYXR0cmlidXRlcyA6IFtdXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZihsb2NhbGl6ZWRBdHRyaWJHcm91cHM/Lltncm91cE5hbWVdKXtcclxuICAgICAgICBuZXdHcm91cC5uYW1lID0gbG9jYWxpemVkQXR0cmliR3JvdXBzW2dyb3VwTmFtZV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCFhdHRyaWJzT2JqZWN0KXtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yKGNvbnN0IGF0dHJpYiBvZiBPYmplY3QudmFsdWVzKGF0dHJpYnNPYmplY3QpKXtcclxuXHJcbiAgICAgICAgY29uc3QgbmV3QXR0cmliOiBPYmplY3RBdHRyaWJ1dGUgPSB7XHJcbiAgICAgICAgICBpZDogYXR0cmliLmlkXHJcbiAgICAgICAgICAsIG5hbWU6IGF0dHJpYi5uYW1lXHJcbiAgICAgICAgICAsIGRlc2NyaXB0aW9uOiBhdHRyaWIuZGVzY3JpcHRpb25cclxuICAgICAgICAgICwgdmFsdWU6IGF0dHJpYi52YWx1ZVxyXG4gICAgICAgICAgLCBncm91cDogYXR0cmliLmdyb3VwXHJcbiAgICAgICAgICAsIHR5cGU6IGF0dHJpYi50eXBlXHJcbiAgICAgICAgICAsIHVuaXQ6IGF0dHJpYi51bml0XHJcbiAgICAgICAgICAsIGRlY2ltYWw6IGF0dHJpYi5kZWNpbWFsXHJcbiAgICAgICAgICAsIGNvbnRyb2w6IGF0dHJpYi5jb250cm9sXHJcbiAgICAgICAgICAsIGVudW1kZWZpbml0aW9uOiBhdHRyaWIuZW51bWRlZmluaXRpb25cclxuICAgICAgICAgICwgaXNDaGFuZ2VhYmxlOiBhdHRyaWIuaXNDaGFuZ2VhYmxlXHJcbiAgICAgICAgICAsIHRvb2x0aXA6IHRoaXMuX3Rvb2x0aXAoYXR0cmliKVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIG5ld0dyb3VwLmF0dHJpYnV0ZXMucHVzaChuZXdBdHRyaWIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBncm91cHMucHVzaChuZXdHcm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwcztcclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoJGV2ZW50OiBCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCkge1xyXG4gICAgaWYgKCRldmVudC5pZCA9PT0gXCJlZGl0LXByb3BlcnRpZXNcIikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkVkaXQgcHJvcGVydGllcyBjbGlja2VkXCIpO1xyXG4gICAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zID0gdGhpcy5jb25maWdFZGl0ZWRQcm9wZXJ0aWVzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgkZXZlbnQuaWQgPT09IFwic2F2ZS1jaGFuZ2VkLXByb3BlcnRpZXNcIikge1xyXG4gICAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zID0gdGhpcy5jb25maWdFZGl0UHJvcGVydGllcztcclxuICAgICAgY29uc29sZS5sb2coXCJTYXZlIGNoYW5nZWQgcHJvcGVydGllcyBjbGlja2VkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgkZXZlbnQuaWQgPT09IFwiY2FuY2VsLWVkaXRpbmctcHJvcGVydGllc1wiKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uUm93SXRlbXMgPSB0aGlzLmNvbmZpZ0VkaXRQcm9wZXJ0aWVzO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkNhbmNlbCBlZGl0IHByb3BlcnRpZXMgY2xpY2tlZFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhc1NldEFueUF0dHJpYnV0ZShvYmplY3RBdHRyaWJ1dGVHcm91cDogT2JqZWN0QXR0cmlidXRlR3JvdXApIHtcclxuICAgIHJldHVybiBvYmplY3RBdHRyaWJ1dGVHcm91cC5hdHRyaWJ1dGVzLnNvbWUoKGF0dHJpYikgPT4ge1xyXG4gICAgICByZXR1cm4gIWlzT2JqZWN0UHJvcGVydHlWYWx1ZUJsYW5rKGF0dHJpYik7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLWJ1dHRvbnMtcm93XHJcbiAgW2l0ZW1zXT1cImJ1dHRvblJvd0l0ZW1zXCJcclxuICAoYnV0dG9uQ2xpY2tlZCk9XCJidXR0b25DbGlja2VkKCRldmVudClcIlxyXG4vPlxyXG5cclxuPGRpdiBjbGFzcz1cIm9iamVjdC1wcm9wZXJ0aWVzXCI+XHJcbiAgPGxpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgPCEtLSBPYmplY3Qgc3RydWN0dXJlLS0+XHJcbiAgICA8bGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwib2JqZWN0LXN0cnVjdHVyZS1oZWFkZXJcIj57e1wiX09iamVjdCBzdHJ1Y3R1cmVcIiB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICBAaWYgKG9iamVjdFN0cnVjdHVyZSkge1xyXG4gICAgICAgIDxsaWItYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlXHJcbiAgICAgICAgICBbb2JqZWN0U3RydWN0dXJlXT1cIm9iamVjdFN0cnVjdHVyZVwiXHJcbiAgICAgICAgICAobm9kZVNlbGVjdGVkKT1cImhhbmRsZU9iamVjdFN0cnVjdHVyZU5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICA8L2xpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8IS0tIEVuZCBPYmplY3Qgc3RydWN0dXJlLS0+XHJcblxyXG4gICAgPCEtLSBDb21wbGV4IHByb3BlcnRpZXMtLT5cclxuICAgIEBpZihjb21wbGV4UHJvcGVydGllcyl7XHJcbiAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwib2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyXCI+IHt7XCJfT2JqZWN0IG11bHRpcHJvcGVydGllcyB0cmVlXCIgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxsaWItYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzXHJcbiAgICAgICAgICBbY29tcGxleFByb3BlcnRpZXNdPVwiY29tcGxleFByb3BlcnRpZXNcIlxyXG4gICAgICAgICAgKG5vZGVTZWxlY3RlZCk9XCJoYW5kbGVDb21wbGV4UHJvcGVydHlOb2RlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgfVxyXG4gICAgPCEtLSBFbmQgQ29tcGxleCBwcm9wZXJ0aWVzLS0+XHJcblxyXG4gICAgQGlmKG9iamVjdEF0dHJpYnV0ZUdyb3Vwcy5sZW5ndGggPiAwKXtcclxuICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmplY3QtcHJvcGVydGllcy1oZWFkZXJcIj57e1wiX09iamVjdCBwcm9wZXJ0aWVzXCIgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgQGZvciAoYXR0cmliR3JvdXAgb2Ygb2JqZWN0QXR0cmlidXRlR3JvdXBzOyB0cmFjayBhdHRyaWJHcm91cCkge1xyXG4gICAgICAgIEBpZihoYXNTZXRBbnlBdHRyaWJ1dGUoYXR0cmliR3JvdXApKXtcclxuICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsIFtleHBhbmRlZF09XCJhdHRyaWJHcm91cC5leHBhbmRlZFwiPlxyXG4gICAgICAgICAgICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmplY3QtcHJvcGVydGllcy1ncm91cC1oZWFkZXJcIj4ge3thdHRyaWJHcm91cC5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxsaWItb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXBcclxuICAgICAgICAgICAgICBbYXR0cmlidXRlc0dyb3VwXT1cImF0dHJpYkdyb3VwXCJcclxuICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiX2VkaXRNb2RlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgfVxyXG4gIDwvbGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByb3BlcnRpZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMvb2JqZWN0LXByb3BlcnRpZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RBdHRyaWJ1dGV7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBncm91cDogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICB1bml0OiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBkZWNpbWFsOiBudW1iZXI7XHJcbiAgY29udHJvbDogc3RyaW5nO1xyXG4gIGVudW1kZWZpbml0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gIGlzQ2hhbmdlYWJsZTogYm9vbGVhbjtcclxuICB0b29sdGlwOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0QXR0cmlidXRlR3JvdXB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGF0dHJpYnV0ZXM6IE9iamVjdEF0dHJpYnV0ZVtdO1xyXG4gIGV4cGFuZGVkOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Component, Input, ViewEncapsulation, signal } from '@angular/core';
2
- import { RoundPipe } from '../../pipes/round.pipe';
3
- import { GetAttributeValue } from '../../pipes/get-attribute-value.pipe';
4
- import { isObjectPropertyValueBlank } from '../../utils/objectProperties';
5
- import { ObjectPropertyValueComponent } from './object-property-value/object-property-value.component';
6
- import * as i0 from "@angular/core";
7
- export class ObjectPropertiesGroupComponent {
8
- set attributesGroup(value) {
9
- if (!value) {
10
- return;
11
- }
12
- this._attributesGroup.set(value);
13
- }
14
- constructor() {
15
- this.editMode = false;
16
- this._attributesGroup = signal({
17
- name: '',
18
- attributes: [],
19
- expanded: false,
20
- });
21
- }
22
- isValueBlank(attrib) {
23
- return isObjectPropertyValueBlank(attrib);
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertiesGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ObjectPropertiesGroupComponent, isStandalone: true, selector: "lib-object-properties-group", inputs: { editMode: "editMode", attributesGroup: "attributesGroup" }, ngImport: i0, template: "<div class=\"object-property-table\">\r\n @for (attrib of _attributesGroup().attributes; track attrib) {\r\n @if(!isValueBlank(attrib)) {\r\n <div class=\"rowWrapper\">\r\n <div class=\"table-cell object-property-icon uuid-{{attrib.id}}\"></div>\r\n <div class=\"table-cell object-property-name uuid-{{attrib.id}}\" title=\"{{attrib.tooltip}}\">{{attrib.name}}:</div>\r\n <div class=\"table-cell object-property-value uuid-{{attrib.id}}\">\r\n <lib-object-property-value\r\n value=\"{{attrib | getAttributeValue}}\"\r\n tooltip=\"{{attrib.tooltip}}\"\r\n />\r\n </div>\r\n <div class=\"table-cell object-property-unit uuid-{{attrib.id}}\" title=\"{{attrib.tooltip}}\">{{attrib.unit}}</div>\r\n </div>\r\n }\r\n }\r\n</div>\r\n", styles: [".object-property-table{display:grid;grid-template-columns:2.8rem 1fr auto auto;overflow:hidden}.object-property-table .rowWrapper{display:contents}.object-property-table .rowWrapper:hover>div{background-color:var(--alternate-row-background-color)}.object-property-table .table-cell{max-height:2.4rem;height:2.4rem;min-height:2.4rem;padding-bottom:.1rem;line-height:2.4rem}.object-property-table .object-property-name{padding-right:.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:15rem}.object-property-table .object-property-value{padding-right:.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:2rem}.object-property-table .object-property-unit{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:2rem}\n"], dependencies: [{ kind: "pipe", type: GetAttributeValue, name: "getAttributeValue" }, { kind: "component", type: ObjectPropertyValueComponent, selector: "lib-object-property-value", inputs: ["value", "tooltip"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertiesGroupComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'lib-object-properties-group', standalone: true, imports: [
31
- RoundPipe,
32
- GetAttributeValue,
33
- ObjectPropertyValueComponent
34
- ], encapsulation: ViewEncapsulation.ShadowDom, template: "<div class=\"object-property-table\">\r\n @for (attrib of _attributesGroup().attributes; track attrib) {\r\n @if(!isValueBlank(attrib)) {\r\n <div class=\"rowWrapper\">\r\n <div class=\"table-cell object-property-icon uuid-{{attrib.id}}\"></div>\r\n <div class=\"table-cell object-property-name uuid-{{attrib.id}}\" title=\"{{attrib.tooltip}}\">{{attrib.name}}:</div>\r\n <div class=\"table-cell object-property-value uuid-{{attrib.id}}\">\r\n <lib-object-property-value\r\n value=\"{{attrib | getAttributeValue}}\"\r\n tooltip=\"{{attrib.tooltip}}\"\r\n />\r\n </div>\r\n <div class=\"table-cell object-property-unit uuid-{{attrib.id}}\" title=\"{{attrib.tooltip}}\">{{attrib.unit}}</div>\r\n </div>\r\n }\r\n }\r\n</div>\r\n", styles: [".object-property-table{display:grid;grid-template-columns:2.8rem 1fr auto auto;overflow:hidden}.object-property-table .rowWrapper{display:contents}.object-property-table .rowWrapper:hover>div{background-color:var(--alternate-row-background-color)}.object-property-table .table-cell{max-height:2.4rem;height:2.4rem;min-height:2.4rem;padding-bottom:.1rem;line-height:2.4rem}.object-property-table .object-property-name{padding-right:.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:15rem}.object-property-table .object-property-value{padding-right:.5rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:2rem}.object-property-table .object-property-unit{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:2rem}\n"] }]
35
- }], ctorParameters: () => [], propDecorators: { editMode: [{
36
- type: Input
37
- }], attributesGroup: [{
38
- type: Input
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAvb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAvb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDUCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7O0FBZXZHLE1BQU0sT0FBTyw4QkFBOEI7SUFTekMsSUFBYSxlQUFlLENBQUMsS0FBdUM7UUFDbEUsSUFBRyxDQUFDLEtBQUssRUFBQyxDQUFDO1lBQ1QsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDtRQWZTLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFMUIscUJBQWdCLEdBQUcsTUFBTSxDQUF1QjtZQUN4RCxJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO0lBU2EsQ0FBQztJQUVqQixZQUFZLENBQUMsTUFBdUI7UUFDbEMsT0FBTywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXBCVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw2SkM1QjNDLHF6QkFpQkEsdXpCREdNLGlCQUFpQiwwREFDakIsNEJBQTRCOzs0RkFPckIsOEJBQThCO2tCQWIxQyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDUCxpQkFBaUI7d0JBQ2pCLDRCQUE0QjtxQkFDL0IsaUJBR2MsaUJBQWlCLENBQUMsU0FBUzt3REFJakMsUUFBUTtzQkFBaEIsS0FBSztnQkFRTyxlQUFlO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRcclxuICAsIElucHV0XHJcbiAgLCBWaWV3RW5jYXBzdWxhdGlvblxyXG4gICwgc2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0QXR0cmlidXRlR3JvdXBcclxuICAsIE9iamVjdEF0dHJpYnV0ZVxyXG59IGZyb20gJy4uL29iamVjdC1wcm9wZXJ0aWVzL29iamVjdC1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFJvdW5kUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3JvdW5kLnBpcGUnO1xyXG5pbXBvcnQgeyBHZXRBdHRyaWJ1dGVWYWx1ZSB9IGZyb20gJy4uLy4uL3BpcGVzL2dldC1hdHRyaWJ1dGUtdmFsdWUucGlwZSc7XHJcbmltcG9ydCB7IGlzT2JqZWN0UHJvcGVydHlWYWx1ZUJsYW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvb2JqZWN0UHJvcGVydGllcyc7XHJcbmltcG9ydCB7IE9iamVjdFByb3BlcnR5VmFsdWVDb21wb25lbnQgfSBmcm9tICcuL29iamVjdC1wcm9wZXJ0eS12YWx1ZS9vYmplY3QtcHJvcGVydHktdmFsdWUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW9iamVjdC1wcm9wZXJ0aWVzLWdyb3VwJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJvdW5kUGlwZVxyXG4gICAgLCBHZXRBdHRyaWJ1dGVWYWx1ZVxyXG4gICAgLCBPYmplY3RQcm9wZXJ0eVZhbHVlQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1wcm9wZXJ0aWVzLWdyb3VwLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgT2JqZWN0UHJvcGVydGllc0dyb3VwQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBlZGl0TW9kZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hdHRyaWJ1dGVzR3JvdXAgPSBzaWduYWw8T2JqZWN0QXR0cmlidXRlR3JvdXA+KHtcclxuICAgIG5hbWU6ICcnLFxyXG4gICAgYXR0cmlidXRlczogW10sXHJcbiAgICBleHBhbmRlZDogZmFsc2UsXHJcbiAgfSk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhdHRyaWJ1dGVzR3JvdXAodmFsdWU6IE9iamVjdEF0dHJpYnV0ZUdyb3VwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZighdmFsdWUpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9hdHRyaWJ1dGVzR3JvdXAuc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGlzVmFsdWVCbGFuayhhdHRyaWI6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzT2JqZWN0UHJvcGVydHlWYWx1ZUJsYW5rKGF0dHJpYik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvYmplY3QtcHJvcGVydHktdGFibGVcIj5cclxuICBAZm9yIChhdHRyaWIgb2YgX2F0dHJpYnV0ZXNHcm91cCgpLmF0dHJpYnV0ZXM7IHRyYWNrIGF0dHJpYikge1xyXG4gICAgQGlmKCFpc1ZhbHVlQmxhbmsoYXR0cmliKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93V3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsIG9iamVjdC1wcm9wZXJ0eS1pY29uIHV1aWQte3thdHRyaWIuaWR9fVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsIG9iamVjdC1wcm9wZXJ0eS1uYW1lIHV1aWQte3thdHRyaWIuaWR9fVwiIHRpdGxlPVwie3thdHRyaWIudG9vbHRpcH19XCI+e3thdHRyaWIubmFtZX19OjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsIG9iamVjdC1wcm9wZXJ0eS12YWx1ZSB1dWlkLXt7YXR0cmliLmlkfX1cIj5cclxuICAgICAgICAgIDxsaWItb2JqZWN0LXByb3BlcnR5LXZhbHVlXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3thdHRyaWIgfCBnZXRBdHRyaWJ1dGVWYWx1ZX19XCJcclxuICAgICAgICAgICAgdG9vbHRpcD1cInt7YXR0cmliLnRvb2x0aXB9fVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsIG9iamVjdC1wcm9wZXJ0eS11bml0IHV1aWQte3thdHRyaWIuaWR9fVwiIHRpdGxlPVwie3thdHRyaWIudG9vbHRpcH19XCI+e3thdHRyaWIudW5pdH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Input, Component, ViewEncapsulation, signal } from '@angular/core';
2
- import isURL from 'validator/lib/isURL';
3
- import * as i0 from "@angular/core";
4
- export class ObjectPropertyValueComponent {
5
- set value(value) {
6
- this._value.set(value);
7
- if (this._isUrl(value)) {
8
- this._valueIsUrl.set(true);
9
- this._decoratedHyperlink.set(this._decorateHyperlink(value));
10
- }
11
- else {
12
- this._valueIsUrl.set(false);
13
- }
14
- }
15
- set tooltip(tooltip) {
16
- this._tooltip.set(tooltip);
17
- }
18
- _isUrl(url) {
19
- if (!url) {
20
- return false;
21
- }
22
- const link = url.trim();
23
- if (!/^http(s?):\/\//.exec(link) && !/^www\./.exec(link)) {
24
- return false;
25
- }
26
- return isURL(link);
27
- }
28
- _decorateHyperlink(url) {
29
- if (!this._isUrl(url)) {
30
- return '';
31
- }
32
- let link = url.trim();
33
- if (link && !/^http(s?):\/\//.exec(link)) {
34
- link = 'https://' + link;
35
- }
36
- return link;
37
- }
38
- constructor() {
39
- this._tooltip = signal('');
40
- this._value = signal('');
41
- this._valueIsUrl = signal(false);
42
- this._decoratedHyperlink = signal('');
43
- }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ObjectPropertyValueComponent, isStandalone: true, selector: "lib-object-property-value", inputs: { value: "value", tooltip: "tooltip" }, ngImport: i0, template: "@if(_valueIsUrl()) {\r\n <a class=\"link-detect-automatically\" target=\"_blank\" rel=\"noopener\" href={{_decoratedHyperlink()}} title=\"{{_tooltip()}}\">{{_value()}}</a>\r\n}\r\n@else {\r\n <div title=\"{{_tooltip()}}\">\r\n {{_value()}}\r\n </div>\r\n}\r\n", styles: [""], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ObjectPropertyValueComponent, decorators: [{
48
- type: Component,
49
- args: [{ selector: 'lib-object-property-value', standalone: true, encapsulation: ViewEncapsulation.ShadowDom, template: "@if(_valueIsUrl()) {\r\n <a class=\"link-detect-automatically\" target=\"_blank\" rel=\"noopener\" href={{_decoratedHyperlink()}} title=\"{{_tooltip()}}\">{{_value()}}</a>\r\n}\r\n@else {\r\n <div title=\"{{_tooltip()}}\">\r\n {{_value()}}\r\n </div>\r\n}\r\n" }]
50
- }], ctorParameters: () => [], propDecorators: { value: [{
51
- type: Input
52
- }], tooltip: [{
53
- type: Input
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByb3BlcnR5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1wcm9wZXJ0aWVzLWdyb3VwL29iamVjdC1wcm9wZXJ0eS12YWx1ZS9vYmplY3QtcHJvcGVydHktdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAvb2JqZWN0LXByb3BlcnR5LXZhbHVlL29iamVjdC1wcm9wZXJ0eS12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7O0FBU3hDLE1BQU0sT0FBTyw0QkFBNEI7SUFNdkMsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUNwQyxJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0QixJQUFJLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDtRQTVDVSxhQUFRLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLFdBQU0sR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckMsd0JBQW1CLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBeUNuQyxDQUFDOytHQTdDTiw0QkFBNEI7bUdBQTVCLDRCQUE0QixxSUNWekMsMlFBUUE7OzRGREVhLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxpQkFHRCxpQkFBaUIsQ0FBQyxTQUFTO3dEQVE3QixLQUFLO3NCQUFqQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBpc1VSTCBmcm9tICd2YWxpZGF0b3IvbGliL2lzVVJMJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW9iamVjdC1wcm9wZXJ0eS12YWx1ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXByb3BlcnR5LXZhbHVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtcHJvcGVydHktdmFsdWUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdFByb3BlcnR5VmFsdWVDb21wb25lbnQge1xyXG4gIHByb3RlY3RlZCBfdG9vbHRpcCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICBwcm90ZWN0ZWQgX3ZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG4gIHByb3RlY3RlZCBfdmFsdWVJc1VybCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIF9kZWNvcmF0ZWRIeXBlcmxpbmsgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgaWYodGhpcy5faXNVcmwodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlSXNVcmwuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLl9kZWNvcmF0ZWRIeXBlcmxpbmsuc2V0KHRoaXMuX2RlY29yYXRlSHlwZXJsaW5rKHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWVJc1VybC5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHRvb2x0aXAodG9vbHRpcDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90b29sdGlwLnNldCh0b29sdGlwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaW5rID0gdXJsLnRyaW0oKTtcclxuICAgIGlmKCEvXmh0dHAocz8pOlxcL1xcLy8uZXhlYyhsaW5rKSAmJiAhL153d3dcXC4vLmV4ZWMobGluaykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1VSTChsaW5rKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RlY29yYXRlSHlwZXJsaW5rKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmKCF0aGlzLl9pc1VybCh1cmwpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGxldCBsaW5rID0gdXJsLnRyaW0oKTtcclxuXHJcbiAgICBpZiAobGluayAmJiAhL15odHRwKHM/KTpcXC9cXC8vLmV4ZWMobGluaykpIHtcclxuICAgICAgbGluayA9ICdodHRwczovLycgKyBsaW5rO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpbms7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiIsIkBpZihfdmFsdWVJc1VybCgpKSB7XHJcbiAgPGEgY2xhc3M9XCJsaW5rLWRldGVjdC1hdXRvbWF0aWNhbGx5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIiBocmVmPXt7X2RlY29yYXRlZEh5cGVybGluaygpfX0gdGl0bGU9XCJ7e190b29sdGlwKCl9fVwiPnt7X3ZhbHVlKCl9fTwvYT5cclxufVxyXG5AZWxzZSB7XHJcbiAgPGRpdiB0aXRsZT1cInt7X3Rvb2x0aXAoKX19XCI+XHJcbiAgICB7e192YWx1ZSgpfX1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -1,46 +0,0 @@
1
- import { DecimalPipe } from '@angular/common';
2
- import { Pipe } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- const MB_SIZE = 1024;
5
- export const BitConverterSize = {
6
- KB: 'kB',
7
- GB: 'gib',
8
- MB: 'mb'
9
- // more..
10
- };
11
- export class BitConverterPipe extends DecimalPipe {
12
- transform(value, sizeToConvert = BitConverterSize.KB, digitsInfo = '1.2-2') {
13
- if (!this.isNumber(value)) {
14
- throw new Error('[BitConverterPipe]: value is not a number');
15
- }
16
- const size = this.getSizeFromBites(value, sizeToConvert);
17
- let decimalValue = super.transform(size, digitsInfo);
18
- decimalValue ??= value.toString();
19
- return `(${decimalValue} ${sizeToConvert})`;
20
- }
21
- getSizeFromBites(value, size) {
22
- switch (size) {
23
- case 'kB':
24
- return value / MB_SIZE;
25
- case 'mb':
26
- return value / (MB_SIZE * MB_SIZE);
27
- case 'gib':
28
- return value / (MB_SIZE * MB_SIZE * MB_SIZE);
29
- default:
30
- return value;
31
- }
32
- }
33
- isNumber(value) {
34
- return typeof value === 'number' && !isNaN(value);
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BitConverterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
37
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: BitConverterPipe, isStandalone: true, name: "bitConverter" }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BitConverterPipe, decorators: [{
40
- type: Pipe,
41
- args: [{
42
- name: 'bitConverter',
43
- standalone: true
44
- }]
45
- }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWNvbnZlcnRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3BpcGVzL2JpdC1jb252ZXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxLQUFLO0lBQ1QsRUFBRSxFQUFFLElBQUk7SUFDUixTQUFTO0NBQ0gsQ0FBQztBQVFYLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBSXBDLFNBQVMsQ0FBQyxLQUFjLEVBQUUsZ0JBQTBCLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxhQUFxQixPQUFPO1FBQzFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELFlBQVksS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbEMsT0FBTyxJQUFJLFlBQVksSUFBSSxhQUFhLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYSxFQUFFLElBQWM7UUFDbEQsUUFBTyxJQUFJLEVBQUUsQ0FBQztZQUNWLEtBQUssSUFBSTtnQkFDTCxPQUFPLEtBQUssR0FBRyxPQUFPLENBQUM7WUFDM0IsS0FBSyxJQUFJO2dCQUNMLE9BQU8sS0FBSyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLEtBQUssS0FBSztnQkFDTixPQUFPLEtBQUssR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDakQ7Z0JBQ0ksT0FBTyxLQUFLLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYztRQUMzQixPQUFRLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDOytHQTlCUSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5jb25zdCBNQl9TSVpFID0gMTAyNDtcclxuXHJcbmV4cG9ydCBjb25zdCBCaXRDb252ZXJ0ZXJTaXplID0ge1xyXG4gICAgS0I6ICdrQicsXHJcbiAgICBHQjogJ2dpYicsXHJcbiAgICBNQjogJ21iJ1xyXG4gICAgLy8gbW9yZS4uXHJcbn0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNpemVUeXBlID0gdHlwZW9mIEJpdENvbnZlcnRlclNpemVbJ0dCJyB8ICdLQicgfCAnTUInXTtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYml0Q29udmVydGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaXRDb252ZXJ0ZXJQaXBlIGV4dGVuZHMgRGVjaW1hbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIG92ZXJyaWRlIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBkaWdpdHNJbmZvPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBudWxsIHwgdW5kZWZpbmVkLCBkaWdpdHNJbmZvPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBudWxsO1xyXG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBkaWdpdHNJbmZvPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCBzaXplVG9Db252ZXJ0OiBTaXplVHlwZSA9IEJpdENvbnZlcnRlclNpemUuS0IsIGRpZ2l0c0luZm86IHN0cmluZyA9ICcxLjItMicpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW0JpdENvbnZlcnRlclBpcGVdOiB2YWx1ZSBpcyBub3QgYSBudW1iZXInKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuZ2V0U2l6ZUZyb21CaXRlcyh2YWx1ZSwgc2l6ZVRvQ29udmVydCk7XHJcbiAgICAgICAgbGV0IGRlY2ltYWxWYWx1ZSA9IHN1cGVyLnRyYW5zZm9ybShzaXplLCBkaWdpdHNJbmZvKTtcclxuICAgICAgICBkZWNpbWFsVmFsdWUgPz89IHZhbHVlLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBgKCR7ZGVjaW1hbFZhbHVlfSAke3NpemVUb0NvbnZlcnR9KWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTaXplRnJvbUJpdGVzKHZhbHVlOiBudW1iZXIsIHNpemU6IFNpemVUeXBlKTogbnVtYmVyIHtcclxuICAgICAgICBzd2l0Y2goc2l6ZSkge1xyXG4gICAgICAgICAgICBjYXNlICdrQic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgLyBNQl9TSVpFO1xyXG4gICAgICAgICAgICBjYXNlICdtYic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgLyAoTUJfU0laRSAqIE1CX1NJWkUpO1xyXG4gICAgICAgICAgICBjYXNlICdnaWInOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIC8gKE1CX1NJWkUgKiBNQl9TSVpFICogTUJfU0laRSk7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNOdW1iZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhaXNOYU4odmFsdWUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==