cps-ui-kit 0.165.0 → 17.1.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 (166) hide show
  1. package/esm2022/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +824 -0
  2. package/esm2022/lib/components/cps-button/cps-button.component.mjs +190 -0
  3. package/esm2022/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +235 -0
  4. package/esm2022/lib/components/cps-checkbox/cps-checkbox.component.mjs +149 -0
  5. package/esm2022/lib/components/cps-chip/cps-chip.component.mjs +94 -0
  6. package/esm2022/lib/components/cps-datepicker/cps-datepicker.component.mjs +382 -0
  7. package/esm2022/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +209 -0
  8. package/esm2022/lib/components/cps-file-upload/cps-file-upload.component.mjs +138 -0
  9. package/esm2022/lib/components/cps-icon/cps-icon.component.mjs +193 -0
  10. package/esm2022/lib/components/cps-info-circle/cps-info-circle.component.mjs +61 -0
  11. package/esm2022/lib/components/cps-input/cps-input.component.mjs +386 -0
  12. package/{esm2020 → esm2022}/lib/components/cps-loader/cps-loader.component.mjs +5 -5
  13. package/esm2022/lib/components/cps-menu/cps-menu.component.mjs +552 -0
  14. package/esm2022/lib/components/cps-paginator/cps-paginator.component.mjs +114 -0
  15. package/esm2022/lib/components/cps-paginator/pipes/cps-paginate.pipe.mjs +30 -0
  16. package/{esm2020 → esm2022}/lib/components/cps-progress-circular/cps-progress-circular.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/components/cps-progress-linear/cps-progress-linear.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/lib/components/cps-radio-group/cps-radio/cps-radio.component.mjs +7 -7
  19. package/esm2022/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +55 -0
  20. package/esm2022/lib/components/cps-radio-group/cps-radio-group.component.mjs +158 -0
  21. package/esm2022/lib/components/cps-select/cps-select.component.mjs +615 -0
  22. package/esm2022/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +110 -0
  23. package/{esm2020 → esm2022}/lib/components/cps-tab-group/cps-tab/cps-tab.component.mjs +4 -4
  24. package/esm2022/lib/components/cps-tab-group/cps-tab-group.component.mjs +303 -0
  25. package/esm2022/lib/components/cps-table/components/internal/cps-sort-icon/cps-sort-icon.component.mjs +79 -0
  26. package/esm2022/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.mjs +408 -0
  27. package/esm2022/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +149 -0
  28. package/esm2022/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.mjs +88 -0
  29. package/esm2022/lib/components/cps-table/cps-table.component.mjs +941 -0
  30. package/esm2022/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +181 -0
  31. package/{esm2020 → esm2022}/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +5 -5
  32. package/{esm2020 → esm2022}/lib/components/cps-table/directives/cps-table-header-selectable.directive.mjs +5 -5
  33. package/{esm2020 → esm2022}/lib/components/cps-table/directives/cps-table-row-selectable.directive.mjs +5 -5
  34. package/esm2022/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +220 -0
  35. package/esm2022/lib/components/cps-tag/cps-tag.component.mjs +136 -0
  36. package/esm2022/lib/components/cps-textarea/cps-textarea.component.mjs +291 -0
  37. package/esm2022/lib/components/cps-timepicker/cps-timepicker.component.mjs +351 -0
  38. package/esm2022/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +251 -0
  39. package/esm2022/lib/components/cps-tree-select/cps-tree-select.component.mjs +87 -0
  40. package/esm2022/lib/components/cps-tree-table/cps-tree-table.component.mjs +1196 -0
  41. package/{esm2020 → esm2022}/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/components/cps-tree-table/directives/cps-tree-table-header-selectable.directive.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.mjs +5 -5
  45. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.mjs +43 -0
  46. package/esm2022/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.mjs +354 -0
  47. package/esm2022/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +619 -0
  48. package/esm2022/lib/directives/cps-tooltip/cps-tooltip.directive.mjs +257 -0
  49. package/{esm2020 → esm2022}/lib/pipes/internal/check-option-selected.pipe.mjs +4 -4
  50. package/esm2022/lib/pipes/internal/combine-labels.pipe.mjs +25 -0
  51. package/{esm2020 → esm2022}/lib/pipes/internal/label-by-value.pipe.mjs +4 -4
  52. package/esm2022/lib/services/cps-dialog/cps-dialog.service.mjs +99 -0
  53. package/{esm2020 → esm2022}/lib/services/cps-dialog/internal/components/cps-confirmation/cps-confirmation.component.mjs +5 -5
  54. package/esm2022/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs +470 -0
  55. package/{esm2020 → esm2022}/lib/services/cps-dialog/internal/directives/cps-dialog-content.directive.mjs +5 -5
  56. package/esm2022/lib/services/cps-dialog/utils/cps-dialog-config.mjs +3 -0
  57. package/esm2022/lib/services/cps-notification/cps-notification.service.mjs +126 -0
  58. package/esm2022/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.mjs +91 -0
  59. package/{esm2020 → esm2022}/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.mjs +23 -23
  60. package/esm2022/lib/utils/colors-utils.mjs +57 -0
  61. package/esm2022/lib/utils/internal/size-utils.mjs +24 -0
  62. package/{esm2020 → esm2022}/public-api.mjs +2 -2
  63. package/{fesm2020 → fesm2022}/cps-ui-kit.mjs +481 -391
  64. package/fesm2022/cps-ui-kit.mjs.map +1 -0
  65. package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +2 -2
  66. package/lib/components/cps-button/cps-button.component.d.ts +1 -1
  67. package/lib/components/cps-button-toggle/cps-button-toggle.component.d.ts +2 -2
  68. package/lib/components/cps-checkbox/cps-checkbox.component.d.ts +2 -2
  69. package/lib/components/cps-chip/cps-chip.component.d.ts +1 -1
  70. package/lib/components/cps-datepicker/cps-datepicker.component.d.ts +2 -2
  71. package/lib/components/cps-expansion-panel/cps-expansion-panel.component.d.ts +1 -1
  72. package/lib/components/cps-file-upload/cps-file-upload.component.d.ts +1 -1
  73. package/lib/components/cps-icon/cps-icon.component.d.ts +1 -1
  74. package/lib/components/cps-info-circle/cps-info-circle.component.d.ts +2 -2
  75. package/lib/components/cps-input/cps-input.component.d.ts +2 -2
  76. package/lib/components/cps-loader/cps-loader.component.d.ts +1 -1
  77. package/lib/components/cps-menu/cps-menu.component.d.ts +1 -1
  78. package/lib/components/cps-paginator/cps-paginator.component.d.ts +1 -1
  79. package/lib/components/cps-progress-circular/cps-progress-circular.component.d.ts +1 -1
  80. package/lib/components/cps-progress-linear/cps-progress-linear.component.d.ts +1 -1
  81. package/lib/components/cps-radio-group/cps-radio/cps-radio.component.d.ts +1 -1
  82. package/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.d.ts +1 -1
  83. package/lib/components/cps-radio-group/cps-radio-group.component.d.ts +2 -2
  84. package/lib/components/cps-select/cps-select.component.d.ts +2 -2
  85. package/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.d.ts +1 -1
  86. package/lib/components/cps-tab-group/cps-tab/cps-tab.component.d.ts +1 -1
  87. package/lib/components/cps-tab-group/cps-tab-group.component.d.ts +1 -1
  88. package/lib/components/cps-table/components/internal/cps-sort-icon/cps-sort-icon.component.d.ts +1 -1
  89. package/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.d.ts +1 -1
  90. package/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +1 -1
  91. package/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.d.ts +1 -1
  92. package/lib/components/cps-table/cps-table.component.d.ts +1 -1
  93. package/lib/components/cps-table/directives/cps-table-column-filter.directive.d.ts +1 -1
  94. package/lib/components/cps-table/directives/cps-table-column-sortable.directive.d.ts +1 -1
  95. package/lib/components/cps-table/directives/cps-table-row-selectable.directive.d.ts +1 -1
  96. package/lib/components/cps-tag/cps-tag.component.d.ts +1 -1
  97. package/lib/components/cps-textarea/cps-textarea.component.d.ts +2 -2
  98. package/lib/components/cps-timepicker/cps-timepicker.component.d.ts +2 -2
  99. package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +1 -1
  100. package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +1 -1
  101. package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +4 -4
  102. package/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.d.ts +1 -1
  103. package/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.d.ts +1 -1
  104. package/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.d.ts +1 -1
  105. package/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.d.ts +1 -1
  106. package/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.d.ts +2 -2
  107. package/lib/directives/{cps-tooltip.directive.d.ts → cps-tooltip/cps-tooltip.directive.d.ts} +2 -2
  108. package/lib/services/cps-dialog/cps-dialog.service.d.ts +13 -0
  109. package/lib/services/cps-dialog/utils/cps-dialog-config.d.ts +1 -1
  110. package/lib/services/cps-notification/cps-notification.service.d.ts +32 -0
  111. package/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.d.ts +1 -1
  112. package/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.d.ts +1 -1
  113. package/package.json +12 -18
  114. package/public-api.d.ts +1 -1
  115. package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +0 -824
  116. package/esm2020/lib/components/cps-button/cps-button.component.mjs +0 -190
  117. package/esm2020/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +0 -235
  118. package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +0 -149
  119. package/esm2020/lib/components/cps-chip/cps-chip.component.mjs +0 -94
  120. package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +0 -382
  121. package/esm2020/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +0 -209
  122. package/esm2020/lib/components/cps-file-upload/cps-file-upload.component.mjs +0 -138
  123. package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +0 -193
  124. package/esm2020/lib/components/cps-info-circle/cps-info-circle.component.mjs +0 -61
  125. package/esm2020/lib/components/cps-input/cps-input.component.mjs +0 -386
  126. package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +0 -552
  127. package/esm2020/lib/components/cps-paginator/cps-paginator.component.mjs +0 -113
  128. package/esm2020/lib/components/cps-paginator/pipes/cps-paginate.pipe.mjs +0 -30
  129. package/esm2020/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +0 -55
  130. package/esm2020/lib/components/cps-radio-group/cps-radio-group.component.mjs +0 -158
  131. package/esm2020/lib/components/cps-select/cps-select.component.mjs +0 -615
  132. package/esm2020/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +0 -110
  133. package/esm2020/lib/components/cps-tab-group/cps-tab-group.component.mjs +0 -299
  134. package/esm2020/lib/components/cps-table/components/internal/cps-sort-icon/cps-sort-icon.component.mjs +0 -79
  135. package/esm2020/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.mjs +0 -408
  136. package/esm2020/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +0 -148
  137. package/esm2020/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.mjs +0 -88
  138. package/esm2020/lib/components/cps-table/cps-table.component.mjs +0 -940
  139. package/esm2020/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +0 -181
  140. package/esm2020/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +0 -210
  141. package/esm2020/lib/components/cps-tag/cps-tag.component.mjs +0 -136
  142. package/esm2020/lib/components/cps-textarea/cps-textarea.component.mjs +0 -291
  143. package/esm2020/lib/components/cps-timepicker/cps-timepicker.component.mjs +0 -351
  144. package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +0 -250
  145. package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +0 -87
  146. package/esm2020/lib/components/cps-tree-table/cps-tree-table.component.mjs +0 -1192
  147. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.mjs +0 -43
  148. package/esm2020/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.mjs +0 -334
  149. package/esm2020/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +0 -616
  150. package/esm2020/lib/directives/cps-tooltip.directive.mjs +0 -257
  151. package/esm2020/lib/pipes/internal/combine-labels.pipe.mjs +0 -25
  152. package/esm2020/lib/services/cps-dialog/cps-dialog.service.mjs +0 -86
  153. package/esm2020/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs +0 -470
  154. package/esm2020/lib/services/cps-dialog/utils/cps-dialog-config.mjs +0 -3
  155. package/esm2020/lib/services/cps-notification/cps-notification.service.mjs +0 -94
  156. package/esm2020/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.mjs +0 -91
  157. package/esm2020/lib/utils/colors-utils.mjs +0 -57
  158. package/esm2020/lib/utils/internal/size-utils.mjs +0 -24
  159. package/fesm2015/cps-ui-kit.mjs +0 -12086
  160. package/fesm2015/cps-ui-kit.mjs.map +0 -1
  161. package/fesm2020/cps-ui-kit.mjs.map +0 -1
  162. /package/{esm2020 → esm2022}/cps-ui-kit.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/components/cps-table/cps-column-filter-types.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/services/cps-dialog/utils/cps-dialog-ref.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/services/cps-notification/utils/cps-notification-config.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/services/cps-notification/utils/internal/cps-notification-data.mjs +0 -0
