pdm-ui-kit 1.2.0 → 1.3.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 (159) hide show
  1. package/aspect-ratio/aspect-ratio.component.d.ts +1 -1
  2. package/aspect-ratio/aspect-ratio.module.d.ts +5 -2
  3. package/badge/badge.component.d.ts +1 -1
  4. package/badge/badge.module.d.ts +5 -2
  5. package/button/button-theme.constant.d.ts +2 -0
  6. package/button/button.component.d.ts +1 -4
  7. package/button/testing/button-harness.d.ts +23 -0
  8. package/checkbox/testing/checkbox-harness.d.ts +22 -0
  9. package/dialog/dialog.module.d.ts +2 -1
  10. package/dialog/testing/dialog-harness.d.ts +26 -0
  11. package/esm2020/alert/alert.component.mjs +3 -3
  12. package/esm2020/aspect-ratio/aspect-ratio.component.mjs +4 -3
  13. package/esm2020/aspect-ratio/aspect-ratio.module.mjs +9 -10
  14. package/esm2020/badge/badge.component.mjs +4 -3
  15. package/esm2020/badge/badge.module.mjs +9 -10
  16. package/esm2020/button/button-theme.constant.mjs +55 -0
  17. package/esm2020/button/button.component.mjs +5 -18
  18. package/esm2020/button/testing/button-harness.mjs +51 -0
  19. package/esm2020/checkbox/testing/checkbox-harness.mjs +54 -0
  20. package/esm2020/dialog/dialog.component.mjs +5 -4
  21. package/esm2020/dialog/dialog.module.mjs +5 -4
  22. package/esm2020/dialog/testing/dialog-harness.mjs +87 -0
  23. package/esm2020/empty/empty.component.mjs +1 -1
  24. package/esm2020/icon/icon.component.mjs +4 -3
  25. package/esm2020/icon/icon.module.mjs +9 -10
  26. package/esm2020/input/input.component.mjs +16 -4
  27. package/esm2020/input/testing/input-harness.mjs +68 -0
  28. package/esm2020/kbd/kbd.component.mjs +4 -3
  29. package/esm2020/kbd/kbd.module.mjs +9 -10
  30. package/esm2020/pagination/pagination.component.mjs +35 -5
  31. package/esm2020/pagination/testing/pagination-harness.mjs +76 -0
  32. package/esm2020/public-api.mjs +3 -1
  33. package/esm2020/select/testing/select-harness.mjs +75 -0
  34. package/esm2020/separator/separator.component.mjs +4 -3
  35. package/esm2020/separator/separator.module.mjs +9 -10
  36. package/esm2020/skeleton/skeleton.component.mjs +4 -3
  37. package/esm2020/skeleton/skeleton.module.mjs +9 -10
  38. package/esm2020/spinner/spinner.component.mjs +4 -3
  39. package/esm2020/spinner/spinner.module.mjs +9 -10
  40. package/esm2020/src/alert/alert.component.mjs +3 -3
  41. package/esm2020/src/aspect-ratio/aspect-ratio.component.mjs +4 -3
  42. package/esm2020/src/aspect-ratio/aspect-ratio.module.mjs +9 -10
  43. package/esm2020/src/badge/badge.component.mjs +4 -3
  44. package/esm2020/src/badge/badge.module.mjs +9 -10
  45. package/esm2020/src/button/button-theme.constant.mjs +55 -0
  46. package/esm2020/src/button/button.component.mjs +5 -18
  47. package/esm2020/src/dialog/dialog.component.mjs +5 -4
  48. package/esm2020/src/dialog/dialog.module.mjs +5 -4
  49. package/esm2020/src/empty/empty.component.mjs +1 -1
  50. package/esm2020/src/icon/icon.component.mjs +4 -3
  51. package/esm2020/src/icon/icon.module.mjs +9 -10
  52. package/esm2020/src/input/input.component.mjs +16 -4
  53. package/esm2020/src/kbd/kbd.component.mjs +4 -3
  54. package/esm2020/src/kbd/kbd.module.mjs +9 -10
  55. package/esm2020/src/pagination/pagination.component.mjs +35 -5
  56. package/esm2020/src/separator/separator.component.mjs +4 -3
  57. package/esm2020/src/separator/separator.module.mjs +9 -10
  58. package/esm2020/src/skeleton/skeleton.component.mjs +4 -3
  59. package/esm2020/src/skeleton/skeleton.module.mjs +9 -10
  60. package/esm2020/src/spinner/spinner.component.mjs +4 -3
  61. package/esm2020/src/spinner/spinner.module.mjs +9 -10
  62. package/esm2020/src/utils/public-api.mjs +2 -1
  63. package/esm2020/src/utils/validators.mjs +180 -0
  64. package/esm2020/testing.mjs +13 -0
  65. package/fesm2015/pdm-ui-kit-src-alert.mjs +2 -2
  66. package/fesm2015/pdm-ui-kit-src-alert.mjs.map +1 -1
  67. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs +10 -10
  68. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -1
  69. package/fesm2015/pdm-ui-kit-src-badge.mjs +10 -10
  70. package/fesm2015/pdm-ui-kit-src-badge.mjs.map +1 -1
  71. package/fesm2015/pdm-ui-kit-src-button.mjs +58 -17
  72. package/fesm2015/pdm-ui-kit-src-button.mjs.map +1 -1
  73. package/fesm2015/pdm-ui-kit-src-dialog.mjs +8 -6
  74. package/fesm2015/pdm-ui-kit-src-dialog.mjs.map +1 -1
  75. package/fesm2015/pdm-ui-kit-src-empty.mjs.map +1 -1
  76. package/fesm2015/pdm-ui-kit-src-icon.mjs +12 -12
  77. package/fesm2015/pdm-ui-kit-src-icon.mjs.map +1 -1
  78. package/fesm2015/pdm-ui-kit-src-input.mjs +15 -3
  79. package/fesm2015/pdm-ui-kit-src-input.mjs.map +1 -1
  80. package/fesm2015/pdm-ui-kit-src-kbd.mjs +10 -10
  81. package/fesm2015/pdm-ui-kit-src-kbd.mjs.map +1 -1
  82. package/fesm2015/pdm-ui-kit-src-pagination.mjs +34 -4
  83. package/fesm2015/pdm-ui-kit-src-pagination.mjs.map +1 -1
  84. package/fesm2015/pdm-ui-kit-src-separator.mjs +10 -10
  85. package/fesm2015/pdm-ui-kit-src-separator.mjs.map +1 -1
  86. package/fesm2015/pdm-ui-kit-src-skeleton.mjs +10 -10
  87. package/fesm2015/pdm-ui-kit-src-skeleton.mjs.map +1 -1
  88. package/fesm2015/pdm-ui-kit-src-spinner.mjs +10 -10
  89. package/fesm2015/pdm-ui-kit-src-spinner.mjs.map +1 -1
  90. package/fesm2015/pdm-ui-kit-src-utils.mjs +181 -1
  91. package/fesm2015/pdm-ui-kit-src-utils.mjs.map +1 -1
  92. package/fesm2015/pdm-ui-kit.mjs +846 -213
  93. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  94. package/fesm2020/pdm-ui-kit-src-alert.mjs +2 -2
  95. package/fesm2020/pdm-ui-kit-src-alert.mjs.map +1 -1
  96. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs +10 -10
  97. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -1
  98. package/fesm2020/pdm-ui-kit-src-badge.mjs +10 -10
  99. package/fesm2020/pdm-ui-kit-src-badge.mjs.map +1 -1
  100. package/fesm2020/pdm-ui-kit-src-button.mjs +58 -17
  101. package/fesm2020/pdm-ui-kit-src-button.mjs.map +1 -1
  102. package/fesm2020/pdm-ui-kit-src-dialog.mjs +8 -6
  103. package/fesm2020/pdm-ui-kit-src-dialog.mjs.map +1 -1
  104. package/fesm2020/pdm-ui-kit-src-empty.mjs.map +1 -1
  105. package/fesm2020/pdm-ui-kit-src-icon.mjs +12 -12
  106. package/fesm2020/pdm-ui-kit-src-icon.mjs.map +1 -1
  107. package/fesm2020/pdm-ui-kit-src-input.mjs +15 -3
  108. package/fesm2020/pdm-ui-kit-src-input.mjs.map +1 -1
  109. package/fesm2020/pdm-ui-kit-src-kbd.mjs +10 -10
  110. package/fesm2020/pdm-ui-kit-src-kbd.mjs.map +1 -1
  111. package/fesm2020/pdm-ui-kit-src-pagination.mjs +34 -4
  112. package/fesm2020/pdm-ui-kit-src-pagination.mjs.map +1 -1
  113. package/fesm2020/pdm-ui-kit-src-separator.mjs +10 -10
  114. package/fesm2020/pdm-ui-kit-src-separator.mjs.map +1 -1
  115. package/fesm2020/pdm-ui-kit-src-skeleton.mjs +10 -10
  116. package/fesm2020/pdm-ui-kit-src-skeleton.mjs.map +1 -1
  117. package/fesm2020/pdm-ui-kit-src-spinner.mjs +10 -10
  118. package/fesm2020/pdm-ui-kit-src-spinner.mjs.map +1 -1
  119. package/fesm2020/pdm-ui-kit-src-utils.mjs +181 -1
  120. package/fesm2020/pdm-ui-kit-src-utils.mjs.map +1 -1
  121. package/fesm2020/pdm-ui-kit.mjs +705 -213
  122. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  123. package/icon/icon.component.d.ts +1 -1
  124. package/icon/icon.module.d.ts +5 -2
  125. package/input/input.component.d.ts +4 -0
  126. package/input/testing/input-harness.d.ts +27 -0
  127. package/kbd/kbd.component.d.ts +1 -1
  128. package/kbd/kbd.module.d.ts +5 -2
  129. package/package.json +1 -1
  130. package/pagination/testing/pagination-harness.d.ts +21 -0
  131. package/public-api.d.ts +1 -0
  132. package/select/testing/select-harness.d.ts +25 -0
  133. package/separator/separator.component.d.ts +1 -1
  134. package/separator/separator.module.d.ts +5 -2
  135. package/skeleton/skeleton.component.d.ts +1 -1
  136. package/skeleton/skeleton.module.d.ts +5 -2
  137. package/spinner/spinner.component.d.ts +1 -1
  138. package/spinner/spinner.module.d.ts +5 -2
  139. package/src/aspect-ratio/aspect-ratio.component.d.ts +1 -1
  140. package/src/aspect-ratio/aspect-ratio.module.d.ts +5 -2
  141. package/src/badge/badge.component.d.ts +1 -1
  142. package/src/badge/badge.module.d.ts +5 -2
  143. package/src/button/button-theme.constant.d.ts +2 -0
  144. package/src/button/button.component.d.ts +1 -4
  145. package/src/dialog/dialog.module.d.ts +2 -1
  146. package/src/icon/icon.component.d.ts +1 -1
  147. package/src/icon/icon.module.d.ts +5 -2
  148. package/src/input/input.component.d.ts +4 -0
  149. package/src/kbd/kbd.component.d.ts +1 -1
  150. package/src/kbd/kbd.module.d.ts +5 -2
  151. package/src/separator/separator.component.d.ts +1 -1
  152. package/src/separator/separator.module.d.ts +5 -2
  153. package/src/skeleton/skeleton.component.d.ts +1 -1
  154. package/src/skeleton/skeleton.module.d.ts +5 -2
  155. package/src/spinner/spinner.component.d.ts +1 -1
  156. package/src/spinner/spinner.module.d.ts +5 -2
  157. package/src/utils/public-api.d.ts +1 -0
  158. package/src/utils/validators.d.ts +109 -0
  159. package/testing.d.ts +12 -0
