barsa-tiles 1.0.455 → 2.0.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 (172) hide show
  1. package/{esm2020 → esm2022}/barsa-tiles.mjs +4 -4
  2. package/esm2022/lib/action-item/action-item.component.mjs +17 -0
  3. package/{esm2020 → esm2022}/lib/action-links.pipe.mjs +16 -16
  4. package/esm2022/lib/actions-link/actions-link.component.mjs +41 -0
  5. package/esm2022/lib/app-finder/app-finder.component.mjs +52 -0
  6. package/esm2022/lib/app-finder-app-list/app-finder-app-list.component.mjs +39 -0
  7. package/esm2022/lib/app-finder-group/app-finder-group.component.mjs +41 -0
  8. package/esm2022/lib/app-finder.service.mjs +121 -0
  9. package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +183 -0
  10. package/esm2022/lib/barsa-tiles.module.mjs +225 -0
  11. package/esm2022/lib/change-app-tile/change-app-tile.component.mjs +46 -0
  12. package/esm2022/lib/create-app-group/create-app-group.component.mjs +43 -0
  13. package/esm2022/lib/directives/emptylist.directive.mjs +36 -0
  14. package/esm2022/lib/feed-tile/feed-tile.component.mjs +31 -0
  15. package/{esm2020 → esm2022}/lib/footer-edit-tile/footer-edit-tile.component.mjs +13 -13
  16. package/esm2022/lib/footer-tile/footer-tile.component.mjs +27 -0
  17. package/esm2022/lib/form-app-finder/form-app-finder.component.mjs +95 -0
  18. package/esm2022/lib/form-tile/form-tile.component.mjs +34 -0
  19. package/esm2022/lib/logo-tile/logo-tile.component.mjs +23 -0
  20. package/{esm2020 → esm2022}/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +40 -40
  21. package/{esm2020 → esm2022}/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +29 -29
  22. package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +26 -0
  23. package/{esm2020 → esm2022}/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +20 -20
  24. package/{esm2020 → esm2022}/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +31 -31
  25. package/{esm2020 → esm2022}/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +32 -32
  26. package/{esm2020 → esm2022}/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +27 -27
  27. package/{esm2020 → esm2022}/lib/models/app-tile-footer-section.mjs +1 -1
  28. package/{esm2020 → esm2022}/lib/models/app-tile-footer.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/models/app-tile-group-pin.mjs +1 -1
  30. package/esm2022/lib/models/base-bt-tile-component.mjs +26 -0
  31. package/{esm2020 → esm2022}/lib/models/base-tile-component.mjs +58 -58
  32. package/{esm2020 → esm2022}/lib/models/base-tile-setting.mjs +1 -1
  33. package/{esm2020 → esm2022}/lib/models/feed-tile-setting.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/models/index.mjs +13 -13
  35. package/{esm2020 → esm2022}/lib/models/logo-tile-setting.mjs +1 -1
  36. package/{esm2020 → esm2022}/lib/models/micro-tile-chart-bullet-setting.mjs +1 -1
  37. package/{esm2020 → esm2022}/lib/models/news-tile-setting.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/models/numeric-tile-setting.mjs +1 -1
  39. package/{esm2020 → esm2022}/lib/models/profile-tile-setting.mjs +1 -1
  40. package/esm2022/lib/models/tile-setting.mjs +2 -0
  41. package/{esm2020 → esm2022}/lib/models/user-portal-settings.mjs +1 -1
  42. package/esm2022/lib/news-tile/news-tile.component.mjs +53 -0
  43. package/esm2022/lib/notification-group/notification-group.component.mjs +116 -0
  44. package/esm2022/lib/notification-group-header/notification-group-header.component.mjs +38 -0
  45. package/esm2022/lib/numeric-tile/numeric-tile.component.mjs +34 -0
  46. package/esm2022/lib/pin-tile/pin-tile.component.mjs +110 -0
  47. package/esm2022/lib/pipes/group-tiles.pipe.mjs +31 -0
  48. package/{esm2020 → esm2022}/lib/pipes/home-group.pipe.mjs +17 -17
  49. package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +28 -0
  50. package/esm2022/lib/pipes/tile-prop.pipe.mjs +32 -0
  51. package/esm2022/lib/popover-app-finder/filter-apps-grouped.pipe.mjs +36 -0
  52. package/esm2022/lib/popover-app-finder/popover-app-finder.component.mjs +112 -0
  53. package/esm2022/lib/profile-tile/profile-tile.component.mjs +25 -0
  54. package/esm2022/lib/shellbar/shellbar.component.mjs +201 -0
  55. package/esm2022/lib/simple-tile/simple-tile.component.mjs +22 -0
  56. package/esm2022/lib/tile/tile.component.mjs +70 -0
  57. package/esm2022/lib/tile-renderer.directive.mjs +70 -0
  58. package/esm2022/lib/tile-style.directive.mjs +29 -0
  59. package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +167 -0
  60. package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +164 -0
  61. package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +88 -0
  62. package/esm2022/lib/tiles-viewer.service.mjs +130 -0
  63. package/esm2022/lib/tiles.service.mjs +589 -0
  64. package/{esm2020 → esm2022}/public-api.mjs +46 -45
  65. package/fesm2022/barsa-tiles.mjs +3149 -0
  66. package/fesm2022/barsa-tiles.mjs.map +1 -0
  67. package/index.d.ts +5 -5
  68. package/lib/action-item/action-item.component.d.ts +6 -6
  69. package/lib/action-links.pipe.d.ts +7 -7
  70. package/lib/actions-link/actions-link.component.d.ts +17 -17
  71. package/lib/app-finder/app-finder.component.d.ts +24 -24
  72. package/lib/app-finder-app-list/app-finder-app-list.component.d.ts +20 -20
  73. package/lib/app-finder-group/app-finder-group.component.d.ts +14 -14
  74. package/lib/app-finder.service.d.ts +33 -33
  75. package/lib/barsa-shellbar/barsa-shellbar.component.d.ts +104 -97
  76. package/lib/barsa-tiles.module.d.ts +91 -86
  77. package/lib/change-app-tile/change-app-tile.component.d.ts +20 -20
  78. package/lib/create-app-group/create-app-group.component.d.ts +19 -19
  79. package/lib/directives/emptylist.directive.d.ts +14 -14
  80. package/lib/feed-tile/feed-tile.component.d.ts +11 -11
  81. package/lib/footer-edit-tile/footer-edit-tile.component.d.ts +6 -6
  82. package/lib/footer-tile/footer-tile.component.d.ts +11 -11
  83. package/lib/form-app-finder/form-app-finder.component.d.ts +38 -38
  84. package/lib/form-tile/form-tile.component.d.ts +24 -24
  85. package/lib/logo-tile/logo-tile.component.d.ts +7 -7
  86. package/lib/micro-tile-chart-area/micro-tile-chart-area.component.d.ts +8 -8
  87. package/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.d.ts +12 -12
  88. package/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.d.ts +16 -16
  89. package/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.d.ts +7 -7
  90. package/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.d.ts +8 -8
  91. package/lib/micro-tile-chart-line/micro-tile-chart-line.component.d.ts +8 -8
  92. package/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.d.ts +8 -8
  93. package/lib/models/app-tile-footer-section.d.ts +6 -6
  94. package/lib/models/app-tile-footer.d.ts +8 -8
  95. package/lib/models/app-tile-group-pin.d.ts +5 -5
  96. package/lib/models/base-bt-tile-component.d.ts +9 -9
  97. package/lib/models/base-tile-component.d.ts +26 -26
  98. package/lib/models/base-tile-setting.d.ts +5 -5
  99. package/lib/models/feed-tile-setting.d.ts +7 -7
  100. package/lib/models/index.d.ts +13 -13
  101. package/lib/models/logo-tile-setting.d.ts +6 -6
  102. package/lib/models/micro-tile-chart-bullet-setting.d.ts +10 -10
  103. package/lib/models/news-tile-setting.d.ts +4 -4
  104. package/lib/models/numeric-tile-setting.d.ts +9 -9
  105. package/lib/models/profile-tile-setting.d.ts +7 -7
  106. package/lib/models/tile-setting.d.ts +10 -10
  107. package/lib/models/user-portal-settings.d.ts +9 -9
  108. package/lib/news-tile/news-tile.component.d.ts +19 -19
  109. package/lib/notification-group/notification-group.component.d.ts +54 -55
  110. package/lib/notification-group-header/notification-group-header.component.d.ts +15 -15
  111. package/lib/numeric-tile/numeric-tile.component.d.ts +12 -12
  112. package/lib/pin-tile/pin-tile.component.d.ts +30 -30
  113. package/lib/pipes/group-tiles.pipe.d.ts +14 -14
  114. package/lib/pipes/home-group.pipe.d.ts +9 -9
  115. package/lib/pipes/tile-home-filter.pipe.d.ts +8 -8
  116. package/lib/pipes/tile-prop.pipe.d.ts +8 -8
  117. package/lib/popover-app-finder/filter-apps-grouped.pipe.d.ts +13 -0
  118. package/lib/popover-app-finder/popover-app-finder.component.d.ts +39 -0
  119. package/lib/profile-tile/profile-tile.component.d.ts +7 -7
  120. package/lib/shellbar/shellbar.component.d.ts +94 -94
  121. package/lib/simple-tile/simple-tile.component.d.ts +10 -10
  122. package/lib/tile/tile.component.d.ts +22 -20
  123. package/lib/tile-renderer.directive.d.ts +28 -28
  124. package/lib/tile-style.directive.d.ts +12 -0
  125. package/lib/tiles-viewer/tiles-viewer.component.d.ts +65 -63
  126. package/lib/tiles-viewer-container/tiles-viewer-container.component.d.ts +59 -57
  127. package/lib/tiles-viewer-group/tiles-viewer-group.component.d.ts +39 -39
  128. package/lib/tiles-viewer.service.d.ts +42 -42
  129. package/lib/tiles.service.d.ts +75 -75
  130. package/package.json +7 -13
  131. package/public-api.d.ts +42 -41
  132. package/esm2020/lib/action-item/action-item.component.mjs +0 -18
  133. package/esm2020/lib/actions-link/actions-link.component.mjs +0 -42
  134. package/esm2020/lib/app-finder/app-finder.component.mjs +0 -53
  135. package/esm2020/lib/app-finder-app-list/app-finder-app-list.component.mjs +0 -40
  136. package/esm2020/lib/app-finder-group/app-finder-group.component.mjs +0 -42
  137. package/esm2020/lib/app-finder.service.mjs +0 -121
  138. package/esm2020/lib/barsa-shellbar/barsa-shellbar.component.mjs +0 -166
  139. package/esm2020/lib/barsa-tiles.module.mjs +0 -206
  140. package/esm2020/lib/change-app-tile/change-app-tile.component.mjs +0 -47
  141. package/esm2020/lib/create-app-group/create-app-group.component.mjs +0 -44
  142. package/esm2020/lib/directives/emptylist.directive.mjs +0 -36
  143. package/esm2020/lib/feed-tile/feed-tile.component.mjs +0 -32
  144. package/esm2020/lib/footer-tile/footer-tile.component.mjs +0 -28
  145. package/esm2020/lib/form-app-finder/form-app-finder.component.mjs +0 -95
  146. package/esm2020/lib/form-tile/form-tile.component.mjs +0 -35
  147. package/esm2020/lib/logo-tile/logo-tile.component.mjs +0 -23
  148. package/esm2020/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +0 -27
  149. package/esm2020/lib/models/base-bt-tile-component.mjs +0 -30
  150. package/esm2020/lib/models/tile-setting.mjs +0 -2
  151. package/esm2020/lib/news-tile/news-tile.component.mjs +0 -54
  152. package/esm2020/lib/notification-group/notification-group.component.mjs +0 -116
  153. package/esm2020/lib/notification-group-header/notification-group-header.component.mjs +0 -39
  154. package/esm2020/lib/numeric-tile/numeric-tile.component.mjs +0 -34
  155. package/esm2020/lib/pin-tile/pin-tile.component.mjs +0 -111
  156. package/esm2020/lib/pipes/group-tiles.pipe.mjs +0 -31
  157. package/esm2020/lib/pipes/tile-home-filter.pipe.mjs +0 -28
  158. package/esm2020/lib/pipes/tile-prop.pipe.mjs +0 -32
  159. package/esm2020/lib/profile-tile/profile-tile.component.mjs +0 -26
  160. package/esm2020/lib/shellbar/shellbar.component.mjs +0 -200
  161. package/esm2020/lib/simple-tile/simple-tile.component.mjs +0 -23
  162. package/esm2020/lib/tile/tile.component.mjs +0 -61
  163. package/esm2020/lib/tile-renderer.directive.mjs +0 -70
  164. package/esm2020/lib/tiles-viewer/tiles-viewer.component.mjs +0 -157
  165. package/esm2020/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +0 -158
  166. package/esm2020/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +0 -88
  167. package/esm2020/lib/tiles-viewer.service.mjs +0 -130
  168. package/esm2020/lib/tiles.service.mjs +0 -589
  169. package/fesm2015/barsa-tiles.mjs +0 -2977
  170. package/fesm2015/barsa-tiles.mjs.map +0 -1
  171. package/fesm2020/barsa-tiles.mjs +0 -2941
  172. package/fesm2020/barsa-tiles.mjs.map +0 -1
