@porscheinformatik/clr-addons 18.2.4 → 19.0.0

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 (186) hide show
  1. package/abstract-form-component/abstract-form-component.d.ts +1 -1
  2. package/daterangepicker/directives/abstract-container.component.d.ts +1 -1
  3. package/fesm2022/clr-addons.mjs +520 -592
  4. package/fesm2022/clr-addons.mjs.map +1 -1
  5. package/multilingual/abstract-multilingual.d.ts +1 -1
  6. package/package.json +6 -8
  7. package/esm2022/abstract-form-component/abstract-form-component.mjs +0 -100
  8. package/esm2022/abstract-form-component/control-id.service.mjs +0 -31
  9. package/esm2022/abstract-form-component/form.module.mjs +0 -21
  10. package/esm2022/abstract-form-component/index.mjs +0 -3
  11. package/esm2022/abstract-form-component/label.mjs +0 -37
  12. package/esm2022/action-panel/action-panel-container-content.mjs +0 -22
  13. package/esm2022/action-panel/action-panel-container-footer.mjs +0 -22
  14. package/esm2022/action-panel/action-panel-container.mjs +0 -35
  15. package/esm2022/action-panel/action-panel.mjs +0 -80
  16. package/esm2022/action-panel/action-panel.module.mjs +0 -36
  17. package/esm2022/action-panel/index.mjs +0 -6
  18. package/esm2022/autocomplete-off/autocomplete-off.directive.mjs +0 -21
  19. package/esm2022/autocomplete-off/autocomplete-off.module.mjs +0 -21
  20. package/esm2022/autocomplete-off/index.mjs +0 -3
  21. package/esm2022/back-button/back-button.mjs +0 -27
  22. package/esm2022/back-button/back-button.module.mjs +0 -25
  23. package/esm2022/back-button/index.mjs +0 -8
  24. package/esm2022/brand-avatar/brand-avatar.mjs +0 -77
  25. package/esm2022/brand-avatar/brand-avatar.module.mjs +0 -24
  26. package/esm2022/brand-avatar/index.mjs +0 -8
  27. package/esm2022/breadcrumb/breadcrumb-model.interface.mjs +0 -7
  28. package/esm2022/breadcrumb/breadcrumb.mjs +0 -37
  29. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -27
  30. package/esm2022/breadcrumb/breadcrumb.service.mjs +0 -25
  31. package/esm2022/breadcrumb/index.mjs +0 -10
  32. package/esm2022/clr-addons.mjs +0 -5
  33. package/esm2022/clr-addons.module.mjs +0 -152
  34. package/esm2022/clr-control-warning/if-warning.directive.mjs +0 -73
  35. package/esm2022/clr-control-warning/if-warning.module.mjs +0 -20
  36. package/esm2022/clr-control-warning/index.mjs +0 -3
  37. package/esm2022/collapse-expand-section/collapse-expand-section.mjs +0 -88
  38. package/esm2022/collapse-expand-section/collapse-expand-section.module.mjs +0 -25
  39. package/esm2022/collapse-expand-section/index.mjs +0 -8
  40. package/esm2022/content-panel/content-panel-container-content.mjs +0 -22
  41. package/esm2022/content-panel/content-panel-container-footer.mjs +0 -22
  42. package/esm2022/content-panel/content-panel-container.mjs +0 -35
  43. package/esm2022/content-panel/content-panel.mjs +0 -81
  44. package/esm2022/content-panel/content-panel.module.mjs +0 -36
  45. package/esm2022/content-panel/index.mjs +0 -11
  46. package/esm2022/data-list-validator/data-list-predefined-validator.directive.mjs +0 -33
  47. package/esm2022/data-list-validator/data-list-validator.module.mjs +0 -21
  48. package/esm2022/data-list-validator/data-list.validator.mjs +0 -35
  49. package/esm2022/data-list-validator/index.mjs +0 -9
  50. package/esm2022/datagrid/datagrid-state-persistence/column-hidden-state-persistence.directive.mjs +0 -80
  51. package/esm2022/datagrid/datagrid-state-persistence/datagrid-field.directive.mjs +0 -20
  52. package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.mjs +0 -2
  53. package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence.module.mjs +0 -18
  54. package/esm2022/datagrid/datagrid-state-persistence/index.mjs +0 -7
  55. package/esm2022/datagrid/datagrid-state-persistence/state-persistence-key.directive.mjs +0 -308
  56. package/esm2022/datagrid/datagrid-state-persistence/state-persistence-options.interface.mjs +0 -2
  57. package/esm2022/datagrid/date-filter/date-filter.component.mjs +0 -210
  58. package/esm2022/datagrid/date-filter/date-filter.module.mjs +0 -22
  59. package/esm2022/datagrid/date-filter/index.mjs +0 -3
  60. package/esm2022/datagrid/date-filter/nested-property.mjs +0 -37
  61. package/esm2022/datagrid/enum-filter/enum-filter.component.mjs +0 -148
  62. package/esm2022/datagrid/enum-filter/enum-filter.module.mjs +0 -20
  63. package/esm2022/datagrid/enum-filter/index.mjs +0 -3
  64. package/esm2022/datagrid/index.mjs +0 -4
  65. package/esm2022/date-time-container/date-time-container.mjs +0 -53
  66. package/esm2022/date-time-container/date-time-module.mjs +0 -26
  67. package/esm2022/date-time-container/index.mjs +0 -9
  68. package/esm2022/date-time-container/time-input.mjs +0 -21
  69. package/esm2022/daterangepicker/daterange.constants.mjs +0 -27
  70. package/esm2022/daterangepicker/daterangepicker.module.mjs +0 -60
  71. package/esm2022/daterangepicker/directives/abstract-container.component.mjs +0 -104
  72. package/esm2022/daterangepicker/directives/datepicker/datepicker.component.mjs +0 -100
  73. package/esm2022/daterangepicker/directives/daterangepicker/daterangepicker.directive.mjs +0 -329
  74. package/esm2022/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.mjs +0 -321
  75. package/esm2022/daterangepicker/directives/if-daterange-error.directive.mjs +0 -94
  76. package/esm2022/daterangepicker/directives/timepicker/timepicker.component.mjs +0 -54
  77. package/esm2022/daterangepicker/index.mjs +0 -17
  78. package/esm2022/daterangepicker/interfaces/daterange-preset.interface.mjs +0 -2
  79. package/esm2022/daterangepicker/interfaces/daterange.interface.mjs +0 -2
  80. package/esm2022/daterangepicker/interfaces/timerange-preset.interface.mjs +0 -2
  81. package/esm2022/daterangepicker/interfaces/timerange.interface.mjs +0 -2
  82. package/esm2022/daterangepicker/models/day.model.mjs +0 -99
  83. package/esm2022/daterangepicker/models/popover-positions.model.mjs +0 -66
  84. package/esm2022/daterangepicker/models/time.model.mjs +0 -82
  85. package/esm2022/daterangepicker/providers/daterange-control-state.service.mjs +0 -62
  86. package/esm2022/daterangepicker/providers/daterange-parsing.service.mjs +0 -226
  87. package/esm2022/daterangepicker/providers/daterange.service.mjs +0 -66
  88. package/esm2022/daterangepicker/providers/opened-datepickers-tracker.service.mjs +0 -36
  89. package/esm2022/daterangepicker/validators/daterange-max.validator.mjs +0 -85
  90. package/esm2022/daterangepicker/validators/daterange-min.validator.mjs +0 -85
  91. package/esm2022/daterangepicker/validators/daterange-order.validator.mjs +0 -82
  92. package/esm2022/daterangepicker/validators/daterange-required.validator.mjs +0 -71
  93. package/esm2022/dot-pager/dot-pager.mjs +0 -58
  94. package/esm2022/dot-pager/dot-pager.module.mjs +0 -25
  95. package/esm2022/dot-pager/index.mjs +0 -8
  96. package/esm2022/dropdown/clr-dropdown-overflow.directive.mjs +0 -117
  97. package/esm2022/dropdown/clr-dropdown-overflow.module.mjs +0 -21
  98. package/esm2022/dropdown/index.mjs +0 -8
  99. package/esm2022/flow-bar/flow-bar.mjs +0 -163
  100. package/esm2022/flow-bar/flow-bar.module.mjs +0 -26
  101. package/esm2022/flow-bar/index.mjs +0 -8
  102. package/esm2022/generic-quick-list/generic-quick-list.mjs +0 -98
  103. package/esm2022/generic-quick-list/generic-quick-list.module.mjs +0 -24
  104. package/esm2022/generic-quick-list/index.mjs +0 -8
  105. package/esm2022/history/history-model.interface.mjs +0 -8
  106. package/esm2022/history/history-pinned.mjs +0 -60
  107. package/esm2022/history/history.mjs +0 -91
  108. package/esm2022/history/history.module.mjs +0 -27
  109. package/esm2022/history/history.provider.mjs +0 -8
  110. package/esm2022/history/history.service.mjs +0 -236
  111. package/esm2022/history/index.mjs +0 -12
  112. package/esm2022/icons/index.mjs +0 -8
  113. package/esm2022/icons/shapes.mjs +0 -5575
  114. package/esm2022/icons/svg-tag-generator.mjs +0 -39
  115. package/esm2022/index.mjs +0 -41
  116. package/esm2022/letter-avatar/index.mjs +0 -8
  117. package/esm2022/letter-avatar/letter-avatar.mjs +0 -52
  118. package/esm2022/letter-avatar/letter-avatar.module.mjs +0 -24
  119. package/esm2022/location-bar/index.mjs +0 -6
  120. package/esm2022/location-bar/location-bar-node/location-bar-node.component.mjs +0 -150
  121. package/esm2022/location-bar/location-bar-search/location-bar-search.component.mjs +0 -74
  122. package/esm2022/location-bar/location-bar.component.mjs +0 -64
  123. package/esm2022/location-bar/location-bar.model.mjs +0 -63
  124. package/esm2022/location-bar/location-bar.module.mjs +0 -55
  125. package/esm2022/location-bar/location-bar.provider.mjs +0 -18
  126. package/esm2022/location-bar/location-bar.search.model.mjs +0 -2
  127. package/esm2022/main-nav-group/index.mjs +0 -9
  128. package/esm2022/main-nav-group/main-nav-group-item.mjs +0 -27
  129. package/esm2022/main-nav-group/main-nav-group.mjs +0 -154
  130. package/esm2022/main-nav-group/main-nav-group.module.mjs +0 -26
  131. package/esm2022/multilingual/abstract-multilingual.mjs +0 -133
  132. package/esm2022/multilingual/index.mjs +0 -11
  133. package/esm2022/multilingual/multilingual-input/multilingual-input.mjs +0 -42
  134. package/esm2022/multilingual/multilingual-selector.mjs +0 -84
  135. package/esm2022/multilingual/multilingual-textarea/multilingual-textarea.mjs +0 -44
  136. package/esm2022/multilingual/multilingual-validators.mjs +0 -104
  137. package/esm2022/multilingual/multilingual.module.mjs +0 -49
  138. package/esm2022/notification/index.mjs +0 -10
  139. package/esm2022/notification/notification-ref.mjs +0 -61
  140. package/esm2022/notification/notification.mjs +0 -134
  141. package/esm2022/notification/notification.module.mjs +0 -24
  142. package/esm2022/notification/notification.service.mjs +0 -92
  143. package/esm2022/notification/scheduler-utils.mjs +0 -52
  144. package/esm2022/numericfield/index.mjs +0 -9
  145. package/esm2022/numericfield/numeric-field-validators.mjs +0 -140
  146. package/esm2022/numericfield/numeric-field.mjs +0 -280
  147. package/esm2022/numericfield/numeric-field.module.mjs +0 -26
  148. package/esm2022/paged-search-result-list/index.mjs +0 -8
  149. package/esm2022/paged-search-result-list/paged-search-result-list.mjs +0 -67
  150. package/esm2022/paged-search-result-list/paged-search-result-list.module.mjs +0 -26
  151. package/esm2022/pager/index.mjs +0 -8
  152. package/esm2022/pager/pager.mjs +0 -137
  153. package/esm2022/pager/pager.module.mjs +0 -25
  154. package/esm2022/progress-spinner/index.mjs +0 -8
  155. package/esm2022/progress-spinner/progress-spinner.mjs +0 -78
  156. package/esm2022/progress-spinner/progress-spinner.module.mjs +0 -23
  157. package/esm2022/quick-list/add-option.mjs +0 -78
  158. package/esm2022/quick-list/add-option.service.mjs +0 -7
  159. package/esm2022/quick-list/index.mjs +0 -9
  160. package/esm2022/quick-list/quick-list.mjs +0 -128
  161. package/esm2022/quick-list/quick-list.module.mjs +0 -26
  162. package/esm2022/readonly/index.mjs +0 -8
  163. package/esm2022/readonly/readonly.directive.mjs +0 -149
  164. package/esm2022/readonly/readonly.module.mjs +0 -16
  165. package/esm2022/searchfield/index.mjs +0 -8
  166. package/esm2022/searchfield/search-field.mjs +0 -104
  167. package/esm2022/searchfield/search-field.module.mjs +0 -25
  168. package/esm2022/treetable/index.mjs +0 -14
  169. package/esm2022/treetable/renderer/cell-renderer.mjs +0 -28
  170. package/esm2022/treetable/renderer/header-renderer.mjs +0 -41
  171. package/esm2022/treetable/renderer/index.mjs +0 -5
  172. package/esm2022/treetable/renderer/main-renderer.mjs +0 -103
  173. package/esm2022/treetable/renderer/row-renderer.mjs +0 -20
  174. package/esm2022/treetable/treetable-action-overflow.mjs +0 -94
  175. package/esm2022/treetable/treetable-cell.mjs +0 -23
  176. package/esm2022/treetable/treetable-column.mjs +0 -23
  177. package/esm2022/treetable/treetable-placeholder.mjs +0 -30
  178. package/esm2022/treetable/treetable-row.mjs +0 -100
  179. package/esm2022/treetable/treetable.mjs +0 -79
  180. package/esm2022/treetable/treetable.module.mjs +0 -63
  181. package/esm2022/util/escape.util.mjs +0 -20
  182. package/esm2022/util/index.mjs +0 -8
  183. package/esm2022/util/numeric.format.util.mjs +0 -99
  184. package/esm2022/view-edit-section/index.mjs +0 -8
  185. package/esm2022/view-edit-section/view-edit-section.mjs +0 -154
  186. package/esm2022/view-edit-section/view-edit-section.module.mjs +0 -25