@@ -20,6 +20,9 @@ export class PdmInputComponent {
20
20
  this.errorText = "";
21
21
  this.valueChange = new EventEmitter();
22
22
  this.blurred = new EventEmitter();
23
+ if (this.required && this.disabled) {
24
+ console.warn('PdmInputComponent: required + disabled is invalid — a required field cannot be disabled');
25
+ }
23
26
  }
24
27
  onInput(event) {
25
28
  this.valueChange.emit(event.target.value);
@@ -27,13 +30,22 @@ export class PdmInputComponent {
27
30
  onBlur(event) {
28
31
  this.blurred.emit(event);
29
32
  }
33
+ get helperAttrId() {
34
+ return this.id ? `${this.id}-helper` : null;
35
+ }
36
+ get errorAttrId() {
37
+ return this.id ? `${this.id}-error` : null;
38
+ }
39
+ get descriptionAttrId() {
40
+ return this.invalid && this.errorText ? this.errorAttrId : this.helperAttrId;
41
+ }
30
42
  }
31
43
  PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- PdmInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputComponent, selector: "pdm-input", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", size: "size", roundness: "roundness", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ PdmInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmInputComponent, selector: "pdm-input", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", size: "size", roundness: "roundness", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"descriptionAttrId\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" [id]=\"helperAttrId\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" [id]=\"errorAttrId\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmInputComponent, decorators: [{
34
46
  type: Component,
35
- args: [{ selector: "pdm-input", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"] }]
36
- }], propDecorators: { id: [{
47
+ args: [{ selector: "pdm-input", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"[\n 'text-sm font-medium leading-none',\n invalid ? 'text-destructive' : 'text-foreground',\n ]\"\n >{{ label }}</label\n >\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"descriptionAttrId\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive aria-invalid:placeholder:text-destructive/70 placeholder:text-muted-foreground w-full min-w-0 appearance-none box-border rounded-lg border border-solid bg-transparent px-3 py-1 text-sm shadow-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n size === 'large' ? 'h-10 px-4 text-sm' : '',\n size === 'regular' ? 'h-9 px-3 text-sm' : '',\n size === 'small' ? 'h-8 px-2 text-sm' : '',\n size === 'mini' ? 'h-6 px-1.5 text-xs' : '',\n roundness === 'round' ? 'rounded-full' : 'rounded-lg',\n type === 'file' ? 'text-sm' : 'text-foreground',\n inputClassName,\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" [id]=\"helperAttrId\" class=\"m-0 text-sm text-muted-foreground\">\n {{ helperText }}\n </p>\n <p *ngIf=\"invalid && errorText\" [id]=\"errorAttrId\" class=\"m-0 text-sm text-destructive\">\n {{ errorText }}\n </p>\n</div>\n", styles: [":host{display:block}\n"] }]
48
+ }], ctorParameters: function () { return []; }, propDecorators: { id: [{
37
49
  type: Input
38
50
  }], type: [{
39
51
  type: Input
@@ -68,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
68
80
  }], blurred: [{
69
81
  type: Output
70
82
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQzs7O0FBV3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFPVSxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBaUIsU0FBUyxDQUFDO1FBQy9CLGNBQVMsR0FBc0IsU0FBUyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBU25EO0lBUEEsT0FBTyxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDOzs4R0ExQlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsc2JDakI5QixpdERBdUNBOzJGRHRCYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0MsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFBkbUlucHV0U2l6ZSA9IFwibWluaVwiIHwgXCJzbWFsbFwiIHwgXCJyZWd1bGFyXCIgfCBcImxhcmdlXCI7XG5leHBvcnQgdHlwZSBQZG1JbnB1dFJvdW5kbmVzcyA9IFwiZGVmYXVsdFwiIHwgXCJyb3VuZFwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLWlucHV0XCIsXG5cdHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9XCJdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGRtSW5wdXRDb21wb25lbnQge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHR5cGUgPSBcInRleHRcIjtcblx0QElucHV0KCkgdmFsdWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiXCI7XG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0QElucHV0KCkgc2l6ZTogUGRtSW5wdXRTaXplID0gXCJyZWd1bGFyXCI7XG5cdEBJbnB1dCgpIHJvdW5kbmVzczogUGRtSW5wdXRSb3VuZG5lc3MgPSBcImRlZmF1bHRcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgaW5wdXRDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBsYWJlbCA9IFwiXCI7XG5cdEBJbnB1dCgpIGhlbHBlclRleHQgPSBcIlwiO1xuXHRASW5wdXQoKSBlcnJvclRleHQgPSBcIlwiO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXHRAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuXHRvbklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcblx0fVxuXG5cdG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuYmx1cnJlZC5lbWl0KGV2ZW50KTtcblx0fVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJbJ2dyaWQgdy1mdWxsIGdhcC0zJywgY2xhc3NOYW1lXVwiPlxuICA8bGFiZWxcbiAgICAqbmdJZj1cImxhYmVsXCJcbiAgICBbYXR0ci5mb3JdPVwiaWRcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICd0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZScsXG4gICAgICBpbnZhbGlkID8gJ3RleHQtZGVzdHJ1Y3RpdmUnIDogJ3RleHQtZm9yZWdyb3VuZCcsXG4gICAgXVwiXG4gICAgPnt7IGxhYmVsIH19PC9sYWJlbFxuICA+XG4gIDxpbnB1dFxuICAgIFtpZF09XCJpZFwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAnYm9yZGVyLWlucHV0IGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcvNTAgYXJpYS1pbnZhbGlkOnJpbmctMiBhcmlhLWludmFsaWQ6cmluZy1kZXN0cnVjdGl2ZSBhcmlhLWludmFsaWQ6Ym9yZGVyLWRlc3RydWN0aXZlIGFyaWEtaW52YWxpZDpwbGFjZWhvbGRlcjp0ZXh0LWRlc3RydWN0aXZlLzcwIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCB3LWZ1bGwgbWluLXctMCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc29saWQgYmctdHJhbnNwYXJlbnQgcHgtMyBweS0xIHRleHQtc20gc2hhZG93LXNtIHRyYW5zaXRpb24tY29sb3JzIG91dGxpbmUtbm9uZSBmaWxlOmlubGluZS1mbGV4IGZpbGU6aC02IGZpbGU6Ym9yZGVyLTAgZmlsZTpiZy10cmFuc3BhcmVudCBmaWxlOnRleHQtc20gZmlsZTpmb250LW1lZGl1bSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwJyxcbiAgICAgIHNpemUgPT09ICdsYXJnZScgPyAnaC0xMCBweC00IHRleHQtc20nIDogJycsXG4gICAgICBzaXplID09PSAncmVndWxhcicgPyAnaC05IHB4LTMgdGV4dC1zbScgOiAnJyxcbiAgICAgIHNpemUgPT09ICdzbWFsbCcgPyAnaC04IHB4LTIgdGV4dC1zbScgOiAnJyxcbiAgICAgIHNpemUgPT09ICdtaW5pJyA/ICdoLTYgcHgtMS41IHRleHQteHMnIDogJycsXG4gICAgICByb3VuZG5lc3MgPT09ICdyb3VuZCcgPyAncm91bmRlZC1mdWxsJyA6ICdyb3VuZGVkLWxnJyxcbiAgICAgIHR5cGUgPT09ICdmaWxlJyA/ICd0ZXh0LXNtJyA6ICd0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgaW5wdXRDbGFzc05hbWUsXG4gICAgXVwiXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAvPlxuICA8cCAqbmdJZj1cIiFpbnZhbGlkICYmIGhlbHBlclRleHRcIiBjbGFzcz1cIm0tMCB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgIHt7IGhlbHBlclRleHQgfX1cbiAgPC9wPlxuICA8cCAqbmdJZj1cImludmFsaWQgJiYgZXJyb3JUZXh0XCIgY2xhc3M9XCJtLTAgdGV4dC1zbSB0ZXh0LWRlc3RydWN0aXZlXCI+XG4gICAge3sgZXJyb3JUZXh0IH19XG4gIDwvcD5cbjwvZGl2PlxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQzs7O0FBV3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFvQjdCO1FBbkJTLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsU0FBSSxHQUFpQixTQUFTLENBQUM7UUFDL0IsY0FBUyxHQUFzQixTQUFTLENBQUM7UUFDekMsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFHbEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO1NBQ3hHO0lBQ0YsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM5RSxDQUFDOzs4R0E1Q1csaUJBQWlCO2tHQUFqQixpQkFBaUIsc2JDakI5QiwreURBd0NBOzJGRHZCYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0MsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzBFQUd0QyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFBkbUlucHV0U2l6ZSA9IFwibWluaVwiIHwgXCJzbWFsbFwiIHwgXCJyZWd1bGFyXCIgfCBcImxhcmdlXCI7XG5leHBvcnQgdHlwZSBQZG1JbnB1dFJvdW5kbmVzcyA9IFwiZGVmYXVsdFwiIHwgXCJyb3VuZFwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLWlucHV0XCIsXG5cdHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9XCJdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGRtSW5wdXRDb21wb25lbnQge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHR5cGUgPSBcInRleHRcIjtcblx0QElucHV0KCkgdmFsdWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiXCI7XG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0QElucHV0KCkgc2l6ZTogUGRtSW5wdXRTaXplID0gXCJyZWd1bGFyXCI7XG5cdEBJbnB1dCgpIHJvdW5kbmVzczogUGRtSW5wdXRSb3VuZG5lc3MgPSBcImRlZmF1bHRcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgaW5wdXRDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBsYWJlbCA9IFwiXCI7XG5cdEBJbnB1dCgpIGhlbHBlclRleHQgPSBcIlwiO1xuXHRASW5wdXQoKSBlcnJvclRleHQgPSBcIlwiO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXHRAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmRpc2FibGVkKSB7XG5cdFx0XHRjb25zb2xlLndhcm4oJ1BkbUlucHV0Q29tcG9uZW50OiByZXF1aXJlZCArIGRpc2FibGVkIGlzIGludmFsaWQg4oCUIGEgcmVxdWlyZWQgZmllbGQgY2Fubm90IGJlIGRpc2FibGVkJyk7XG5cdFx0fVxuXHR9XG5cblx0b25JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG5cdH1cblxuXHRvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLmJsdXJyZWQuZW1pdChldmVudCk7XG5cdH1cblxuXHRnZXQgaGVscGVyQXR0cklkKCk6IHN0cmluZyB8IG51bGwge1xuXHRcdHJldHVybiB0aGlzLmlkID8gYCR7dGhpcy5pZH0taGVscGVyYCA6IG51bGw7XG5cdH1cblxuXHRnZXQgZXJyb3JBdHRySWQoKTogc3RyaW5nIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuaWQgPyBgJHt0aGlzLmlkfS1lcnJvcmAgOiBudWxsO1xuXHR9XG5cblx0Z2V0IGRlc2NyaXB0aW9uQXR0cklkKCk6IHN0cmluZyB8IG51bGwge1xuXHRcdHJldHVybiB0aGlzLmludmFsaWQgJiYgdGhpcy5lcnJvclRleHQgPyB0aGlzLmVycm9yQXR0cklkIDogdGhpcy5oZWxwZXJBdHRySWQ7XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydncmlkIHctZnVsbCBnYXAtMycsIGNsYXNzTmFtZV1cIj5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJsYWJlbFwiXG4gICAgW2F0dHIuZm9yXT1cImlkXCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAndGV4dC1zbSBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUnLFxuICAgICAgaW52YWxpZCA/ICd0ZXh0LWRlc3RydWN0aXZlJyA6ICd0ZXh0LWZvcmVncm91bmQnLFxuICAgIF1cIlxuICAgID57eyBsYWJlbCB9fTwvbGFiZWxcbiAgPlxuICA8aW5wdXRcbiAgICBbaWRdPVwiaWRcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJkZXNjcmlwdGlvbkF0dHJJZFwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ2JvcmRlci1pbnB1dCBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGFyaWEtaW52YWxpZDpyaW5nLTIgYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSBhcmlhLWludmFsaWQ6cGxhY2Vob2xkZXI6dGV4dC1kZXN0cnVjdGl2ZS83MCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgdy1mdWxsIG1pbi13LTAgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNvbGlkIGJnLXRyYW5zcGFyZW50IHB4LTMgcHktMSB0ZXh0LXNtIHNoYWRvdy1zbSB0cmFuc2l0aW9uLWNvbG9ycyBvdXRsaW5lLW5vbmUgZmlsZTppbmxpbmUtZmxleCBmaWxlOmgtNiBmaWxlOmJvcmRlci0wIGZpbGU6YmctdHJhbnNwYXJlbnQgZmlsZTp0ZXh0LXNtIGZpbGU6Zm9udC1tZWRpdW0gZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgICBzaXplID09PSAnbGFyZ2UnID8gJ2gtMTAgcHgtNCB0ZXh0LXNtJyA6ICcnLFxuICAgICAgc2l6ZSA9PT0gJ3JlZ3VsYXInID8gJ2gtOSBweC0zIHRleHQtc20nIDogJycsXG4gICAgICBzaXplID09PSAnc21hbGwnID8gJ2gtOCBweC0yIHRleHQtc20nIDogJycsXG4gICAgICBzaXplID09PSAnbWluaScgPyAnaC02IHB4LTEuNSB0ZXh0LXhzJyA6ICcnLFxuICAgICAgcm91bmRuZXNzID09PSAncm91bmQnID8gJ3JvdW5kZWQtZnVsbCcgOiAncm91bmRlZC1sZycsXG4gICAgICB0eXBlID09PSAnZmlsZScgPyAndGV4dC1zbScgOiAndGV4dC1mb3JlZ3JvdW5kJyxcbiAgICAgIGlucHV0Q2xhc3NOYW1lLFxuICAgIF1cIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgLz5cbiAgPHAgKm5nSWY9XCIhaW52YWxpZCAmJiBoZWxwZXJUZXh0XCIgW2lkXT1cImhlbHBlckF0dHJJZFwiIGNsYXNzPVwibS0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAge3sgaGVscGVyVGV4dCB9fVxuICA8L3A+XG4gIDxwICpuZ0lmPVwiaW52YWxpZCAmJiBlcnJvclRleHRcIiBbaWRdPVwiZXJyb3JBdHRySWRcIiBjbGFzcz1cIm0tMCB0ZXh0LXNtIHRleHQtZGVzdHJ1Y3RpdmVcIj5cbiAgICB7eyBlcnJvclRleHQgfX1cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { PdmInputComponent } from '../input.component';
3
+ export class PdmInputHarness extends ComponentHarness {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.input = this.locatorFor('input');
7
+ }
8
+ static with(options) {
9
+ return new HarnessPredicate(PdmInputHarness, options)
10
+ .addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))
11
+ .addOption('placeholder', options.placeholder, (harness, placeholder) => HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder));
12
+ }
13
+ async getId() {
14
+ return (await this.input()).getAttribute('id') || '';
15
+ }
16
+ async getValue() {
17
+ return (await this.input()).getProperty('value') || '';
18
+ }
19
+ async setValue(value) {
20
+ const input = await this.input();
21
+ await input.clear();
22
+ await input.sendKeys(value);
23
+ }
24
+ async getPlaceholder() {
25
+ return (await this.input()).getAttribute('placeholder') || '';
26
+ }
27
+ async isDisabled() {
28
+ return (await this.input()).matchesSelector(':disabled');
29
+ }
30
+ async isReadonly() {
31
+ return (await this.input()).matchesSelector('[readonly]');
32
+ }
33
+ async isRequired() {
34
+ return (await this.input()).matchesSelector('[required]');
35
+ }
36
+ async isInvalid() {
37
+ return (await this.input()).matchesSelector('[aria-invalid="true"]');
38
+ }
39
+ async getLabel() {
40
+ const label = await this.locatorForOptional('label')();
41
+ return label ? label.text() : null;
42
+ }
43
+ async getHelperText() {
44
+ const helper = await this.locatorForOptional('[class*="text-muted-foreground"]')();
45
+ return helper ? helper.text() : null;
46
+ }
47
+ async getErrorText() {
48
+ const error = await this.locatorForOptional('[class*="text-destructive"]')();
49
+ return error ? error.text() : null;
50
+ }
51
+ async focus() {
52
+ return (await this.input()).focus();
53
+ }
54
+ async blur() {
55
+ return (await this.input()).blur();
56
+ }
57
+ async getType() {
58
+ return (await this.input()).getAttribute('type') || 'text';
59
+ }
60
+ async clear() {
61
+ return (await this.input()).clear();
62
+ }
63
+ getComponentInstance() {
64
+ return this.locatorFor(PdmInputComponent)();
65
+ }
66
+ }
67
+ PdmInputHarness.hostSelector = 'pdm-input';
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnB1dC90ZXN0aW5nL2lucHV0LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRdkQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBQXJEOztRQVdZLFVBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBc0U3QyxDQUFDO0lBOUVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBK0I7UUFDekMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7YUFDbEQsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNqRyxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FDdEUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FDdEUsQ0FBQztJQUNOLENBQUM7SUFJRCxLQUFLLENBQUMsS0FBSztRQUNULE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUss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QUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBQZG1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtSW5wdXRIYXJuZXNzRmlsdGVycyB7XG4gIHNlbGVjdG9yPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQZG1JbnB1dEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdwZG0taW5wdXQnO1xuXG4gIHN0YXRpYyB3aXRoKG9wdGlvbnM6IFBkbUlucHV0SGFybmVzc0ZpbHRlcnMpOiBIYXJuZXNzUHJlZGljYXRlPFBkbUlucHV0SGFybmVzcz4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShQZG1JbnB1dEhhcm5lc3MsIG9wdGlvbnMpXG4gICAgICAuYWRkT3B0aW9uKCdpZCcsIG9wdGlvbnMuaWQsIChoYXJuZXNzLCBpZCkgPT4gSGFybmVzc1ByZWRpY2F0ZS5zdHJpbmdNYXRjaGVzKGhhcm5lc3MuZ2V0SWQoKSwgaWQpKVxuICAgICAgLmFkZE9wdGlvbigncGxhY2Vob2xkZXInLCBvcHRpb25zLnBsYWNlaG9sZGVyLCAoaGFybmVzcywgcGxhY2Vob2xkZXIpID0+XG4gICAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFBsYWNlaG9sZGVyKCksIHBsYWNlaG9sZGVyKVxuICAgICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnB1dCA9IHRoaXMubG9jYXRvckZvcignaW5wdXQnKTtcblxuICBhc3luYyBnZXRJZCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5nZXRBdHRyaWJ1dGUoJ2lkJykgfHwgJyc7XG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5nZXRQcm9wZXJ0eSgndmFsdWUnKSB8fCAnJztcbiAgfVxuXG4gIGFzeW5jIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuaW5wdXQoKTtcbiAgICBhd2FpdCBpbnB1dC5jbGVhcigpO1xuICAgIGF3YWl0IGlucHV0LnNlbmRLZXlzKHZhbHVlKTtcbiAgfVxuXG4gIGFzeW5jIGdldFBsYWNlaG9sZGVyKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmlucHV0KCkpLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSB8fCAnJztcbiAgfVxuXG4gIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmlucHV0KCkpLm1hdGNoZXNTZWxlY3RvcignOmRpc2FibGVkJyk7XG4gIH1cblxuICBhc3luYyBpc1JlYWRvbmx5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5tYXRjaGVzU2VsZWN0b3IoJ1tyZWFkb25seV0nKTtcbiAgfVxuXG4gIGFzeW5jIGlzUmVxdWlyZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmlucHV0KCkpLm1hdGNoZXNTZWxlY3RvcignW3JlcXVpcmVkXScpO1xuICB9XG5cbiAgYXN5bmMgaXNJbnZhbGlkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5tYXRjaGVzU2VsZWN0b3IoJ1thcmlhLWludmFsaWQ9XCJ0cnVlXCJdJyk7XG4gIH1cblxuICBhc3luYyBnZXRMYWJlbCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBsYWJlbCA9IGF3YWl0IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdsYWJlbCcpKCk7XG4gICAgcmV0dXJuIGxhYmVsID8gbGFiZWwudGV4dCgpIDogbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldEhlbHBlclRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgaGVscGVyID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJ1tjbGFzcyo9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmRcIl0nKSgpO1xuICAgIHJldHVybiBoZWxwZXIgPyBoZWxwZXIudGV4dCgpIDogbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldEVycm9yVGV4dCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdbY2xhc3MqPVwidGV4dC1kZXN0cnVjdGl2ZVwiXScpKCk7XG4gICAgcmV0dXJuIGVycm9yID8gZXJyb3IudGV4dCgpIDogbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5mb2N1cygpO1xuICB9XG5cbiAgYXN5bmMgYmx1cigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW5wdXQoKSkuYmx1cigpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VHlwZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnB1dCgpKS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSB8fCAndGV4dCc7XG4gIH1cblxuICBhc3luYyBjbGVhcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW5wdXQoKSkuY2xlYXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRJbnN0YW5jZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3IoUGRtSW5wdXRDb21wb25lbnQgYXMgYW55KSgpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
5
  export class PdmKbdComponent {
@@ -7,11 +8,11 @@ export class PdmKbdComponent {
7
8
  }
8
9
  }
9
10
  PdmKbdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmKbdComponent, isStandalone: true, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdComponent, decorators: [{
12
13
  type: Component,
13
- args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
14
+ args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-6 items-center justify-center rounded-md border border-solid border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
14
15
  }], propDecorators: { className: [{
15
16
  type: Input
16
17
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPMUUsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFNVyxjQUFTLEdBQUcsRUFBRSxDQUFDO0tBQ3pCOzs0R0FGWSxlQUFlO2dHQUFmLGVBQWUsbUZDUDVCLGdQQUdBOzJGRElhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWtiZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYmQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1LYmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbn1cbiIsIjxrYmQgW25nQ2xhc3NdPVwiWydpbmxpbmUtZmxleCBoLTYgbWluLXctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IGZvbnQtbW9ubyB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsIGNsYXNzTmFtZV1cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9rYmQ+XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUVcsY0FBUyxHQUFHLEVBQUUsQ0FBQztLQUN6Qjs7NEdBRlksZUFBZTtnR0FBZixlQUFlLHVHQ1Y1QixnUEFHQSwyQ0RLWSxZQUFZOzJGQUVYLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFHZCxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1rYmQnLFxuICB0ZW1wbGF0ZVVybDogJy4va2JkLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1LYmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbn1cbiIsIjxrYmQgW25nQ2xhc3NdPVwiWydpbmxpbmUtZmxleCBoLTYgbWluLXctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IGZvbnQtbW9ubyB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsIGNsYXNzTmFtZV1cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9rYmQ+XG4iXX0=
@@ -1,21 +1,20 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { NgModule } from '@angular/core';
3
2
  import { PdmKbdComponent } from './kbd.component';
4
3
  import * as i0 from "@angular/core";
5
- const COMPONENTS = [
6
- PdmKbdComponent,
7
- ];
4
+ /**
5
+ * @deprecated Import PdmKbdComponent directly instead. This module is kept for backwards compatibility.
6
+ * For modern Angular (v14+), use: import { PdmKbdComponent } from 'pdm-ui-kit/kbd'
7
+ */
8
8
  export class PdmKbdModule {
9
9
  }
10
10
  PdmKbdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- PdmKbdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, declarations: [PdmKbdComponent], imports: [CommonModule], exports: [PdmKbdComponent] });
12
- PdmKbdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [CommonModule] });
11
+ PdmKbdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [PdmKbdComponent], exports: [PdmKbdComponent] });
12
+ PdmKbdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, imports: [PdmKbdComponent] });
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmKbdModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
- imports: [CommonModule],
17
- declarations: COMPONENTS,
18
- exports: COMPONENTS
16
+ imports: [PdmKbdComponent],
17
+ exports: [PdmKbdComponent]
19
18
  }]