@@ -0,0 +1,34 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { BaseBtTileComponent } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@fundamental-ngx/core/tile";
5
+ import * as i2 from "../tile/tile.component";
6
+ import * as i3 from "barsa-sap-ui";
7
+ import * as i4 from "../pipes/tile-prop.pipe";
8
+ export class NumericTileComponent extends BaseBtTileComponent {
9
+ get launchIcon() {
10
+ return this.settings.LaunchIcon;
11
+ }
12
+ get kpiState() {
13
+ return this.settings.ContentKpiState;
14
+ }
15
+ get kpi() {
16
+ return this.settings.ContentKpi;
17
+ }
18
+ get scaleState() {
19
+ return this.settings.ScaleState;
20
+ }
21
+ get scaleText() {
22
+ return this.settings.ScaleText;
23
+ }
24
+ get scaleArrowIcon() {
25
+ return this.settings.ScaleArrowIcon;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NumericTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: NumericTileComponent, selector: "bt-numeric-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\n [data]=\"data\"\n [type]=\"'launch'\"\n [edit]=\"edit\"\n [backColor]=\"backColor\"\n [title]=\"data | tileProp: 'Title':parameters\"\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\n [footer]=\"data | tileProp: 'Footer':parameters\"\n (hideClick)=\"hideClick.emit()\"\n (renameClick)=\"renameClick.emit()\"\n (click)=\"onTileClick()\"\n>\n <div fd-tile-content>\n <div fd-numeric-content>\n <div fd-numeric-content-launch-icon-container>\n <i fd-numeric-content-launch-icon [glyph]=\"launchIcon\" [class]=\"launchIcon | sapFontClass\"></i>\n </div>\n <div fd-numeric-content-kpi-container>\n <div fd-numeric-content-kpi [state]=\"kpiState\">{{ kpi }}</div>\n </div>\n <div fd-numeric-content-scale-container style=\"padding-top: 0.2rem\">\n <div fd-numeric-content-scale [state]=\"scaleState\">\n <span\n fd-numeric-content-scale-arrow\n [glyph]=\"scaleArrowIcon\"\n [class]=\"scaleArrowIcon | sapFontClass\"\n ></span>\n <span fd-numeric-content-scale-text>{{ scaleText }}</span>\n </div>\n </div>\n </div>\n </div>\n</bt-tile>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1.NumericContentDirective, selector: "[fd-numeric-content]", inputs: ["class", "size"] }, { kind: "directive", type: i1.NumericContentKpiContainerDirective, selector: "[fd-numeric-content-kpi-container]" }, { kind: "directive", type: i1.NumericContentKpiDirective, selector: "[fd-numeric-content-kpi]", inputs: ["state", "class", "glyph"] }, { kind: "directive", type: i1.NumericContentLaunchIconContainerDirective, selector: "[fd-numeric-content-launch-icon-container]" }, { kind: "directive", type: i1.NumericContentLaunchIconDirective, selector: "[fd-numeric-content-launch-icon]", inputs: ["class", "glyph", "glyphFont"] }, { kind: "directive", type: i1.NumericContentScaleArrowDirective, selector: "[fd-numeric-content-scale-arrow]", inputs: ["class", "glyph", "glyphFont"] }, { kind: "directive", type: i1.NumericContentScaleContainerDirective, selector: "[fd-numeric-content-scale-container]" }, { kind: "directive", type: i1.NumericContentScaleDirective, selector: "[fd-numeric-content-scale]", inputs: ["state", "class"] }, { kind: "directive", type: i1.NumericContentScaleTextDirective, selector: "[fd-numeric-content-scale-text]" }, { kind: "component", type: i2.TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "backColor", "dynamicCommand"] }, { kind: "pipe", type: i3.SapFontClassPipe, name: "sapFontClass" }, { kind: "pipe", type: i4.TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NumericTileComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'bt-numeric-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\n [data]=\"data\"\n [type]=\"'launch'\"\n [edit]=\"edit\"\n [backColor]=\"backColor\"\n [title]=\"data | tileProp: 'Title':parameters\"\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\n [footer]=\"data | tileProp: 'Footer':parameters\"\n (hideClick)=\"hideClick.emit()\"\n (renameClick)=\"renameClick.emit()\"\n (click)=\"onTileClick()\"\n>\n <div fd-tile-content>\n <div fd-numeric-content>\n <div fd-numeric-content-launch-icon-container>\n <i fd-numeric-content-launch-icon [glyph]=\"launchIcon\" [class]=\"launchIcon | sapFontClass\"></i>\n </div>\n <div fd-numeric-content-kpi-container>\n <div fd-numeric-content-kpi [state]=\"kpiState\">{{ kpi }}</div>\n </div>\n <div fd-numeric-content-scale-container style=\"padding-top: 0.2rem\">\n <div fd-numeric-content-scale [state]=\"scaleState\">\n <span\n fd-numeric-content-scale-arrow\n [glyph]=\"scaleArrowIcon\"\n [class]=\"scaleArrowIcon | sapFontClass\"\n ></span>\n <span fd-numeric-content-scale-text>{{ scaleText }}</span>\n </div>\n </div>\n </div>\n </div>\n</bt-tile>\n" }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvbnVtZXJpYy10aWxlL251bWVyaWMtdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL251bWVyaWMtdGlsZS9udW1lcmljLXRpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFPcEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUF1QztJQUM3RSxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQ3hDLENBQUM7OEdBbEJRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDhFQ1JqQyw0OENBbUNBOzsyRkQzQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQnRUaWxlQ29tcG9uZW50LCBOdW1lcmljVGlsZVNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnQtbnVtZXJpYy10aWxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9udW1lcmljLXRpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbnVtZXJpYy10aWxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtZXJpY1RpbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQnRUaWxlQ29tcG9uZW50PE51bWVyaWNUaWxlU2V0dGluZz4ge1xyXG4gICAgZ2V0IGxhdW5jaEljb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5MYXVuY2hJY29uO1xyXG4gICAgfVxyXG4gICAgZ2V0IGtwaVN0YXRlKCk6ICdwb3NpdGl2ZScgfCAnbmVnYXRpdmUnIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5Db250ZW50S3BpU3RhdGU7XHJcbiAgICB9XHJcbiAgICBnZXQga3BpKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuQ29udGVudEtwaTtcclxuICAgIH1cclxuICAgIGdldCBzY2FsZVN0YXRlKCk6ICdwb3NpdGl2ZScgfCAnbmVnYXRpdmUnIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5TY2FsZVN0YXRlO1xyXG4gICAgfVxyXG4gICAgZ2V0IHNjYWxlVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLlNjYWxlVGV4dDtcclxuICAgIH1cclxuICAgIGdldCBzY2FsZUFycm93SWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLlNjYWxlQXJyb3dJY29uO1xyXG4gICAgfVxyXG59XHJcbiIsIjxidC10aWxlXG4gICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgW3R5cGVdPVwiJ2xhdW5jaCdcIlxuICAgIFtlZGl0XT1cImVkaXRcIlxuICAgIFtiYWNrQ29sb3JdPVwiYmFja0NvbG9yXCJcbiAgICBbdGl0bGVdPVwiZGF0YSB8IHRpbGVQcm9wOiAnVGl0bGUnOnBhcmFtZXRlcnNcIlxuICAgIFtzdWJ0aXRsZV09XCJkYXRhIHwgdGlsZVByb3A6ICdTdWJ0aXRsZSc6cGFyYW1ldGVyc1wiXG4gICAgW2R5bmFtaWNDb21tYW5kXT1cImRhdGEgfCB0aWxlUHJvcDogJ0R5bmFtaWNDb21tYW5kJzpwYXJhbWV0ZXJzXCJcbiAgICBbaXNEb3VibGVdPVwiZGF0YSB8IHRpbGVQcm9wOiAnSXNEb3VibGUnOnBhcmFtZXRlcnNcIlxuICAgIFtmb290ZXJdPVwiZGF0YSB8IHRpbGVQcm9wOiAnRm9vdGVyJzpwYXJhbWV0ZXJzXCJcbiAgICAoaGlkZUNsaWNrKT1cImhpZGVDbGljay5lbWl0KClcIlxuICAgIChyZW5hbWVDbGljayk9XCJyZW5hbWVDbGljay5lbWl0KClcIlxuICAgIChjbGljayk9XCJvblRpbGVDbGljaygpXCJcbj5cbiAgICA8ZGl2IGZkLXRpbGUtY29udGVudD5cbiAgICAgICAgPGRpdiBmZC1udW1lcmljLWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2IGZkLW51bWVyaWMtY29udGVudC1sYXVuY2gtaWNvbi1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGkgZmQtbnVtZXJpYy1jb250ZW50LWxhdW5jaC1pY29uIFtnbHlwaF09XCJsYXVuY2hJY29uXCIgW2NsYXNzXT1cImxhdW5jaEljb24gfCBzYXBGb250Q2xhc3NcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtbnVtZXJpYy1jb250ZW50LWtwaS1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1udW1lcmljLWNvbnRlbnQta3BpIFtzdGF0ZV09XCJrcGlTdGF0ZVwiPnt7IGtwaSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLW51bWVyaWMtY29udGVudC1zY2FsZS1jb250YWluZXIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMC4ycmVtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1udW1lcmljLWNvbnRlbnQtc2NhbGUgW3N0YXRlXT1cInNjYWxlU3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW51bWVyaWMtY29udGVudC1zY2FsZS1hcnJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cInNjYWxlQXJyb3dJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJzY2FsZUFycm93SWNvbiB8IHNhcEZvbnRDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW51bWVyaWMtY29udGVudC1zY2FsZS10ZXh0Pnt7IHNjYWxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvYnQtdGlsZT5cbiJdfQ==
@@ -0,0 +1,110 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
3
+ import { CreateAppGroupComponent } from '../create-app-group/create-app-group.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@fundamental-ngx/core";
6
+ import * as i2 from "barsa-novin-ray-core";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@fundamental-ngx/core/bar";
9
+ import * as i5 from "@fundamental-ngx/core/checkbox";
10
+ import * as i6 from "@fundamental-ngx/core/icon";
11
+ import * as i7 from "@fundamental-ngx/core/list";
12
+ import * as i8 from "@fundamental-ngx/core/dialog";
13
+ import * as i9 from "@fundamental-ngx/cdk/utils";
14
+ import * as i10 from "@fundamental-ngx/core/title";
15
+ export class PinTileComponent extends BaseComponent {
16
+ constructor(_dialogService, _dialogRef, bbbPipe) {
17
+ super();
18
+ this._dialogService = _dialogService;
19
+ this._dialogRef = _dialogRef;
20
+ this.bbbPipe = bbbPipe;
21
+ this.newGroupText = BarsaApi.LoginFormData.IsRtl
22
+ ? this.bbbPipe.transform('Groups') + ' ' + this.bbbPipe.transform('New')
23
+ : this.bbbPipe.transform('New') + ' ' + this.bbbPipe.transform('Groups');
24
+ this.app = _dialogRef.data.app;
25
+ this.appTileGroups = _dialogRef.data.appTileGroups;
26
+ this.pinnedAppInTileGroups = _dialogRef.data.pinnedAppInTileGroups;
27
+ }
28
+ ngOnInit() {
29
+ this._setLoading(true);
30
+ const tileGroupsId = this.pinnedAppInTileGroups[this.app.Id];
31
+ this.appTileGroups.forEach((appGroup) => {
32
+ this._setDefaultPinTile(appGroup, tileGroupsId);
33
+ });
34
+ this._setLoading(false);
35
+ }
36
+ onAccept() {
37
+ const appTileGroupsPin = [];
38
+ this.appTileGroups.forEach((group) => {
39
+ this._getChangedPinTileGroups(group, appTileGroupsPin);
40
+ });
41
+ this._close({ appTileGroupsPin, app: this.app });
42
+ }
43
+ onClose() {
44
+ this._close();
45
+ }
46
+ onNewGroup() {
47
+ this.newGroupDialogRef = this._dialogService.open(CreateAppGroupComponent, {
48
+ data: { title: this.newGroupText },
49
+ verticalPadding: true,
50
+ mobile: this.mobile,
51
+ responsivePadding: true
52
+ });
53
+ this.newGroupDialogRef.afterClosed.subscribe(() => {
54
+ // if (result) {
55
+ // this.dialogRef.loading(true);
56
+ // this.tilesService
57
+ // .createAppGroup(result)
58
+ // .pipe(
59
+ // takeUntil(this._onDestroy$),
60
+ // finalize(() => {
61
+ // this.dialogRef.loading(false);
62
+ // })
63
+ // )
64
+ // .subscribe();
65
+ // }
66
+ });
67
+ }
68
+ _setLoading(loading) {
69
+ this._dialogRef.loading(loading);
70
+ }
71
+ _setDefaultPinTile(appTileGroup, tileGroupsId) {
72
+ appTileGroup.$PinTile = appTileGroup.$DefaultPinTile =
73
+ tileGroupsId.includes(appTileGroup.Id) || tileGroupsId.includes(appTileGroup.UserAppTileGroupSetting?.Id);
74
+ appTileGroup.$Children?.forEach((subGroup) => {
75
+ this._setDefaultPinTile(subGroup, tileGroupsId);
76
+ });
77
+ appTileGroup.$Disabledpin = false;
78
+ }
79
+ _getChangedPinTileGroups(appTileGroup, appTileGroupsPin) {
80
+ if (appTileGroup.$PinTile && !appTileGroup.$DefaultPinTile) {
81
+ // Add
82
+ appTileGroupsPin.push({ appTileGroup, visible: true });
83
+ }
84
+ else if (appTileGroup.$PinTile === false && appTileGroup.$DefaultPinTile) {
85
+ // Remove
86
+ appTileGroupsPin.push({ appTileGroup, visible: false });
87
+ }
88
+ appTileGroup.$Children?.forEach((subGroup) => {
89
+ this._getChangedPinTileGroups(subGroup, appTileGroupsPin);
90
+ });
91
+ }
92
+ _close(result) {
93
+ this._dialogRef.close(result);
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: PinTileComponent, deps: [{ token: i1.DialogService }, { token: i1.DialogRef }, { token: i2.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: PinTileComponent, selector: "bt-pin-tile", inputs: { app: "app", appTileGroups: "appTileGroups", mobile: "mobile", pin: "pin" }, usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i8.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i8.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i9.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i10.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: PinTileComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'bt-pin-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"] }]
101
+ }], ctorParameters: () => [{ type: i1.DialogService }, { type: i1.DialogRef }, { type: i2.BbbTranslatePipe }], propDecorators: { app: [{
102
+ type: Input
103
+ }], appTileGroups: [{
104
+ type: Input
105
+ }], mobile: [{
106
+ type: Input
107
+ }], pin: [{
108
+ type: Input
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9waW4tdGlsZS9waW4tdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3Bpbi10aWxlL3Bpbi10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF5QyxNQUFNLHNCQUFzQixDQUFDO0FBRXRHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUFhL0MsWUFBbUIsY0FBNkIsRUFBUyxVQUFxQixFQUFVLE9BQXlCO1FBQzdHLEtBQUssRUFBRSxDQUFDO1FBRE8sbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFOakgsaUJBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDeEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU16RSxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDdkUsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELFFBQVE7UUFDSixNQUFNLGdCQUFnQixHQUFzQixFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ3ZFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixpQkFBaUIsRUFBRSxJQUFJO1NBQzFCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxnQkFBZ0I7WUFDaEIsa0NBQWtDO1lBQ2xDLHNCQUFzQjtZQUN0Qiw4QkFBOEI7WUFDOUIsYUFBYTtZQUNiLHFDQUFxQztZQUNyQyx5QkFBeUI7WUFDekIseUNBQXlDO1lBQ3pDLFdBQVc7WUFDWCxRQUFRO1lBQ1Isb0JBQW9CO1lBQ3BCLElBQUk7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBTztRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxZQUFpQyxFQUFFLFlBQXNCO1FBQ3hFLFlBQVksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLGVBQWU7WUFDaEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUNELHdCQUF3QixDQUFDLFlBQWlDLEVBQUUsZ0JBQW1DO1FBQzNGLElBQUksWUFBWSxDQUFDLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6RCxNQUFNO1lBQ04sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6RSxTQUFTO1lBQ1QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTztRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBdkZRLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdLQ2Q3QixtNkRBd0NBOzsyRkQxQmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTt5SUFHdEMsR0FBRztzQkFBWCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBCYmJUcmFuc2xhdGVQaXBlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ3JlYXRlQXBwR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtYXBwLWdyb3VwL2NyZWF0ZS1hcHAtZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwVGlsZUdyb3VwUGluIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdidC1waW4tdGlsZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGluLXRpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcGluLXRpbGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaW5UaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBhcHA6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBhcHBUaWxlR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcblxyXG4gICAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcGluOiBib29sZWFuO1xyXG4gICAgbmV3R3JvdXBEaWFsb2dSZWY6IERpYWxvZ1JlZjtcclxuICAgIG5ld0dyb3VwVGV4dCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGxcclxuICAgICAgICA/IHRoaXMuYmJiUGlwZS50cmFuc2Zvcm0oJ0dyb3VwcycpICsgJyAnICsgdGhpcy5iYmJQaXBlLnRyYW5zZm9ybSgnTmV3JylcclxuICAgICAgICA6IHRoaXMuYmJiUGlwZS50cmFuc2Zvcm0oJ05ldycpICsgJyAnICsgdGhpcy5iYmJQaXBlLnRyYW5zZm9ybSgnR3JvdXBzJyk7XHJcbiAgICBwaW5uZWRBcHBJblRpbGVHcm91cHM6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXTtcclxuICAgIH07XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHB1YmxpYyBfZGlhbG9nUmVmOiBEaWFsb2dSZWYsIHByaXZhdGUgYmJiUGlwZTogQmJiVHJhbnNsYXRlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5hcHAgPSBfZGlhbG9nUmVmLmRhdGEuYXBwO1xyXG4gICAgICAgIHRoaXMuYXBwVGlsZUdyb3VwcyA9IF9kaWFsb2dSZWYuZGF0YS5hcHBUaWxlR3JvdXBzO1xyXG4gICAgICAgIHRoaXMucGlubmVkQXBwSW5UaWxlR3JvdXBzID0gX2RpYWxvZ1JlZi5kYXRhLnBpbm5lZEFwcEluVGlsZUdyb3VwcztcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NldExvYWRpbmcodHJ1ZSk7XHJcbiAgICAgICAgY29uc3QgdGlsZUdyb3Vwc0lkID0gdGhpcy5waW5uZWRBcHBJblRpbGVHcm91cHNbdGhpcy5hcHAuSWRdO1xyXG4gICAgICAgIHRoaXMuYXBwVGlsZUdyb3Vwcy5mb3JFYWNoKChhcHBHcm91cCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXREZWZhdWx0UGluVGlsZShhcHBHcm91cCwgdGlsZUdyb3Vwc0lkKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9zZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgIH1cclxuICAgIG9uQWNjZXB0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFwcFRpbGVHcm91cHNQaW46IEFwcFRpbGVHcm91cFBpbltdID0gW107XHJcbiAgICAgICAgdGhpcy5hcHBUaWxlR3JvdXBzLmZvckVhY2goKGdyb3VwKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldENoYW5nZWRQaW5UaWxlR3JvdXBzKGdyb3VwLCBhcHBUaWxlR3JvdXBzUGluKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9jbG9zZSh7IGFwcFRpbGVHcm91cHNQaW4sIGFwcDogdGhpcy5hcHAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmV3R3JvdXAoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5uZXdHcm91cERpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihDcmVhdGVBcHBHcm91cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBkYXRhOiB7IHRpdGxlOiB0aGlzLm5ld0dyb3VwVGV4dCB9LFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIG1vYmlsZTogdGhpcy5tb2JpbGUsXHJcbiAgICAgICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMubmV3R3JvdXBEaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMuZGlhbG9nUmVmLmxvYWRpbmcodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vICAgdGhpcy50aWxlc1NlcnZpY2VcclxuICAgICAgICAgICAgLy8gICAgIC5jcmVhdGVBcHBHcm91cChyZXN1bHQpXHJcbiAgICAgICAgICAgIC8vICAgICAucGlwZShcclxuICAgICAgICAgICAgLy8gICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAvLyAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5kaWFsb2dSZWYubG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vICAgICApXHJcbiAgICAgICAgICAgIC8vICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIF9zZXRMb2FkaW5nKGxvYWRpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYubG9hZGluZyhsb2FkaW5nKTtcclxuICAgIH1cclxuICAgIF9zZXREZWZhdWx0UGluVGlsZShhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwsIHRpbGVHcm91cHNJZDogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgICAgICBhcHBUaWxlR3JvdXAuJFBpblRpbGUgPSBhcHBUaWxlR3JvdXAuJERlZmF1bHRQaW5UaWxlID1cclxuICAgICAgICAgICAgdGlsZUdyb3Vwc0lkLmluY2x1ZGVzKGFwcFRpbGVHcm91cC5JZCkgfHwgdGlsZUdyb3Vwc0lkLmluY2x1ZGVzKGFwcFRpbGVHcm91cC5Vc2VyQXBwVGlsZUdyb3VwU2V0dGluZz8uSWQpO1xyXG4gICAgICAgIGFwcFRpbGVHcm91cC4kQ2hpbGRyZW4/LmZvckVhY2goKHN1Ykdyb3VwKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldERlZmF1bHRQaW5UaWxlKHN1Ykdyb3VwLCB0aWxlR3JvdXBzSWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGFwcFRpbGVHcm91cC4kRGlzYWJsZWRwaW4gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIF9nZXRDaGFuZ2VkUGluVGlsZUdyb3VwcyhhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwsIGFwcFRpbGVHcm91cHNQaW46IEFwcFRpbGVHcm91cFBpbltdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGFwcFRpbGVHcm91cC4kUGluVGlsZSAmJiAhYXBwVGlsZUdyb3VwLiREZWZhdWx0UGluVGlsZSkge1xyXG4gICAgICAgICAgICAvLyBBZGRcclxuICAgICAgICAgICAgYXBwVGlsZUdyb3Vwc1Bpbi5wdXNoKHsgYXBwVGlsZUdyb3VwLCB2aXNpYmxlOiB0cnVlIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYXBwVGlsZUdyb3VwLiRQaW5UaWxlID09PSBmYWxzZSAmJiBhcHBUaWxlR3JvdXAuJERlZmF1bHRQaW5UaWxlKSB7XHJcbiAgICAgICAgICAgIC8vIFJlbW92ZVxyXG4gICAgICAgICAgICBhcHBUaWxlR3JvdXBzUGluLnB1c2goeyBhcHBUaWxlR3JvdXAsIHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhcHBUaWxlR3JvdXAuJENoaWxkcmVuPy5mb3JFYWNoKChzdWJHcm91cCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRDaGFuZ2VkUGluVGlsZUdyb3VwcyhzdWJHcm91cCwgYXBwVGlsZUdyb3Vwc1Bpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBfY2xvc2UocmVzdWx0Pyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxmZC1kaWFsb2c+XHJcbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICA8aDEgZmQtdGl0bGU+e3sgJ0FkZFRvTGlzdCcgfCBiYmJUcmFuc2xhdGUgfX08L2gxPlxyXG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgPGZkLWRpYWxvZy1ib2R5PlxyXG4gICAgICAgIDx1bCBmZC1saXN0IFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cInRydWVcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW1cIj5cclxuICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBbbmF2aWdhdGlvbkluZGljYXRvcl09XCJ0cnVlXCIgKGNsaWNrKT1cIm9uTmV3R3JvdXAoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJhZGRcIj48L2ZkLWljb24+PHNwYW4gZmQtbGlzdC10aXRsZT57eyBuZXdHcm91cFRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIEBmb3IgKGFwcFRpbGVHcm91cCBvZiBhcHBUaWxlR3JvdXBzOyB0cmFjayBhcHBUaWxlR3JvdXApIHsgQGlmICghYXBwVGlsZUdyb3VwLiREaXNhYmxlZHBpbikge1xyXG4gICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIFtzZWxlY3RlZF09XCJhcHBUaWxlR3JvdXAuJFBpblRpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveCBbKG5nTW9kZWwpXT1cImFwcFRpbGVHcm91cC4kUGluVGlsZVwiPjwvZmQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaXRsZSB8fCBhcHBUaWxlR3JvdXAuVGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH0gQGZvciAoc3ViR3JvdXAgb2YgYXBwVGlsZUdyb3VwLiRDaGlsZHJlbjsgdHJhY2sgc3ViR3JvdXApIHsgQGlmICghc3ViR3JvdXAuJERpc2FibGVkcGluKSB7XHJcbiAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gW3NlbGVjdGVkXT1cInN1Ykdyb3VwLiRQaW5UaWxlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJzdWJHcm91cC4kUGluVGlsZVwiPjwvZmQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IHN1Ykdyb3VwLm5hdmlnYXRvclRpdGxlIHx8IHN1Ykdyb3VwLlRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICB9IH0gfVxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxyXG5cclxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGZka0luaXRpYWxGb2N1cyBmZFR5cGU9XCJlbXBoYXNpemVkXCIgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIiAoY2xpY2spPVwib25BY2NlcHQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcclxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuPC9mZC1kaWFsb2c+XHJcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { forkJoin, of } from 'rxjs';
3
+ import { map, shareReplay } from 'rxjs/operators';
4
+ import { BarsaApi } from 'barsa-novin-ray-core';
5
+ import * as i0 from "@angular/core";
6
+ export class GroupTilesPipe {
7
+ transform(appGroup) {
8
+ const predefineTiles = appGroup.AppTiles;
9
+ if (predefineTiles?.length === 0) {
10
+ return of([]);
11
+ }
12
+ const predefine$ = of(predefineTiles);
13
+ const userDefine$ = of(appGroup.UserAppTileGroupSetting?.UserAppTilesSetting?.MoDataList);
14
+ return forkJoin([predefine$, userDefine$]).pipe(map(([s1, s2]) => [...s1, ...s2]), map((arrTiles) => {
15
+ const tempTiles = arrTiles.filter((c) => c.Visible).sort((a, b) => (a.OrderItem > b.OrderItem ? 1 : 0));
16
+ const group = { ...appGroup };
17
+ group.Title = BarsaApi.Common.Util.TryGetValue(group, 'UserAppTileGroupSetting.Title', group.Title);
18
+ group.OrderItem = BarsaApi.Common.Util.TryGetValue(group, 'UserAppTileGroupSetting.OrderItem', group.OrderItem);
19
+ return tempTiles;
20
+ }), shareReplay(1));
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GroupTilesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
23
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: GroupTilesPipe, name: "groupTiles" }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GroupTilesPipe, decorators: [{
26
+ type: Pipe,
27
+ args: [{
28
+ name: 'groupTiles'
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdGlsZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvcGlwZXMvZ3JvdXAtdGlsZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7O0FBU3JFLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFNBQVMsQ0FBQyxRQUE2QjtRQUNuQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksY0FBYyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFMUYsT0FBTyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDakMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLCtCQUErQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRyxLQUFLLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDOUMsS0FBSyxFQUNMLG1DQUFtQyxFQUNuQyxLQUFLLENBQUMsU0FBUyxDQUNsQixDQUFDO1lBRUYsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO0lBQ04sQ0FBQzs4R0F6QlEsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmludGVyZmFjZSBBcHBUaWxlTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIENvbXBvbmVudDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIFNlbGVjdG9yOiBzdHJpbmc7XHJcbn1cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2dyb3VwVGlsZXMnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cFRpbGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKGFwcEdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogT2JzZXJ2YWJsZTxBcHBUaWxlTW9kZWxbXT4ge1xyXG4gICAgICAgIGNvbnN0IHByZWRlZmluZVRpbGVzID0gYXBwR3JvdXAuQXBwVGlsZXM7XHJcbiAgICAgICAgaWYgKHByZWRlZmluZVRpbGVzPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJlZGVmaW5lJCA9IG9mKHByZWRlZmluZVRpbGVzKTtcclxuICAgICAgICBjb25zdCB1c2VyRGVmaW5lJCA9IG9mKGFwcEdyb3VwLlVzZXJBcHBUaWxlR3JvdXBTZXR0aW5nPy5Vc2VyQXBwVGlsZXNTZXR0aW5nPy5Nb0RhdGFMaXN0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFtwcmVkZWZpbmUkLCB1c2VyRGVmaW5lJF0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW3MxLCBzMl0pID0+IFsuLi5zMSwgLi4uczJdKSxcclxuICAgICAgICAgICAgbWFwKChhcnJUaWxlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGVtcFRpbGVzID0gYXJyVGlsZXMuZmlsdGVyKChjKSA9PiBjLlZpc2libGUpLnNvcnQoKGEsIGIpID0+IChhLk9yZGVySXRlbSA+IGIuT3JkZXJJdGVtID8gMSA6IDApKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0geyAuLi5hcHBHcm91cCB9O1xyXG4gICAgICAgICAgICAgICAgZ3JvdXAuVGl0bGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShncm91cCwgJ1VzZXJBcHBUaWxlR3JvdXBTZXR0aW5nLlRpdGxlJywgZ3JvdXAuVGl0bGUpO1xyXG4gICAgICAgICAgICAgICAgZ3JvdXAuT3JkZXJJdGVtID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAsXHJcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXJBcHBUaWxlR3JvdXBTZXR0aW5nLk9yZGVySXRlbScsXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuT3JkZXJJdGVtXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wVGlsZXM7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,17 +1,17 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class HomeGroupPipe {
4
- constructor() { }
5
- transform(appGroups) {
6
- return appGroups.filter((c) => c.navigatorTiles && c.navigatorTiles.length > 0);
7
- }
8
- }
9
- HomeGroupPipefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
- HomeGroupPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, name: "homeGroup" });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- name: 'homeGroup'
15
- }]
16
- }], ctorParameters: function () { return []; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1ncm91cC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9waXBlcy9ob21lLWdyb3VwLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLGdCQUFlLENBQUM7SUFDaEIsU0FBUyxDQUFDLFNBQWdDO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOzswR0FKUSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsV0FBVztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnaG9tZUdyb3VwJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZUdyb3VwUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG4gICAgdHJhbnNmb3JtKGFwcEdyb3VwczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gYXBwR3JvdXBzLmZpbHRlcigoYykgPT4gYy5uYXZpZ2F0b3JUaWxlcyAmJiBjLm5hdmlnYXRvclRpbGVzLmxlbmd0aCA+IDApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HomeGroupPipe {
4
+ constructor() { }
5
+ transform(appGroups) {
6
+ return appGroups.filter((c) => c.navigatorTiles && c.navigatorTiles.length > 0);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HomeGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { thispipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: HomeGroupPipe, name: "homeGroup" }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HomeGroupPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'homeGroup'
15
+ }]
16
+ }], ctorParameters: () => [] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1ncm91cC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9waXBlcy9ob21lLWdyb3VwLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLGdCQUFlLENBQUM7SUFDaEIsU0FBUyxDQUFDLFNBQWdDO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOzhHQUpRLGFBQWE7NEdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsV0FBVztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnaG9tZUdyb3VwJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZUdyb3VwUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG4gICAgdHJhbnNmb3JtKGFwcEdyb3VwczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gYXBwR3JvdXBzLmZpbHRlcigoYykgPT4gYy5uYXZpZ2F0b3JUaWxlcyAmJiBjLm5hdmlnYXRvclRpbGVzLmxlbmd0aCA+IDApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { BarsaApi } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ export class TileHomeFilterPipe {
5
+ transform(collection) {
6
+ return collection.filter((val) => this.matchFilter(val));
7
+ }
8
+ matchFilter(value) {
9
+ const match = Object.keys(value.Data).some((key) => {
10
+ if (key.startsWith('$')) {
11
+ return false;
12
+ }
13
+ if (key.startsWith('c')) {
14
+ return BarsaApi.Common.Util.TryGetValue(value, 'Data.' + key);
15
+ }
16
+ });
17
+ return match;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TileHomeFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: TileHomeFilterPipe, name: "tileHomeFilter" }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TileHomeFilterPipe, decorators: [{
23
+ type: Pipe,
24
+ args: [{
25
+ name: 'tileHomeFilter'
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1ob21lLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9waXBlcy90aWxlLWhvbWUtZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUtoRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFNBQVMsQ0FBQyxVQUFpQjtRQUN2QixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQUs7UUFDYixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBZFEsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd0aWxlSG9tZUZpbHRlcidcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbGVIb21lRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmZpbHRlcigodmFsKSA9PiB0aGlzLm1hdGNoRmlsdGVyKHZhbCkpO1xyXG4gICAgfVxyXG4gICAgbWF0Y2hGaWx0ZXIodmFsdWUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBtYXRjaCA9IE9iamVjdC5rZXlzKHZhbHVlLkRhdGEpLnNvbWUoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJyQnKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnYycpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodmFsdWUsICdEYXRhLicgKyBrZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TilePropPipe {
4
+ transform(data, prop, parameters) {
5
+ if (data) {
6
+ if (prop === 'Title') {
7
+ return data.TileTitle;
8
+ }
9
+ if (prop === 'Subtitle') {
10
+ return data.Subtitle;
11
+ }
12
+ if (prop === 'DynamicCommand') {
13
+ return data['DynamicCommand'];
14
+ }
15
+ const val = data.Component.Settings.TileSetting[prop];
16
+ if (typeof val === 'undefined') {
17
+ return data.Component.Settings[prop];
18
+ }
19
+ return val;
20
+ }
21
+ return parameters ? parameters.TileSetting[prop] : '';
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TilePropPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
24
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: TilePropPipe, name: "tileProp" }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TilePropPipe, decorators: [{
27
+ type: Pipe,
28
+ args: [{
29
+ name: 'tileProp'
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1wcm9wLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3BpcGVzL3RpbGUtcHJvcC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sWUFBWTtJQUNyQixTQUFTLENBQUMsSUFBUyxFQUFFLElBQVksRUFBRSxVQUFnQztRQUMvRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSSxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RELElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsQ0FBQzs4R0FuQlEsWUFBWTs0R0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxVQUFVO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd0aWxlUHJvcCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbGVQcm9wUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueSwgcHJvcDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHN0cmluZyB8IGFueSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdUaXRsZScpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLlRpbGVUaXRsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ1N1YnRpdGxlJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuU3VidGl0bGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdEeW5hbWljQ29tbWFuZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhWydEeW5hbWljQ29tbWFuZCddO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGRhdGEuQ29tcG9uZW50LlNldHRpbmdzLlRpbGVTZXR0aW5nW3Byb3BdO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLkNvbXBvbmVudC5TZXR0aW5nc1twcm9wXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGFyYW1ldGVycyA/IHBhcmFtZXRlcnMuVGlsZVNldHRpbmdbcHJvcF0gOiAnJztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FilterAppsGroupedPipe {
4
+ transform(value, term) {
5
+ return value?.filter((cat) => !!cat.Apps.filter((app) => app.$Caption.includes(term ?? ''))?.length);
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsGroupedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsGroupedPipe, isStandalone: true, name: "filterAppsGrouped", pure: false }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsGroupedPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'filterAppsGrouped',
14
+ standalone: true,
15
+ pure: false
16
+ }]
17
+ }] });
18
+ export class FilterAppsPipe {
19
+ transform(value, term) {
20
+ if (!Array.isArray(value) || !term) {
21
+ return value;
22
+ }
23
+ return value?.filter((app) => app.$Caption.includes(term));
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsPipe, isStandalone: true, name: "filterApps", pure: false }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FilterAppsPipe, decorators: [{
29
+ type: Pipe,
30
+ args: [{
31
+ name: 'filterApps',
32
+ standalone: true,
33
+ pure: false
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWFwcHMtZ3JvdXBlZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9wb3BvdmVyLWFwcC1maW5kZXIvZmlsdGVyLWFwcHMtZ3JvdXBlZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFNBQVMsQ0FBQyxLQUErQyxFQUFFLElBQVk7UUFDbkUsT0FBTyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pHLENBQUM7OEdBSFEscUJBQXFCOzRHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxLQUFLO2lCQUNkOztBQVlELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFNBQVMsQ0FBQyxLQUErQyxFQUFFLElBQVk7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBTlEsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUwxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLEtBQUs7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnZmlsdGVyQXBwc0dyb3VwZWQnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJBcHBzR3JvdXBlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHwgdW5kZWZpbmVkIHwgbnVsbCwgdGVybTogc3RyaW5nKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlPy5maWx0ZXIoKGNhdCkgPT4gISFjYXQuQXBwcy5maWx0ZXIoKGFwcCkgPT4gYXBwLiRDYXB0aW9uLmluY2x1ZGVzKHRlcm0gPz8gJycpKT8ubGVuZ3RoKTtcclxuICAgIH1cclxufVxyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2ZpbHRlckFwcHMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJBcHBzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gfCB1bmRlZmluZWQgfCBudWxsLCB0ZXJtOiBzdHJpbmcpOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gfCB1bmRlZmluZWQgfCBudWxsIHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8ICF0ZXJtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlPy5maWx0ZXIoKGFwcCkgPT4gYXBwLiRDYXB0aW9uLmluY2x1ZGVzKHRlcm0pKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,112 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
2
+ import { map, takeUntil } from 'rxjs/operators';
3
+ import { BaseComponent } from 'barsa-novin-ray-core';
4
+ import { PinTileComponent } from '../pin-tile/pin-tile.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@fundamental-ngx/core";
7
+ import * as i2 from "../app-finder.service";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@fundamental-ngx/core/content-density";
10
+ import * as i5 from "@fundamental-ngx/core/button";
11
+ import * as i6 from "@fundamental-ngx/core/form";
12
+ import * as i7 from "@fundamental-ngx/core/input-group";
13
+ import * as i8 from "@fundamental-ngx/core/list";
14
+ import * as i9 from "@fundamental-ngx/core/panel";
15
+ import * as i10 from "barsa-novin-ray-core";
16
+ import * as i11 from "@angular/common";
17
+ import * as i12 from "./filter-apps-grouped.pipe";
18
+ export class PopoverAppFinderComponent extends BaseComponent {
19
+ constructor(_cdr, _dialogService, _appFinderService, _el, _contentDensityService) {
20
+ super();
21
+ this._cdr = _cdr;
22
+ this._dialogService = _dialogService;
23
+ this._appFinderService = _appFinderService;
24
+ this._el = _el;
25
+ this.closeMenu = new EventEmitter();
26
+ this.isAllSelected = true;
27
+ this.contentDensity$ = _contentDensityService.contentDensity.asObservable();
28
+ this.appGroups$ = this._appFinderService.appGroups$.pipe(map((appGroups) => {
29
+ appGroups.forEach((cat) => {
30
+ this._appFinderService.loadAppsByAppGroup(appGroups, cat);
31
+ });
32
+ return appGroups;
33
+ }));
34
+ this.selectedAppGroup$ = this._appFinderService.selectedAppGroup$;
35
+ this.selectedAppGroupId$ = this._appFinderService.selectedAppGroupId$;
36
+ this.deviceSize$ = this._appFinderService.deviceSize$;
37
+ this.pinnedAppInAppTileGroups$ = this._appFinderService.pinnedAppInAppTileGroups$;
38
+ this.mobile$ = this.deviceSize$.pipe(map((c) => c === 's'));
39
+ }
40
+ ngOnInit() {
41
+ super.ngOnInit();
42
+ this.contentHeight = 'calc(' + this._el.nativeElement.offsetHeight + 'px - 2.75rem)';
43
+ this.sideContentSize$ = this.deviceSize$.pipe(takeUntil(this._onDestroy$), map((deviceSize) => {
44
+ switch (deviceSize) {
45
+ case 's':
46
+ return 'sm';
47
+ case 'm':
48
+ return 'md';
49
+ case 'l':
50
+ return 'lg';
51
+ case 'xl':
52
+ return 'xl';
53
+ default:
54
+ return 'l';
55
+ }
56
+ }));
57
+ }
58
+ onSelectedAppGroupChange(appGroupId) {
59
+ this._changeGroup(appGroupId);
60
+ }
61
+ onPinClick(app) {
62
+ const pinnedAppInTileGroups = this._appFinderService.loadPinnedAppInTileGroups(app);
63
+ const appTileGroups = this._appFinderService.appTileGroups;
64
+ const deviceSize = this._appFinderService.deviceSize;
65
+ const mobile = deviceSize === 's';
66
+ this._dialogService
67
+ .open(PinTileComponent, {
68
+ data: { app, pinnedAppInTileGroups, appTileGroups },
69
+ minWidth: '350px',
70
+ minHeight: '420px',
71
+ draggable: false,
72
+ mobile,
73
+ resizable: false,
74
+ verticalPadding: false,
75
+ backdropClickCloseable: false
76
+ })
77
+ .afterClosed.subscribe((result) => {
78
+ this._appTileGroupsPinChange(result);
79
+ });
80
+ }
81
+ onRefresh() { }
82
+ async _appTileGroupsPinChange(result) {
83
+ try {
84
+ // Will try to ask for permission
85
+ this._appFinderService.pinTileChanged(result.appTileGroupsPin, result.app, () => {
86
+ this._cdr.detectChanges();
87
+ });
88
+ }
89
+ catch (err) {
90
+ // show msg error
91
+ }
92
+ finally {
93
+ // show toast successful
94
+ }
95
+ }
96
+ _changeGroup(appGroupId) {
97
+ this.isAllSelected = false;
98
+ this._appFinderService.selectAppGroup(appGroupId);
99
+ this._cdr.detectChanges();
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: PopoverAppFinderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DialogService }, { token: i2.AppFinderService }, { token: i0.ElementRef }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: PopoverAppFinderComponent, selector: "bt-popover-app-finder", outputs: { closeMenu: "closeMenu" }, host: { classAttribute: "!tw-min-h-min" }, usesInheritance: true, ngImport: i0, template: "<!--@for (cat of appGroups$ | async; track cat.Id) {-->\n<!-- <div class=\"px-4 py-2 font-lg\">-->\n<!-- <p class=\"font-bold\">{{ cat.$Caption }}</p>-->\n<!-- </div>-->\n<!-- <div class=\"grid grid-cols-4 gap-2 p-2\">-->\n<!-- @for (app of cat.Apps; track app.Id) {-->\n<!-- <div class=\"flex flex-col items-center w-24 gap-1 border border-transparent hover:border-gray-300 bg-transparent hover:bg-gray-100 transition-all rounded-lg p-2 cursor-pointer\">-->\n<!-- <div class=\"size-12 rounded-full bg-gray-300\"></div>-->\n<!-- <span class=\"truncate w-20 text-center\">-->\n<!-- {{ app.$Caption }}</span>-->\n<!-- </div>-->\n<!-- }-->\n<!-- </div>-->\n<!--}-->\n<div>\n <div class=\"!tw-px-4 !tw-pt-2\" fd-form-item>\n <fd-input-group\n glyph=\"decline\"\n glyphAriaLabel=\"Clear\"\n placeholder=\"\u062C\u0633\u062A\u062C\u0648\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n (addOnButtonClicked)=\"searchTerm = ''\"\n >\n </fd-input-group>\n </div>\n @for (cat of appGroups$ | async | filterAppsGrouped:searchTerm; track cat.Id) {\n <fd-panel\n fdCompact\n expandAriaLabel=\"Panel Expand\"\n expandAriaLabelledBy=\"panel-compact-1\"\n [expanded]=\"!!searchTerm?.length\"\n >\n <h5 fd-panel-title id=\"panel-compact-1\">{{ cat.Title }}</h5>\n <div fd-panel-content ariaLabel=\"Panel Content\" id=\"panel-content-3\" class=\"!p-0\">\n <ul fd-list [noBorder]=\"false\">\n @for (app of cat.Apps | filterApps:searchTerm; track app.Id) {\n <li fd-list-item>\n <a fd-list-link [navigated]=\"true\" [dynCommand]=\"app.DynamicCommand\" (click)=\"closeMenu.emit()\">\n <i fd-list-icon glyph=\"history\"></i>\n <span fd-list-title>{{ app.Title }}</span>\n <span fd-list-secondary>\n @if(pinnedAppInAppTileGroups$ | async; as pinnedAppInAppTileGroups) {\n <button\n ariaLabel=\"Bookmark\"\n fdType=\"transparent\"\n title=\"Bookmark\"\n fd-button\n [glyph]=\"'pushpin-off'\"\n [fdType]=\"\n pinnedAppInAppTileGroups[app.Id]\n ? pinnedAppInAppTileGroups[app.Id].length\n ? 'emphasized'\n : 'transparent'\n : app.$HasPinned\n ? 'emphasized'\n : 'transparent'\n \"\n (click)=\"$event.stopPropagation(); onPinClick(app)\"\n ></button>\n }\n </span>\n </a>\n </li>\n }\n </ul>\n </div>\n </fd-panel>\n }\n</div>\n", styles: [":host{display:block;min-height:100vh}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i8.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role"] }, { kind: "directive", type: i8.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i9.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: i9.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "directive", type: i9.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "directive", type: i10.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.FilterAppsGroupedPipe, name: "filterAppsGrouped" }, { kind: "pipe", type: i12.FilterAppsPipe, name: "filterApps" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: PopoverAppFinderComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'bt-popover-app-finder', changeDetection: ChangeDetectionStrategy.OnPush, host: {
107
+ class: '!tw-min-h-min'
108
+ }, template: "<!--@for (cat of appGroups$ | async; track cat.Id) {-->\n<!-- <div class=\"px-4 py-2 font-lg\">-->\n<!-- <p class=\"font-bold\">{{ cat.$Caption }}</p>-->\n<!-- </div>-->\n<!-- <div class=\"grid grid-cols-4 gap-2 p-2\">-->\n<!-- @for (app of cat.Apps; track app.Id) {-->\n<!-- <div class=\"flex flex-col items-center w-24 gap-1 border border-transparent hover:border-gray-300 bg-transparent hover:bg-gray-100 transition-all rounded-lg p-2 cursor-pointer\">-->\n<!-- <div class=\"size-12 rounded-full bg-gray-300\"></div>-->\n<!-- <span class=\"truncate w-20 text-center\">-->\n<!-- {{ app.$Caption }}</span>-->\n<!-- </div>-->\n<!-- }-->\n<!-- </div>-->\n<!--}-->\n<div>\n <div class=\"!tw-px-4 !tw-pt-2\" fd-form-item>\n <fd-input-group\n glyph=\"decline\"\n glyphAriaLabel=\"Clear\"\n placeholder=\"\u062C\u0633\u062A\u062C\u0648\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n (addOnButtonClicked)=\"searchTerm = ''\"\n >\n </fd-input-group>\n </div>\n @for (cat of appGroups$ | async | filterAppsGrouped:searchTerm; track cat.Id) {\n <fd-panel\n fdCompact\n expandAriaLabel=\"Panel Expand\"\n expandAriaLabelledBy=\"panel-compact-1\"\n [expanded]=\"!!searchTerm?.length\"\n >\n <h5 fd-panel-title id=\"panel-compact-1\">{{ cat.Title }}</h5>\n <div fd-panel-content ariaLabel=\"Panel Content\" id=\"panel-content-3\" class=\"!p-0\">\n <ul fd-list [noBorder]=\"false\">\n @for (app of cat.Apps | filterApps:searchTerm; track app.Id) {\n <li fd-list-item>\n <a fd-list-link [navigated]=\"true\" [dynCommand]=\"app.DynamicCommand\" (click)=\"closeMenu.emit()\">\n <i fd-list-icon glyph=\"history\"></i>\n <span fd-list-title>{{ app.Title }}</span>\n <span fd-list-secondary>\n @if(pinnedAppInAppTileGroups$ | async; as pinnedAppInAppTileGroups) {\n <button\n ariaLabel=\"Bookmark\"\n fdType=\"transparent\"\n title=\"Bookmark\"\n fd-button\n [glyph]=\"'pushpin-off'\"\n [fdType]=\"\n pinnedAppInAppTileGroups[app.Id]\n ? pinnedAppInAppTileGroups[app.Id].length\n ? 'emphasized'\n : 'transparent'\n : app.$HasPinned\n ? 'emphasized'\n : 'transparent'\n \"\n (click)=\"$event.stopPropagation(); onPinClick(app)\"\n ></button>\n }\n </span>\n </a>\n </li>\n }\n </ul>\n </div>\n </fd-panel>\n }\n</div>\n", styles: [":host{display:block;min-height:100vh}\n"] }]
109
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DialogService }, { type: i2.AppFinderService }, { type: i0.ElementRef }, { type: i1.ContentDensityService }], propDecorators: { closeMenu: [{
110
+ type: Output
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hcHAtZmluZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvcG9wb3Zlci1hcHAtZmluZGVyL3BvcG92ZXItYXBwLWZpbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3BvcG92ZXItYXBwLWZpbmRlci9wb3BvdmVyLWFwcC1maW5kZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hELE9BQU8sRUFBRSxhQUFhLEVBQThDLE1BQU0sc0JBQXNCLENBQUM7QUFHakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBV2xFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBZ0J4RCxZQUNZLElBQXVCLEVBQ3ZCLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUNuQyxHQUFlLEVBQ3ZCLHNCQUE2QztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQU5BLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQW5CakIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0Msa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFxQmpCLElBQUksQ0FBQyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVFLElBQUks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QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxTQUFTLEtBQVUsQ0FBQztJQUNwQixLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFHN0I7UUFDRyxJQUFJLENBQUM7WUFDRCxpQ0FBaUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNYLGlCQUFpQjtRQUNyQixDQUFDO2dCQUFTLENBQUM7WUFDUCx3QkFBd0I7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDTyxZQUFZLENBQUMsVUFBa0I7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBNUdRLHlCQUF5QjtrR0FBekIseUJBQXlCLG9LQzNCdEMsK3dHQXVFQTs7MkZENUNhLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCOzhNQUdTLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgTWV0YW9iamVjdERhdGFNb2RlbCwgQWJicmV2YXRpb25EZXZpY2VTaXplIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQXBwRmluZGVyU2VydmljZSB9IGZyb20gJy4uL2FwcC1maW5kZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBUaWxlR3JvdXBQaW4gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgUGluVGlsZUNvbXBvbmVudCB9IGZyb20gJy4uL3Bpbi10aWxlL3Bpbi10aWxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtcG9wb3Zlci1hcHAtZmluZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci1hcHAtZmluZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLWFwcC1maW5kZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnIXR3LW1pbi1oLW1pbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJBcHBGaW5kZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgY2xvc2VNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIHNlbGVjdGVkR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgaXNBbGxTZWxlY3RlZCA9IHRydWU7XG4gICAgYXBwR3JvdXBzJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10gfCB1bmRlZmluZWQ+O1xuICAgIGFwcFRpbGVHcm91cHMkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgc2lkZUNvbnRlbnRTaXplJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgc2VsZWN0ZWRBcHBHcm91cCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IHVuZGVmaW5lZD47XG4gICAgc2VsZWN0ZWRBcHBHcm91cElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIG1vYmlsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY29udGVudEhlaWdodDogc3RyaW5nO1xuICAgIHBpbm5lZEFwcEluQXBwVGlsZUdyb3VwcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nW10+PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9hcHBGaW5kZXJTZXJ2aWNlOiBBcHBGaW5kZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gX2NvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5hcHBHcm91cHMkID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5hcHBHcm91cHMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGFwcEdyb3VwcykgPT4ge1xuICAgICAgICAgICAgICAgIGFwcEdyb3Vwcy5mb3JFYWNoKChjYXQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwRmluZGVyU2VydmljZS5sb2FkQXBwc0J5QXBwR3JvdXAoYXBwR3JvdXBzLCBjYXQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHBHcm91cHM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQXBwR3JvdXAkID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5zZWxlY3RlZEFwcEdyb3VwJDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFwcEdyb3VwSWQkID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5zZWxlY3RlZEFwcEdyb3VwSWQkO1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5kZXZpY2VTaXplJDtcbiAgICAgICAgdGhpcy5waW5uZWRBcHBJbkFwcFRpbGVHcm91cHMkID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5waW5uZWRBcHBJbkFwcFRpbGVHcm91cHMkO1xuICAgICAgICB0aGlzLm1vYmlsZSQgPSB0aGlzLmRldmljZVNpemUkLnBpcGUobWFwKChjKSA9PiBjID09PSAncycpKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLmNvbnRlbnRIZWlnaHQgPSAnY2FsYygnICsgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHggLSAyLjc1cmVtKSc7XG5cbiAgICAgICAgdGhpcy5zaWRlQ29udGVudFNpemUkID0gdGhpcy5kZXZpY2VTaXplJC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgbWFwKChkZXZpY2VTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChkZXZpY2VTaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdzbSc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdtZCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdsZyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneGwnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdsJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uU2VsZWN0ZWRBcHBHcm91cENoYW5nZShhcHBHcm91cElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlR3JvdXAoYXBwR3JvdXBJZCk7XG4gICAgfVxuXG4gICAgb25QaW5DbGljayhhcHA6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGlubmVkQXBwSW5UaWxlR3JvdXBzID0gdGhpcy5fYXBwRmluZGVyU2VydmljZS5sb2FkUGlubmVkQXBwSW5UaWxlR3JvdXBzKGFwcCk7XG4gICAgICAgIGNvbnN0IGFwcFRpbGVHcm91cHMgPSB0aGlzLl9hcHBGaW5kZXJTZXJ2aWNlLmFwcFRpbGVHcm91cHM7XG4gICAgICAgIGNvbnN0IGRldmljZVNpemUgPSB0aGlzLl9hcHBGaW5kZXJTZXJ2aWNlLmRldmljZVNpemU7XG4gICAgICAgIGNvbnN0IG1vYmlsZSA9IGRldmljZVNpemUgPT09ICdzJztcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW4oUGluVGlsZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIGRhdGE6IHsgYXBwLCBwaW5uZWRBcHBJblRpbGVHcm91cHMsIGFwcFRpbGVHcm91cHMgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzM1MHB4JyxcbiAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6ICc0MjBweCcsXG4gICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtb2JpbGUsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXBwVGlsZUdyb3Vwc1BpbkNoYW5nZShyZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUmVmcmVzaCgpOiB2b2lkIHt9XG4gICAgYXN5bmMgX2FwcFRpbGVHcm91cHNQaW5DaGFuZ2UocmVzdWx0OiB7XG4gICAgICAgIGFwcFRpbGVHcm91cHNQaW46IEFwcFRpbGVHcm91cFBpbltdO1xuICAgICAgICBhcHA6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2lsbCB0cnkgdG8gYXNrIGZvciBwZXJtaXNzaW9uXG4gICAgICAgICAgICB0aGlzLl9hcHBGaW5kZXJTZXJ2aWNlLnBpblRpbGVDaGFuZ2VkKHJlc3VsdC5hcHBUaWxlR3JvdXBzUGluLCByZXN1bHQuYXBwLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIHNob3cgbXNnIGVycm9yXG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAvLyBzaG93IHRvYXN0IHN1Y2Nlc3NmdWxcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VHcm91cChhcHBHcm91cElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2FwcEZpbmRlclNlcnZpY2Uuc2VsZWN0QXBwR3JvdXAoYXBwR3JvdXBJZCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPCEtLUBmb3IgKGNhdCBvZiBhcHBHcm91cHMkIHwgYXN5bmM7IHRyYWNrIGNhdC5JZCkgey0tPlxuPCEtLSAgICA8ZGl2IGNsYXNzPVwicHgtNCBweS0yIGZvbnQtbGdcIj4tLT5cbjwhLS0gICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgY2F0LiRDYXB0aW9uIH19PC9wPi0tPlxuPCEtLSAgICA8L2Rpdj4tLT5cbjwhLS0gICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTQgZ2FwLTIgcC0yXCI+LS0+XG48IS0tICAgICAgICBAZm9yIChhcHAgb2YgY2F0LkFwcHM7IHRyYWNrIGFwcC5JZCkgey0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB3LTI0IGdhcC0xIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgaG92ZXI6Ym9yZGVyLWdyYXktMzAwIGJnLXRyYW5zcGFyZW50IGhvdmVyOmJnLWdyYXktMTAwIHRyYW5zaXRpb24tYWxsIHJvdW5kZWQtbGcgcC0yIGN1cnNvci1wb2ludGVyXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLTEyIHJvdW5kZWQtZnVsbCBiZy1ncmF5LTMwMFwiPjwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHctMjAgdGV4dC1jZW50ZXJcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAge3sgYXBwLiRDYXB0aW9uIH19PC9zcGFuPi0tPlxuPCEtLSAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgfS0tPlxuPCEtLSAgICA8L2Rpdj4tLT5cbjwhLS19LS0+XG48ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCIhdHctcHgtNCAhdHctcHQtMlwiIGZkLWZvcm0taXRlbT5cbiAgICAgICAgPGZkLWlucHV0LWdyb3VwXG4gICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cItis2LPYqtis2YhcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJzZWFyY2hUZXJtID0gJydcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XG4gICAgPC9kaXY+XG4gICAgQGZvciAoY2F0IG9mIGFwcEdyb3VwcyQgfCBhc3luYyB8IGZpbHRlckFwcHNHcm91cGVkOnNlYXJjaFRlcm07IHRyYWNrIGNhdC5JZCkge1xuICAgIDxmZC1wYW5lbFxuICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgZXhwYW5kQXJpYUxhYmVsPVwiUGFuZWwgRXhwYW5kXCJcbiAgICAgICAgZXhwYW5kQXJpYUxhYmVsbGVkQnk9XCJwYW5lbC1jb21wYWN0LTFcIlxuICAgICAgICBbZXhwYW5kZWRdPVwiISFzZWFyY2hUZXJtPy5sZW5ndGhcIlxuICAgID5cbiAgICAgICAgPGg1IGZkLXBhbmVsLXRpdGxlIGlkPVwicGFuZWwtY29tcGFjdC0xXCI+e3sgY2F0LlRpdGxlIH19PC9oNT5cbiAgICAgICAgPGRpdiBmZC1wYW5lbC1jb250ZW50IGFyaWFMYWJlbD1cIlBhbmVsIENvbnRlbnRcIiBpZD1cInBhbmVsLWNvbnRlbnQtM1wiIGNsYXNzPVwiIXAtMFwiPlxuICAgICAgICAgICAgPHVsIGZkLWxpc3QgW25vQm9yZGVyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoYXBwIG9mIGNhdC5BcHBzIHwgZmlsdGVyQXBwczpzZWFyY2hUZXJtOyB0cmFjayBhcHAuSWQpIHtcbiAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW25hdmlnYXRlZF09XCJ0cnVlXCIgW2R5bkNvbW1hbmRdPVwiYXBwLkR5bmFtaWNDb21tYW5kXCIgKGNsaWNrKT1cImNsb3NlTWVudS5lbWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImhpc3RvcnlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGFwcC5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3Qtc2Vjb25kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwaW5uZWRBcHBJbkFwcFRpbGVHcm91cHMkIHwgYXN5bmM7IGFzIHBpbm5lZEFwcEluQXBwVGlsZUdyb3Vwcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiQm9va21hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQm9va21hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidwdXNocGluLW9mZidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkQXBwSW5BcHBUaWxlR3JvdXBzW2FwcC5JZF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBpbm5lZEFwcEluQXBwVGlsZUdyb3Vwc1thcHAuSWRdLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdlbXBoYXNpemVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFwcC4kSGFzUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZW1waGFzaXplZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgb25QaW5DbGljayhhcHApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLXBhbmVsPlxuICAgIH1cbjwvZGl2PlxuIl19