@@ -1,39 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2020 Porsche Informatik. All Rights Reserved.
3
- * This software is released under MIT license.
4
- * The full license information can be found in LICENSE in the root directory of this project.
5
- */
6
- const BADGED_CLASS_SUBSTRING = '--badged';
7
- const ALERTED_CLASS_SUBSTRING = '--alerted';
8
- const SOLID_CLASS = 'clr-i-solid';
9
- /**
10
- * Class copied from Clarity as it is not accessible.
11
- *
12
- * @see {@link https://github.com/vmware/clarity/blob/0afa75bf6bf183bb76474f7c3b20ebc7dcf89263/packages/icons/src/utils/svg-tag-generator.ts}
13
- * @param content content of the SVG
14
- * @param viewBox viewBox of the SVG
15
- */
16
- export function clrIconSVG(content, viewBox = '0 0 24 24') {
17
- let classes = '';
18
- if (content.indexOf(BADGED_CLASS_SUBSTRING) > -1) {
19
- classes += 'can-badge ';
20
- }
21
- if (content.indexOf(ALERTED_CLASS_SUBSTRING) > -1) {
22
- classes += 'can-alert ';
23
- }
24
- if (content.indexOf(SOLID_CLASS) > -1) {
25
- classes += 'has-solid ';
26
- }
27
- let openingTag;
28
- if (classes) {
29
- openingTag = `<svg version="1.1" class="${classes}" viewBox="${viewBox}" preserveAspectRatio="xMidYMid meet"
30
- xmlns="http://www.w3.org/2000/svg" focusable="false" role="img">`;
31
- }
32
- else {
33
- openingTag = `<svg version="1.1" viewBox="${viewBox}" preserveAspectRatio="xMidYMid meet"
34
- xmlns="http://www.w3.org/2000/svg" focusable="false" role="img">`;
35
- }
36
- const closingTag = `</svg>`;
37
- return openingTag + content + closingTag;
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLXRhZy1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9pY29ucy9zdmctdGFnLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxXQUFXLENBQUM7QUFDNUMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBRWxDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZSxFQUFFLE9BQU8sR0FBRyxXQUFXO0lBQy9ELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUVqQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLFlBQVksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLFlBQVksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUM7SUFDZixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osVUFBVSxHQUFHLDZCQUE2QixPQUFPLGNBQWMsT0FBTztxRUFDTCxDQUFDO0lBQ3BFLENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxHQUFHLCtCQUErQixPQUFPO3FFQUNjLENBQUM7SUFDcEUsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUU1QixPQUFPLFVBQVUsR0FBRyxPQUFPLEdBQUcsVUFBVSxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5jb25zdCBCQURHRURfQ0xBU1NfU1VCU1RSSU5HID0gJy0tYmFkZ2VkJztcbmNvbnN0IEFMRVJURURfQ0xBU1NfU1VCU1RSSU5HID0gJy0tYWxlcnRlZCc7XG5jb25zdCBTT0xJRF9DTEFTUyA9ICdjbHItaS1zb2xpZCc7XG5cbi8qKlxuICogQ2xhc3MgY29waWVkIGZyb20gQ2xhcml0eSBhcyBpdCBpcyBub3QgYWNjZXNzaWJsZS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vdm13YXJlL2NsYXJpdHkvYmxvYi8wYWZhNzViZjZiZjE4M2JiNzY0NzRmN2MzYjIwZWJjN2RjZjg5MjYzL3BhY2thZ2VzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50c31cbiAqIEBwYXJhbSBjb250ZW50IGNvbnRlbnQgb2YgdGhlIFNWR1xuICogQHBhcmFtIHZpZXdCb3ggdmlld0JveCBvZiB0aGUgU1ZHXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbHJJY29uU1ZHKGNvbnRlbnQ6IHN0cmluZywgdmlld0JveCA9ICcwIDAgMjQgMjQnKTogc3RyaW5nIHtcbiAgbGV0IGNsYXNzZXMgPSAnJztcblxuICBpZiAoY29udGVudC5pbmRleE9mKEJBREdFRF9DTEFTU19TVUJTVFJJTkcpID4gLTEpIHtcbiAgICBjbGFzc2VzICs9ICdjYW4tYmFkZ2UgJztcbiAgfVxuXG4gIGlmIChjb250ZW50LmluZGV4T2YoQUxFUlRFRF9DTEFTU19TVUJTVFJJTkcpID4gLTEpIHtcbiAgICBjbGFzc2VzICs9ICdjYW4tYWxlcnQgJztcbiAgfVxuXG4gIGlmIChjb250ZW50LmluZGV4T2YoU09MSURfQ0xBU1MpID4gLTEpIHtcbiAgICBjbGFzc2VzICs9ICdoYXMtc29saWQgJztcbiAgfVxuXG4gIGxldCBvcGVuaW5nVGFnO1xuICBpZiAoY2xhc3Nlcykge1xuICAgIG9wZW5pbmdUYWcgPSBgPHN2ZyB2ZXJzaW9uPVwiMS4xXCIgY2xhc3M9XCIke2NsYXNzZXN9XCIgdmlld0JveD1cIiR7dmlld0JveH1cIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZvY3VzYWJsZT1cImZhbHNlXCIgcm9sZT1cImltZ1wiPmA7XG4gIH0gZWxzZSB7XG4gICAgb3BlbmluZ1RhZyA9IGA8c3ZnIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiJHt2aWV3Qm94fVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+YDtcbiAgfVxuICBjb25zdCBjbG9zaW5nVGFnID0gYDwvc3ZnPmA7XG5cbiAgcmV0dXJuIG9wZW5pbmdUYWcgKyBjb250ZW50ICsgY2xvc2luZ1RhZztcbn1cbiJdfQ==
package/esm2022/index.mjs DELETED
@@ -1,41 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
3
- * This software is released under MIT license.
4
- * The full license information can be found in LICENSE in the root directory of this project.
5
- */
6
- export * from './clr-addons.module';
7
- export * from './view-edit-section/index';
8
- export * from './pager/index';
9
- export * from './dot-pager/index';
10
- export * from './paged-search-result-list/index';
11
- export * from './collapse-expand-section/index';
12
- export * from './main-nav-group/index';
13
- export * from './content-panel/index';
14
- export * from './action-panel/index';
15
- export * from './breadcrumb/index';
16
- export * from './notification/index';
17
- export * from './flow-bar/index';
18
- export * from './back-button/index';
19
- export * from './progress-spinner/index';
20
- export * from './numericfield/index';
21
- export * from './searchfield/index';
22
- export * from './treetable/index';
23
- export * from './date-time-container/index';
24
- export * from './quick-list/index';
25
- export * from './multilingual/index';
26
- export * from './util/index';
27
- export * from './generic-quick-list/index';
28
- export * from './letter-avatar/index';
29
- export * from './data-list-validator/index';
30
- export * from './icons/index';
31
- export * from './history/index';
32
- export * from './brand-avatar/index';
33
- export * from './location-bar/index';
34
- export * from './autocomplete-off/index';
35
- export * from './abstract-form-component/index';
36
- export * from './dropdown/index';
37
- export * from './datagrid/index';
38
- export * from './daterangepicker/index';
39
- export * from './clr-control-warning/index';
40
- export * from './readonly/index';
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jbHItYWRkb25zLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdmlldy1lZGl0LXNlY3Rpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RvdC1wYWdlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VkLXNlYXJjaC1yZXN1bHQtbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxhcHNlLWV4cGFuZC1zZWN0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbWFpbi1uYXYtZ3JvdXAvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXBhbmVsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXBhbmVsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Zsb3ctYmFyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYmFjay1idXR0b24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1zcGlubmVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbnVtZXJpY2ZpZWxkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoZmllbGQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVldGFibGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUtY29udGFpbmVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcXVpY2stbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpbGluZ3VhbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLXF1aWNrLWxpc3QvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9sZXR0ZXItYXZhdGFyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1saXN0LXZhbGlkYXRvci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2ljb25zL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2JyYW5kLWF2YXRhci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2F0aW9uLWJhci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS1vZmYvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YWdyaWQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlcmFuZ2VwaWNrZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jbHItY29udHJvbC13YXJuaW5nL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHkvaW5kZXgnO1xuIl19
@@ -1,8 +0,0 @@
1
- /*
2
- * Copyright (c) 2018 Porsche Informatik. All Rights Reserved.
3
- * This software is released under MIT license.
4
- * The full license information can be found in LICENSE in the root directory of this project.
5
- */
6
- export * from './letter-avatar';
7
- export * from './letter-avatar.module';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9sZXR0ZXItYXZhdGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9sZXR0ZXItYXZhdGFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGV0dGVyLWF2YXRhci5tb2R1bGUnO1xuIl19
@@ -1,52 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Porsche Informatik. All Rights Reserved.
3
- * This software is released under MIT license.
4
- * The full license information can be found in LICENSE in the root directory of this project.
5
- */
6
- import { Component, Input, HostBinding, ViewChild, Renderer2, ElementRef } from '@angular/core';
7
- import * as i0 from "@angular/core";
8
- export class ClrLetterAvatar {
9
- constructor(renderer) {
10
- this.renderer = renderer;
11
- this.avatar = true;
12
- this.size = 24;
13
- }
14
- ngAfterViewInit() {
15
- this.renderer.setStyle(this.avatarElement.nativeElement, 'width', this.size + 'px');
16
- this.renderer.setStyle(this.avatarElement.nativeElement, 'height', this.size + 'px');
17
- }
18
- getInitials() {
19
- if (this.name !== undefined) {
20
- return this.name.split(/\s/).reduce((response, word) => {
21
- if (response.length < 2) {
22
- return (response += word.slice(0, 1));
23
- }
24
- else {
25
- return response;
26
- }
27
- }, '');
28
- }
29
- else {
30
- return '';
31
- }
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatar, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrLetterAvatar, selector: "clr-letter-avatar", inputs: { name: ["clrName", "name"], size: ["clrSize", "size"] }, host: { properties: { "class.clr-avatar": "this.avatar" } }, viewQueries: [{ propertyName: "avatarElement", first: true, predicate: ["avatar"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"avatar-circle\">\n <div #avatar class=\"avatar-initials\">{{getInitials()}}</div>\n</div>\n" }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatar, decorators: [{
37
- type: Component,
38
- args: [{ selector: 'clr-letter-avatar', template: "<div class=\"avatar-circle\">\n <div #avatar class=\"avatar-initials\">{{getInitials()}}</div>\n</div>\n" }]
39
- }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { avatar: [{
40
- type: HostBinding,
41
- args: ['class.clr-avatar']
42
- }], name: [{
43
- type: Input,
44
- args: ['clrName']
45
- }], size: [{
46
- type: Input,
47
- args: ['clrSize']
48
- }], avatarElement: [{
49
- type: ViewChild,
50
- args: ['avatar', { static: true }]
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGVyLWF2YXRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xldHRlci1hdmF0YXIvbGV0dGVyLWF2YXRhci50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xldHRlci1hdmF0YXIvbGV0dGVyLWF2YXRhci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0vRyxNQUFNLE9BQU8sZUFBZTtJQVExQixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUE4sV0FBTSxHQUFHLElBQUksQ0FBQztRQUc3QixTQUFJLEdBQUcsRUFBRSxDQUFDO0lBSWMsQ0FBQztJQUUzQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxRQUFRLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDVCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7OEdBM0JVLGVBQWU7a0dBQWYsZUFBZSwrU0NaNUIsMkdBR0E7OzJGRFNhLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0UsbUJBQW1COzhFQUlJLE1BQU07c0JBQXRDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUViLElBQUk7c0JBQXJCLEtBQUs7dUJBQUMsU0FBUztnQkFDRSxJQUFJO3NCQUFyQixLQUFLO3VCQUFDLFNBQVM7Z0JBRXVCLGFBQWE7c0JBQW5ELFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbGV0dGVyLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0ZXItYXZhdGFyLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJMZXR0ZXJBdmF0YXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jbHItYXZhdGFyJykgYXZhdGFyID0gdHJ1ZTtcblxuICBASW5wdXQoJ2Nsck5hbWUnKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgnY2xyU2l6ZScpIHNpemUgPSAyNDtcblxuICBAVmlld0NoaWxkKCdhdmF0YXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBhdmF0YXJFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmF2YXRhckVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgdGhpcy5zaXplICsgJ3B4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmF2YXRhckVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIHRoaXMuc2l6ZSArICdweCcpO1xuICB9XG5cbiAgZ2V0SW5pdGlhbHMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5uYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLm5hbWUuc3BsaXQoL1xccy8pLnJlZHVjZSgocmVzcG9uc2UsIHdvcmQpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICByZXR1cm4gKHJlc3BvbnNlICs9IHdvcmQuc2xpY2UoMCwgMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgfSwgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXZhdGFyLWNpcmNsZVwiPlxuICA8ZGl2ICNhdmF0YXIgY2xhc3M9XCJhdmF0YXItaW5pdGlhbHNcIj57e2dldEluaXRpYWxzKCl9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,24 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Porsche Informatik. All Rights Reserved.
3
- * This software is released under MIT license.
4
- * The full license information can be found in LICENSE in the root directory of this project.
5
- */
6
- import { CommonModule } from '@angular/common';
7
- import { NgModule } from '@angular/core';
8
- import { ClarityModule } from '@clr/angular';
9
- import { ClrLetterAvatar } from './letter-avatar';
10
- import * as i0 from "@angular/core";
11
- export class ClrLetterAvatarModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatarModule, declarations: [ClrLetterAvatar], imports: [CommonModule, ClarityModule], exports: [ClrLetterAvatar] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatarModule, imports: [CommonModule, ClarityModule] }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrLetterAvatarModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- imports: [CommonModule, ClarityModule],
20
- declarations: [ClrLetterAvatar],
21
- exports: [ClrLetterAvatar],
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGVyLWF2YXRhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9sZXR0ZXItYXZhdGFyL2xldHRlci1hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsaUJBSGpCLGVBQWUsYUFEcEIsWUFBWSxFQUFFLGFBQWEsYUFFM0IsZUFBZTsrR0FFZCxxQkFBcUIsWUFKdEIsWUFBWSxFQUFFLGFBQWE7OzJGQUkxQixxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztvQkFDdEMsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFyaXR5TW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcblxuaW1wb3J0IHsgQ2xyTGV0dGVyQXZhdGFyIH0gZnJvbSAnLi9sZXR0ZXItYXZhdGFyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2xhcml0eU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0NsckxldHRlckF2YXRhcl0sXG4gIGV4cG9ydHM6IFtDbHJMZXR0ZXJBdmF0YXJdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJMZXR0ZXJBdmF0YXJNb2R1bGUge31cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export * from './location-bar.model';
2
- export * from './location-bar.provider';
3
- export * from './location-bar.module';
4
- export * from './location-bar.component';
5
- export * from './location-bar.search.model';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9sb2NhdGlvbi1iYXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbi1iYXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbi1iYXIucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbi1iYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYXRpb24tYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2F0aW9uLWJhci5zZWFyY2gubW9kZWwnO1xuIl19
@@ -1,150 +0,0 @@
1
- import { Component, EventEmitter, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
- import { angleIcon, ClarityIcons, treeViewIcon } from '@cds/core/icon';
3
- import '@cds/core/icon/register.js';
4
- import { of } from 'rxjs';
5
- import { LocationBarNode } from '../location-bar.model';
6
- import { CONTENT_PROVIDER, LocationBarContentProvider } from '../location-bar.provider';
7
- import { LocationBarSearchComponent } from '../location-bar-search/location-bar-search.component';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@clr/angular";
11
- import * as i3 from "../../dropdown/clr-dropdown-overflow.directive";
12
- import * as i4 from "../location-bar-search/location-bar-search.component";
13
- import * as i5 from "../location-bar.provider";
14
- ClarityIcons.addIcons(treeViewIcon, angleIcon);
15
- /**
16
- * Component which renders a node of the location bar.
17
- */
18
- export class LocationBarNodeComponent {
19
- /* inputs */
20
- set parentNode(parentNode) {
21
- this._parentNode = parentNode;
22
- if (this._parentNode) {
23
- const children$ = this._parentNode.getChildren() ? of(this._parentNode.getChildren()) : this.getLazyChildren();
24
- children$.toPromise().then(nodes => this.prepareChildren(nodes || []));
25
- }
26
- }
27
- set locationBarSearch(search) {
28
- if (search) {
29
- search.focusInput();
30
- }
31
- }
32
- constructor(contentProvider) {
33
- this.contentProvider = contentProvider;
34
- /**
35
- * The selectable nodes
36
- */
37
- this.selectableChilds = [];
38
- this.SEARCH_ITEM_STORAGE_KEY = 'searchedItem';
39
- this.searchResultItems = [];
40
- /* outputs */
41
- /**
42
- * Emits selection changes
43
- */
44
- this.selectionChanged = new EventEmitter();
45
- this.searchItemChanged = new EventEmitter();
46
- }
47
- ngOnChanges(changes) {
48
- if (changes?.searchResultItems) {
49
- this.searchResultItems = changes.searchResultItems.currentValue;
50
- }
51
- }
52
- get parentNode() {
53
- return this._parentNode;
54
- }
55
- getLazyChildren() {
56
- return this.contentProvider ? this.contentProvider.getLazyChildren(this._parentNode) : of([]);
57
- }
58
- prepareChildren(nodes) {
59
- this._parentNode.setChildren(nodes);
60
- /* when no node is selected search within the children for the first child to be pre-selected */
61
- if (!this._parentNode.getSelectedChild()) {
62
- for (const node of nodes) {
63
- if (node.preSelected) {
64
- this._parentNode.setSelectedChild(node);
65
- node.preSelected = false;
66
- break;
67
- }
68
- }
69
- }
70
- this.selectableChilds = nodes.filter(n => n.selectable);
71
- }
72
- /**
73
- * Listens for selection changes of child components and re-emits the selection event.
74
- * @param selection The changed selection of child components
75
- */
76
- onSelectionChanged(selection) {
77
- selection.unshift(this._parentNode.getSelectedChild().id);
78
- this.selectionChanged.emit(selection);
79
- }
80
- /**
81
- * Selects the given node
82
- * @param selectedNode The selected child node.
83
- */
84
- selectNode(selectedNode) {
85
- if (selectedNode) {
86
- selectedNode.setSelectedChild(null);
87
- this._parentNode.setSelectedChild(selectedNode);
88
- this.notifySelectionChanged(selectedNode);
89
- }
90
- }
91
- /**
92
- * Method called internally to emit the selection event
93
- * @param selectedNode The node which has been selected
94
- */
95
- notifySelectionChanged(selectedNode) {
96
- this.selectionChanged.emit([selectedNode.id]);
97
- }
98
- onSearch(text) {
99
- this.searchText = text;
100
- this.contentProvider.searchPerformed({ text: text, searchableNodes: this._parentNode.getChildren() });
101
- }
102
- displaySearchResult() {
103
- return this.searchResultItems.length !== 0 || !!this.searchText;
104
- }
105
- resetSearch() {
106
- this.searchResultItems = [];
107
- this.searchText = '';
108
- }
109
- onSearchItemChanged(item) {
110
- let searchedItem;
111
- if (item) {
112
- searchedItem = item;
113
- localStorage.setItem(this.SEARCH_ITEM_STORAGE_KEY, JSON.stringify(item));
114
- }
115
- else {
116
- const storageItem = localStorage.getItem(this.SEARCH_ITEM_STORAGE_KEY);
117
- if (storageItem) {
118
- searchedItem = JSON.parse(storageItem);
119
- }
120
- }
121
- this.searchItemChanged.emit(searchedItem);
122
- }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarNodeComponent, deps: [{ token: CONTENT_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: { parentNode: "parentNode", searchResultItems: ["clrSearchResultItems", "searchResultItems"], searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { selectionChanged: "selectionChanged", searchItemChanged: "searchItemChanged" }, host: { properties: { "class.location-bar-node": "true" } }, viewQueries: [{ propertyName: "locationBarSearch", first: true, predicate: ["locationBarSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon>&nbsp;...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" [clrDropdownMenuItemMinHeight]=\"'24px'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n *ngFor=\"let searchResultItem of searchResultItems\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #displayNotFound>\n <span class=\"no-result-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n </ng-template>\n </ng-container>\n\n <ng-template #displaySelectableChilds>\n <button\n *ngFor=\"let item of selectableChilds\"\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </clr-dropdown-menu>\n </clr-dropdown>\n </ng-container>\n\n <ng-template #singleSelected>\n <ng-container *ngIf=\"parentNode.getSelectedChild()\">\n <ng-container *ngIf=\"parentNode.getSelectedChild().selectable; else unselectable\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n </ng-container>\n <ng-template #unselectable>\n <span\n class=\"unselectable-node text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n </ng-template>\n </ng-container>\n </ng-template>\n\n <clr-location-bar-node\n *ngIf=\"parentNode.getSelectedChild() && parentNode.getChildren().length > 0\"\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span>/</span>\n </clr-location-bar-node>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: i3.ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "component", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: ["parentNode", "clrSearchResultItems", "clrSearchRequest"], outputs: ["selectionChanged", "searchItemChanged"] }, { kind: "component", type: i4.LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: ["clrSearchRequest"], outputs: ["searchPerformed"] }] }); }
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarNodeComponent, decorators: [{
127
- type: Component,
128
- args: [{ selector: 'clr-location-bar-node', host: { '[class.location-bar-node]': 'true' }, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon>&nbsp;...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" [clrDropdownMenuItemMinHeight]=\"'24px'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n *ngFor=\"let searchResultItem of searchResultItems\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #displayNotFound>\n <span class=\"no-result-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n </ng-template>\n </ng-container>\n\n <ng-template #displaySelectableChilds>\n <button\n *ngFor=\"let item of selectableChilds\"\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </clr-dropdown-menu>\n </clr-dropdown>\n </ng-container>\n\n <ng-template #singleSelected>\n <ng-container *ngIf=\"parentNode.getSelectedChild()\">\n <ng-container *ngIf=\"parentNode.getSelectedChild().selectable; else unselectable\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n </ng-container>\n <ng-template #unselectable>\n <span\n class=\"unselectable-node text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n </ng-template>\n </ng-container>\n </ng-template>\n\n <clr-location-bar-node\n *ngIf=\"parentNode.getSelectedChild() && parentNode.getChildren().length > 0\"\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span>/</span>\n </clr-location-bar-node>\n</ng-container>\n" }]
129
- }], ctorParameters: () => [{ type: i5.LocationBarContentProvider, decorators: [{
130
- type: Inject,
131
- args: [CONTENT_PROVIDER]
132
- }, {
133
- type: Optional
134
- }] }], propDecorators: { parentNode: [{
135
- type: Input
136
- }], searchResultItems: [{
137
- type: Input,
138
- args: ['clrSearchResultItems']
139
- }], searchRequest: [{
140
- type: Input,
141
- args: ['clrSearchRequest']
142
- }], selectionChanged: [{
143
- type: Output
144
- }], searchItemChanged: [{
145
- type: Output
146
- }], locationBarSearch: [{
147
- type: ViewChild,
148
- args: ['locationBarSearch']
149
- }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbG9jYXRpb24tYmFyL2xvY2F0aW9uLWJhci1ub2RlL2xvY2F0aW9uLWJhci1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXItbm9kZS9sb2NhdGlvbi1iYXItbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7QUFFbEcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBaUJuQyxZQUFZO0lBQ1osSUFDSSxVQUFVLENBQUMsVUFBOEI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRS9HLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBV0QsSUFBb0MsaUJBQWlCLENBQUMsTUFBa0M7UUFDdEYsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQXlELGVBQThDO1FBQTlDLG9CQUFlLEdBQWYsZUFBZSxDQUErQjtRQXJDdkc7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO1FBTW5DLDRCQUF1QixHQUFXLGNBQWMsQ0FBQztRQVkzQixzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBRzNFLGFBQWE7UUFDYjs7V0FFRztRQUNPLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0Msc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFRc0MsQ0FBQztJQUUzRyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBMkI7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsZ0dBQWdHO1FBQ2hHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLFNBQWM7UUFDL0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFlBQWdDO1FBQ3pDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0JBQXNCLENBQUMsWUFBZ0M7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQXVCO1FBQ3pDLElBQUksWUFBK0IsQ0FBQztRQUNwQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQWpJVSx3QkFBd0Isa0JBMkNmLGdCQUFnQjtrR0EzQ3pCLHdCQUF3QixnZ0JDN0JyQywreElBZ0hBLHl0Q0RuRmEsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QixRQUUzQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sRUFBRTs7MEJBNkNoQyxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0F4QjNDLFVBQVU7c0JBRGIsS0FBSztnQkFTeUIsaUJBQWlCO3NCQUEvQyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFDRixhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFNZixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUU2QixpQkFBaUI7c0JBQXBELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuZ2xlSWNvbiwgQ2xhcml0eUljb25zLCB0cmVlVmlld0ljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5pbXBvcnQgJ0BjZHMvY29yZS9pY29uL3JlZ2lzdGVyLmpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhck5vZGUsIE5vZGVJZCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5tb2RlbCc7XG5pbXBvcnQgeyBDT05URU5UX1BST1ZJREVSLCBMb2NhdGlvbkJhckNvbnRlbnRQcm92aWRlciB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5wcm92aWRlcic7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0TW9kZWwsIFNlYXJjaFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vbG9jYXRpb24tYmFyLnNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhclNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci1zZWFyY2gvbG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQnO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnModHJlZVZpZXdJY29uLCBhbmdsZUljb24pO1xuXG4vKipcbiAqIENvbXBvbmVudCB3aGljaCByZW5kZXJzIGEgbm9kZSBvZiB0aGUgbG9jYXRpb24gYmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbG9jYXRpb24tYmFyLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7ICdbY2xhc3MubG9jYXRpb24tYmFyLW5vZGVdJzogJ3RydWUnIH0sXG59KVxuZXhwb3J0IGNsYXNzIExvY2F0aW9uQmFyTm9kZUNvbXBvbmVudDxUIGV4dGVuZHMgTm9kZUlkPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IG5vZGUgb2YgdGhpcyBjb21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgX3BhcmVudE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPjtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdGFibGUgbm9kZXNcbiAgICovXG4gIHNlbGVjdGFibGVDaGlsZHM6IExvY2F0aW9uQmFyTm9kZTxUPltdID0gW107XG5cbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuXG4gIGZvY3VzOiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IFNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZOiBzdHJpbmcgPSAnc2VhcmNoZWRJdGVtJztcblxuICAvKiBpbnB1dHMgKi9cbiAgQElucHV0KClcbiAgc2V0IHBhcmVudE5vZGUocGFyZW50Tm9kZTogTG9jYXRpb25CYXJOb2RlPFQ+KSB7XG4gICAgdGhpcy5fcGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgaWYgKHRoaXMuX3BhcmVudE5vZGUpIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuJCA9IHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSA/IG9mKHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSkgOiB0aGlzLmdldExhenlDaGlsZHJlbigpO1xuXG4gICAgICBjaGlsZHJlbiQudG9Qcm9taXNlKCkudGhlbihub2RlcyA9PiB0aGlzLnByZXBhcmVDaGlsZHJlbihub2RlcyB8fCBbXSkpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ2NsclNlYXJjaFJlc3VsdEl0ZW1zJykgc2VhcmNoUmVzdWx0SXRlbXM6IFNlYXJjaFJlc3VsdE1vZGVsW10gPSBbXTtcbiAgQElucHV0KCdjbHJTZWFyY2hSZXF1ZXN0Jykgc2VhcmNoUmVxdWVzdDogU2VhcmNoUmVxdWVzdE1vZGVsO1xuXG4gIC8qIG91dHB1dHMgKi9cbiAgLyoqXG4gICAqIEVtaXRzIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoSXRlbUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdE1vZGVsPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2xvY2F0aW9uQmFyU2VhcmNoJykgc2V0IGxvY2F0aW9uQmFyU2VhcmNoKHNlYXJjaDogTG9jYXRpb25CYXJTZWFyY2hDb21wb25lbnQpIHtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBzZWFyY2guZm9jdXNJbnB1dCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEVOVF9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRlbnRQcm92aWRlcjogTG9jYXRpb25CYXJDb250ZW50UHJvdmlkZXI8VD4pIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzPy5zZWFyY2hSZXN1bHRJdGVtcykge1xuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRJdGVtcyA9IGNoYW5nZXMuc2VhcmNoUmVzdWx0SXRlbXMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYXJlbnROb2RlKCk6IExvY2F0aW9uQmFyTm9kZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE5vZGU7XG4gIH1cblxuICBwcml2YXRlIGdldExhenlDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50UHJvdmlkZXIgPyB0aGlzLmNvbnRlbnRQcm92aWRlci5nZXRMYXp5Q2hpbGRyZW4odGhpcy5fcGFyZW50Tm9kZSkgOiBvZihbXSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVDaGlsZHJlbihub2RlczogTG9jYXRpb25CYXJOb2RlPFQ+W10pIHtcbiAgICB0aGlzLl9wYXJlbnROb2RlLnNldENoaWxkcmVuKG5vZGVzKTtcbiAgICAvKiB3aGVuIG5vIG5vZGUgaXMgc2VsZWN0ZWQgc2VhcmNoIHdpdGhpbiB0aGUgY2hpbGRyZW4gZm9yIHRoZSBmaXJzdCBjaGlsZCB0byBiZSBwcmUtc2VsZWN0ZWQgKi9cbiAgICBpZiAoIXRoaXMuX3BhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB7XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgaWYgKG5vZGUucHJlU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLl9wYXJlbnROb2RlLnNldFNlbGVjdGVkQ2hpbGQobm9kZSk7XG4gICAgICAgICAgbm9kZS5wcmVTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0YWJsZUNoaWxkcyA9IG5vZGVzLmZpbHRlcihuID0+IG4uc2VsZWN0YWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVucyBmb3Igc2VsZWN0aW9uIGNoYW5nZXMgb2YgY2hpbGQgY29tcG9uZW50cyBhbmQgcmUtZW1pdHMgdGhlIHNlbGVjdGlvbiBldmVudC5cbiAgICogQHBhcmFtIHNlbGVjdGlvbiBUaGUgY2hhbmdlZCBzZWxlY3Rpb24gb2YgY2hpbGQgY29tcG9uZW50c1xuICAgKi9cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogVFtdKSB7XG4gICAgc2VsZWN0aW9uLnVuc2hpZnQodGhpcy5fcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuaWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBzZWxlY3RlZCBjaGlsZCBub2RlLlxuICAgKi9cbiAgc2VsZWN0Tm9kZShzZWxlY3RlZE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPikge1xuICAgIGlmIChzZWxlY3RlZE5vZGUpIHtcbiAgICAgIHNlbGVjdGVkTm9kZS5zZXRTZWxlY3RlZENoaWxkKG51bGwpO1xuICAgICAgdGhpcy5fcGFyZW50Tm9kZS5zZXRTZWxlY3RlZENoaWxkKHNlbGVjdGVkTm9kZSk7XG4gICAgICB0aGlzLm5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGNhbGxlZCBpbnRlcm5hbGx5IHRvIGVtaXQgdGhlIHNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBub2RlIHdoaWNoIGhhcyBiZWVuIHNlbGVjdGVkXG4gICAqL1xuICBwcml2YXRlIG5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlOiBMb2NhdGlvbkJhck5vZGU8VD4pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChbc2VsZWN0ZWROb2RlLmlkXSk7XG4gIH1cblxuICBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSB0ZXh0O1xuICAgIHRoaXMuY29udGVudFByb3ZpZGVyLnNlYXJjaFBlcmZvcm1lZCh7IHRleHQ6IHRleHQsIHNlYXJjaGFibGVOb2RlczogdGhpcy5fcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpIH0pO1xuICB9XG5cbiAgZGlzcGxheVNlYXJjaFJlc3VsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRJdGVtcy5sZW5ndGggIT09IDAgfHwgISF0aGlzLnNlYXJjaFRleHQ7XG4gIH1cblxuICByZXNldFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdEl0ZW1zID0gW107XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gIH1cblxuICBvblNlYXJjaEl0ZW1DaGFuZ2VkKGl0ZW06IFNlYXJjaFJlc3VsdE1vZGVsKTogdm9pZCB7XG4gICAgbGV0IHNlYXJjaGVkSXRlbTogU2VhcmNoUmVzdWx0TW9kZWw7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHNlYXJjaGVkSXRlbSA9IGl0ZW07XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShpdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TRUFSQ0hfSVRFTV9TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoc3RvcmFnZUl0ZW0pIHtcbiAgICAgICAgc2VhcmNoZWRJdGVtID0gSlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoSXRlbUNoYW5nZWQuZW1pdChzZWFyY2hlZEl0ZW0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicGFyZW50Tm9kZVwiPlxuICA8bmctY29udGVudCAqbmdJZj1cInBhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDAgJiYgIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB8fCBzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDE7XG4gICAgICBlbHNlIHNpbmdsZVNlbGVjdGVkXG4gICAgXCJcbiAgPlxuICAgIDxjbHItZHJvcGRvd24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbVwiXG4gICAgICAgIChibHVyKT1cImZvY3VzID0gZmFsc2VcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXMgPSB0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cInJlc2V0U2VhcmNoKClcIlxuICAgICAgICBjbHJEcm9wZG93blRyaWdnZXJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpIGFzIG5vZGU7IGVsc2UgdW5zZWxlY3RlZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzZXRTZWFyY2goKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG5vZGUubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJkb3duXCIgc2l6ZT1cInhzXCIgY2xhc3M9XCJjYXJldC1pY29uXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5zZWxlY3RlZD5cbiAgICAgICAgICA8Y2RzLWljb24gY2xhc3M9XCJ1bnNlbGVjdGVkXCIgc2l6ZT1cIjE4XCIgW2F0dHIuc29saWRdPVwiZm9jdXNcIiBzaGFwZT1cInRyZWUtdmlld1wiPjwvY2RzLWljb24+Jm5ic3A7Li4uXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxjbHItZHJvcGRvd24tbWVudSBbY2xyUG9zaXRpb25dPVwiJ2JvdHRvbS1sZWZ0J1wiIFtjbHJEcm9wZG93bk1lbnVJdGVtTWluSGVpZ2h0XT1cIicyNHB4J1wiICpjbHJJZk9wZW4+XG4gICAgICAgIDxjbHItbG9jYXRpb24tYmFyLXNlYXJjaFxuICAgICAgICAgICNsb2NhdGlvbkJhclNlYXJjaFxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgW2NsclNlYXJjaFJlcXVlc3RdPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgKHNlYXJjaFBlcmZvcm1lZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY2xyLWxvY2F0aW9uLWJhci1zZWFyY2g+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5U2VhcmNoUmVzdWx0KCk7IGVsc2UgZGlzcGxheVNlbGVjdGFibGVDaGlsZHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoUmVzdWx0SXRlbXMubGVuZ3RoICE9PSAwOyBlbHNlIGRpc3BsYXlOb3RGb3VuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xyRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWFyY2hSZXN1bHRJdGVtIG9mIHNlYXJjaFJlc3VsdEl0ZW1zXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoSXRlbUNoYW5nZWQoc2VhcmNoUmVzdWx0SXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hSZXF1ZXN0Py5zZWFyY2hSZXN1bHRJdGVtUmVmOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VhcmNoUmVzdWx0SXRlbSB9XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXNwbGF5Tm90Rm91bmQ+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXJlc3VsdC10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHNlYXJjaFJlcXVlc3Q/Lm5vUmVzdWx0c1RleHQgPz8gJ05vIHNlYXJjaCByZXN1bHQgZm91bmQuJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzcGxheVNlbGVjdGFibGVDaGlsZHM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0YWJsZUNoaWxkc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsckRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1jaGlsZF09XCJpdGVtLmlkID09PSBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKT8uaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vZGUoaXRlbSlcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Nsci1kcm9wZG93bi1tZW51PlxuICAgIDwvY2xyLWRyb3Bkb3duPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI3NpbmdsZVNlbGVjdGVkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLnNlbGVjdGFibGU7IGVsc2UgdW5zZWxlY3RhYmxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc21cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3ROb2RlKHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN1bnNlbGVjdGFibGU+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ1bnNlbGVjdGFibGUtbm9kZSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICBbY2xhc3MubGFzdC1sZXZlbF09XCIhcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICAgICAgICB0aXRsZT1cInt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGNsci1sb2NhdGlvbi1iYXItbm9kZVxuICAgICpuZ0lmPVwicGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkgJiYgcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpLmxlbmd0aCA+IDBcIlxuICAgIFtwYXJlbnROb2RlXT1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICBbY2xyU2VhcmNoUmVxdWVzdF09XCJzZWFyY2hSZXF1ZXN0XCJcbiAgICBbY2xyU2VhcmNoUmVzdWx0SXRlbXNdPVwic2VhcmNoUmVzdWx0SXRlbXNcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAoc2VhcmNoSXRlbUNoYW5nZWQpPVwib25TZWFyY2hJdGVtQ2hhbmdlZChudWxsKVwiXG4gID5cbiAgICA8c3Bhbj4vPC9zcGFuPlxuICA8L2Nsci1sb2NhdGlvbi1iYXItbm9kZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,74 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@clr/angular";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "../../autocomplete-off/autocomplete-off.directive";
8
- import * as i5 from "../../abstract-form-component/label";
9
- import * as i6 from "../../searchfield/search-field";
10
- export class LocationBarSearchComponent {
11
- constructor() {
12
- this.searchControl = new FormControl('');
13
- this.previousValue = '';
14
- this.displayWarning = false;
15
- this.MIN_CHARACTERS_DEFAULT = 3;
16
- this.searchPerformed = new EventEmitter();
17
- }
18
- ngOnInit() {
19
- this.searchControl.valueChanges.subscribe(text => this.onSearch(text));
20
- }
21
- onSearch(text) {
22
- const validatedText = this.validateSearchText(text);
23
- if (validatedText !== null) {
24
- this.searchPerformed.emit(validatedText);
25
- }
26
- }
27
- validateSearchText(text) {
28
- const isDeletion = this.isTextDeletion(text);
29
- this.displayWarning = text.length < this.getMinSearchTextLength() && text.length !== 0;
30
- if (isDeletion) {
31
- return text.length >= this.getMinSearchTextLength() ? text : '';
32
- }
33
- else {
34
- return text.length >= this.getMinSearchTextLength() ? text : null;
35
- }
36
- }
37
- focusInput() {
38
- setTimeout(() => {
39
- this.searchInput.nativeElement.focus();
40
- });
41
- }
42
- isTextDeletion(text) {
43
- const isDeletion = text.length < this.previousValue.length;
44
- this.previousValue = text;
45
- return isDeletion;
46
- }
47
- getMinSearchTextLength() {
48
- return this.searchRequest?.minCharacters !== undefined
49
- ? this.searchRequest.minCharacters
50
- : this.MIN_CHARACTERS_DEFAULT;
51
- }
52
- preventDropdownActions(event) {
53
- event.stopPropagation();
54
- }
55
- getMinCharactersText() {
56
- return `Type ${this.searchRequest?.minCharacters ?? this.MIN_CHARACTERS_DEFAULT}+ characters to search.`;
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: { searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { searchPerformed: "searchPerformed" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i2.ClrControlHelper, selector: "clr-control-helper" }, { kind: "directive", type: i2.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ClrAutocompleteOff, selector: "input:not([autocomplete])" }, { kind: "directive", type: i5.ClrAddonsLabel, selector: "label" }, { kind: "directive", type: i6.ClrSearchField, selector: "[clrSearch]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
- }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarSearchComponent, decorators: [{
62
- type: Component,
63
- args: [{ selector: 'clr-location-bar-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"] }]
64
- }], propDecorators: { searchRequest: [{
65
- type: Input,
66
- args: ['clrSearchRequest']
67
- }], searchPerformed: [{
68
- type: Output,
69
- args: ['searchPerformed']
70
- }], searchInput: [{
71
- type: ViewChild,
72
- args: ['searchInput', { static: true }]
73
- }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9sb2NhdGlvbi1iYXIvbG9jYXRpb24tYmFyLXNlYXJjaC9sb2NhdGlvbi1iYXItc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXItc2VhcmNoL2xvY2F0aW9uLWJhci1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTywwQkFBMEI7SUFOdkM7UUFPRSxrQkFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXZCLDJCQUFzQixHQUFXLENBQUMsQ0FBQztRQUlqQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FrRHpFO0lBOUNDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDdkYsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsS0FBSyxTQUFTO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7WUFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLFFBQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLHNCQUFzQix5QkFBeUIsQ0FBQztJQUMzRyxDQUFDOzhHQTFEVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw0U0NuQnZDLDZyQkFxQkE7OzJGREZhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07OEJBU3BCLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUVFLGVBQWU7c0JBQXpDLE1BQU07dUJBQUMsaUJBQWlCO2dCQUVtQixXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1sb2NhdGlvbi1iYXItc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLWJhci1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTG9jYXRpb25CYXJTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgcHJldmlvdXNWYWx1ZTogc3RyaW5nID0gJyc7XG4gIGRpc3BsYXlXYXJuaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgTUlOX0NIQVJBQ1RFUlNfREVGQVVMVDogbnVtYmVyID0gMztcblxuICBASW5wdXQoJ2NsclNlYXJjaFJlcXVlc3QnKSBzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0TW9kZWw7XG5cbiAgQE91dHB1dCgnc2VhcmNoUGVyZm9ybWVkJykgc2VhcmNoUGVyZm9ybWVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0ZXh0ID0+IHRoaXMub25TZWFyY2godGV4dCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWxpZGF0ZWRUZXh0ID0gdGhpcy52YWxpZGF0ZVNlYXJjaFRleHQodGV4dCk7XG4gICAgaWYgKHZhbGlkYXRlZFRleHQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2VhcmNoUGVyZm9ybWVkLmVtaXQodmFsaWRhdGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlYXJjaFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0RlbGV0aW9uID0gdGhpcy5pc1RleHREZWxldGlvbih0ZXh0KTtcbiAgICB0aGlzLmRpc3BsYXlXYXJuaW5nID0gdGV4dC5sZW5ndGggPCB0aGlzLmdldE1pblNlYXJjaFRleHRMZW5ndGgoKSAmJiB0ZXh0Lmxlbmd0aCAhPT0gMDtcbiAgICBpZiAoaXNEZWxldGlvbikge1xuICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID49IHRoaXMuZ2V0TWluU2VhcmNoVGV4dExlbmd0aCgpID8gdGV4dCA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dC5sZW5ndGggPj0gdGhpcy5nZXRNaW5TZWFyY2hUZXh0TGVuZ3RoKCkgPyB0ZXh0IDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RleHREZWxldGlvbih0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0RlbGV0aW9uID0gdGV4dC5sZW5ndGggPCB0aGlzLnByZXZpb3VzVmFsdWUubGVuZ3RoO1xuICAgIHRoaXMucHJldmlvdXNWYWx1ZSA9IHRleHQ7XG4gICAgcmV0dXJuIGlzRGVsZXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldE1pblNlYXJjaFRleHRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJzICE9PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5zZWFyY2hSZXF1ZXN0Lm1pbkNoYXJhY3RlcnNcbiAgICAgIDogdGhpcy5NSU5fQ0hBUkFDVEVSU19ERUZBVUxUO1xuICB9XG5cbiAgcHJldmVudERyb3Bkb3duQWN0aW9ucyhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGdldE1pbkNoYXJhY3RlcnNUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBUeXBlICR7dGhpcy5zZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJzID8/IHRoaXMuTUlOX0NIQVJBQ1RFUlNfREVGQVVMVH0rIGNoYXJhY3RlcnMgdG8gc2VhcmNoLmA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjbHItY29sLW1kLTEyIHNlYXJjaC13cmFwcGVyXCI+XG4gIDxmb3JtIGNsckZvcm0+XG4gICAgPGNsci1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxsYWJlbCBoaWRkZW4+PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgY2xhc3M9XCJjbHItY29sLW1kLTEyXCJcbiAgICAgICAgY2xySW5wdXRcbiAgICAgICAgY2xyU2VhcmNoXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hSZXF1ZXN0Py5wbGFjZWhvbGRlciA/PyAnJ1wiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgIChrZXlkb3duLlNwYWNlKT1cInByZXZlbnREcm9wZG93bkFjdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcbiAgICAgIC8+XG4gICAgICA8Y2xyLWNvbnRyb2wtaGVscGVyICpuZ0lmPVwiZGlzcGxheVdhcm5pbmdcIiBjbGFzcz1cIm1pbi10ZXh0LXdhcm5pbmdcIj57e1xuICAgICAgICBzZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJUZXh0ID8/IGdldE1pbkNoYXJhY3RlcnNUZXh0KClcbiAgICAgIH19PC9jbHItY29udHJvbC1oZWxwZXI+XG4gICAgPC9jbHItaW5wdXQtY29udGFpbmVyPlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
@@ -1,64 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ClarityIcons, organizationIcon } from '@cds/core/icon';
3
- import '@cds/core/icon/register.js';
4
- import { ReplaySubject } from 'rxjs';
5
- import { LocationBarNode } from './location-bar.model';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@clr/angular";
9
- import * as i3 from "./location-bar-node/location-bar-node.component";
10
- ClarityIcons.addIcons(organizationIcon);
11
- export class LocationBarComponent {
12
- constructor() {
13
- this.root$ = new ReplaySubject();
14
- this.iconShape = 'organization';
15
- this.iconTitle = '';
16
- this.searchResultItems = [];
17
- this.selectionChanged = new EventEmitter();
18
- this.searchItemChanged = new EventEmitter();
19
- }
20
- set roots(roots) {
21
- const internalRoot = new LocationBarNode(null, null, false);
22
- internalRoot.setChildren(roots);
23
- if (roots.length === 1) {
24
- internalRoot.setSelectedChild(roots[0]);
25
- }
26
- this.root$.next(internalRoot);
27
- }
28
- ngOnChanges(changes) {
29
- if (changes?.searchResultItems) {
30
- this.searchResultItems = changes.searchResultItems.currentValue;
31
- }
32
- }
33
- onSelectionChanged(selection) {
34
- this.selectionChanged.emit(selection);
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarComponent, selector: "clr-location-bar", inputs: { iconShape: ["clrIconShape", "iconShape"], iconTitle: ["clrIconTitle", "iconTitle"], searchRequest: ["clrSearchRequest", "searchRequest"], searchResultItems: ["clrSearchResultItems", "searchResultItems"], roots: ["clrRoots", "roots"] }, outputs: { selectionChanged: "clrSelectionChanged", searchItemChanged: "clrSearchItemChanged" }, usesOnChanges: true, ngImport: i0, template: "<cds-icon *ngIf=\"iconShape\" [attr.shape]=\"iconShape\" [title]=\"iconTitle\"></cds-icon>\n<clr-location-bar-node\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"searchItemChanged.emit($event)\"\n [parentNode]=\"root$ | async\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n>\n</clr-location-bar-node>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i3.LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: ["parentNode", "clrSearchResultItems", "clrSearchRequest"], outputs: ["selectionChanged", "searchItemChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarComponent, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'clr-location-bar', template: "<cds-icon *ngIf=\"iconShape\" [attr.shape]=\"iconShape\" [title]=\"iconTitle\"></cds-icon>\n<clr-location-bar-node\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"searchItemChanged.emit($event)\"\n [parentNode]=\"root$ | async\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n>\n</clr-location-bar-node>\n" }]
42
- }], propDecorators: { iconShape: [{
43
- type: Input,
44
- args: ['clrIconShape']
45
- }], iconTitle: [{
46
- type: Input,
47
- args: ['clrIconTitle']
48
- }], searchRequest: [{
49
- type: Input,
50
- args: ['clrSearchRequest']
51
- }], searchResultItems: [{
52
- type: Input,
53
- args: ['clrSearchResultItems']
54
- }], roots: [{
55
- type: Input,
56
- args: ['clrRoots']
57
- }], selectionChanged: [{
58
- type: Output,
59
- args: ['clrSelectionChanged']
60
- }], searchItemChanged: [{
61
- type: Output,
62
- args: ['clrSearchItemChanged']
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbG9jYXRpb24tYmFyL2xvY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFJL0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBTXhDLE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFLRSxVQUFLLEdBQUcsSUFBSSxhQUFhLEVBQXNCLENBQUM7UUFFekIsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUMzQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRVAsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQVk1QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0tBVzNGO0lBdEJDLElBQ0ksS0FBSyxDQUFDLEtBQTJCO1FBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBS0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFjO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0E3QlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isb2FDZGpDLDRYQVNBOzsyRkRLYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCOzhCQU1MLFNBQVM7c0JBQS9CLEtBQUs7dUJBQUMsY0FBYztnQkFDRSxTQUFTO3NCQUEvQixLQUFLO3VCQUFDLGNBQWM7Z0JBQ00sYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ00saUJBQWlCO3NCQUEvQyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFHekIsS0FBSztzQkFEUixLQUFLO3VCQUFDLFVBQVU7Z0JBVWMsZ0JBQWdCO3NCQUE5QyxNQUFNO3VCQUFDLHFCQUFxQjtnQkFDRyxpQkFBaUI7c0JBQWhELE1BQU07dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhcml0eUljb25zLCBvcmdhbml6YXRpb25JY29uIH0gZnJvbSAnQGNkcy9jb3JlL2ljb24nO1xuaW1wb3J0ICdAY2RzL2NvcmUvaWNvbi9yZWdpc3Rlci5qcyc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhck5vZGUsIE5vZGVJZCB9IGZyb20gJy4vbG9jYXRpb24tYmFyLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaFJlcXVlc3RNb2RlbCB9IGZyb20gJy4vbG9jYXRpb24tYmFyLnNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRNb2RlbCB9IGZyb20gJy4vbG9jYXRpb24tYmFyLnNlYXJjaC5tb2RlbCc7XG5cbkNsYXJpdHlJY29ucy5hZGRJY29ucyhvcmdhbml6YXRpb25JY29uKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWxvY2F0aW9uLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2NhdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhdGlvbkJhckNvbXBvbmVudDxUIGV4dGVuZHMgTm9kZUlkPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHJvb3QkID0gbmV3IFJlcGxheVN1YmplY3Q8TG9jYXRpb25CYXJOb2RlPFQ+PigpO1xuXG4gIEBJbnB1dCgnY2xySWNvblNoYXBlJykgaWNvblNoYXBlID0gJ29yZ2FuaXphdGlvbic7XG4gIEBJbnB1dCgnY2xySWNvblRpdGxlJykgaWNvblRpdGxlID0gJyc7XG4gIEBJbnB1dCgnY2xyU2VhcmNoUmVxdWVzdCcpIHNlYXJjaFJlcXVlc3Q6IFNlYXJjaFJlcXVlc3RNb2RlbDtcbiAgQElucHV0KCdjbHJTZWFyY2hSZXN1bHRJdGVtcycpIHNlYXJjaFJlc3VsdEl0ZW1zOiBTZWFyY2hSZXN1bHRNb2RlbFtdID0gW107XG5cbiAgQElucHV0KCdjbHJSb290cycpXG4gIHNldCByb290cyhyb290czogTG9jYXRpb25CYXJOb2RlPFQ+W10pIHtcbiAgICBjb25zdCBpbnRlcm5hbFJvb3QgPSBuZXcgTG9jYXRpb25CYXJOb2RlKG51bGwsIG51bGwsIGZhbHNlKTtcbiAgICBpbnRlcm5hbFJvb3Quc2V0Q2hpbGRyZW4ocm9vdHMpO1xuICAgIGlmIChyb290cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGludGVybmFsUm9vdC5zZXRTZWxlY3RlZENoaWxkKHJvb3RzWzBdKTtcbiAgICB9XG4gICAgdGhpcy5yb290JC5uZXh0KGludGVybmFsUm9vdCk7XG4gIH1cblxuICBAT3V0cHV0KCdjbHJTZWxlY3Rpb25DaGFuZ2VkJykgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCdjbHJTZWFyY2hJdGVtQ2hhbmdlZCcpIHNlYXJjaEl0ZW1DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHRNb2RlbD4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXM/LnNlYXJjaFJlc3VsdEl0ZW1zKSB7XG4gICAgICB0aGlzLnNlYXJjaFJlc3VsdEl0ZW1zID0gY2hhbmdlcy5zZWFyY2hSZXN1bHRJdGVtcy5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogVFtdKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoc2VsZWN0aW9uKTtcbiAgfVxufVxuIiwiPGNkcy1pY29uICpuZ0lmPVwiaWNvblNoYXBlXCIgW2F0dHIuc2hhcGVdPVwiaWNvblNoYXBlXCIgW3RpdGxlXT1cImljb25UaXRsZVwiPjwvY2RzLWljb24+XG48Y2xyLWxvY2F0aW9uLWJhci1ub2RlXG4gIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgKHNlYXJjaEl0ZW1DaGFuZ2VkKT1cInNlYXJjaEl0ZW1DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gIFtwYXJlbnROb2RlXT1cInJvb3QkIHwgYXN5bmNcIlxuICBbY2xyU2VhcmNoUmVxdWVzdF09XCJzZWFyY2hSZXF1ZXN0XCJcbiAgW2NsclNlYXJjaFJlc3VsdEl0ZW1zXT1cInNlYXJjaFJlc3VsdEl0ZW1zXCJcbj5cbjwvY2xyLWxvY2F0aW9uLWJhci1ub2RlPlxuIl19