20
19
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRWxELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGVBQWU7Q0FDaEIsQ0FBQztBQU9GLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBUnZCLGVBQWUsYUFJTCxZQUFZLGFBSnRCLGVBQWU7MEdBUUosWUFBWSxZQUpiLFlBQVk7MkZBSVgsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkbUtiZENvbXBvbmVudCB9IGZyb20gJy4va2JkLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIFBkbUtiZENvbXBvbmVudCxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgUGRtS2JkTW9kdWxlIHt9XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rYmQva2JkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxZQUhiLGVBQWUsYUFDZixlQUFlOzBHQUVkLFlBQVksWUFIYixlQUFlOzJGQUdkLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkbUtiZENvbXBvbmVudCB9IGZyb20gJy4va2JkLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgSW1wb3J0IFBkbUtiZENvbXBvbmVudCBkaXJlY3RseSBpbnN0ZWFkLiBUaGlzIG1vZHVsZSBpcyBrZXB0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAqIEZvciBtb2Rlcm4gQW5ndWxhciAodjE0KyksIHVzZTogaW1wb3J0IHsgUGRtS2JkQ29tcG9uZW50IH0gZnJvbSAncGRtLXVpLWtpdC9rYmQnXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtQZG1LYmRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUGRtS2JkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBQZG1LYmRNb2R1bGUge31cbiJdfQ==
@@ -26,10 +26,40 @@ export class PdmPaginationComponent {
26
26
  }