@@ -0,0 +1,61 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CpsIconComponent } from '../cps-icon/cps-icon.component';
3
+ import { CpsTooltipDirective } from '../../directives/cps-tooltip/cps-tooltip.directive';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * CpsInfoCircleComponent is a component that provides information by means of the info icon with the tooltip on hover.
7
+ * @group Components
8
+ */
9
+ export class CpsInfoCircleComponent {
10
+ constructor() {
11
+ /**
12
+ * Size of the icon, it can be of type number denoting pixels, string or 'fill', 'xsmall', 'small', 'normal' or 'large'.
13
+ * @group Props
14
+ */
15
+ this.size = 'small';
16
+ /**
17
+ * Tooltip text to provide more info.
18
+ * @group Props
19
+ */
20
+ this.tooltipText = '';
21
+ /**
22
+ * Position of the tooltip, it can be 'top', 'bottom', 'left' or 'right'.
23
+ * @group Props
24
+ */
25
+ this.tooltipPosition = 'top';
26
+ /**
27
+ * Info tooltip class for styling.
28
+ * @group Props
29
+ */
30
+ this.tooltipContentClass = 'cps-tooltip-content';
31
+ /**
32
+ * Max width of the tooltip of type number denoting pixels or string.
33
+ * @group Props
34
+ */
35
+ this.tooltipMaxWidth = '100%';
36
+ /**
37
+ * Determines whether the tooltip is persistent.
38
+ * @group Props
39
+ */
40
+ this.tooltipPersistent = false;
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsInfoCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsInfoCircleComponent, isStandalone: true, selector: "cps-info-circle", inputs: { size: "size", tooltipText: "tooltipText", tooltipPosition: "tooltipPosition", tooltipContentClass: "tooltipContentClass", tooltipMaxWidth: "tooltipMaxWidth", tooltipPersistent: "tooltipPersistent" }, ngImport: i0, template: "<cps-icon\n icon=\"info-circle\"\n [size]=\"size\"\n color=\"info\"\n [cpsTooltip]=\"tooltipText\"\n tooltipOpenDelay=\"0\"\n tooltipCloseDelay=\"100\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipMaxWidth]=\"tooltipMaxWidth\"\n [tooltipPersistent]=\"tooltipPersistent\"\n [tooltipContentClass]=\"tooltipContentClass\">\n</cps-icon>\n", styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsInfoCircleComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'cps-info-circle', standalone: true, imports: [CpsIconComponent, CpsTooltipDirective], template: "<cps-icon\n icon=\"info-circle\"\n [size]=\"size\"\n color=\"info\"\n [cpsTooltip]=\"tooltipText\"\n tooltipOpenDelay=\"0\"\n tooltipCloseDelay=\"100\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipMaxWidth]=\"tooltipMaxWidth\"\n [tooltipPersistent]=\"tooltipPersistent\"\n [tooltipContentClass]=\"tooltipContentClass\">\n</cps-icon>\n", styles: [":host{display:inline-flex}\n"] }]
48
+ }], propDecorators: { size: [{
49
+ type: Input
50
+ }], tooltipText: [{
51
+ type: Input
52
+ }], tooltipPosition: [{
53
+ type: Input
54
+ }], tooltipContentClass: [{
55
+ type: Input
56
+ }], tooltipMaxWidth: [{
57
+ type: Input
58
+ }], tooltipPersistent: [{
59
+ type: Input
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWluZm8tY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWluZm8tY2lyY2xlL2Nwcy1pbmZvLWNpcmNsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUNMLG1CQUFtQixFQUVwQixNQUFNLG9EQUFvRCxDQUFDOztBQUU1RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBUUU7OztXQUdHO1FBQ00sU0FBSSxHQUFpQixPQUFPLENBQUM7UUFFdEM7OztXQUdHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sb0JBQWUsR0FBdUIsS0FBSyxDQUFDO1FBRXJEOzs7V0FHRztRQUNNLHdCQUFtQixHQUFHLHFCQUFxQixDQUFDO1FBRXJEOzs7V0FHRztRQUNNLG9CQUFlLEdBQW9CLE1BQU0sQ0FBQztRQUVuRDs7O1dBR0c7UUFDTSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7S0FDcEM7OEdBcENZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDZSQ2xCbkMsK1ZBWUEsc0ZERVksZ0JBQWdCLHdGQUFFLG1CQUFtQjs7MkZBSXBDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzs4QkFTdkMsSUFBSTtzQkFBWixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50LCBpY29uU2l6ZVR5cGUgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzVG9vbHRpcERpcmVjdGl2ZSxcbiAgQ3BzVG9vbHRpcFBvc2l0aW9uXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY3BzLXRvb2x0aXAvY3BzLXRvb2x0aXAuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50IGlzIGEgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gYnkgbWVhbnMgb2YgdGhlIGluZm8gaWNvbiB3aXRoIHRoZSB0b29sdGlwIG9uIGhvdmVyLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BzLWluZm8tY2lyY2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Nwc0ljb25Db21wb25lbnQsIENwc1Rvb2x0aXBEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLWluZm8tY2lyY2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWluZm8tY2lyY2xlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBpY29uLCBpdCBjYW4gYmUgb2YgdHlwZSBudW1iZXIgZGVub3RpbmcgcGl4ZWxzLCBzdHJpbmcgb3IgJ2ZpbGwnLCAneHNtYWxsJywgJ3NtYWxsJywgJ25vcm1hbCcgb3IgJ2xhcmdlJy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBpY29uU2l6ZVR5cGUgPSAnc21hbGwnO1xuXG4gIC8qKlxuICAgKiBUb29sdGlwIHRleHQgdG8gcHJvdmlkZSBtb3JlIGluZm8uXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdG9vbHRpcFRleHQgPSAnJztcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAsIGl0IGNhbiBiZSAndG9wJywgJ2JvdHRvbScsICdsZWZ0JyBvciAncmlnaHQnLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbjogQ3BzVG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgLyoqXG4gICAqIEluZm8gdG9vbHRpcCBjbGFzcyBmb3Igc3R5bGluZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB0b29sdGlwQ29udGVudENsYXNzID0gJ2Nwcy10b29sdGlwLWNvbnRlbnQnO1xuXG4gIC8qKlxuICAgKiBNYXggd2lkdGggb2YgdGhlIHRvb2x0aXAgb2YgdHlwZSBudW1iZXIgZGVub3RpbmcgcGl4ZWxzIG9yIHN0cmluZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB0b29sdGlwTWF4V2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSB0b29sdGlwIGlzIHBlcnNpc3RlbnQuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcbn1cbiIsIjxjcHMtaWNvblxuICBpY29uPVwiaW5mby1jaXJjbGVcIlxuICBbc2l6ZV09XCJzaXplXCJcbiAgY29sb3I9XCJpbmZvXCJcbiAgW2Nwc1Rvb2x0aXBdPVwidG9vbHRpcFRleHRcIlxuICB0b29sdGlwT3BlbkRlbGF5PVwiMFwiXG4gIHRvb2x0aXBDbG9zZURlbGF5PVwiMTAwXCJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICBbdG9vbHRpcE1heFdpZHRoXT1cInRvb2x0aXBNYXhXaWR0aFwiXG4gIFt0b29sdGlwUGVyc2lzdGVudF09XCJ0b29sdGlwUGVyc2lzdGVudFwiXG4gIFt0b29sdGlwQ29udGVudENsYXNzXT1cInRvb2x0aXBDb250ZW50Q2xhc3NcIj5cbjwvY3BzLWljb24+XG4iXX0=
@@ -0,0 +1,386 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Optional, Output, Self, ViewChild } from '@angular/core';
3
+ import { CpsIconComponent } from '../cps-icon/cps-icon.component';
4
+ import { Subscription } from 'rxjs';
5
+ import { convertSize } from '../../utils/internal/size-utils';
6
+ import { CpsProgressLinearComponent } from '../cps-progress-linear/cps-progress-linear.component';
7
+ import { CpsInfoCircleComponent } from '../cps-info-circle/cps-info-circle.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@angular/common";
11
+ /**
12
+ * CpsInputComponent is used to enter values in a certain formats such as numeric, text or password.
13
+ * @group Components
14
+ */
15
+ export class CpsInputComponent {
16
+ /**
17
+ * Value of the input.
18
+ * @group Props
19
+ */
20
+ set value(value) {
21
+ if (!value)
22
+ value = '';
23
+ this._value = value;
24
+ this.onChange(value);
25
+ }
26
+ get value() {
27
+ return this._value;
28
+ }
29
+ constructor(_control, elementRef, cdRef) {
30
+ this._control = _control;
31
+ this.elementRef = elementRef;
32
+ this.cdRef = cdRef;
33
+ /**
34
+ * Label of the input element.
35
+ * @group Props
36
+ */
37
+ this.label = '';
38
+ /**
39
+ * Bottom hint text for the input field.
40
+ * @group Props
41
+ */
42
+ this.hint = '';
43
+ /**
44
+ * Placeholder text for the input field.
45
+ * @group Props
46
+ */
47
+ this.placeholder = 'Please enter';
48
+ /**
49
+ * Determines whether input is disabled.
50
+ * @group Props
51
+ */
52
+ this.disabled = false;
53
+ /**
54
+ * Determines whether input is readonly.
55
+ * @group Props
56
+ */
57
+ this.readonly = false;
58
+ /**
59
+ * Width of the input field, of type number denoting pixels or string.
60
+ * @group Props
61
+ */
62
+ this.width = '100%';
63
+ /**
64
+ * Type of the input of type 'text', 'number' or 'password'.
65
+ * @group Props
66
+ */
67
+ this.type = 'text';
68
+ /**
69
+ * When enabled, a loading bar is displayed.
70
+ * @group Props
71
+ */
72
+ this.loading = false;
73
+ /**
74
+ * When enabled, a clear icon is displayed to clear the value.
75
+ * @group Props
76
+ */
77
+ this.clearable = false;
78
+ /**
79
+ * Icon before input value.
80
+ * @group Props
81
+ */
82
+ this.prefixIcon = '';
83
+ /**
84
+ * When enabled, prefixIcon is clickable.
85
+ * @group Props
86
+ */
87
+ this.prefixIconClickable = false;
88
+ /**
89
+ * Size of icon before input value, of type number or string or it can be a value 'fill', 'xsmall', 'small', 'normal' or 'large'.
90
+ * @group Props
91
+ */
92
+ this.prefixIconSize = '18px';
93
+ /**
94
+ * Text before input value.
95
+ * @group Props
96
+ */
97
+ this.prefixText = '';
98
+ /**
99
+ * Hides hint and validation errors.
100
+ * @group Props
101
+ */
102
+ this.hideDetails = false;
103
+ /**
104
+ * Determines whether the component should have persistent clear icon.
105
+ * @group Props
106
+ */
107
+ this.persistentClear = false;
108
+ /**
109
+ * Error message.
110
+ * @group Props
111
+ */
112
+ this.error = '';
113
+ /**
114
+ * When it is not an empty string, an info icon is displayed to show text for more info.
115
+ * @group Props
116
+ */
117
+ this.infoTooltip = '';
118
+ /**
119
+ * InfoTooltip class for styling.
120
+ * @group Props
121
+ */
122
+ this.infoTooltipClass = 'cps-tooltip-content';
123
+ /**
124
+ * Max width of infoTooltip, of type number denoting pixels or string.
125
+ * @group Props
126
+ */
127
+ this.infoTooltipMaxWidth = '100%';
128
+ /**
129
+ * Determines whether the infoTooltip is persistent.
130
+ * @group Props
131
+ */
132
+ this.infoTooltipPersistent = false;
133
+ /**
134
+ * Position of infoTooltip, it can be 'top', 'bottom', 'left' or 'right'.
135
+ * @group Props
136
+ */
137
+ this.infoTooltipPosition = 'top';
138
+ /**
139
+ * Styling appearance of input field, it can be "outlined" or "underlined" or "borderless".
140
+ * @group Props
141
+ */
142
+ this.appearance = 'outlined';
143
+ /**
144
+ * Readonly value to display inside of input field.
145
+ * @group Props
146
+ */
147
+ this.valueToDisplay = '';
148
+ /**
149
+ * Callback to invoke on value change.
150
+ * @param {string} string - value changed.
151
+ * @group Emits
152
+ */
153
+ this.valueChanged = new EventEmitter();
154
+ /**
155
+ * Callback to invoke when the component receives focus.
156
+ * @param {any}
157
+ * @group Emits
158
+ */
159
+ this.focused = new EventEmitter();
160
+ /**
161
+ * Callback to invoke when the prefix icon is clicked.
162
+ * @param {any}
163
+ * @group Emits
164
+ */
165
+ this.prefixIconClicked = new EventEmitter();
166
+ /**
167
+ * Callback to invoke when the component loses focus.
168
+ * @param {any}
169
+ * @group Emits
170
+ */
171
+ this.blurred = new EventEmitter();
172
+ /**
173
+ * Callback to invoke when x icon is clicked.
174
+ * @param {any}
175
+ * @group Emits
176
+ */
177
+ this.cleared = new EventEmitter();
178
+ /**
179
+ * Callback to invoke when enter is clicked.
180
+ * @param {any}
181
+ * @group Emits
182
+ */
183
+ this.enterClicked = new EventEmitter();
184
+ this.currentType = '';
185
+ this.prefixWidth = '';
186
+ this.cvtWidth = '';
187
+ this._statusChangesSubscription = new Subscription();
188
+ this._value = '';
189
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
190
+ this.onChange = (event) => { };
191
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
192
+ this.onTouched = () => { };
193
+ if (this._control) {
194
+ this._control.valueAccessor = this;
195
+ }
196
+ }
197
+ ngOnInit() {
198
+ this.currentType = this.type;
199
+ this.cvtWidth = convertSize(this.width);
200
+ this._statusChangesSubscription = this._control?.statusChanges?.subscribe(() => {
201
+ this._checkErrors();
202
+ });
203
+ }
204
+ ngAfterViewInit() {
205
+ let w = 0;
206
+ if (this.prefixText) {
207
+ w = this.prefixTextSpan?.nativeElement?.offsetWidth + 22;
208
+ }
209
+ if (this.prefixIcon) {
210
+ w += 38 - (this.prefixText ? 14 : 0);
211
+ }
212
+ this.prefixWidth = w > 0 ? `${w}px` : '';
213
+ this.cdRef.detectChanges();
214
+ }
215
+ ngOnDestroy() {
216
+ this._statusChangesSubscription?.unsubscribe();
217
+ }
218
+ _checkErrors() {
219
+ if (!this._control)
220
+ return;
221
+ const errors = this._control?.errors;
222
+ if (!this._control?.control?.touched || !errors) {
223
+ this.error = '';
224
+ return;
225
+ }
226
+ if ('required' in errors) {
227
+ this.error = 'Field is required';
228
+ return;
229
+ }
230
+ if ('pattern' in errors) {
231
+ this.error = 'Value is invalid';
232
+ return;
233
+ }
234
+ if ('email' in errors) {
235
+ this.error = 'Email format is invalid';
236
+ return;
237
+ }
238
+ if ('minlength' in errors) {
239
+ // eslint-disable-next-line dot-notation
240
+ this.error = `Field must contain at least ${errors['minlength'].requiredLength} characters`;
241
+ return;
242
+ }
243
+ if ('maxlength' in errors) {
244
+ // eslint-disable-next-line dot-notation
245
+ this.error = `Field must contain ${errors['maxlength'].requiredLength} characters maximum`;
246
+ return;
247
+ }
248
+ const errArr = Object.values(errors);
249
+ if (errArr.length < 1) {
250
+ this.error = '';
251
+ return;
252
+ }
253
+ const message = errArr.find((msg) => typeof msg === 'string');
254
+ this.error = message || 'Unknown error';
255
+ }
256
+ onInputEnterKeyDown() {
257
+ this.elementRef?.nativeElement?.querySelector('input')?.blur();
258
+ this.enterClicked.emit();
259
+ }
260
+ registerOnChange(fn) {
261
+ this.onChange = fn;
262
+ }
263
+ registerOnTouched(fn) {
264
+ this.onTouched = fn;
265
+ }
266
+ writeValue(value) {
267
+ this.value = value;
268
+ }
269
+ updateValueEvent(event) {
270
+ const value = event?.target?.value || '';
271
+ this._updateValue(value);
272
+ }
273
+ _updateValue(value) {
274
+ this.writeValue(value);
275
+ this.onChange(value);
276
+ this.valueChanged.emit(value);
277
+ }
278
+ onClear() {
279
+ this.clear();
280
+ this.cleared.emit();
281
+ }
282
+ clear() {
283
+ if (this.value !== '')
284
+ this._updateValue('');
285
+ }
286
+ togglePassword() {
287
+ this.currentType = this.currentType === 'password' ? 'text' : 'password';
288
+ }
289
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
290
+ setDisabledState(disabled) { }
291
+ onBlur() {
292
+ this._control?.control?.markAsTouched();
293
+ this._checkErrors();
294
+ this.blurred.emit();
295
+ }
296
+ onClickPrefixIcon() {
297
+ if (!this.prefixIconClickable || this.readonly || this.disabled)
298
+ return;
299
+ this.prefixIconClicked.emit();
300
+ }
301
+ onFocus() {
302
+ this.focused.emit();
303
+ }
304
+ focus() {
305
+ this.elementRef?.nativeElement?.querySelector('input')?.focus();
306
+ }
307
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
308
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsInputComponent, isStandalone: true, selector: "cps-input", inputs: { label: "label", hint: "hint", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", width: "width", type: "type", loading: "loading", clearable: "clearable", prefixIcon: "prefixIcon", prefixIconClickable: "prefixIconClickable", prefixIconSize: "prefixIconSize", prefixText: "prefixText", hideDetails: "hideDetails", persistentClear: "persistentClear", error: "error", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", appearance: "appearance", valueToDisplay: "valueToDisplay", value: "value" }, outputs: { valueChanged: "valueChanged", focused: "focused", prefixIconClicked: "prefixIconClicked", blurred: "blurred", cleared: "cleared", enterClicked: "enterClicked" }, viewQueries: [{ propertyName: "prefixTextSpan", first: true, predicate: ["prefixTextSpan"], descendants: true }], ngImport: i0, template: "<div class=\"cps-input-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-input-label\"\n [ngClass]=\"{ 'cps-input-label-disabled': disabled && !readonly }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-input-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n\n <div\n class=\"cps-input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'cps-input-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear,\n borderless: appearance === 'borderless',\n underlined: appearance === 'underlined'\n }\">\n <input\n *ngIf=\"!valueToDisplay\"\n spellcheck=\"false\"\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (keydown.enter)=\"onInputEnterKeyDown()\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\" />\n\n <input\n *ngIf=\"valueToDisplay\"\n [value]=\"valueToDisplay\"\n [disabled]=\"true\"\n [readonly]=\"true\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\" />\n\n <div class=\"cps-input-prefix\">\n <span *ngIf=\"prefixIcon\" class=\"cps-input-prefix-icon\">\n <cps-icon\n [icon]=\"prefixIcon\"\n [size]=\"prefixIconSize\"\n [style.color]=\"disabled ? '#9a9595' : null\"\n [style.cursor]=\"\n prefixIconClickable && !disabled && !readonly\n ? 'pointer'\n : 'default'\n \"\n (click)=\"onClickPrefixIcon()\">\n </cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"cps-input-prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"cps-input-action-btns\" *ngIf=\"!disabled && !readonly\">\n <span\n *ngIf=\"clearable\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"onClear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\">\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n <cps-progress-linear\n *ngIf=\"loading\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-input-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-input-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-input-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-input-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-input-container .cps-input-wrap{position:relative;overflow:hidden}:host .cps-input-container .cps-input-wrap:hover input:enabled:not(:read-only){border:1px solid var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap-error input{border-color:var(--cps-color-error)!important}:host .cps-input-container .cps-input-wrap-error input:not(:focus){background:#fef3f2!important}:host .cps-input-container .cps-input-wrap-error .cps-input-prefix-icon{color:var(--cps-color-error)!important}:host .cps-input-container .cps-input-wrap input{min-height:38px;font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#fff;padding:.375rem .75rem;line-height:1.5;border:1px solid var(--cps-color-line-light);transition-duration:.2s;appearance:none;border-radius:4px;width:100%}:host .cps-input-container .cps-input-wrap input:focus{outline:0}:host .cps-input-container .cps-input-wrap input:focus:not(:read-only){border:1px solid var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:read-only{cursor:default}:host .cps-input-container .cps-input-wrap input:disabled{opacity:1}:host .cps-input-container .cps-input-wrap input:disabled:not([readonly]){color:var(--cps-color-text-light);background-color:#f7f7f7;pointer-events:none}:host .cps-input-container .cps-input-wrap input[type=password]{font-family:Verdana}:host .cps-input-container .cps-input-wrap input:focus:not(:read-only)+.cps-input-prefix>.cps-input-prefix-icon,:host .cps-input-container .cps-input-wrap input:hover:not(:read-only)+.cps-input-prefix>.cps-input-prefix-icon{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:disabled+.cps-input-prefix>.cps-input-prefix-icon{color:var(--cps-color-text-dark)}:host .cps-input-container .cps-input-wrap input:focus+.cps-input-prefix+.cps-input-action-btns>.clear-btn cps-icon{opacity:.5}:host .cps-input-container .cps-input-wrap:hover .cps-input-action-btns .clear-btn cps-icon{opacity:.5}:host .cps-input-container .cps-input-wrap .cps-input-action-btns{display:flex;position:absolute;top:50%;right:.75rem;margin-top:-.5rem}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn{display:flex;cursor:pointer;color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn cps-icon:hover{opacity:1!important}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn{margin-left:.5rem;cursor:pointer;color:var(--cps-color-text-mild)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn-active{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn cps-icon{transition-duration:.2s}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn cps-icon:hover{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:not(:read-only)+.cps-input-prefix:hover>.cps-input-prefix-icon{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-prefix{display:flex;position:absolute;height:100%;top:50%;left:.8rem;transform:translateY(-50%)}:host .cps-input-container .cps-input-wrap .cps-input-prefix-icon{display:flex;flex-direction:column;justify-content:center;transition-duration:.2s;margin-right:.5rem;color:var(--cps-color-text-dark)}:host .cps-input-container .cps-input-wrap .cps-input-prefix-text{display:flex;flex-direction:column;justify-content:center;color:var(--cps-color-text-mild);cursor:default;line-height:1.2}:host .cps-input-container .cps-input-wrap .cps-input-progress-bar{position:absolute;bottom:1px;padding:0 1px;display:block}:host .cps-input-container .cps-input-wrap.borderless input,:host .cps-input-container .cps-input-wrap.underlined input{line-height:1;border:none!important;border-radius:0}:host .cps-input-container .cps-input-wrap.underlined input{border-bottom:1px solid var(--cps-color-line-light)!important}:host .cps-input-container .persistent-clear .cps-input-action-btns .clear-btn cps-icon{opacity:.5}:host .cps-input-container .password.clearable>input{padding-right:3.8rem}:host .cps-input-container .password>input,:host .cps-input-container .clearable>input{padding-right:2.2rem}:host .cps-input-container .cps-input-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default}:host .cps-input-container .cps-input-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default}:host .cps-input-container .cps-input-label{color:var(--cps-color-text-dark);font-size:.875rem;align-items:center;display:inline-flex;font-weight:600}:host .cps-input-container .cps-input-label .cps-input-label-info-circle{margin-left:8px}:host .cps-input-container .cps-input-label-disabled{color:var(--cps-color-text-mild)}:host .cps-input-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "component", type: CpsProgressLinearComponent, selector: "cps-progress-linear", inputs: ["width", "height", "color", "bgColor", "opacity", "radius"] }] }); }
309
+ }
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsInputComponent, decorators: [{
311
+ type: Component,
312
+ args: [{ standalone: true, imports: [
313
+ CommonModule,
314
+ CpsIconComponent,
315
+ CpsInfoCircleComponent,
316
+ CpsProgressLinearComponent
317
+ ], selector: 'cps-input', template: "<div class=\"cps-input-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <div\n class=\"cps-input-label\"\n [ngClass]=\"{ 'cps-input-label-disabled': disabled && !readonly }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-input-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n\n <div\n class=\"cps-input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'cps-input-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear,\n borderless: appearance === 'borderless',\n underlined: appearance === 'underlined'\n }\">\n <input\n *ngIf=\"!valueToDisplay\"\n spellcheck=\"false\"\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (keydown.enter)=\"onInputEnterKeyDown()\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\" />\n\n <input\n *ngIf=\"valueToDisplay\"\n [value]=\"valueToDisplay\"\n [disabled]=\"true\"\n [readonly]=\"true\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\" />\n\n <div class=\"cps-input-prefix\">\n <span *ngIf=\"prefixIcon\" class=\"cps-input-prefix-icon\">\n <cps-icon\n [icon]=\"prefixIcon\"\n [size]=\"prefixIconSize\"\n [style.color]=\"disabled ? '#9a9595' : null\"\n [style.cursor]=\"\n prefixIconClickable && !disabled && !readonly\n ? 'pointer'\n : 'default'\n \"\n (click)=\"onClickPrefixIcon()\">\n </cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"cps-input-prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"cps-input-action-btns\" *ngIf=\"!disabled && !readonly\">\n <span\n *ngIf=\"clearable\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"onClear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\">\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n <cps-progress-linear\n *ngIf=\"loading\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"cps-input-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-input-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-input-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-input-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-input-container .cps-input-wrap{position:relative;overflow:hidden}:host .cps-input-container .cps-input-wrap:hover input:enabled:not(:read-only){border:1px solid var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap-error input{border-color:var(--cps-color-error)!important}:host .cps-input-container .cps-input-wrap-error input:not(:focus){background:#fef3f2!important}:host .cps-input-container .cps-input-wrap-error .cps-input-prefix-icon{color:var(--cps-color-error)!important}:host .cps-input-container .cps-input-wrap input{min-height:38px;font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#fff;padding:.375rem .75rem;line-height:1.5;border:1px solid var(--cps-color-line-light);transition-duration:.2s;appearance:none;border-radius:4px;width:100%}:host .cps-input-container .cps-input-wrap input:focus{outline:0}:host .cps-input-container .cps-input-wrap input:focus:not(:read-only){border:1px solid var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:read-only{cursor:default}:host .cps-input-container .cps-input-wrap input:disabled{opacity:1}:host .cps-input-container .cps-input-wrap input:disabled:not([readonly]){color:var(--cps-color-text-light);background-color:#f7f7f7;pointer-events:none}:host .cps-input-container .cps-input-wrap input[type=password]{font-family:Verdana}:host .cps-input-container .cps-input-wrap input:focus:not(:read-only)+.cps-input-prefix>.cps-input-prefix-icon,:host .cps-input-container .cps-input-wrap input:hover:not(:read-only)+.cps-input-prefix>.cps-input-prefix-icon{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:disabled+.cps-input-prefix>.cps-input-prefix-icon{color:var(--cps-color-text-dark)}:host .cps-input-container .cps-input-wrap input:focus+.cps-input-prefix+.cps-input-action-btns>.clear-btn cps-icon{opacity:.5}:host .cps-input-container .cps-input-wrap:hover .cps-input-action-btns .clear-btn cps-icon{opacity:.5}:host .cps-input-container .cps-input-wrap .cps-input-action-btns{display:flex;position:absolute;top:50%;right:.75rem;margin-top:-.5rem}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn{display:flex;cursor:pointer;color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .clear-btn cps-icon:hover{opacity:1!important}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn{margin-left:.5rem;cursor:pointer;color:var(--cps-color-text-mild)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn-active{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn cps-icon{transition-duration:.2s}:host .cps-input-container .cps-input-wrap .cps-input-action-btns .password-show-btn cps-icon:hover{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap input:not(:read-only)+.cps-input-prefix:hover>.cps-input-prefix-icon{color:var(--cps-color-calm)}:host .cps-input-container .cps-input-wrap .cps-input-prefix{display:flex;position:absolute;height:100%;top:50%;left:.8rem;transform:translateY(-50%)}:host .cps-input-container .cps-input-wrap .cps-input-prefix-icon{display:flex;flex-direction:column;justify-content:center;transition-duration:.2s;margin-right:.5rem;color:var(--cps-color-text-dark)}:host .cps-input-container .cps-input-wrap .cps-input-prefix-text{display:flex;flex-direction:column;justify-content:center;color:var(--cps-color-text-mild);cursor:default;line-height:1.2}:host .cps-input-container .cps-input-wrap .cps-input-progress-bar{position:absolute;bottom:1px;padding:0 1px;display:block}:host .cps-input-container .cps-input-wrap.borderless input,:host .cps-input-container .cps-input-wrap.underlined input{line-height:1;border:none!important;border-radius:0}:host .cps-input-container .cps-input-wrap.underlined input{border-bottom:1px solid var(--cps-color-line-light)!important}:host .cps-input-container .persistent-clear .cps-input-action-btns .clear-btn cps-icon{opacity:.5}:host .cps-input-container .password.clearable>input{padding-right:3.8rem}:host .cps-input-container .password>input,:host .cps-input-container .clearable>input{padding-right:2.2rem}:host .cps-input-container .cps-input-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default}:host .cps-input-container .cps-input-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default}:host .cps-input-container .cps-input-label{color:var(--cps-color-text-dark);font-size:.875rem;align-items:center;display:inline-flex;font-weight:600}:host .cps-input-container .cps-input-label .cps-input-label-info-circle{margin-left:8px}:host .cps-input-container .cps-input-label-disabled{color:var(--cps-color-text-mild)}:host .cps-input-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"] }]
318
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
319
+ type: Self
320
+ }, {
321
+ type: Optional
322
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { label: [{
323
+ type: Input
324
+ }], hint: [{
325
+ type: Input
326
+ }], placeholder: [{
327
+ type: Input
328
+ }], disabled: [{
329
+ type: Input
330
+ }], readonly: [{
331
+ type: Input
332
+ }], width: [{
333
+ type: Input
334
+ }], type: [{
335
+ type: Input
336
+ }], loading: [{
337
+ type: Input
338
+ }], clearable: [{
339
+ type: Input
340
+ }], prefixIcon: [{
341
+ type: Input
342
+ }], prefixIconClickable: [{
343
+ type: Input
344
+ }], prefixIconSize: [{
345
+ type: Input
346
+ }], prefixText: [{
347
+ type: Input
348
+ }], hideDetails: [{
349
+ type: Input
350
+ }], persistentClear: [{
351
+ type: Input
352
+ }], error: [{
353
+ type: Input
354
+ }], infoTooltip: [{
355
+ type: Input
356
+ }], infoTooltipClass: [{
357
+ type: Input
358
+ }], infoTooltipMaxWidth: [{
359
+ type: Input
360
+ }], infoTooltipPersistent: [{
361
+ type: Input
362
+ }], infoTooltipPosition: [{
363
+ type: Input
364
+ }], appearance: [{
365
+ type: Input
366
+ }], valueToDisplay: [{
367
+ type: Input
368
+ }], value: [{
369
+ type: Input
370
+ }], valueChanged: [{
371
+ type: Output
372
+ }], focused: [{
373
+ type: Output
374
+ }], prefixIconClicked: [{
375
+ type: Output
376
+ }], blurred: [{
377
+ type: Output
378
+ }], cleared: [{
379
+ type: Output
380
+ }], enterClicked: [{
381
+ type: Output
382
+ }], prefixTextSpan: [{
383
+ type: ViewChild,
384
+ args: ['prefixTextSpan']
385
+ }] } });
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1pbnB1dC9jcHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFLdEY7OztHQUdHO0FBYUgsTUFBTSxPQUFPLGlCQUFpQjtJQTZJNUI7OztPQUdHO0lBQ0gsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFD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QUFaLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBTUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQU1HLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFNRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1PLEtBQUs7c0JBQWpCLEtBQUs7Z0JBZUksWUFBWTtzQkFBckIsTUFBTTtnQkFPRyxPQUFPO3NCQUFoQixNQUFNO2dCQU9HLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxPQUFPO3NCQUFoQixNQUFNO2dCQU9HLE9BQU87c0JBQWhCLE1BQU07Z0JBT0csWUFBWTtzQkFBckIsTUFBTTtnQkFFc0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDcHNJY29uQ29tcG9uZW50LFxuICBJY29uVHlwZSxcbiAgaWNvblNpemVUeXBlXG59IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJuYWwvc2l6ZS11dGlscyc7XG5pbXBvcnQgeyBDcHNQcm9ncmVzc0xpbmVhckNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1wcm9ncmVzcy1saW5lYXIvY3BzLXByb2dyZXNzLWxpbmVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Rvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY3BzLXRvb2x0aXAvY3BzLXRvb2x0aXAuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgQ3BzSW5wdXRBcHBlYXJhbmNlVHlwZSA9ICdvdXRsaW5lZCcgfCAndW5kZXJsaW5lZCcgfCAnYm9yZGVybGVzcyc7XG5cbi8qKlxuICogQ3BzSW5wdXRDb21wb25lbnQgaXMgdXNlZCB0byBlbnRlciB2YWx1ZXMgaW4gYSBjZXJ0YWluIGZvcm1hdHMgc3VjaCBhcyBudW1lcmljLCB0ZXh0IG9yIHBhc3N3b3JkLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50XG4gIF0sXG4gIHNlbGVjdG9yOiAnY3BzLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc0lucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBMYWJlbCBvZiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBCb3R0b20gaGludCB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGludCA9ICcnO1xuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnUGxlYXNlIGVudGVyJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBpbnB1dCBpcyByZWFkb25seS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgaW5wdXQgZmllbGQsIG9mIHR5cGUgbnVtYmVyIGRlbm90aW5nIHBpeGVscyBvciBzdHJpbmcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgaW5wdXQgb2YgdHlwZSAndGV4dCcsICdudW1iZXInIG9yICdwYXNzd29yZCcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgdHlwZTogJ3RleHQnIHwgJ251bWJlcicgfCAncGFzc3dvcmQnID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBXaGVuIGVuYWJsZWQsIGEgbG9hZGluZyBiYXIgaXMgZGlzcGxheWVkLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hlbiBlbmFibGVkLCBhIGNsZWFyIGljb24gaXMgZGlzcGxheWVkIHRvIGNsZWFyIHRoZSB2YWx1ZS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogSWNvbiBiZWZvcmUgaW5wdXQgdmFsdWUuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgcHJlZml4SWNvbjogSWNvblR5cGUgPSAnJztcblxuICAvKipcbiAgICogV2hlbiBlbmFibGVkLCBwcmVmaXhJY29uIGlzIGNsaWNrYWJsZS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBwcmVmaXhJY29uQ2xpY2thYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgaWNvbiBiZWZvcmUgaW5wdXQgdmFsdWUsIG9mIHR5cGUgbnVtYmVyIG9yIHN0cmluZyBvciBpdCBjYW4gYmUgYSB2YWx1ZSAnZmlsbCcsICd4c21hbGwnLCAnc21hbGwnLCAnbm9ybWFsJyBvciAnbGFyZ2UnLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHByZWZpeEljb25TaXplOiBpY29uU2l6ZVR5cGUgPSAnMThweCc7XG5cbiAgLyoqXG4gICAqIFRleHQgYmVmb3JlIGlucHV0IHZhbHVlLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHByZWZpeFRleHQgPSAnJztcblxuICAvKipcbiAgICogSGlkZXMgaGludCBhbmQgdmFsaWRhdGlvbiBlcnJvcnMuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaGlkZURldGFpbHMgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGhhdmUgcGVyc2lzdGVudCBjbGVhciBpY29uLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRDbGVhciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGVycm9yID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZW4gaXQgaXMgbm90IGFuIGVtcHR5IHN0cmluZywgYW4gaW5mbyBpY29uIGlzIGRpc3BsYXllZCB0byBzaG93IHRleHQgZm9yIG1vcmUgaW5mby5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcCA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbmZvVG9vbHRpcCBjbGFzcyBmb3Igc3R5bGluZy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcENsYXNzID0gJ2Nwcy10b29sdGlwLWNvbnRlbnQnO1xuXG4gIC8qKlxuICAgKiBNYXggd2lkdGggb2YgaW5mb1Rvb2x0aXAsIG9mIHR5cGUgbnVtYmVyIGRlbm90aW5nIHBpeGVscyBvciBzdHJpbmcuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBNYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGluZm9Ub29sdGlwIGlzIHBlcnNpc3RlbnQuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQZXJzaXN0ZW50ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIGluZm9Ub29sdGlwLCBpdCBjYW4gYmUgJ3RvcCcsICdib3R0b20nLCAnbGVmdCcgb3IgJ3JpZ2h0Jy5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBDcHNUb29sdGlwUG9zaXRpb24gPSAndG9wJztcblxuICAvKipcbiAgICogU3R5bGluZyBhcHBlYXJhbmNlIG9mIGlucHV0IGZpZWxkLCBpdCBjYW4gYmUgXCJvdXRsaW5lZFwiIG9yIFwidW5kZXJsaW5lZFwiIG9yIFwiYm9yZGVybGVzc1wiLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IENwc0lucHV0QXBwZWFyYW5jZVR5cGUgPSAnb3V0bGluZWQnO1xuXG4gIC8qKlxuICAgKiBSZWFkb25seSB2YWx1ZSB0byBkaXNwbGF5IGluc2lkZSBvZiBpbnB1dCBmaWVsZC5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKSB2YWx1ZVRvRGlzcGxheSA9ICcnO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgaW5wdXQuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB2YWx1ZSA9ICcnO1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIHZhbHVlIGNoYW5nZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyAtIHZhbHVlIGNoYW5nZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiB0aGUgY29tcG9uZW50IHJlY2VpdmVzIGZvY3VzLlxuICAgKiBAcGFyYW0ge2FueX1cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIHByZWZpeCBpY29uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fVxuICAgKiBAZ3JvdXAgRW1pdHNcbiAgICovXG4gIEBPdXRwdXQoKSBwcmVmaXhJY29uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIGNvbXBvbmVudCBsb3NlcyBmb2N1cy5cbiAgICogQHBhcmFtIHthbnl9XG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGJsdXJyZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHggaWNvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX1cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZW50ZXIgaXMgY2xpY2tlZC5cbiAgICogQHBhcmFtIHthbnl9XG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVudGVyQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdwcmVmaXhUZXh0U3BhbicpIHByZWZpeFRleHRTcGFuOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIGN1cnJlbnRUeXBlID0gJyc7XG4gIHByZWZpeFdpZHRoID0gJyc7XG4gIGN2dFdpZHRoID0gJyc7XG5cbiAgcHJpdmF0ZSBfc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRUeXBlID0gdGhpcy50eXBlO1xuICAgIHRoaXMuY3Z0V2lkdGggPSBjb252ZXJ0U2l6ZSh0aGlzLndpZHRoKTtcblxuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sPy5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gICAgICB9XG4gICAgKSBhcyBTdWJzY3JpcHRpb247XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IHcgPSAwO1xuICAgIGlmICh0aGlzLnByZWZpeFRleHQpIHtcbiAgICAgIHcgPSB0aGlzLnByZWZpeFRleHRTcGFuPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aCArIDIyO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcmVmaXhJY29uKSB7XG4gICAgICB3ICs9IDM4IC0gKHRoaXMucHJlZml4VGV4dCA/IDE0IDogMCk7XG4gICAgfVxuICAgIHRoaXMucHJlZml4V2lkdGggPSB3ID4gMCA/IGAke3d9cHhgIDogJyc7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnMoKSB7XG4gICAgaWYgKCF0aGlzLl9jb250cm9sKSByZXR1cm47XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5fY29udHJvbD8uZXJyb3JzO1xuXG4gICAgaWYgKCF0aGlzLl9jb250cm9sPy5jb250cm9sPy50b3VjaGVkIHx8ICFlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ3JlcXVpcmVkJyBpbiBlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnRmllbGQgaXMgcmVxdWlyZWQnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgncGF0dGVybicgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ1ZhbHVlIGlzIGludmFsaWQnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnZW1haWwnIGluIGVycm9ycykge1xuICAgICAgdGhpcy5lcnJvciA9ICdFbWFpbCBmb3JtYXQgaXMgaW52YWxpZCc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdtaW5sZW5ndGgnIGluIGVycm9ycykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRvdC1ub3RhdGlvblxuICAgICAgdGhpcy5lcnJvciA9IGBGaWVsZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJHtlcnJvcnNbJ21pbmxlbmd0aCddLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ21heGxlbmd0aCcgaW4gZXJyb3JzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICB0aGlzLmVycm9yID0gYEZpZWxkIG11c3QgY29udGFpbiAke2Vycm9yc1snbWF4bGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnMgbWF4aW11bWA7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyQXJyID0gT2JqZWN0LnZhbHVlcyhlcnJvcnMpO1xuICAgIGlmIChlcnJBcnIubGVuZ3RoIDwgMSkge1xuICAgICAgdGhpcy5lcnJvciA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlID0gZXJyQXJyLmZpbmQoKG1zZykgPT4gdHlwZW9mIG1zZyA9PT0gJ3N0cmluZycpO1xuXG4gICAgdGhpcy5lcnJvciA9IG1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IChldmVudDogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBvbklucHV0RW50ZXJLZXlEb3duKCkge1xuICAgIHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uYmx1cigpO1xuICAgIHRoaXMuZW50ZXJDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVFdmVudChldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudD8udGFyZ2V0Py52YWx1ZSB8fCAnJztcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuY2xlYXJlZC5lbWl0KCk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gJycpIHRoaXMuX3VwZGF0ZVZhbHVlKCcnKTtcbiAgfVxuXG4gIHRvZ2dsZVBhc3N3b3JkKCkge1xuICAgIHRoaXMuY3VycmVudFR5cGUgPSB0aGlzLmN1cnJlbnRUeXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge31cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5fY29udHJvbD8uY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gICAgdGhpcy5ibHVycmVkLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2xpY2tQcmVmaXhJY29uKCkge1xuICAgIGlmICghdGhpcy5wcmVmaXhJY29uQ2xpY2thYmxlIHx8IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMucHJlZml4SWNvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQuZW1pdCgpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLWlucHV0LWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLWlucHV0LWxhYmVsXCJcbiAgICBbbmdDbGFzc109XCJ7ICdjcHMtaW5wdXQtbGFiZWwtZGlzYWJsZWQnOiBkaXNhYmxlZCAmJiAhcmVhZG9ubHkgfVwiXG4gICAgKm5nSWY9XCJsYWJlbFwiPlxuICAgIDxsYWJlbD57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgPGNwcy1pbmZvLWNpcmNsZVxuICAgICAgKm5nSWY9XCJpbmZvVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy1pbnB1dC1sYWJlbC1pbmZvLWNpcmNsZVwiXG4gICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbdG9vbHRpcENvbnRlbnRDbGFzc109XCJpbmZvVG9vbHRpcENsYXNzXCJcbiAgICAgIFt0b29sdGlwTWF4V2lkdGhdPVwiaW5mb1Rvb2x0aXBNYXhXaWR0aFwiXG4gICAgICBbdG9vbHRpcFBlcnNpc3RlbnRdPVwiaW5mb1Rvb2x0aXBQZXJzaXN0ZW50XCJcbiAgICAgIFt0b29sdGlwVGV4dF09XCJpbmZvVG9vbHRpcFwiPlxuICAgIDwvY3BzLWluZm8tY2lyY2xlPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcHMtaW5wdXQtd3JhcFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgcGFzc3dvcmQ6IHR5cGUgPT09ICdwYXNzd29yZCcsXG4gICAgICAnY3BzLWlucHV0LXdyYXAtZXJyb3InOiBlcnJvcixcbiAgICAgIGNsZWFyYWJsZTogY2xlYXJhYmxlLFxuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXIsXG4gICAgICBib3JkZXJsZXNzOiBhcHBlYXJhbmNlID09PSAnYm9yZGVybGVzcycsXG4gICAgICB1bmRlcmxpbmVkOiBhcHBlYXJhbmNlID09PSAndW5kZXJsaW5lZCdcbiAgICB9XCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cIiF2YWx1ZVRvRGlzcGxheVwiXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgW3R5cGVdPVwiY3VycmVudFR5cGVcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25JbnB1dEVudGVyS2V5RG93bigpXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6IGN2dFdpZHRoLFxuICAgICAgICAncGFkZGluZy1sZWZ0JzogcHJlZml4V2lkdGggfHwgJ25vbmUnXG4gICAgICB9XCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIiAvPlxuXG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cInZhbHVlVG9EaXNwbGF5XCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVRvRGlzcGxheVwiXG4gICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIHdpZHRoOiBjdnRXaWR0aCxcbiAgICAgICAgJ3BhZGRpbmctbGVmdCc6IHByZWZpeFdpZHRoIHx8ICdub25lJ1xuICAgICAgfVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWlucHV0LXByZWZpeFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJwcmVmaXhJY29uXCIgY2xhc3M9XCJjcHMtaW5wdXQtcHJlZml4LWljb25cIj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgW2ljb25dPVwicHJlZml4SWNvblwiXG4gICAgICAgICAgW3NpemVdPVwicHJlZml4SWNvblNpemVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkaXNhYmxlZCA/ICcjOWE5NTk1JyA6IG51bGxcIlxuICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiXG4gICAgICAgICAgICBwcmVmaXhJY29uQ2xpY2thYmxlICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHlcbiAgICAgICAgICAgICAgPyAncG9pbnRlcidcbiAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUHJlZml4SWNvbigpXCI+XG4gICAgICAgIDwvY3BzLWljb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwicHJlZml4VGV4dFwiIGNsYXNzPVwiY3BzLWlucHV0LXByZWZpeC10ZXh0XCIgI3ByZWZpeFRleHRTcGFuPlxuICAgICAgICB7eyBwcmVmaXhUZXh0IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWlucHV0LWFjdGlvbi1idG5zXCIgKm5nSWY9XCIhZGlzYWJsZWQgJiYgIXJlYWRvbmx5XCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImNsZWFyYWJsZVwiXG4gICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cIlxuICAgICAgICAgIHBlcnNpc3RlbnRDbGVhciB8fCAoIXBlcnNpc3RlbnRDbGVhciAmJiB2YWx1ZSkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1xuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImNsZWFyLWJ0blwiPlxuICAgICAgICA8Y3BzLWljb24gaWNvbj1cImRlbGV0ZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJvbkNsZWFyKClcIj48L2Nwcy1pY29uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdwYXNzd29yZCdcIlxuICAgICAgICBjbGFzcz1cInBhc3N3b3JkLXNob3ctYnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAncGFzc3dvcmQtc2hvdy1idG4tYWN0aXZlJzogY3VycmVudFR5cGUgPT09ICd0ZXh0JyB9XCI+XG4gICAgICAgIDxjcHMtaWNvbiBpY29uPVwiZXllXCIgc2l6ZT1cIjE4cHhcIiAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmQoKVwiPjwvY3BzLWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGNwcy1wcm9ncmVzcy1saW5lYXJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBoZWlnaHQ9XCIzXCJcbiAgICAgIHJhZGl1cz1cIjRcIlxuICAgICAgb3BhY2l0eT1cIjAuM1wiXG4gICAgICBjbGFzcz1cImNwcy1pbnB1dC1wcm9ncmVzcy1iYXJcIlxuICAgICAgYmdDb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgPC9jcHMtcHJvZ3Jlc3MtbGluZWFyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImNwcy1pbnB1dC1oaW50XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLWlucHV0LWVycm9yXCI+XG4gICAge3sgZXJyb3IgfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -35,12 +35,12 @@ export class CpsLoaderComponent {
35
35
  this.backgroundColor = `rgba(0, 0, 0, ${this.opacity})`;
36
36
  this.labelColor = getCSSColor(this.labelColor);
37
37
  }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsLoaderComponent, isStandalone: true, selector: "cps-loader", inputs: { fullScreen: "fullScreen", opacity: "opacity", labelColor: "labelColor", showLabel: "showLabel" }, ngImport: i0, template: "<div\n class=\"cps-loader-overlay\"\n [ngStyle]=\"{\n 'background-color': backgroundColor,\n position: fullScreen ? 'fixed' : 'relative'\n }\">\n <div class=\"cps-loader-overlay-content\">\n <label\n *ngIf=\"showLabel\"\n class=\"cps-loader-overlay-content-text\"\n [style.color]=\"labelColor\"\n >Loading...\n </label>\n <div class=\"cps-loader-overlay-content-circles\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp1\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp2\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp3\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}:host .cps-loader-overlay{width:100%;height:100%;inset:0;z-index:2000}:host .cps-loader-overlay-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}:host .cps-loader-overlay-content-text{display:block;text-align:center;font-size:20px;font-family:Source Sans Pro,sans-serif;font-weight:600;padding-bottom:15px;animation:cps-loader-text-animation 4s linear infinite;-webkit-user-select:none;-ms-user-select:none;user-select:none}:host .cps-loader-overlay-content-circles{height:85px;width:90px}:host .cps-loader-overlay-content-circles-circle{border-left:5px solid;border-top-left-radius:100%;border-top:5px solid;margin:5px;animation-name:cps-loader-circles-animation;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:normal;animation-fill-mode:forwards}:host .cps-loader-overlay-content-circles .cps-sp1{border-left-color:var(--cps-color-calm);border-top-color:var(--cps-color-calm);width:40px;height:40px}:host .cps-loader-overlay-content-circles .cps-sp2{border-left-color:var(--cps-color-warmth);border-top-color:var(--cps-color-warmth);width:30px;height:30px}:host .cps-loader-overlay-content-circles .cps-sp3{width:20px;height:20px;border-left-color:var(--cps-color-energy);border-top-color:var(--cps-color-energy)}@keyframes cps-loader-text-animation{0%,to{filter:opacity(1)}50%{filter:opacity(.4)}}@keyframes cps-loader-circles-animation{0%{transform:rotate(0);transform-origin:right bottom}25%{transform:rotate(90deg);transform-origin:right bottom}50%{transform:rotate(180deg);transform-origin:right bottom}75%{transform:rotate(270deg);transform-origin:right bottom}to{transform:rotate(360deg);transform-origin:right bottom}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
38
40
  }
39
- CpsLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- CpsLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsLoaderComponent, isStandalone: true, selector: "cps-loader", inputs: { fullScreen: "fullScreen", opacity: "opacity", labelColor: "labelColor", showLabel: "showLabel" }, ngImport: i0, template: "<div\n class=\"cps-loader-overlay\"\n [ngStyle]=\"{\n 'background-color': backgroundColor,\n position: fullScreen ? 'fixed' : 'relative'\n }\">\n <div class=\"cps-loader-overlay-content\">\n <label\n *ngIf=\"showLabel\"\n class=\"cps-loader-overlay-content-text\"\n [style.color]=\"labelColor\"\n >Loading...\n </label>\n <div class=\"cps-loader-overlay-content-circles\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp1\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp2\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp3\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}:host .cps-loader-overlay{width:100%;height:100%;inset:0;z-index:2000}:host .cps-loader-overlay-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}:host .cps-loader-overlay-content-text{display:block;text-align:center;font-size:20px;font-family:Source Sans Pro,sans-serif;font-weight:600;padding-bottom:15px;animation:cps-loader-text-animation 4s linear infinite;-webkit-user-select:none;user-select:none}:host .cps-loader-overlay-content-circles{height:85px;width:90px}:host .cps-loader-overlay-content-circles-circle{border-left:5px solid;border-top-left-radius:100%;border-top:5px solid;margin:5px;animation-name:cps-loader-circles-animation;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:normal;animation-fill-mode:forwards}:host .cps-loader-overlay-content-circles .cps-sp1{border-left-color:var(--cps-color-calm);border-top-color:var(--cps-color-calm);width:40px;height:40px}:host .cps-loader-overlay-content-circles .cps-sp2{border-left-color:var(--cps-color-warmth);border-top-color:var(--cps-color-warmth);width:30px;height:30px}:host .cps-loader-overlay-content-circles .cps-sp3{width:20px;height:20px;border-left-color:var(--cps-color-energy);border-top-color:var(--cps-color-energy)}@keyframes cps-loader-text-animation{0%,to{filter:opacity(1)}50%{filter:opacity(.4)}}@keyframes cps-loader-circles-animation{0%{transform:rotate(0);transform-origin:right bottom}25%{transform:rotate(90deg);transform-origin:right bottom}50%{transform:rotate(180deg);transform-origin:right bottom}75%{transform:rotate(270deg);transform-origin:right bottom}to{transform:rotate(360deg);transform-origin:right bottom}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsLoaderComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsLoaderComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ standalone: true, imports: [CommonModule], selector: 'cps-loader', template: "<div\n class=\"cps-loader-overlay\"\n [ngStyle]=\"{\n 'background-color': backgroundColor,\n position: fullScreen ? 'fixed' : 'relative'\n }\">\n <div class=\"cps-loader-overlay-content\">\n <label\n *ngIf=\"showLabel\"\n class=\"cps-loader-overlay-content-text\"\n [style.color]=\"labelColor\"\n >Loading...\n </label>\n <div class=\"cps-loader-overlay-content-circles\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp1\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp2\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp3\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}:host .cps-loader-overlay{width:100%;height:100%;inset:0;z-index:2000}:host .cps-loader-overlay-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}:host .cps-loader-overlay-content-text{display:block;text-align:center;font-size:20px;font-family:Source Sans Pro,sans-serif;font-weight:600;padding-bottom:15px;animation:cps-loader-text-animation 4s linear infinite;-webkit-user-select:none;user-select:none}:host .cps-loader-overlay-content-circles{height:85px;width:90px}:host .cps-loader-overlay-content-circles-circle{border-left:5px solid;border-top-left-radius:100%;border-top:5px solid;margin:5px;animation-name:cps-loader-circles-animation;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:normal;animation-fill-mode:forwards}:host .cps-loader-overlay-content-circles .cps-sp1{border-left-color:var(--cps-color-calm);border-top-color:var(--cps-color-calm);width:40px;height:40px}:host .cps-loader-overlay-content-circles .cps-sp2{border-left-color:var(--cps-color-warmth);border-top-color:var(--cps-color-warmth);width:30px;height:30px}:host .cps-loader-overlay-content-circles .cps-sp3{width:20px;height:20px;border-left-color:var(--cps-color-energy);border-top-color:var(--cps-color-energy)}@keyframes cps-loader-text-animation{0%,to{filter:opacity(1)}50%{filter:opacity(.4)}}@keyframes cps-loader-circles-animation{0%{transform:rotate(0);transform-origin:right bottom}25%{transform:rotate(90deg);transform-origin:right bottom}50%{transform:rotate(180deg);transform-origin:right bottom}75%{transform:rotate(270deg);transform-origin:right bottom}to{transform:rotate(360deg);transform-origin:right bottom}}\n"] }]
43
+ args: [{ standalone: true, imports: [CommonModule], selector: 'cps-loader', template: "<div\n class=\"cps-loader-overlay\"\n [ngStyle]=\"{\n 'background-color': backgroundColor,\n position: fullScreen ? 'fixed' : 'relative'\n }\">\n <div class=\"cps-loader-overlay-content\">\n <label\n *ngIf=\"showLabel\"\n class=\"cps-loader-overlay-content-text\"\n [style.color]=\"labelColor\"\n >Loading...\n </label>\n <div class=\"cps-loader-overlay-content-circles\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp1\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp2\">\n <div class=\"cps-loader-overlay-content-circles-circle cps-sp3\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}:host .cps-loader-overlay{width:100%;height:100%;inset:0;z-index:2000}:host .cps-loader-overlay-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}:host .cps-loader-overlay-content-text{display:block;text-align:center;font-size:20px;font-family:Source Sans Pro,sans-serif;font-weight:600;padding-bottom:15px;animation:cps-loader-text-animation 4s linear infinite;-webkit-user-select:none;-ms-user-select:none;user-select:none}:host .cps-loader-overlay-content-circles{height:85px;width:90px}:host .cps-loader-overlay-content-circles-circle{border-left:5px solid;border-top-left-radius:100%;border-top:5px solid;margin:5px;animation-name:cps-loader-circles-animation;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:normal;animation-fill-mode:forwards}:host .cps-loader-overlay-content-circles .cps-sp1{border-left-color:var(--cps-color-calm);border-top-color:var(--cps-color-calm);width:40px;height:40px}:host .cps-loader-overlay-content-circles .cps-sp2{border-left-color:var(--cps-color-warmth);border-top-color:var(--cps-color-warmth);width:30px;height:30px}:host .cps-loader-overlay-content-circles .cps-sp3{width:20px;height:20px;border-left-color:var(--cps-color-energy);border-top-color:var(--cps-color-energy)}@keyframes cps-loader-text-animation{0%,to{filter:opacity(1)}50%{filter:opacity(.4)}}@keyframes cps-loader-circles-animation{0%{transform:rotate(0);transform-origin:right bottom}25%{transform:rotate(90deg);transform-origin:right bottom}50%{transform:rotate(180deg);transform-origin:right bottom}75%{transform:rotate(270deg);transform-origin:right bottom}to{transform:rotate(360deg);transform-origin:right bottom}}\n"] }]
44
44
  }], propDecorators: { fullScreen: [{
45
45
  type: Input
46
46
  }], opacity: [{
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
50
50
  }], showLabel: [{
51
51
  type: Input
52
52
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtbG9hZGVyL2Nwcy1sb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWxvYWRlci9jcHMtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUV2RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBUC9CO1FBUUU7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1Qjs7O1dBR0c7UUFDTSxZQUFPLEdBQW9CLEdBQUcsQ0FBQztRQUV4Qzs7O1dBR0c7UUFDTSxlQUFVLEdBQUcsT0FBTyxDQUFDO1FBRTlCOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFMUIsb0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztLQU14QztJQUpDLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OytHQTlCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrTENmL0Isa3NCQXNCQSxzeUREWlksWUFBWTsyRkFLWCxrQkFBa0I7a0JBUDlCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2IsWUFBWTs4QkFTYixVQUFVO3NCQUFsQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRDU1NDb2xvciB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9ycy11dGlscyc7XG5cbi8qKlxuICogQ3BzTG9hZGVyQ29tcG9uZW50IGlzIGEgZmV0Y2ggZGF0YSBpbmRpY2F0b3IuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnY3BzLWxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWxvYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc0xvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIGxvYWRlciBjb21wb25lbnQgdG8gdGFrZSB1cCB0aGUgd2hvbGUgc2NyZWVuLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZ1bGxTY3JlZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogT3B0aW9uIHRvIGNvbnRyb2wgdGhlIHRyYW5zcGFyZW5jeSBvZiB0aGUgbG9hZGVyIGNvbXBvbmVudCwgb2YgdHlwZSBudW1iZXIgb3Igc3RyaW5nLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIG9wYWNpdHk6IG51bWJlciB8IHN0cmluZyA9IDAuMTtcblxuICAvKipcbiAgICogQ29sb3Igb2YgdGhlIGxhYmVsLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3IgPSAnZGVwdGgnO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyAnTG9hZGluZy4uLicgbGFiZWwuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcblxuICBiYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwLjEpJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGByZ2JhKDAsIDAsIDAsICR7dGhpcy5vcGFjaXR5fSlgO1xuICAgIHRoaXMubGFiZWxDb2xvciA9IGdldENTU0NvbG9yKHRoaXMubGFiZWxDb2xvcik7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXlcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ2JhY2tncm91bmQtY29sb3InOiBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgcG9zaXRpb246IGZ1bGxTY3JlZW4gPyAnZml4ZWQnIDogJ3JlbGF0aXZlJ1xuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXktY29udGVudFwiPlxuICAgIDxsYWJlbFxuICAgICAgKm5nSWY9XCJzaG93TGFiZWxcIlxuICAgICAgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXktY29udGVudC10ZXh0XCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yXCJcbiAgICAgID5Mb2FkaW5nLi4uXG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWxvYWRlci1vdmVybGF5LWNvbnRlbnQtY2lyY2xlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1sb2FkZXItb3ZlcmxheS1jb250ZW50LWNpcmNsZXMtY2lyY2xlIGNwcy1zcDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNwcy1sb2FkZXItb3ZlcmxheS1jb250ZW50LWNpcmNsZXMtY2lyY2xlIGNwcy1zcDJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3BzLWxvYWRlci1vdmVybGF5LWNvbnRlbnQtY2lyY2xlcy1jaXJjbGUgY3BzLXNwM1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtbG9hZGVyL2Nwcy1sb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWxvYWRlci9jcHMtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUV2RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBUC9CO1FBUUU7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1Qjs7O1dBR0c7UUFDTSxZQUFPLEdBQW9CLEdBQUcsQ0FBQztRQUV4Qzs7O1dBR0c7UUFDTSxlQUFVLEdBQUcsT0FBTyxDQUFDO1FBRTlCOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFMUIsb0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztLQU14QztJQUpDLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OEdBOUJVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLGtMQ2YvQixrc0JBc0JBLDJ6RERaWSxZQUFZOzsyRkFLWCxrQkFBa0I7a0JBUDlCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2IsWUFBWTs4QkFTYixVQUFVO3NCQUFsQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRDU1NDb2xvciB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9ycy11dGlscyc7XG5cbi8qKlxuICogQ3BzTG9hZGVyQ29tcG9uZW50IGlzIGEgZmV0Y2ggZGF0YSBpbmRpY2F0b3IuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnY3BzLWxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWxvYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc0xvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIGxvYWRlciBjb21wb25lbnQgdG8gdGFrZSB1cCB0aGUgd2hvbGUgc2NyZWVuLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGZ1bGxTY3JlZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogT3B0aW9uIHRvIGNvbnRyb2wgdGhlIHRyYW5zcGFyZW5jeSBvZiB0aGUgbG9hZGVyIGNvbXBvbmVudCwgb2YgdHlwZSBudW1iZXIgb3Igc3RyaW5nLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIG9wYWNpdHk6IG51bWJlciB8IHN0cmluZyA9IDAuMTtcblxuICAvKipcbiAgICogQ29sb3Igb2YgdGhlIGxhYmVsLlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3IgPSAnZGVwdGgnO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyAnTG9hZGluZy4uLicgbGFiZWwuXG4gICAqIEBncm91cCBQcm9wc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcblxuICBiYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwLjEpJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGByZ2JhKDAsIDAsIDAsICR7dGhpcy5vcGFjaXR5fSlgO1xuICAgIHRoaXMubGFiZWxDb2xvciA9IGdldENTU0NvbG9yKHRoaXMubGFiZWxDb2xvcik7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXlcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ2JhY2tncm91bmQtY29sb3InOiBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgcG9zaXRpb246IGZ1bGxTY3JlZW4gPyAnZml4ZWQnIDogJ3JlbGF0aXZlJ1xuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXktY29udGVudFwiPlxuICAgIDxsYWJlbFxuICAgICAgKm5nSWY9XCJzaG93TGFiZWxcIlxuICAgICAgY2xhc3M9XCJjcHMtbG9hZGVyLW92ZXJsYXktY29udGVudC10ZXh0XCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yXCJcbiAgICAgID5Mb2FkaW5nLi4uXG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWxvYWRlci1vdmVybGF5LWNvbnRlbnQtY2lyY2xlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1sb2FkZXItb3ZlcmxheS1jb250ZW50LWNpcmNsZXMtY2lyY2xlIGNwcy1zcDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNwcy1sb2FkZXItb3ZlcmxheS1jb250ZW50LWNpcmNsZXMtY2lyY2xlIGNwcy1zcDJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3BzLWxvYWRlci1vdmVybGF5LWNvbnRlbnQtY2lyY2xlcy1jaXJjbGUgY3BzLXNwM1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19