@alfresco/adf-process-services-cloud 8.1.0-15972188736 → 8.1.0-15979090800

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/esm2022/adf-process-services-cloud.mjs +5 -0
  2. package/esm2022/lib/app/app-list-cloud.module.mjs +20 -0
  3. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +67 -0
  4. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +125 -0
  5. package/esm2022/lib/app/models/application-instance.model.mjs +24 -0
  6. package/esm2022/lib/app/public-api.mjs +22 -0
  7. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +97 -0
  8. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +163 -0
  9. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +97 -0
  10. package/esm2022/lib/common/index.mjs +18 -0
  11. package/esm2022/lib/common/interface/environment.interface.mjs +18 -0
  12. package/esm2022/lib/common/interface/index.mjs +18 -0
  13. package/esm2022/lib/common/interface/public-api.mjs +18 -0
  14. package/esm2022/lib/common/public-api.mjs +19 -0
  15. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +57 -0
  16. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +31 -0
  17. package/esm2022/lib/form/components/form-cloud.component.mjs +415 -0
  18. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +53 -0
  19. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +35 -0
  20. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +249 -0
  21. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +136 -0
  22. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +107 -0
  23. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +120 -0
  24. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +122 -0
  25. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +189 -0
  26. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +85 -0
  27. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +80 -0
  28. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +463 -0
  29. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +29 -0
  30. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +46 -0
  31. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +82 -0
  32. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +91 -0
  33. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +81 -0
  34. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +53 -0
  35. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +86 -0
  36. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +116 -0
  37. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +187 -0
  38. package/esm2022/lib/form/form-cloud.module.mjs +103 -0
  39. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +48 -0
  40. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +28 -0
  41. package/esm2022/lib/form/public-api.mjs +44 -0
  42. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +120 -0
  43. package/esm2022/lib/form/services/display-mode.service.mjs +146 -0
  44. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +18 -0
  45. package/esm2022/lib/form/services/form-cloud.service.mjs +201 -0
  46. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +18 -0
  47. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +51 -0
  48. package/esm2022/lib/form/services/form-utils.service.mjs +37 -0
  49. package/esm2022/lib/form/services/process-cloud-content.service.mjs +71 -0
  50. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +52 -0
  51. package/esm2022/lib/group/components/group-cloud.component.mjs +423 -0
  52. package/esm2022/lib/group/group-cloud.module.mjs +33 -0
  53. package/esm2022/lib/group/models/identity-group.model.mjs +18 -0
  54. package/esm2022/lib/group/public-api.mjs +21 -0
  55. package/esm2022/lib/group/services/identity-group.service.mjs +89 -0
  56. package/esm2022/lib/models/application-version.model.mjs +21 -0
  57. package/esm2022/lib/models/constant-values.type.mjs +18 -0
  58. package/esm2022/lib/models/data-column-custom-data.mjs +18 -0
  59. package/esm2022/lib/models/date-cloud-filter.model.mjs +31 -0
  60. package/esm2022/lib/models/date-format-cloud.model.mjs +18 -0
  61. package/esm2022/lib/models/engine-event-cloud.model.mjs +18 -0
  62. package/esm2022/lib/models/filter-cloud-model.mjs +128 -0
  63. package/esm2022/lib/models/process-definition-cloud.model.mjs +32 -0
  64. package/esm2022/lib/models/process-instance-variable.model.mjs +18 -0
  65. package/esm2022/lib/models/process-variable-filter.model.mjs +18 -0
  66. package/esm2022/lib/models/task-cloud.model.mjs +23 -0
  67. package/esm2022/lib/models/task-list-sorting.model.mjs +40 -0
  68. package/esm2022/lib/models/variable-definition.mjs +18 -0
  69. package/esm2022/lib/people/components/people-cloud.component.mjs +498 -0
  70. package/esm2022/lib/people/models/identity-user.model.mjs +18 -0
  71. package/esm2022/lib/people/people-cloud.module.mjs +33 -0
  72. package/esm2022/lib/people/public-api.mjs +21 -0
  73. package/esm2022/lib/people/services/identity-user.service.mjs +119 -0
  74. package/esm2022/lib/process/process-cloud.module.mjs +40 -0
  75. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +801 -0
  76. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +58 -0
  77. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +292 -0
  78. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +170 -0
  79. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +44 -0
  80. package/esm2022/lib/process/process-filters/public-api.mjs +23 -0
  81. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +408 -0
  82. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +137 -0
  83. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +33 -0
  84. package/esm2022/lib/process/process-header/public-api.mjs +19 -0
  85. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +593 -0
  86. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +31 -0
  87. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +18 -0
  88. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +24 -0
  89. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +37 -0
  90. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +107 -0
  91. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +40 -0
  92. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +45 -0
  93. package/esm2022/lib/process/process-list/public-api.mjs +25 -0
  94. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +253 -0
  95. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +109 -0
  96. package/esm2022/lib/process/public-api.mjs +23 -0
  97. package/esm2022/lib/process/services/process-cloud.service.mjs +105 -0
  98. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +480 -0
  99. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +18 -0
  100. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +26 -0
  101. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +26 -0
  102. package/esm2022/lib/process/start-process/public-api.mjs +21 -0
  103. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +125 -0
  104. package/esm2022/lib/process-services-cloud.module.mjs +91 -0
  105. package/esm2022/lib/rich-text-editor/editorjs-config.mjs +101 -0
  106. package/esm2022/lib/rich-text-editor/index.mjs +18 -0
  107. package/esm2022/lib/rich-text-editor/public-api.mjs +19 -0
  108. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +80 -0
  109. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +33 -0
  110. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +186 -0
  111. package/esm2022/lib/screen/models/screen-cloud.model.mjs +18 -0
  112. package/esm2022/lib/screen/public-api.mjs +18 -0
  113. package/esm2022/lib/services/base-cloud.service.mjs +83 -0
  114. package/esm2022/lib/services/cloud-token.service.mjs +23 -0
  115. package/esm2022/lib/services/form-fields.interfaces.mjs +55 -0
  116. package/esm2022/lib/services/local-preference-cloud.service.mjs +122 -0
  117. package/esm2022/lib/services/notification-cloud.service.mjs +45 -0
  118. package/esm2022/lib/services/preference-cloud.interface.mjs +18 -0
  119. package/esm2022/lib/services/public-api.mjs +28 -0
  120. package/esm2022/lib/services/screen-rendering.service.mjs +30 -0
  121. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +18 -0
  122. package/esm2022/lib/services/user-preference-cloud.service.mjs +105 -0
  123. package/esm2022/lib/services/variable-mapper.sevice.mjs +77 -0
  124. package/esm2022/lib/services/web-socket.service.mjs +146 -0
  125. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +32 -0
  126. package/esm2022/lib/task/models/task-details-cloud.model.mjs +26 -0
  127. package/esm2022/lib/task/models/task.model.mjs +23 -0
  128. package/esm2022/lib/task/public-api.mjs +26 -0
  129. package/esm2022/lib/task/services/task-cloud.service.mjs +272 -0
  130. package/esm2022/lib/task/task-cloud.module.mjs +45 -0
  131. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +59 -0
  132. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +467 -0
  133. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +205 -0
  134. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +317 -0
  135. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +146 -0
  136. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +142 -0
  137. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +72 -0
  138. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +255 -0
  139. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +207 -0
  140. package/esm2022/lib/task/task-filters/public-api.mjs +27 -0
  141. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +283 -0
  142. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +392 -0
  143. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +56 -0
  144. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +214 -0
  145. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +89 -0
  146. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +283 -0
  147. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +101 -0
  148. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +87 -0
  149. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +78 -0
  150. package/esm2022/lib/task/task-form/public-api.mjs +21 -0
  151. package/esm2022/lib/task/task-form/task-form.module.mjs +36 -0
  152. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +280 -0
  153. package/esm2022/lib/task/task-header/public-api.mjs +19 -0
  154. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +33 -0
  155. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +331 -0
  156. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +115 -0
  157. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +31 -0
  158. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +389 -0
  159. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +18 -0
  160. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +18 -0
  161. package/esm2022/lib/task/task-list/public-api.mjs +23 -0
  162. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +115 -0
  163. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +178 -0
  164. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +57 -0
  165. package/esm2022/lib/types.mjs +18 -0
  166. package/esm2022/public-api.mjs +40 -0
  167. package/fesm2022/adf-process-services-cloud.mjs +355 -350
  168. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  169. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  170. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  171. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  172. package/package.json +6 -4
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLXByb2Nlc3Mtc2VydmljZXMtY2xvdWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvYWRmLXByb2Nlc3Mtc2VydmljZXMtY2xvdWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { AppDetailsCloudComponent } from './components/app-details-cloud/app-details-cloud.component';
18
+ import { AppListCloudComponent } from './components/app-list-cloud/app-list-cloud.component';
19
+ export const APP_LIST_CLOUD_DIRECTIVES = [AppListCloudComponent, AppDetailsCloudComponent];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxpc3QtY2xvdWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9hcHAvYXBwLWxpc3QtY2xvdWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMscUJBQXFCLEVBQUUsd0JBQXdCLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQXBwRGV0YWlsc0Nsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1kZXRhaWxzLWNsb3VkL2FwcC1kZXRhaWxzLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBMaXN0Q2xvdWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWxpc3QtY2xvdWQvYXBwLWxpc3QtY2xvdWQuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEFQUF9MSVNUX0NMT1VEX0RJUkVDVElWRVMgPSBbQXBwTGlzdENsb3VkQ29tcG9uZW50LCBBcHBEZXRhaWxzQ2xvdWRDb21wb25lbnRdIGFzIGNvbnN0O1xuIl19
@@ -0,0 +1,67 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
18
+ import { DEFAULT_APP_INSTANCE_ICON, DEFAULT_APP_INSTANCE_THEME } from '../../models/application-instance.model';
19
+ import { CommonModule } from '@angular/common';
20
+ import { TranslatePipe } from '@ngx-translate/core';
21
+ import { MatIconModule } from '@angular/material/icon';
22
+ import { MatCardModule } from '@angular/material/card';
23
+ import * as i0 from "@angular/core";
24
+ import * as i1 from "@angular/common";
25
+ import * as i2 from "@angular/material/icon";
26
+ import * as i3 from "@angular/material/card";
27
+ export class AppDetailsCloudComponent {
28
+ constructor() {
29
+ this.selectedApp = new EventEmitter();
30
+ }
31
+ /**
32
+ * Pass the selected app as next
33
+ *
34
+ * @param app application model
35
+ */
36
+ onSelectApp(app) {
37
+ this.selectedApp.emit(app);
38
+ }
39
+ /**
40
+ * Get application instance theme
41
+ *
42
+ * @returns the name of the theme
43
+ */
44
+ getTheme() {
45
+ return this.applicationInstance.theme || DEFAULT_APP_INSTANCE_THEME;
46
+ }
47
+ /**
48
+ * Get application instance icon
49
+ *
50
+ * @returns the name of the icon
51
+ */
52
+ getIcon() {
53
+ return this.applicationInstance.icon || DEFAULT_APP_INSTANCE_ICON;
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppDetailsCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AppDetailsCloudComponent, isStandalone: true, selector: "adf-cloud-app-details", inputs: { applicationInstance: "applicationInstance" }, outputs: { selectedApp: "selectedApp" }, ngImport: i0, template: "<div class=\"adf-app-listgrid\">\n <div class=\"adf-app-listgrid-item\">\n <mat-card\n appearance=\"outlined\"\n tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{applicationInstance.name}}\"\n [ngClass]=\"getTheme()\"\n (click)=\"onSelectApp(applicationInstance)\"\n (keyup.enter)=\"onSelectApp(applicationInstance)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{ getIcon() }}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1 class=\"adf-app-listgrid-item-card-title-text\">{{applicationInstance.name}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{applicationInstance.description}}</div>\n </mat-card-subtitle>\n </mat-card>\n </div>\n </div>\n", styles: ["adf-cloud-app-details .adf-app-listgrid{padding:8px;display:block}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:unset;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card{outline:none;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;flex-direction:column;box-sizing:border-box;display:flex;padding:0;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1{background-color:#269abc}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8{background-color:#a17299}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9{background-color:#696c67}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card:hover{box-shadow:0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f,0 5px 5px -3px #0003;cursor:pointer;transform:scale(1.015)}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text){padding:16px;margin-bottom:0;z-index:9999}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text) h1{color:#fff;width:80%;font-size:var(--theme-headline-font-size);margin:0;line-height:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp){color:#fff;z-index:9999;padding:16px;flex:1 0 auto}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;height:3.7125em}}@supports not (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{white-space:nowrap;width:100%}}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions{padding:0 16px 16px;border-top:1px solid rgba(0,0,0,.1);min-height:48px;box-sizing:border-box}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions-icon{color:#e9f1f3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }], encapsulation: i0.ViewEncapsulation.None }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppDetailsCloudComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'adf-cloud-app-details', standalone: true, imports: [CommonModule, TranslatePipe, MatIconModule, MatCardModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-app-listgrid\">\n <div class=\"adf-app-listgrid-item\">\n <mat-card\n appearance=\"outlined\"\n tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{applicationInstance.name}}\"\n [ngClass]=\"getTheme()\"\n (click)=\"onSelectApp(applicationInstance)\"\n (keyup.enter)=\"onSelectApp(applicationInstance)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{ getIcon() }}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1 class=\"adf-app-listgrid-item-card-title-text\">{{applicationInstance.name}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{applicationInstance.description}}</div>\n </mat-card-subtitle>\n </mat-card>\n </div>\n </div>\n", styles: ["adf-cloud-app-details .adf-app-listgrid{padding:8px;display:block}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:unset;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card{outline:none;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;flex-direction:column;box-sizing:border-box;display:flex;padding:0;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1{background-color:#269abc}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8{background-color:#a17299}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9{background-color:#696c67}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card:hover{box-shadow:0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f,0 5px 5px -3px #0003;cursor:pointer;transform:scale(1.015)}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text){padding:16px;margin-bottom:0;z-index:9999}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text) h1{color:#fff;width:80%;font-size:var(--theme-headline-font-size);margin:0;line-height:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp){color:#fff;z-index:9999;padding:16px;flex:1 0 auto}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;height:3.7125em}}@supports not (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{white-space:nowrap;width:100%}}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions{padding:0 16px 16px;border-top:1px solid rgba(0,0,0,.1);min-height:48px;box-sizing:border-box}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions-icon{color:#e9f1f3}\n"] }]
61
+ }], propDecorators: { applicationInstance: [{
62
+ type: Input,
63
+ args: [{ required: true }]
64
+ }], selectedApp: [{
65
+ type: Output
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRldGFpbHMtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9hcHAvY29tcG9uZW50cy9hcHAtZGV0YWlscy1jbG91ZC9hcHAtZGV0YWlscy1jbG91ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2FwcC9jb21wb25lbnRzL2FwcC1kZXRhaWxzLWNsb3VkL2FwcC1kZXRhaWxzLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUE0Qix5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFVdkQsTUFBTSxPQUFPLHdCQUF3QjtJQVJyQztRQWFJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7S0E0QjlEO0lBMUJHOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsR0FBNkI7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxJQUFJLDBCQUEwQixDQUFDO0lBQ3hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksSUFBSSx5QkFBeUIsQ0FBQztJQUN0RSxDQUFDOytHQWhDUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrTENoQ3JDLDBqQ0F1QkEsdXBKREljLFlBQVksNEhBQWlCLGFBQWEsbUxBQUUsYUFBYTs7NEZBSzFELHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDSSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLGlCQUdyRCxpQkFBaUIsQ0FBQyxJQUFJOzhCQUlyQyxtQkFBbUI7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbnN0YW5jZU1vZGVsLCBERUZBVUxUX0FQUF9JTlNUQU5DRV9JQ09OLCBERUZBVUxUX0FQUF9JTlNUQU5DRV9USEVNRSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1hcHAtZGV0YWlscycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVQaXBlLCBNYXRJY29uTW9kdWxlLCBNYXRDYXJkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLWRldGFpbHMtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FwcC1kZXRhaWxzLWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBcHBEZXRhaWxzQ2xvdWRDb21wb25lbnQge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgYXBwbGljYXRpb25JbnN0YW5jZTogQXBwbGljYXRpb25JbnN0YW5jZU1vZGVsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWRBcHAgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcGxpY2F0aW9uSW5zdGFuY2VNb2RlbD4oKTtcblxuICAgIC8qKlxuICAgICAqIFBhc3MgdGhlIHNlbGVjdGVkIGFwcCBhcyBuZXh0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwIGFwcGxpY2F0aW9uIG1vZGVsXG4gICAgICovXG4gICAgb25TZWxlY3RBcHAoYXBwOiBBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFwcC5lbWl0KGFwcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGFwcGxpY2F0aW9uIGluc3RhbmNlIHRoZW1lXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdGhlbWVcbiAgICAgKi9cbiAgICBnZXRUaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbkluc3RhbmNlLnRoZW1lIHx8IERFRkFVTFRfQVBQX0lOU1RBTkNFX1RIRU1FO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhcHBsaWNhdGlvbiBpbnN0YW5jZSBpY29uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgaWNvblxuICAgICAqL1xuICAgIGdldEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25JbnN0YW5jZS5pY29uIHx8IERFRkFVTFRfQVBQX0lOU1RBTkNFX0lDT047XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1hcHAtbGlzdGdyaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWFwcC1saXN0Z3JpZC1pdGVtXCI+XG4gICAgICAgIDxtYXQtY2FyZFxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWFwcC1saXN0Z3JpZC1pdGVtLWNhcmRcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7e2FwcGxpY2F0aW9uSW5zdGFuY2UubmFtZX19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFRoZW1lKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0QXBwKGFwcGxpY2F0aW9uSW5zdGFuY2UpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvblNlbGVjdEFwcChhcHBsaWNhdGlvbkluc3RhbmNlKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1hcHAtbGlzdGdyaWQtaXRlbS1jYXJkLWxvZ29cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtYXBwLWxpc3RncmlkLWl0ZW0tY2FyZC1sb2dvLWljb25cIj57eyBnZXRJY29uKCkgfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiYWRmLWFwcC1saXN0Z3JpZC1pdGVtLWNhcmQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJhZGYtYXBwLWxpc3RncmlkLWl0ZW0tY2FyZC10aXRsZS10ZXh0XCI+e3thcHBsaWNhdGlvbkluc3RhbmNlLm5hbWV9fTwvaDE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImFkZi1hcHAtbGlzdGdyaWQtaXRlbS1jYXJkLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1saW5lLWNsYW1wXCI+e3thcHBsaWNhdGlvbkluc3RhbmNlLmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuIl19
@@ -0,0 +1,125 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { CustomEmptyContentTemplateDirective, EmptyContentComponent } from '@alfresco/adf-core';
18
+ import { Component, ContentChild, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
19
+ import { of, Subject } from 'rxjs';
20
+ import { AppsProcessCloudService } from '../../services/apps-process-cloud.service';
21
+ import { catchError } from 'rxjs/operators';
22
+ import { CommonModule } from '@angular/common';
23
+ import { TranslatePipe } from '@ngx-translate/core';
24
+ import { AppDetailsCloudComponent } from '../app-details-cloud/app-details-cloud.component';
25
+ import { MatIconModule } from '@angular/material/icon';
26
+ import { MatLineModule } from '@angular/material/core';
27
+ import { MatListModule } from '@angular/material/list';
28
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
29
+ import * as i0 from "@angular/core";
30
+ import * as i1 from "../../services/apps-process-cloud.service";
31
+ import * as i2 from "@angular/common";
32
+ import * as i3 from "@angular/material/icon";
33
+ import * as i4 from "@angular/material/core";
34
+ import * as i5 from "@angular/material/list";
35
+ import * as i6 from "@angular/material/progress-spinner";
36
+ export const LAYOUT_LIST = 'LIST';
37
+ export const LAYOUT_GRID = 'GRID';
38
+ export const DEPLOYED_STATUS = 'DEPLOYED';
39
+ export class AppListCloudComponent {
40
+ constructor(appsProcessCloudService) {
41
+ this.appsProcessCloudService = appsProcessCloudService;
42
+ /**
43
+ * Defines the layout of the apps. There are two possible
44
+ * values, "GRID" and "LIST".
45
+ */
46
+ this.layoutType = LAYOUT_GRID;
47
+ /** Emitted when an app entry is clicked. */
48
+ this.appClick = new EventEmitter();
49
+ this.loadingError$ = new Subject();
50
+ this.hasEmptyCustomContentTemplate = false;
51
+ }
52
+ ngOnInit() {
53
+ if (!this.isValidType()) {
54
+ this.setDefaultLayoutType();
55
+ }
56
+ this.apps$ = this.appsProcessCloudService.getDeployedApplicationsByStatus(DEPLOYED_STATUS).pipe(catchError(() => {
57
+ this.loadingError$.next(true);
58
+ return of();
59
+ }));
60
+ }
61
+ ngAfterContentInit() {
62
+ if (this.emptyCustomContent) {
63
+ this.hasEmptyCustomContentTemplate = true;
64
+ }
65
+ }
66
+ onSelectApp(app) {
67
+ this.appClick.emit(app);
68
+ }
69
+ /**
70
+ * Check if the value of the layoutType property is an allowed value
71
+ *
72
+ * @returns `true` if layout type is valid, otherwise `false`
73
+ */
74
+ isValidType() {
75
+ if (this.layoutType && (this.layoutType === LAYOUT_LIST || this.layoutType === LAYOUT_GRID)) {
76
+ return true;
77
+ }
78
+ return false;
79
+ }
80
+ /**
81
+ * Assign the default value to LayoutType
82
+ */
83
+ setDefaultLayoutType() {
84
+ this.layoutType = LAYOUT_GRID;
85
+ }
86
+ /**
87
+ * Check if the layout type is LIST
88
+ *
89
+ * @returns `true` if the layout is list, otherwise `false`
90
+ */
91
+ isList() {
92
+ return this.layoutType === LAYOUT_LIST;
93
+ }
94
+ /**
95
+ * Check if the layout type is GRID
96
+ *
97
+ * @returns `true` if layout is grid, otherwise `false`
98
+ */
99
+ isGrid() {
100
+ return this.layoutType === LAYOUT_GRID;
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppListCloudComponent, deps: [{ token: i1.AppsProcessCloudService }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AppListCloudComponent, isStandalone: true, selector: "adf-cloud-app-list", inputs: { layoutType: "layoutType" }, outputs: { appClick: "appClick" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"menu-container\" *ngIf=\"apps$ | async as appsList; else loadingOrError\">\n <ng-container *ngIf=\"appsList.length > 0; else noApps\">\n <div\n *ngIf=\"isGrid(); else appList\"\n class=\"adf-app-apps-grid\">\n <adf-cloud-app-details\n *ngFor=\"let app of appsList\"\n [applicationInstance]=\"app\"\n (selectedApp)=\"onSelectApp($event)\" />\n </div>\n\n <ng-template #appList>\n <mat-list class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"onSelectApp(app)\" (keyup.enter)=\"onSelectApp(app)\"\n *ngFor=\"let app of appsList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span class=\"adf-app-list-item-text\" matLine>{{app.name}}</span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-container>\n</div>\n<ng-template #noApps>\n <div class=\"adf-app-list-empty\">\n <ng-content select=\"adf-custom-empty-content-template\" *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content icon=\"apps\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n<ng-template #loadingOrError>\n <div *ngIf=\"loadingError$ | async; else loading\" class=\"adf-app-list-error\">\n <adf-empty-content icon=\"error_outline\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.SUBTITLE' | translate\" />\n </div>\n <ng-template #loading>\n <ng-container>\n <div class=\"adf-app-list-spinner\">\n <mat-spinner class=\"adf-app-list-cloud--spinner\" />\n </div>\n </ng-container>\n</ng-template>\n</ng-template>\n", styles: ["adf-cloud-app-list{width:100%}adf-cloud-app-list .adf-app-list-item{cursor:pointer}adf-cloud-app-list .adf-app-list-spinner,adf-cloud-app-list .adf-app-list-empty,adf-cloud-app-list .adf-app-list-error{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}adf-cloud-app-list .adf-app-list-spinner .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-empty .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-error .adf-app-list-cloud-spinner{margin:0 auto}adf-cloud-app-list .adf-app-apps-grid{flex-flow:row wrap;display:flex}adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{flex:1 1 100%;max-width:33.3333%}@media (max-width: 959.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:50%}}@media (max-width: 599.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: AppDetailsCloudComponent, selector: "adf-cloud-app-details", inputs: ["applicationInstance"], outputs: ["selectedApp"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppListCloudComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'adf-cloud-app-list', standalone: true, imports: [
108
+ CommonModule,
109
+ TranslatePipe,
110
+ AppDetailsCloudComponent,
111
+ MatIconModule,
112
+ MatLineModule,
113
+ MatListModule,
114
+ EmptyContentComponent,
115
+ MatProgressSpinnerModule
116
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"menu-container\" *ngIf=\"apps$ | async as appsList; else loadingOrError\">\n <ng-container *ngIf=\"appsList.length > 0; else noApps\">\n <div\n *ngIf=\"isGrid(); else appList\"\n class=\"adf-app-apps-grid\">\n <adf-cloud-app-details\n *ngFor=\"let app of appsList\"\n [applicationInstance]=\"app\"\n (selectedApp)=\"onSelectApp($event)\" />\n </div>\n\n <ng-template #appList>\n <mat-list class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"onSelectApp(app)\" (keyup.enter)=\"onSelectApp(app)\"\n *ngFor=\"let app of appsList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span class=\"adf-app-list-item-text\" matLine>{{app.name}}</span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-container>\n</div>\n<ng-template #noApps>\n <div class=\"adf-app-list-empty\">\n <ng-content select=\"adf-custom-empty-content-template\" *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content icon=\"apps\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n<ng-template #loadingOrError>\n <div *ngIf=\"loadingError$ | async; else loading\" class=\"adf-app-list-error\">\n <adf-empty-content icon=\"error_outline\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.SUBTITLE' | translate\" />\n </div>\n <ng-template #loading>\n <ng-container>\n <div class=\"adf-app-list-spinner\">\n <mat-spinner class=\"adf-app-list-cloud--spinner\" />\n </div>\n </ng-container>\n</ng-template>\n</ng-template>\n", styles: ["adf-cloud-app-list{width:100%}adf-cloud-app-list .adf-app-list-item{cursor:pointer}adf-cloud-app-list .adf-app-list-spinner,adf-cloud-app-list .adf-app-list-empty,adf-cloud-app-list .adf-app-list-error{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}adf-cloud-app-list .adf-app-list-spinner .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-empty .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-error .adf-app-list-cloud-spinner{margin:0 auto}adf-cloud-app-list .adf-app-apps-grid{flex-flow:row wrap;display:flex}adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{flex:1 1 100%;max-width:33.3333%}@media (max-width: 959.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:50%}}@media (max-width: 599.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:100%}}\n"] }]
117
+ }], ctorParameters: () => [{ type: i1.AppsProcessCloudService }], propDecorators: { emptyCustomContent: [{
118
+ type: ContentChild,
119
+ args: [CustomEmptyContentTemplateDirective]
120
+ }], layoutType: [{
121
+ type: Input
122
+ }], appClick: [{
123
+ type: Output
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9hcHAvY29tcG9uZW50cy9hcHAtbGlzdC1jbG91ZC9hcHAtbGlzdC1jbG91ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2FwcC9jb21wb25lbnRzL2FwcC1saXN0LWNsb3VkL2FwcC1saXN0LWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hHLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7QUFFOUUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFXLE1BQU0sQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQVcsTUFBTSxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBVyxVQUFVLENBQUM7QUFtQmxELE1BQU0sT0FBTyxxQkFBcUI7SUFtQjlCLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBZnBFOzs7V0FHRztRQUVILGVBQVUsR0FBVyxXQUFXLENBQUM7UUFFakMsNENBQTRDO1FBRTVDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUd4RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdkMsa0NBQTZCLEdBQVksS0FBSyxDQUFDO0lBRXdCLENBQUM7SUFFeEUsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsK0JBQStCLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUMzRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDMUYsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUM7SUFDM0MsQ0FBQzsrR0EvRVEscUJBQXFCO21HQUFyQixxQkFBcUIsdU1BQ2hCLG1DQUFtQyxnRENyRHJELG9tRUE4Q0EseTZCRFBRLFlBQVksZ1RBQ1osYUFBYSxrREFDYix3QkFBd0IsNEhBQ3hCLGFBQWEsbUxBQ2IsYUFBYSwwR0FDYixhQUFhLHdXQUNiLHFCQUFxQixvR0FDckIsd0JBQXdCOzs0RkFNbkIscUJBQXFCO2tCQWpCakMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsd0JBQXdCO3FCQUMzQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzRGQUlyQyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUNBQW1DO2dCQVFqRCxVQUFVO3NCQURULEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSwgRW1wdHlDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcHMtcHJvY2Vzcy1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5zdGFuY2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFwcERldGFpbHNDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL2FwcC1kZXRhaWxzLWNsb3VkL2FwcC1kZXRhaWxzLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMaW5lTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuZXhwb3J0IGNvbnN0IExBWU9VVF9MSVNUOiBzdHJpbmcgPSAnTElTVCc7XG5leHBvcnQgY29uc3QgTEFZT1VUX0dSSUQ6IHN0cmluZyA9ICdHUklEJztcbmV4cG9ydCBjb25zdCBERVBMT1lFRF9TVEFUVVM6IHN0cmluZyA9ICdERVBMT1lFRCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLWFwcC1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBBcHBEZXRhaWxzQ2xvdWRDb21wb25lbnQsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdExpbmVNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLWxpc3QtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FwcC1saXN0LWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBcHBMaXN0Q2xvdWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGQoQ3VzdG9tRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgZW1wdHlDdXN0b21Db250ZW50OiBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGxheW91dCBvZiB0aGUgYXBwcy4gVGhlcmUgYXJlIHR3byBwb3NzaWJsZVxuICAgICAqIHZhbHVlcywgXCJHUklEXCIgYW5kIFwiTElTVFwiLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGF5b3V0VHlwZTogc3RyaW5nID0gTEFZT1VUX0dSSUQ7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGFwcCBlbnRyeSBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGFwcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWw+KCk7XG5cbiAgICBhcHBzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGxvYWRpbmdFcnJvciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIGhhc0VtcHR5Q3VzdG9tQ29udGVudFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcHNQcm9jZXNzQ2xvdWRTZXJ2aWNlOiBBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFR5cGUoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0TGF5b3V0VHlwZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBzJCA9IHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnNCeVN0YXR1cyhERVBMT1lFRF9TVEFUVVMpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdFcnJvciQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5lbXB0eUN1c3RvbUNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRW1wdHlDdXN0b21Db250ZW50VGVtcGxhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RBcHAoYXBwOiBBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBDbGljay5lbWl0KGFwcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSBsYXlvdXRUeXBlIHByb3BlcnR5IGlzIGFuIGFsbG93ZWQgdmFsdWVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiBsYXlvdXQgdHlwZSBpcyB2YWxpZCwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc1ZhbGlkVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0VHlwZSAmJiAodGhpcy5sYXlvdXRUeXBlID09PSBMQVlPVVRfTElTVCB8fCB0aGlzLmxheW91dFR5cGUgPT09IExBWU9VVF9HUklEKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbiB0aGUgZGVmYXVsdCB2YWx1ZSB0byBMYXlvdXRUeXBlXG4gICAgICovXG4gICAgc2V0RGVmYXVsdExheW91dFR5cGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0VHlwZSA9IExBWU9VVF9HUklEO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBsYXlvdXQgdHlwZSBpcyBMSVNUXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGxheW91dCBpcyBsaXN0LCBvdGhlcndpc2UgYGZhbHNlYFxuICAgICAqL1xuICAgIGlzTGlzdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0VHlwZSA9PT0gTEFZT1VUX0xJU1Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGxheW91dCB0eXBlIGlzIEdSSURcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiBsYXlvdXQgaXMgZ3JpZCwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc0dyaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFR5cGUgPT09IExBWU9VVF9HUklEO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiICpuZ0lmPVwiYXBwcyQgfCBhc3luYyBhcyBhcHBzTGlzdDsgZWxzZSBsb2FkaW5nT3JFcnJvclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBzTGlzdC5sZW5ndGggPiAwOyBlbHNlIG5vQXBwc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImlzR3JpZCgpOyBlbHNlIGFwcExpc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtYXBwLWFwcHMtZ3JpZFwiPlxuICAgICAgICAgICAgPGFkZi1jbG91ZC1hcHAtZGV0YWlsc1xuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwc0xpc3RcIlxuICAgICAgICAgICAgICAgIFthcHBsaWNhdGlvbkluc3RhbmNlXT1cImFwcFwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkQXBwKT1cIm9uU2VsZWN0QXBwKCRldmVudClcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2FwcExpc3Q+XG4gICAgICAgICAgICA8bWF0LWxpc3QgY2xhc3M9XCJhZGYtYXBwLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSBjbGFzcz1cImFkZi1hcHAtbGlzdC1pdGVtXCIgKGNsaWNrKT1cIm9uU2VsZWN0QXBwKGFwcClcIiAoa2V5dXAuZW50ZXIpPVwib25TZWxlY3RBcHAoYXBwKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwc0xpc3RcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgdGl0bGU9XCJ7e2FwcC5uYW1lfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj50b3VjaF9hcHA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1hcHAtbGlzdC1pdGVtLXRleHRcIiBtYXRMaW5lPnt7YXBwLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICA8L21hdC1saXN0PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25vQXBwcz5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWFwcC1saXN0LWVtcHR5XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi1jdXN0b20tZW1wdHktY29udGVudC10ZW1wbGF0ZVwiICpuZ0lmPVwiaGFzRW1wdHlDdXN0b21Db250ZW50VGVtcGxhdGU7IGVsc2UgZGVmYXVsdEVtcHR5VGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtY3VzdG9tLWVtcHR5LXRlbXBsYXRlXCIgLz5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eVRlbXBsYXRlPlxuICAgICAgICAgICAgPGFkZi1lbXB0eS1jb250ZW50IGljb249XCJhcHBzXCIgW3RpdGxlXT1cIidBREZfQ0xPVURfVEFTS19MSVNULkFQUFMuTk9fQVBQUy5USVRMRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5BUFBTLk5PX0FQUFMuU1VCVElUTEUnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xvYWRpbmdPckVycm9yPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nRXJyb3IkIHwgYXN5bmM7IGVsc2UgbG9hZGluZ1wiIGNsYXNzPVwiYWRmLWFwcC1saXN0LWVycm9yXCI+XG4gICAgICAgIDxhZGYtZW1wdHktY29udGVudCBpY29uPVwiZXJyb3Jfb3V0bGluZVwiIFt0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5BUFBTLkVSUk9SLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc3VidGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0xJU1QuQVBQUy5FUlJPUi5TVUJUSVRMRScgfCB0cmFuc2xhdGVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWFwcC1saXN0LXNwaW5uZXJcIj5cbiAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImFkZi1hcHAtbGlzdC1jbG91ZC0tc3Bpbm5lclwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export const DEFAULT_APP_INSTANCE_THEME = 'theme-2';
18
+ export const DEFAULT_APP_INSTANCE_ICON = 'favorite_border';
19
+ export var DescriptorCustomUIAuthFlowType;
20
+ (function (DescriptorCustomUIAuthFlowType) {
21
+ DescriptorCustomUIAuthFlowType["CODE"] = "CODE";
22
+ DescriptorCustomUIAuthFlowType["IMPLICIT"] = "IMPLICIT";
23
+ })(DescriptorCustomUIAuthFlowType || (DescriptorCustomUIAuthFlowType = {}));
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5zdGFuY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2FwcC9tb2RlbHMvYXBwbGljYXRpb24taW5zdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGlCQUFpQixDQUFDO0FBaUMzRCxNQUFNLENBQU4sSUFBWSw4QkFHWDtBQUhELFdBQVksOEJBQThCO0lBQ3RDLCtDQUFhLENBQUE7SUFDYix1REFBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsOEJBQThCLEtBQTlCLDhCQUE4QixRQUd6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVBQX0lOU1RBTkNFX1RIRU1FID0gJ3RoZW1lLTInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVBQX0lOU1RBTkNFX0lDT04gPSAnZmF2b3JpdGVfYm9yZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWwge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgY2FuQWNjZXNzQXVkaXQ/OiBib29sZWFuO1xuICAgIGNyZWF0ZWRBdD86IGFueTtcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgdGhlbWU/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBjb25uZWN0b3JzPzogYW55O1xuICAgIHJvbGxiYWNrPzogYm9vbGVhbjtcbiAgICBkZXNjcmlwdG9yPzogRGVzY3JpcHRvcjtcbiAgICBlbnZpcm9ubWVudElkPzogc3RyaW5nO1xuICAgIGVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3Ige1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgcHJvamVjdElkPzogc3RyaW5nO1xuICAgIHJlbGVhc2VJZD86IHN0cmluZztcbiAgICByZWxlYXNlVmVyc2lvbj86IG51bWJlcjtcbiAgICBzZWN1cml0eT86IERlc2NyaXB0b3JTZWN1cml0eVtdO1xuICAgIGluZnJhc3RydWN0dXJlPzogRGVzY3JpcHRvckluZnJhc3RydWN0dXJlO1xuICAgIHZhcmlhYmxlcz86IERlc2NyaXB0b3JWYXJpYWJsZXM7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBydW50aW1lQnVuZGxlVmVyc2lvbj86IHN0cmluZztcbiAgICBlbmFibGVMb2NhbERldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgICBjdXN0b21VSUF1dGhGbG93VHlwZT86IERlc2NyaXB0b3JDdXN0b21VSUF1dGhGbG93VHlwZTtcbn1cblxuZXhwb3J0IGVudW0gRGVzY3JpcHRvckN1c3RvbVVJQXV0aEZsb3dUeXBlIHtcbiAgICBDT0RFID0gJ0NPREUnLFxuICAgIElNUExJQ0lUID0gJ0lNUExJQ0lUJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3JTZWN1cml0eSB7XG4gICAgcm9sZTogc3RyaW5nO1xuICAgIGdyb3Vwczogc3RyaW5nW107XG4gICAgdXNlcnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3JWYXJpYWJsZXMge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBjb25uZWN0b3JzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9ySW5mcmFzdHJ1Y3R1cmUge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export * from './components/app-list-cloud/app-list-cloud.component';
18
+ export * from './components/app-details-cloud/app-details-cloud.component';
19
+ export * from './services/apps-process-cloud.service';
20
+ export * from './models/application-instance.model';
21
+ export * from './app-list-cloud.module';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvYXBwL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWxpc3QtY2xvdWQvYXBwLWxpc3QtY2xvdWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHAtZGV0YWlscy1jbG91ZC9hcHAtZGV0YWlscy1jbG91ZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hcHBzLXByb2Nlc3MtY2xvdWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9hcHBsaWNhdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1saXN0LWNsb3VkLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,97 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Injectable } from '@angular/core';
18
+ import { from, of } from 'rxjs';
19
+ import { map } from 'rxjs/operators';
20
+ import { AppConfigService } from '@alfresco/adf-core';
21
+ import { AdfHttpClient } from '@alfresco/adf-core/api';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@alfresco/adf-core/api";
24
+ import * as i2 from "@alfresco/adf-core";
25
+ export class AppsProcessCloudService {
26
+ constructor(adfHttpClient, appConfigService) {
27
+ this.adfHttpClient = adfHttpClient;
28
+ this.appConfigService = appConfigService;
29
+ this.loadApps();
30
+ }
31
+ /**
32
+ * Gets a list of deployed apps for this user by status.
33
+ *
34
+ * @param status Required status value
35
+ * @param roles to filter the apps
36
+ * @returns The list of deployed apps
37
+ */
38
+ getDeployedApplicationsByStatus(status, roles) {
39
+ return this.hasDeployedApps() ? of(this.deployedApps) : this.getApplicationsByStatus(status, roles);
40
+ }
41
+ hasDeployedApps() {
42
+ return this.deployedApps && this.deployedApps.length > 0;
43
+ }
44
+ loadApps() {
45
+ const apps = this.appConfigService.get('alfresco-deployed-apps', []);
46
+ apps.map((app) => {
47
+ app.theme = app.theme ? app.theme : 'theme-1';
48
+ app.icon = app.icon ? app.icon : 'favorite';
49
+ });
50
+ this.deployedApps = apps;
51
+ }
52
+ getApplicationLabel(application, environmentList) {
53
+ const envName = environmentList?.find((env) => env.id === application.environmentId)?.name;
54
+ if (application.environmentId && environmentList && envName) {
55
+ return `${application.displayName} (${envName})`;
56
+ }
57
+ else {
58
+ return application.displayName;
59
+ }
60
+ }
61
+ getApplicationsByStatus(status, roles) {
62
+ if (status === '') {
63
+ return of([]);
64
+ }
65
+ const path = this.getApplicationUrl();
66
+ const pathParams = {};
67
+ const queryParams = { status, roles, sort: 'name' };
68
+ const httpMethod = 'GET';
69
+ const headerParams = {};
70
+ const formParams = {};
71
+ const bodyParam = {};
72
+ const contentTypes = ['application/json'];
73
+ const accepts = ['application/json'];
74
+ const requestOptions = {
75
+ path,
76
+ pathParams,
77
+ queryParams,
78
+ headerParams,
79
+ formParams,
80
+ bodyParam,
81
+ contentTypes,
82
+ accepts,
83
+ httpMethod
84
+ };
85
+ return from(this.adfHttpClient.request(path, requestOptions)).pipe(map((applications) => applications.list.entries.map((application) => application.entry)));
86
+ }
87
+ getApplicationUrl() {
88
+ return `${this.appConfigService.get('bpmHost')}/deployment-service/v1/applications`;
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppsProcessCloudService, deps: [{ token: i1.AdfHttpClient }, { token: i2.AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppsProcessCloudService, providedIn: 'root' }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppsProcessCloudService, decorators: [{
94
+ type: Injectable,
95
+ args: [{ providedIn: 'root' }]
96
+ }], ctorParameters: () => [{ type: i1.AdfHttpClient }, { type: i2.AppConfigService }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy1wcm9jZXNzLWNsb3VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHBzLXByb2Nlc3MtY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFJdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyxZQUFvQixhQUE0QixFQUFVLGdCQUFrQztRQUF4RSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDeEYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCwrQkFBK0IsQ0FBQyxNQUFjLEVBQUUsS0FBeUI7UUFDckUsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxR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MjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5zdGFuY2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9hcHBsaWNhdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9pbnRlcmZhY2UvZW52aXJvbm1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFkZkh0dHBDbGllbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXBpJztcbmltcG9ydCB7IFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2Uge1xuICAgIGRlcGxveWVkQXBwczogQXBwbGljYXRpb25JbnN0YW5jZU1vZGVsW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkZkh0dHBDbGllbnQ6IEFkZkh0dHBDbGllbnQsIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSkge1xuICAgICAgICB0aGlzLmxvYWRBcHBzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGxpc3Qgb2YgZGVwbG95ZWQgYXBwcyBmb3IgdGhpcyB1c2VyIGJ5IHN0YXR1cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0dXMgUmVxdWlyZWQgc3RhdHVzIHZhbHVlXG4gICAgICogQHBhcmFtIHJvbGVzIHRvIGZpbHRlciB0aGUgYXBwc1xuICAgICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGRlcGxveWVkIGFwcHNcbiAgICAgKi9cbiAgICBnZXREZXBsb3llZEFwcGxpY2F0aW9uc0J5U3RhdHVzKHN0YXR1czogc3RyaW5nLCByb2xlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNEZXBsb3llZEFwcHMoKSA/IG9mKHRoaXMuZGVwbG95ZWRBcHBzKSA6IHRoaXMuZ2V0QXBwbGljYXRpb25zQnlTdGF0dXMoc3RhdHVzLCByb2xlcyk7XG4gICAgfVxuXG4gICAgaGFzRGVwbG95ZWRBcHBzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXBsb3llZEFwcHMgJiYgdGhpcy5kZXBsb3llZEFwcHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBsb2FkQXBwcygpIHtcbiAgICAgICAgY29uc3QgYXBwcyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8YW55PignYWxmcmVzY28tZGVwbG95ZWQtYXBwcycsIFtdKTtcbiAgICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICAgICAgYXBwLnRoZW1lID0gYXBwLnRoZW1lID8gYXBwLnRoZW1lIDogJ3RoZW1lLTEnO1xuICAgICAgICAgICAgYXBwLmljb24gPSBhcHAuaWNvbiA/IGFwcC5pY29uIDogJ2Zhdm9yaXRlJztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGVwbG95ZWRBcHBzID0gYXBwcztcbiAgICB9XG5cbiAgICBnZXRBcHBsaWNhdGlvbkxhYmVsKGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWwsIGVudmlyb25tZW50TGlzdD86IEVudmlyb25tZW50W10pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBlbnZOYW1lID0gZW52aXJvbm1lbnRMaXN0Py5maW5kKChlbnY6IEVudmlyb25tZW50KSA9PiBlbnYuaWQgPT09IGFwcGxpY2F0aW9uLmVudmlyb25tZW50SWQpPy5uYW1lO1xuXG4gICAgICAgIGlmIChhcHBsaWNhdGlvbi5lbnZpcm9ubWVudElkICYmIGVudmlyb25tZW50TGlzdCAmJiBlbnZOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7YXBwbGljYXRpb24uZGlzcGxheU5hbWV9ICgke2Vudk5hbWV9KWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbGljYXRpb24uZGlzcGxheU5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFwcGxpY2F0aW9uc0J5U3RhdHVzKHN0YXR1czogc3RyaW5nLCByb2xlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluc3RhbmNlTW9kZWxbXT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRBcHBsaWNhdGlvblVybCgpO1xuICAgICAgICBjb25zdCBwYXRoUGFyYW1zID0ge307XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0geyBzdGF0dXMsIHJvbGVzLCBzb3J0OiAnbmFtZScgfTtcbiAgICAgICAgY29uc3QgaHR0cE1ldGhvZCA9ICdHRVQnO1xuICAgICAgICBjb25zdCBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICAgICAgY29uc3QgZm9ybVBhcmFtcyA9IHt9O1xuICAgICAgICBjb25zdCBib2R5UGFyYW0gPSB7fTtcbiAgICAgICAgY29uc3QgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgICAgIGNvbnN0IGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhdGhQYXJhbXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIGhlYWRlclBhcmFtcyxcbiAgICAgICAgICAgIGZvcm1QYXJhbXMsXG4gICAgICAgICAgICBib2R5UGFyYW0sXG4gICAgICAgICAgICBjb250ZW50VHlwZXMsXG4gICAgICAgICAgICBhY2NlcHRzLFxuICAgICAgICAgICAgaHR0cE1ldGhvZFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuYWRmSHR0cENsaWVudC5yZXF1ZXN0KHBhdGgsIHJlcXVlc3RPcHRpb25zKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoYXBwbGljYXRpb25zKSA9PiBhcHBsaWNhdGlvbnMubGlzdC5lbnRyaWVzLm1hcCgoYXBwbGljYXRpb24pID0+IGFwcGxpY2F0aW9uLmVudHJ5KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFwcGxpY2F0aW9uVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdicG1Ib3N0Jyl9L2RlcGxveW1lbnQtc2VydmljZS92MS9hcHBsaWNhdGlvbnNgO1xuICAgIH1cbn1cbiJdfQ==