27
27
  get visiblePages() {
28
28
  const total = Math.max(1, this.pageCount);
29
- if (total <= Math.max(1, this.maxVisible)) {
29
+ const current = Math.min(Math.max(1, this.page), total);
30
+ const maxNumericPages = Math.max(3, Math.floor(this.maxVisible));
31
+ if (total <= maxNumericPages) {
30
32
  return Array.from({ length: total }, (_, i) => i + 1);
31
33
  }
32
- return [1, 2, 'ellipsis', total];
34
+ const middleSlots = maxNumericPages - 2;
35
+ let start = current - Math.floor((middleSlots - 1) / 2);
36
+ let end = start + middleSlots - 1;
37
+ if (start < 2) {
38
+ start = 2;
39
+ end = start + middleSlots - 1;
40
+ }
41
+ if (end > total - 1) {
42
+ end = total - 1;
43
+ start = end - middleSlots + 1;
44
+ }
45
+ const pages = [1];
46
+ for (let pageNumber = start; pageNumber <= end; pageNumber += 1) {
47
+ pages.push(pageNumber);
48
+ }
49
+ pages.push(total);
50
+ return pages.reduce((result, pageNumber) => {
51
+ const previous = result[result.length - 1];
52
+ if (typeof previous === 'number') {
53
+ if (pageNumber - previous === 2) {
54
+ result.push(previous + 1);
55
+ }
56
+ else if (pageNumber - previous > 2) {
57
+ result.push('ellipsis');
58
+ }
59
+ }
60
+ result.push(pageNumber);
61
+ return result;
62
+ }, []);
33
63
  }
34
64
  setPage(next) {
35
65
  if (next < 1 || next > this.pageCount || next === this.page) {
@@ -46,10 +76,10 @@ export class PdmPaginationComponent {
46
76
  }
47
77
  }
48
78
  PdmPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className", rowsPerPageLabel: "rowsPerPageLabel", rowsPerPage: "rowsPerPage", rowsPerPageOptions: "rowsPerPageOptions" }, outputs: { pageChange: "pageChange", rowsPerPageChange: "rowsPerPageChange" }, ngImport: i0, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }, { kind: "component", type: i3.PdmSelectComponent, selector: "pdm-select", inputs: ["id", "value", "options", "disabled", "invalid", "className", "placeholder", "overlayOptions"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
+ PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className", rowsPerPageLabel: "rowsPerPageLabel", rowsPerPage: "rowsPerPage", rowsPerPageOptions: "rowsPerPageOptions" }, outputs: { pageChange: "pageChange", rowsPerPageChange: "rowsPerPageChange" }, ngImport: i0, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n [attr.aria-label]=\"'Go to page ' + pageNumber\"\n [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }, { kind: "component", type: i3.PdmSelectComponent, selector: "pdm-select", inputs: ["id", "value", "options", "disabled", "invalid", "className", "placeholder", "overlayOptions"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPaginationComponent, decorators: [{
51
81
  type: Component,
52
- args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
82
+ args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"Pagination\"\n [ngClass]=\"[\n 'mx-auto flex w-full flex-wrap items-center justify-center gap-4',\n className,\n ]\"\n>\n <div class=\"flex items-center gap-3\" *ngIf=\"rowsPerPageOptions.length > 0\">\n <span class=\"text-sm font-medium text-foreground\">{{\n rowsPerPageLabel\n }}</span>\n <pdm-select\n [value]=\"rowsPerPageValue\"\n [options]=\"rowsPerPageSelectOptions\"\n [placeholder]=\"rowsPerPageValue\"\n className=\"w-[100px] sm:w-[120px]\"\n (valueChange)=\"onRowsPerPageChangeValue($event)\"\n ></pdm-select>\n </div>\n\n <ul class=\"m-0 flex list-none items-center gap-1 p-0\">\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page <= 1\"\n [attr.aria-label]=\"'Go to previous page'\"\n (click)=\"setPage(page - 1)\"\n >\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <ng-container *ngIf=\"pageNumber === 'ellipsis'; else pageButton\">\n <span\n class=\"inline-flex h-9 min-w-9 items-center justify-center px-2 text-sm text-muted-foreground\"\n >...</span\n >\n </ng-container>\n <ng-template #pageButton>\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md px-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n pageNumber === page\n ? 'appearance-none box-border border border-solid border-border bg-muted text-foreground shadow-sm'\n : 'appearance-none box-border border-0 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n [attr.aria-label]=\"'Go to page ' + pageNumber\"\n [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n (click)=\"setPage(+pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </ng-template>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center gap-1 rounded-md border-0 bg-transparent px-2 text-sm text-foreground hover:bg-accent disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n [disabled]=\"page >= pageCount\"\n [attr.aria-label]=\"'Go to next page'\"\n (click)=\"setPage(page + 1)\"\n >\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
53
83
  }], propDecorators: { page: [{
54
84
  type: Input
55
85
  }], pageCount: [{
@@ -69,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
69
99
  }], rowsPerPageChange: [{
70
100
  type: Output
71
101
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRaEcsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixxQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsdUJBQWtCLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUvQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBc0MxRDtJQXBDQyxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDckIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN2RDtRQUVELE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzNELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BFLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7bUhBL0NVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHFWQ1JuQyx3ekZBbUVBOzJGRDNEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgUGRtTmF0aXZlU2VsZWN0T3B0aW9uIH0gZnJvbSAncGRtLXVpLWtpdC9zcmMvbmF0aXZlLXNlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1QYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcGFnZSA9IDE7XG4gIEBJbnB1dCgpIHBhZ2VDb3VudCA9IDE7XG4gIEBJbnB1dCgpIG1heFZpc2libGUgPSA0O1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgcm93c1BlclBhZ2VMYWJlbCA9ICdSb3dzIHBlciBwYWdlJztcbiAgQElucHV0KCkgcm93c1BlclBhZ2UgPSAxMDtcbiAgQElucHV0KCkgcm93c1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA1MF07XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHJvd3NQZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgZ2V0IHJvd3NQZXJQYWdlU2VsZWN0T3B0aW9ucygpOiBQZG1OYXRpdmVTZWxlY3RPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICBsYWJlbDogU3RyaW5nKHZhbHVlKSxcbiAgICAgIHZhbHVlOiBTdHJpbmcodmFsdWUpXG4gICAgfSkpO1xuICB9XG5cbiAgZ2V0IHJvd3NQZXJQYWdlVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMucm93c1BlclBhZ2UpO1xuICB9XG5cbiAgZ2V0IHZpc2libGVQYWdlcygpOiBBcnJheTxudW1iZXIgfCAnZWxsaXBzaXMnPiB7XG4gICAgY29uc3QgdG90YWwgPSBNYXRoLm1heCgxLCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgaWYgKHRvdGFsIDw9IE1hdGgubWF4KDEsIHRoaXMubWF4VmlzaWJsZSkpIHtcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbCB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBbMSwgMiwgJ2VsbGlwc2lzJywgdG90YWxdO1xuICB9XG5cbiAgc2V0UGFnZShuZXh0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAobmV4dCA8IDEgfHwgbmV4dCA+IHRoaXMucGFnZUNvdW50IHx8IG5leHQgPT09IHRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KG5leHQpO1xuICB9XG5cbiAgb25Sb3dzUGVyUGFnZUNoYW5nZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShuZXh0KSB8fCBuZXh0IDw9IDAgfHwgbmV4dCA9PT0gdGhpcy5yb3dzUGVyUGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucm93c1BlclBhZ2VDaGFuZ2UuZW1pdChuZXh0KTtcbiAgfVxufVxuIiwiPG5hdlxuICBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAnbXgtYXV0byBmbGV4IHctZnVsbCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00JyxcbiAgICBjbGFzc05hbWUsXG4gIF1cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIiAqbmdJZj1cInJvd3NQZXJQYWdlT3B0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZFwiPnt7XG4gICAgICByb3dzUGVyUGFnZUxhYmVsXG4gICAgfX08L3NwYW4+XG4gICAgPHBkbS1zZWxlY3RcbiAgICAgIFt2YWx1ZV09XCJyb3dzUGVyUGFnZVZhbHVlXCJcbiAgICAgIFtvcHRpb25zXT1cInJvd3NQZXJQYWdlU2VsZWN0T3B0aW9uc1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicm93c1BlclBhZ2VWYWx1ZVwiXG4gICAgICBjbGFzc05hbWU9XCJ3LVsxMDBweF0gc206dy1bMTIwcHhdXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJvd3NQZXJQYWdlQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgPjwvcGRtLXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwibS0wIGZsZXggbGlzdC1ub25lIGl0ZW1zLWNlbnRlciBnYXAtMSBwLTBcIj5cbiAgICA8bGk+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEgcm91bmRlZC1tZCBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHRleHQtc20gdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBkaXNhYmxlZDpvcGFjaXR5LTUwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiXG4gICAgICAgIChjbGljayk9XCJzZXRQYWdlKHBhZ2UgLSAxKVwiXG4gICAgICA+XG4gICAgICAgIDxwZG0taWNvbiBuYW1lPVwiY2hldnJvbi1sZWZ0XCIgW3NpemVdPVwiMTRcIj48L3BkbS1pY29uPlxuICAgICAgICBQcmV2aW91c1xuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgdmlzaWJsZVBhZ2VzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZU51bWJlciA9PT0gJ2VsbGlwc2lzJzsgZWxzZSBwYWdlQnV0dG9uXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgbWluLXctOSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiXG4gICAgICAgICAgPi4uLjwvc3BhblxuICAgICAgICA+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcGFnZUJ1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICdpbmxpbmUtZmxleCBoLTkgbWluLXctOSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBweC0yIHRleHQtc20gcmluZy1vZmZzZXQtYmFja2dyb3VuZCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTInLFxuICAgICAgICAgICAgcGFnZU51bWJlciA9PT0gcGFnZVxuICAgICAgICAgICAgICA/ICdhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbSdcbiAgICAgICAgICAgICAgOiAnYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICBdXCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZSgrcGFnZU51bWJlcilcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZU51bWJlciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEgcm91bmRlZC1tZCBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHRleHQtc20gdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBkaXNhYmxlZDpvcGFjaXR5LTUwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPj0gcGFnZUNvdW50XCJcbiAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZSArIDEpXCJcbiAgICAgID5cbiAgICAgICAgTmV4dFxuICAgICAgICA8cGRtLWljb24gbmFtZT1cImNoZXZyb24tcmlnaHRcIiBbc2l6ZV09XCIxNFwiPjwvcGRtLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uYXY+XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRaEcsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1XLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixxQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsdUJBQWtCLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUvQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBMEUxRDtJQXhFQyxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDckIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJ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SUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwRSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O21IQW5GVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixxVkNSbkMsaWlHQXVFQTsyRkQvRGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFBkbU5hdGl2ZVNlbGVjdE9wdGlvbiB9IGZyb20gJ3BkbS11aS1raXQvc3JjL25hdGl2ZS1zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBhZ2UgPSAxO1xuICBASW5wdXQoKSBwYWdlQ291bnQgPSAxO1xuICBASW5wdXQoKSBtYXhWaXNpYmxlID0gNDtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIEBJbnB1dCgpIHJvd3NQZXJQYWdlTGFiZWwgPSAnUm93cyBwZXIgcGFnZSc7XG4gIEBJbnB1dCgpIHJvd3NQZXJQYWdlID0gMTA7XG4gIEBJbnB1dCgpIHJvd3NQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbMTAsIDIwLCAzMCwgNTBdO1xuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSByb3dzUGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGdldCByb3dzUGVyUGFnZVNlbGVjdE9wdGlvbnMoKTogUGRtTmF0aXZlU2VsZWN0T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5tYXAoKHZhbHVlKSA9PiAoe1xuICAgICAgbGFiZWw6IFN0cmluZyh2YWx1ZSksXG4gICAgICB2YWx1ZTogU3RyaW5nKHZhbHVlKVxuICAgIH0pKTtcbiAgfVxuXG4gIGdldCByb3dzUGVyUGFnZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLnJvd3NQZXJQYWdlKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlUGFnZXMoKTogQXJyYXk8bnVtYmVyIHwgJ2VsbGlwc2lzJz4ge1xuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5tYXgoMSwgdGhpcy5wYWdlQ291bnQpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBNYXRoLm1pbihNYXRoLm1heCgxLCB0aGlzLnBhZ2UpLCB0b3RhbCk7XG4gICAgY29uc3QgbWF4TnVtZXJpY1BhZ2VzID0gTWF0aC5tYXgoMywgTWF0aC5mbG9vcih0aGlzLm1heFZpc2libGUpKTtcblxuICAgIGlmICh0b3RhbCA8PSBtYXhOdW1lcmljUGFnZXMpIHtcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbCB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIH1cblxuICAgIGNvbnN0IG1pZGRsZVNsb3RzID0gbWF4TnVtZXJpY1BhZ2VzIC0gMjtcbiAgICBsZXQgc3RhcnQgPSBjdXJyZW50IC0gTWF0aC5mbG9vcigobWlkZGxlU2xvdHMgLSAxKSAvIDIpO1xuICAgIGxldCBlbmQgPSBzdGFydCArIG1pZGRsZVNsb3RzIC0gMTtcblxuICAgIGlmIChzdGFydCA8IDIpIHtcbiAgICAgIHN0YXJ0ID0gMjtcbiAgICAgIGVuZCA9IHN0YXJ0ICsgbWlkZGxlU2xvdHMgLSAxO1xuICAgIH1cblxuICAgIGlmIChlbmQgPiB0b3RhbCAtIDEpIHtcbiAgICAgIGVuZCA9IHRvdGFsIC0gMTtcbiAgICAgIHN0YXJ0ID0gZW5kIC0gbWlkZGxlU2xvdHMgKyAxO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzID0gWzFdO1xuICAgIGZvciAobGV0IHBhZ2VOdW1iZXIgPSBzdGFydDsgcGFnZU51bWJlciA8PSBlbmQ7IHBhZ2VOdW1iZXIgKz0gMSkge1xuICAgICAgcGFnZXMucHVzaChwYWdlTnVtYmVyKTtcbiAgICB9XG4gICAgcGFnZXMucHVzaCh0b3RhbCk7XG5cbiAgICByZXR1cm4gcGFnZXMucmVkdWNlPEFycmF5PG51bWJlciB8ICdlbGxpcHNpcyc+PigocmVzdWx0LCBwYWdlTnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV07XG5cbiAgICAgIGlmICh0eXBlb2YgcHJldmlvdXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChwYWdlTnVtYmVyIC0gcHJldmlvdXMgPT09IDIpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChwcmV2aW91cyArIDEpO1xuICAgICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgLSBwcmV2aW91cyA+IDIpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCgnZWxsaXBzaXMnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXN1bHQucHVzaChwYWdlTnVtYmVyKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgc2V0UGFnZShuZXh0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAobmV4dCA8IDEgfHwgbmV4dCA+IHRoaXMucGFnZUNvdW50IHx8IG5leHQgPT09IHRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KG5leHQpO1xuICB9XG5cbiAgb25Sb3dzUGVyUGFnZUNoYW5nZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShuZXh0KSB8fCBuZXh0IDw9IDAgfHwgbmV4dCA9PT0gdGhpcy5yb3dzUGVyUGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucm93c1BlclBhZ2VDaGFuZ2UuZW1pdChuZXh0KTtcbiAgfVxufVxuIiwiPG5hdlxuICBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAnbXgtYXV0byBmbGV4IHctZnVsbCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00JyxcbiAgICBjbGFzc05hbWUsXG4gIF1cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIiAqbmdJZj1cInJvd3NQZXJQYWdlT3B0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZFwiPnt7XG4gICAgICByb3dzUGVyUGFnZUxhYmVsXG4gICAgfX08L3NwYW4+XG4gICAgPHBkbS1zZWxlY3RcbiAgICAgIFt2YWx1ZV09XCJyb3dzUGVyUGFnZVZhbHVlXCJcbiAgICAgIFtvcHRpb25zXT1cInJvd3NQZXJQYWdlU2VsZWN0T3B0aW9uc1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicm93c1BlclBhZ2VWYWx1ZVwiXG4gICAgICBjbGFzc05hbWU9XCJ3LVsxMDBweF0gc206dy1bMTIwcHhdXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJvd3NQZXJQYWdlQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgPjwvcGRtLXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwibS0wIGZsZXggbGlzdC1ub25lIGl0ZW1zLWNlbnRlciBnYXAtMSBwLTBcIj5cbiAgICA8bGk+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEgcm91bmRlZC1tZCBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHRleHQtc20gdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBkaXNhYmxlZDpvcGFjaXR5LTUwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dvIHRvIHByZXZpb3VzIHBhZ2UnXCJcbiAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZSAtIDEpXCJcbiAgICAgID5cbiAgICAgICAgPHBkbS1pY29uIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBbc2l6ZV09XCIxNFwiPjwvcGRtLWljb24+XG4gICAgICAgIFByZXZpb3VzXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgcGFnZU51bWJlciBvZiB2aXNpYmxlUGFnZXNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlTnVtYmVyID09PSAnZWxsaXBzaXMnOyBlbHNlIHBhZ2VCdXR0b25cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSBtaW4tdy05IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCJcbiAgICAgICAgICA+Li4uPC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNwYWdlQnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgJ2lubGluZS1mbGV4IGgtOSBtaW4tdy05IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHB4LTIgdGV4dC1zbSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMicsXG4gICAgICAgICAgICBwYWdlTnVtYmVyID09PSBwYWdlXG4gICAgICAgICAgICAgID8gJ2FwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1tdXRlZCB0ZXh0LWZvcmVncm91bmQgc2hhZG93LXNtJ1xuICAgICAgICAgICAgICA6ICdhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBib3JkZXItMCBiZy10cmFuc3BhcmVudCB0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgICAgICAgIF1cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dvIHRvIHBhZ2UgJyArIHBhZ2VOdW1iZXJcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJwYWdlTnVtYmVyID09PSBwYWdlID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UoK3BhZ2VOdW1iZXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHBhZ2VOdW1iZXIgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0xIHJvdW5kZWQtbWQgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMiB0ZXh0LXNtIHRleHQtZm9yZWdyb3VuZCBob3ZlcjpiZy1hY2NlbnQgZGlzYWJsZWQ6b3BhY2l0eS01MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMlwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJwYWdlID49IHBhZ2VDb3VudFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dvIHRvIG5leHQgcGFnZSdcIlxuICAgICAgICAoY2xpY2spPVwic2V0UGFnZShwYWdlICsgMSlcIlxuICAgICAgPlxuICAgICAgICBOZXh0XG4gICAgICAgIDxwZG0taWNvbiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIFtzaXplXT1cIjE0XCI+PC9wZG0taWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25hdj5cbiJdfQ==
@@ -0,0 +1,76 @@
1
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { PdmPaginationComponent } from '../pagination.component';
3
+ export class PdmPaginationHarness extends ComponentHarness {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.nav = this.locatorFor('nav');
7
+ }
8
+ static with(options) {
9
+ return new HarnessPredicate(PdmPaginationHarness, options);
10
+ }
11
+ async goToPage(page) {
12
+ const buttons = await this.locatorForAll('button')();
13
+ for (const button of buttons) {
14
+ const text = await button.text();
15
+ if (text.trim() === String(page)) {
16
+ return button.click();
17
+ }
18
+ }
19
+ throw new Error(`Page ${page} not found in pagination`);
20
+ }
21
+ async goToNextPage() {
22
+ const buttons = await this.locatorForAll('button')();
23
+ if (buttons.length > 0) {
24
+ return buttons[buttons.length - 1].click();
25
+ }
26
+ }
27
+ async goToPreviousPage() {
28
+ const buttons = await this.locatorForAll('button')();
29
+ if (buttons.length > 0) {
30
+ return buttons[0].click();
31
+ }
32
+ }
33
+ async getCurrentPage() {
34
+ const component = await this.getComponentInstance();
35
+ return component.page;
36
+ }
37
+ async getPageCount() {
38
+ const component = await this.getComponentInstance();
39
+ return component.pageCount;
40
+ }
41
+ async getRowsPerPage() {
42
+ const component = await this.getComponentInstance();
43
+ return component.rowsPerPage;
44
+ }
45
+ async setRowsPerPage(rows) {
46
+ // This would require interacting with the select component
47
+ const component = await this.getComponentInstance();
48
+ component.rowsPerPageChange.emit(rows);
49
+ }
50
+ async getVisiblePages() {
51
+ const component = await this.getComponentInstance();
52
+ return component.visiblePages;
53
+ }
54
+ async isNextPageDisabled() {
55
+ const buttons = await this.locatorForAll('button')();
56
+ if (buttons.length > 0) {
57
+ return buttons[buttons.length - 1].matchesSelector(':disabled');
58
+ }
59
+ return true;
60
+ }
61
+ async isPreviousPageDisabled() {
62
+ const buttons = await this.locatorForAll('button')();
63
+ if (buttons.length > 0) {
64
+ return buttons[0].matchesSelector(':disabled');
65
+ }
66
+ return true;
67
+ }
68
+ async getPageButtons() {
69
+ return this.locatorForAll('button')();
70
+ }
71
+ getComponentInstance() {
72
+ return this.locatorFor(PdmPaginationComponent)();
73
+ }
74
+ }
75
+ PdmPaginationHarness.hostSelector = 'pdm-pagination';
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2luYXRpb24vdGVzdGluZy9wYWdpbmF0aW9uLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFNakUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUExRDs7UUFPWSxRQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQThFekMsQ0FBQztJQWxGQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQW9DO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBSUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBRXJELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDdkI7U0FDRjtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLDBCQUEwQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3BELE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFZO1FBQy9CLDJEQUEyRDtRQUMzRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ25CLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQTZCLENBQUMsRUFBRSxDQUFDO0lBQzFELENBQUM7O0FBbkZNLGlDQUFZLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgUGRtUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBQZG1QYWdpbmF0aW9uSGFybmVzc0ZpbHRlcnMge1xuICBzZWxlY3Rvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBkbVBhZ2luYXRpb25IYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAncGRtLXBhZ2luYXRpb24nO1xuXG4gIHN0YXRpYyB3aXRoKG9wdGlvbnM6IFBkbVBhZ2luYXRpb25IYXJuZXNzRmlsdGVycyk6IEhhcm5lc3NQcmVkaWNhdGU8UGRtUGFnaW5hdGlvbkhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoUGRtUGFnaW5hdGlvbkhhcm5lc3MsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5hdiA9IHRoaXMubG9jYXRvckZvcignbmF2Jyk7XG5cbiAgYXN5bmMgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnV0dG9ucyA9IGF3YWl0IHRoaXMubG9jYXRvckZvckFsbCgnYnV0dG9uJykoKTtcblxuICAgIGZvciAoY29uc3QgYnV0dG9uIG9mIGJ1dHRvbnMpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCBidXR0b24udGV4dCgpO1xuICAgICAgaWYgKHRleHQudHJpbSgpID09PSBTdHJpbmcocGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIGJ1dHRvbi5jbGljaygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgUGFnZSAke3BhZ2V9IG5vdCBmb3VuZCBpbiBwYWdpbmF0aW9uYCk7XG4gIH1cblxuICBhc3luYyBnb1RvTmV4dFBhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnV0dG9ucyA9IGF3YWl0IHRoaXMubG9jYXRvckZvckFsbCgnYnV0dG9uJykoKTtcbiAgICBpZiAoYnV0dG9ucy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYnV0dG9uc1tidXR0b25zLmxlbmd0aCAtIDFdLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ29Ub1ByZXZpb3VzUGFnZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b25zID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKCdidXR0b24nKSgpO1xuICAgIGlmIChidXR0b25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBidXR0b25zWzBdLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Q3VycmVudFBhZ2UoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBhd2FpdCB0aGlzLmdldENvbXBvbmVudEluc3RhbmNlKCk7XG4gICAgcmV0dXJuIGNvbXBvbmVudC5wYWdlO1xuICB9XG5cbiAgYXN5bmMgZ2V0UGFnZUNvdW50KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgdGhpcy5nZXRDb21wb25lbnRJbnN0YW5jZSgpO1xuICAgIHJldHVybiBjb21wb25lbnQucGFnZUNvdW50O1xuICB9XG5cbiAgYXN5bmMgZ2V0Um93c1BlclBhZ2UoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBhd2FpdCB0aGlzLmdldENvbXBvbmVudEluc3RhbmNlKCk7XG4gICAgcmV0dXJuIGNvbXBvbmVudC5yb3dzUGVyUGFnZTtcbiAgfVxuXG4gIGFzeW5jIHNldFJvd3NQZXJQYWdlKHJvd3M6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRoaXMgd291bGQgcmVxdWlyZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzZWxlY3QgY29tcG9uZW50XG4gICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgdGhpcy5nZXRDb21wb25lbnRJbnN0YW5jZSgpO1xuICAgIGNvbXBvbmVudC5yb3dzUGVyUGFnZUNoYW5nZS5lbWl0KHJvd3MpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VmlzaWJsZVBhZ2VzKCk6IFByb21pc2U8KG51bWJlciB8IHN0cmluZylbXT4ge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGF3YWl0IHRoaXMuZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTtcbiAgICByZXR1cm4gY29tcG9uZW50LnZpc2libGVQYWdlcztcbiAgfVxuXG4gIGFzeW5jIGlzTmV4dFBhZ2VEaXNhYmxlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBidXR0b25zID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKCdidXR0b24nKSgpO1xuICAgIGlmIChidXR0b25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBidXR0b25zW2J1dHRvbnMubGVuZ3RoIC0gMV0ubWF0Y2hlc1NlbGVjdG9yKCc6ZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBpc1ByZXZpb3VzUGFnZURpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGJ1dHRvbnMgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoJ2J1dHRvbicpKCk7XG4gICAgaWYgKGJ1dHRvbnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGJ1dHRvbnNbMF0ubWF0Y2hlc1NlbGVjdG9yKCc6ZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBnZXRQYWdlQnV0dG9ucygpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvckFsbCgnYnV0dG9uJykoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRJbnN0YW5jZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3IoUGRtUGFnaW5hdGlvbkNvbXBvbmVudCBhcyBhbnkpKCk7XG4gIH1cbn1cbiJdfQ==
@@ -114,4 +114,6 @@ export * from "./input/textarea.component";
114
114
  export * from "./toggle/toggle.component";
115
115
  export * from "./toggle/toggle-group.component";
116
116
  export * from "./tooltip/tooltip.component";
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxtRUFBbUU7QUFDbkUsdURBQXVEO0FBQ3ZELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7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Y0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wZG0tdWkta2l0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcmxheS9wZG0tb3ZlcmxheS1vcHRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcmxheS9wZG0tb3V0c2lkZS1jbGljay5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJsYXkvcGRtLW91dHNpZGUtY2xpY2subW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVybGF5L3otaW5kZXgtaGVscGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9yZXNwb25zaXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy96LWluZGV4XCI7XG5cbi8vIEZlYXR1cmUgbW9kdWxlcyDigJQgaW1wb3J0IGluZGl2aWR1YWxseSBmb3IgdHJlZS1zaGFrZWFibGUgYnVpbGRzOlxuLy8gaW1wb3J0IHsgUGRtQnV0dG9uTW9kdWxlIH0gZnJvbSAncGRtLXVpLWtpdC9idXR0b24nO1xuZXhwb3J0ICogZnJvbSBcIi4vYWNjb3JkaW9uL2FjY29yZGlvbi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FsZXJ0L2FsZXJ0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2F2YXRhci9hdmF0YXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9iYWRnZS9iYWRnZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1dHRvbi9idXR0b24ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmQvY2FyZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nhcm91c2VsL2Nhcm91c2VsLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2hhcnQvY2hhcnQubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jaGVja2JveC9jaGVja2JveC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tYm9ib3gvY29tYm9ib3gubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kL2NvbW1hbmQubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS10YWJsZS9kYXRhLXRhYmxlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlhbG9nL2RpYWxvZy5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RyYXdlci9kcmF3ZXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbXB0eS9lbXB0eS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpZWxkL2ZpZWxkLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaG92ZXItY2FyZC9ob3Zlci1jYXJkLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWNvbi9pY29uLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5wdXQvaW5wdXQubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pdGVtL2l0ZW0ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9rYmQva2JkLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFiZWwvbGFiZWwubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZW51YmFyL21lbnViYXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXRpdmUtc2VsZWN0L25hdGl2ZS1zZWxlY3QubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXZpZ2F0aW9uLW1lbnUvbmF2aWdhdGlvbi1tZW51Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG9wb3Zlci9wb3BvdmVyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Njcm9sbC1hcmVhL3Njcm9sbC1hcmVhLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VsZWN0L3NlbGVjdC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcGFyYXRvci9zZXBhcmF0b3IubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zaWRlYmFyL3NpZGViYXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9za2VsZXRvbi9za2VsZXRvbi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NsaWRlci9zbGlkZXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb25uZXIvc29ubmVyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3Bpbm5lci9zcGlubmVyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3dpdGNoL3N3aXRjaC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYnMvdGFicy5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvZ2dsZS90b2dnbGUubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWxlcnQvYWxlcnQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGVydC9hbGVydC1kaWFsb2cuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2JhZGdlL2JhZGdlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYnV0dG9uL2J1dHRvbi1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2FyZC9jYXJkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2hhcnQvY2hhcnQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kL2NvbW1hbmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2FsZW5kYXIvZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS10YWJsZS9kcmFnZ2FibGUtdGFibGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW1wdHkvZW1wdHkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9maWVsZC9maWVsZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvdmVyLWNhcmQvaG92ZXItY2FyZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2l0ZW0vaXRlbS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0L2lucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5wdXQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnB1dC9pbnB1dC1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0L2lucHV0LW90cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2tiZC9rYmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYWJlbC9sYWJlbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21lbnViYXIvbWVudWJhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25hdGl2ZS1zZWxlY3QvbmF0aXZlLXNlbGVjdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25hdmlnYXRpb24tbWVudS9uYXZpZ2F0aW9uLW1lbnUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2Nyb2xsLWFyZWEvc2Nyb2xsLWFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VsZWN0L3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXBhcmF0b3Ivc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHJhd2VyL3NoZWV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc29ubmVyL3Nvbm5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhLXRhYmxlL3RhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFicy90YWJzLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5wdXQvdGV4dGFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9nZ2xlL3RvZ2dsZS1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnRcIjtcbiJdfQ==
117
+ // Test harnesses for unit testing
118
+ export * from "./testing";
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxtRUFBbUU7QUFDbkUsdURBQXVEO0FBQ3ZELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7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Y0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsa0NBQWtDO0FBQ2xDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGRtLXVpLWtpdC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJsYXkvcGRtLW92ZXJsYXktb3B0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcmxheS9jcmVhdGUtZmxleGlibGUtcG9zaXRpb24tc3RyYXRlZ3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJsYXkvcGRtLW91dHNpZGUtY2xpY2suZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVybGF5L3BkbS1vdXRzaWRlLWNsaWNrLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcmxheS96LWluZGV4LWhlbHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvcmVzcG9uc2l2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvei1pbmRleFwiO1xuXG4vLyBGZWF0dXJlIG1vZHVsZXMg4oCUIGltcG9ydCBpbmRpdmlkdWFsbHkgZm9yIHRyZWUtc2hha2VhYmxlIGJ1aWxkczpcbi8vIGltcG9ydCB7IFBkbUJ1dHRvbk1vZHVsZSB9IGZyb20gJ3BkbS11aS1raXQvYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gXCIuL2FjY29yZGlvbi9hY2NvcmRpb24ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGVydC9hbGVydC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hdmF0YXIvYXZhdGFyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmFkZ2UvYmFkZ2UubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2FsZW5kYXIvY2FsZW5kYXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJkL2NhcmQubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJvdXNlbC9jYXJvdXNlbC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NoYXJ0L2NoYXJ0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2hlY2tib3gvY2hlY2tib3gubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbWJvYm94L2NvbWJvYm94Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZC9jb21tYW5kLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpYWxvZy9kaWFsb2cubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcmF3ZXIvZHJhd2VyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW1wdHkvZW1wdHkubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9maWVsZC9maWVsZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvdmVyLWNhcmQvaG92ZXItY2FyZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ljb24vaWNvbi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0L2lucHV0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXRlbS9pdGVtLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4va2JkL2tiZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xhYmVsL2xhYmVsLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWVudWJhci9tZW51YmFyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmF0aXZlLXNlbGVjdC9uYXRpdmUtc2VsZWN0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmF2aWdhdGlvbi1tZW51L25hdmlnYXRpb24tbWVudS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2dyZXNzL3Byb2dyZXNzLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY3JvbGwtYXJlYS9zY3JvbGwtYXJlYS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdC9zZWxlY3QubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXBhcmF0b3Ivc2VwYXJhdG9yLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2lkZWJhci9zaWRlYmFyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2tlbGV0b24vc2tlbGV0b24ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zbGlkZXIvc2xpZGVyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc29ubmVyL3Nvbm5lci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NwaW5uZXIvc3Bpbm5lci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N3aXRjaC9zd2l0Y2gubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJzL3RhYnMubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b2dnbGUvdG9nZ2xlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWxlcnQvYWxlcnQtZGlhbG9nLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2F2YXRhci9hdmF0YXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9iYWRnZS9iYWRnZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1dHRvbi9idXR0b24tZ3JvdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmQvY2FyZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhbGVuZGFyL2RhdGUtcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlhbG9nL2RpYWxvZy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGEtdGFibGUvZHJhZ2dhYmxlLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHJhd2VyL2RyYXdlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VtcHR5L2VtcHR5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZmllbGQvZmllbGQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob3Zlci1jYXJkL2hvdmVyLWNhcmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pdGVtL2l0ZW0uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnB1dC9pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0L2lucHV0LXBhc3N3b3JkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5wdXQvaW5wdXQtZ3JvdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnB1dC9pbnB1dC1vdHAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9rYmQva2JkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFiZWwvbGFiZWwuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZW51YmFyL21lbnViYXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXRpdmUtc2VsZWN0L25hdGl2ZS1zZWxlY3QuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXZpZ2F0aW9uLW1lbnUvbmF2aWdhdGlvbi1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Njcm9sbC1hcmVhL3Njcm9sbC1hcmVhLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdC9zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VwYXJhdG9yL3NlcGFyYXRvci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RyYXdlci9zaGVldC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2xpZGVyL3NsaWRlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Nvbm5lci9zb25uZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS10YWJsZS90YWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYnMvdGFicy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0L3RleHRhcmVhLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvZ2dsZS90b2dnbGUtZ3JvdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50XCI7XG5cbi8vIFRlc3QgaGFybmVzc2VzIGZvciB1bml0IHRlc3RpbmdcbmV4cG9ydCAqIGZyb20gXCIuL3Rlc3RpbmdcIjtcbiJdfQ==