@skyux/forms 11.31.0 → 12.0.0-alpha.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 (105) hide show
  1. package/documentation.json +1931 -1913
  2. package/fesm2022/skyux-forms.mjs +180 -179
  3. package/fesm2022/skyux-forms.mjs.map +1 -1
  4. package/package.json +15 -19
  5. package/esm2022/index.mjs +0 -44
  6. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +0 -38
  7. package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +0 -46
  8. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +0 -96
  9. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +0 -43
  10. package/esm2022/lib/modules/checkbox/checkbox-change.mjs +0 -2
  11. package/esm2022/lib/modules/checkbox/checkbox-group-heading-level.mjs +0 -2
  12. package/esm2022/lib/modules/checkbox/checkbox-group-heading-style.mjs +0 -2
  13. package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +0 -156
  14. package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +0 -29
  15. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +0 -18
  16. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +0 -397
  17. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +0 -75
  18. package/esm2022/lib/modules/field-group/field-group-heading-level.mjs +0 -2
  19. package/esm2022/lib/modules/field-group/field-group-heading-style.mjs +0 -2
  20. package/esm2022/lib/modules/field-group/field-group.component.mjs +0 -75
  21. package/esm2022/lib/modules/field-group/field-group.module.mjs +0 -16
  22. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-change.mjs +0 -2
  23. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-click.mjs +0 -2
  24. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.mjs +0 -22
  25. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.mjs +0 -31
  26. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +0 -486
  27. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.mjs +0 -24
  28. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.mjs +0 -103
  29. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +0 -20
  30. package/esm2022/lib/modules/file-attachment/file-drop/file-drop-change.mjs +0 -2
  31. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.component.mjs +0 -338
  32. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.module.mjs +0 -18
  33. package/esm2022/lib/modules/file-attachment/file-drop/file-item.component.mjs +0 -156
  34. package/esm2022/lib/modules/file-attachment/file-drop/file-link.mjs +0 -2
  35. package/esm2022/lib/modules/file-attachment/shared/file-item-error-type.mjs +0 -2
  36. package/esm2022/lib/modules/file-attachment/shared/file-item.mjs +0 -2
  37. package/esm2022/lib/modules/file-attachment/shared/file-item.service.mjs +0 -71
  38. package/esm2022/lib/modules/file-attachment/shared/file-size.pipe.mjs +0 -61
  39. package/esm2022/lib/modules/file-attachment/shared/file-validate-function.mjs +0 -2
  40. package/esm2022/lib/modules/form-error/form-error.component.mjs +0 -56
  41. package/esm2022/lib/modules/form-error/form-error.module.mjs +0 -16
  42. package/esm2022/lib/modules/form-error/form-errors-enabled-token.mjs +0 -6
  43. package/esm2022/lib/modules/form-error/form-errors.component.mjs +0 -50
  44. package/esm2022/lib/modules/form-error/form-errors.module.mjs +0 -20
  45. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +0 -63
  46. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +0 -33
  47. package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +0 -23
  48. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +0 -72
  49. package/esm2022/lib/modules/input-box/input-box-populate-args.mjs +0 -2
  50. package/esm2022/lib/modules/input-box/input-box.component.mjs +0 -276
  51. package/esm2022/lib/modules/input-box/input-box.module.mjs +0 -58
  52. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +0 -50
  53. package/esm2022/lib/modules/radio/radio-group.component.mjs +0 -390
  54. package/esm2022/lib/modules/radio/radio-label.component.mjs +0 -34
  55. package/esm2022/lib/modules/radio/radio.component.mjs +0 -357
  56. package/esm2022/lib/modules/radio/radio.module.mjs +0 -71
  57. package/esm2022/lib/modules/radio/types/radio-change.mjs +0 -2
  58. package/esm2022/lib/modules/radio/types/radio-group-heading-level.mjs +0 -2
  59. package/esm2022/lib/modules/radio/types/radio-group-heading-style.mjs +0 -2
  60. package/esm2022/lib/modules/radio/types/radio-type.mjs +0 -2
  61. package/esm2022/lib/modules/required-state/required-state.directive.mjs +0 -34
  62. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +0 -128
  63. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +0 -14
  64. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +0 -141
  65. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +0 -14
  66. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +0 -132
  67. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +0 -40
  68. package/esm2022/lib/modules/selection-box/types/selection-box-grid-align-items-type.mjs +0 -2
  69. package/esm2022/lib/modules/selection-box/types/selection-box-grid-align-items.mjs +0 -2
  70. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +0 -142
  71. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +0 -25
  72. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +0 -202
  73. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +0 -36
  74. package/esm2022/lib/modules/toggle-switch/types/toggle-switch-change.mjs +0 -2
  75. package/esm2022/skyux-forms.mjs +0 -5
  76. package/esm2022/testing/legacy/checkbox-fixture.mjs +0 -92
  77. package/esm2022/testing/legacy/radio-fixture.mjs +0 -85
  78. package/esm2022/testing/modules/character-counter/character-counter-indicator-harness-filters.mjs +0 -2
  79. package/esm2022/testing/modules/character-counter/character-counter-indicator-harness.mjs +0 -53
  80. package/esm2022/testing/modules/checkbox/checkbox-group-harness-filters.mjs +0 -2
  81. package/esm2022/testing/modules/checkbox/checkbox-group-harness.mjs +0 -158
  82. package/esm2022/testing/modules/checkbox/checkbox-harness-filters.mjs +0 -2
  83. package/esm2022/testing/modules/checkbox/checkbox-harness.mjs +0 -196
  84. package/esm2022/testing/modules/checkbox/checkbox-label-harness.mjs +0 -19
  85. package/esm2022/testing/modules/checkbox/checkbox-label-text-label.harness.mjs +0 -19
  86. package/esm2022/testing/modules/field-group/field-group-harness-filters.mjs +0 -2
  87. package/esm2022/testing/modules/field-group/field-group-harness.mjs +0 -92
  88. package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.mjs +0 -2
  89. package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness.mjs +0 -193
  90. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-harness-filters.mjs +0 -2
  91. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-harness.mjs +0 -39
  92. package/esm2022/testing/modules/file-attachment/shared/provide-file-attachment-testing.mjs +0 -14
  93. package/esm2022/testing/modules/form-error/form-error-harness.filters.mjs +0 -2
  94. package/esm2022/testing/modules/form-error/form-error-harness.mjs +0 -21
  95. package/esm2022/testing/modules/form-error/form-errors-harness.filters.mjs +0 -2
  96. package/esm2022/testing/modules/form-error/form-errors-harness.mjs +0 -34
  97. package/esm2022/testing/modules/input-box/input-box-harness-filters.mjs +0 -2
  98. package/esm2022/testing/modules/input-box/input-box-harness.mjs +0 -188
  99. package/esm2022/testing/modules/radio/radio-group-harness-filters.mjs +0 -2
  100. package/esm2022/testing/modules/radio/radio-group-harness.mjs +0 -156
  101. package/esm2022/testing/modules/radio/radio-harness-filters.mjs +0 -2
  102. package/esm2022/testing/modules/radio/radio-harness.mjs +0 -147
  103. package/esm2022/testing/modules/radio/radio-label-harness.mjs +0 -19
  104. package/esm2022/testing/public-api.mjs +0 -17
  105. package/esm2022/testing/skyux-forms-testing.mjs +0 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/forms",
3
- "version": "11.31.0",
3
+ "version": "12.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,14 +21,10 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2022": "./esm2022/skyux-forms.mjs",
25
- "esm": "./esm2022/skyux-forms.mjs",
26
24
  "default": "./fesm2022/skyux-forms.mjs"
27
25
  },
28
26
  "./testing": {
29
27
  "types": "./testing/index.d.ts",
30
- "esm2022": "./esm2022/testing/skyux-forms-testing.mjs",
31
- "esm": "./esm2022/testing/skyux-forms-testing.mjs",
32
28
  "default": "./fesm2022/skyux-forms-testing.mjs"
33
29
  },
34
30
  "./documentation.json": {
@@ -36,22 +32,22 @@
36
32
  }
37
33
  },
38
34
  "peerDependencies": {
39
- "@angular/cdk": "^18.2.14",
40
- "@angular/common": "^18.2.13",
41
- "@angular/core": "^18.2.13",
42
- "@angular/forms": "^18.2.13",
43
- "@angular/platform-browser": "^18.2.13",
44
- "@skyux-sdk/testing": "11.31.0",
45
- "@skyux/core": "11.31.0",
46
- "@skyux/help-inline": "11.31.0",
47
- "@skyux/i18n": "11.31.0",
48
- "@skyux/icon": "11.31.0",
49
- "@skyux/indicators": "11.31.0",
50
- "@skyux/popovers": "11.31.0",
51
- "@skyux/theme": "11.31.0"
35
+ "@angular/cdk": "^19.0.4",
36
+ "@angular/common": "^19.0.5",
37
+ "@angular/core": "^19.0.5",
38
+ "@angular/forms": "^19.0.5",
39
+ "@angular/platform-browser": "^19.0.5",
40
+ "@skyux-sdk/testing": "12.0.0-alpha.0",
41
+ "@skyux/core": "12.0.0-alpha.0",
42
+ "@skyux/help-inline": "12.0.0-alpha.0",
43
+ "@skyux/i18n": "12.0.0-alpha.0",
44
+ "@skyux/icon": "12.0.0-alpha.0",
45
+ "@skyux/indicators": "12.0.0-alpha.0",
46
+ "@skyux/popovers": "12.0.0-alpha.0",
47
+ "@skyux/theme": "12.0.0-alpha.0"
52
48
  },
53
49
  "dependencies": {
54
- "tslib": "^2.6.3"
50
+ "tslib": "^2.8.1"
55
51
  },
56
52
  "module": "fesm2022/skyux-forms.mjs",
57
53
  "typings": "index.d.ts",
package/esm2022/index.mjs DELETED
@@ -1,44 +0,0 @@
1
- export { SkyCharacterCounterModule } from './lib/modules/character-counter/character-counter.module';
2
- export { SkyCheckboxModule } from './lib/modules/checkbox/checkbox.module';
3
- export { SkyFieldGroupModule } from './lib/modules/field-group/field-group.module';
4
- export { SkyFileAttachmentModule } from './lib/modules/file-attachment/file-attachment/file-attachment.module';
5
- export { SkyFileAttachmentsModule } from './lib/modules/file-attachment/file-attachments.module';
6
- export { SkyFileDropModule } from './lib/modules/file-attachment/file-drop/file-drop.module';
7
- export { SkyFileSizePipe } from './lib/modules/file-attachment/shared/file-size.pipe';
8
- export { SkyFormErrorModule } from './lib/modules/form-error/form-error.module';
9
- export { SkyFormErrorsModule } from './lib/modules/form-error/form-errors.module';
10
- export { SkyInputBoxHostService } from './lib/modules/input-box/input-box-host.service';
11
- export { SkyInputBoxModule } from './lib/modules/input-box/input-box.module';
12
- export { SkyRadioModule } from './lib/modules/radio/radio.module';
13
- export { SkyRequiredStateDirective } from './lib/modules/required-state/required-state.directive';
14
- export { SkySelectionBoxModule } from './lib/modules/selection-box/selection-box.module';
15
- export { SkyToggleSwitchModule } from './lib/modules/toggle-switch/toggle-switch.module';
16
- export { SKY_FORM_ERRORS_ENABLED } from './lib/modules/form-error/form-errors-enabled-token';
17
- // Components and directives must be exported to support Angular's "partial" Ivy compiler.
18
- // Obscure names are used to indicate types are not part of the public API.
19
- export { SkyCharacterCounterIndicatorComponent as λ1 } from './lib/modules/character-counter/character-counter-indicator.component';
20
- export { SkyCharacterCounterScreenReaderPipe as λ23 } from './lib/modules/character-counter/character-counter-screen-reader.pipe';
21
- export { SkyCharacterCounterInputDirective as λ2 } from './lib/modules/character-counter/character-counter.directive';
22
- export { SkyCheckboxGroupComponent as λ24 } from './lib/modules/checkbox/checkbox-group.component';
23
- export { SkyCheckboxLabelComponent as λ4 } from './lib/modules/checkbox/checkbox-label.component';
24
- export { SkyCheckboxComponent as λ3 } from './lib/modules/checkbox/checkbox.component';
25
- export { SkyFieldGroupComponent as λ25 } from './lib/modules/field-group/field-group.component';
26
- export { SkyFileAttachmentLabelComponent as λ6 } from './lib/modules/file-attachment/file-attachment/file-attachment-label.component';
27
- export { SkyFileAttachmentComponent as λ7 } from './lib/modules/file-attachment/file-attachment/file-attachment.component';
28
- export { SkyFileDropComponent as λ8 } from './lib/modules/file-attachment/file-drop/file-drop.component';
29
- export { SkyFileItemComponent as λ9 } from './lib/modules/file-attachment/file-drop/file-item.component';
30
- export { SkyFormErrorComponent as λ22 } from './lib/modules/form-error/form-error.component';
31
- export { SkyFormErrorsComponent as λ21 } from './lib/modules/form-error/form-errors.component';
32
- export { SkyInputBoxControlDirective as λ20 } from './lib/modules/input-box/input-box-control.directive';
33
- export { SkyInputBoxHintTextPipe as λ26 } from './lib/modules/input-box/input-box-hint-text.pipe';
34
- export { SkyInputBoxComponent as λ10 } from './lib/modules/input-box/input-box.component';
35
- export { SkyRadioGroupComponent as λ11 } from './lib/modules/radio/radio-group.component';
36
- export { SkyRadioLabelComponent as λ12 } from './lib/modules/radio/radio-label.component';
37
- export { SkyRadioComponent as λ13 } from './lib/modules/radio/radio.component';
38
- export { SkySelectionBoxDescriptionComponent as λ14 } from './lib/modules/selection-box/selection-box-description.component';
39
- export { SkySelectionBoxGridComponent as λ15 } from './lib/modules/selection-box/selection-box-grid.component';
40
- export { SkySelectionBoxHeaderComponent as λ16 } from './lib/modules/selection-box/selection-box-header.component';
41
- export { SkySelectionBoxComponent as λ17 } from './lib/modules/selection-box/selection-box.component';
42
- export { SkyToggleSwitchLabelComponent as λ18 } from './lib/modules/toggle-switch/toggle-switch-label.component';
43
- export { SkyToggleSwitchComponent as λ19 } from './lib/modules/toggle-switch/toggle-switch.component';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBS3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSTNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSW5GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWpHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBSTdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUd0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFNbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFbEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFJekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFN0YsMEZBQTBGO0FBQzFGLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUscUNBQXFDLElBQUksRUFBRSxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDcEksT0FBTyxFQUFFLG1DQUFtQyxJQUFJLEdBQUcsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0SCxPQUFPLEVBQUUseUJBQXlCLElBQUksR0FBRyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbkcsT0FBTyxFQUFFLHlCQUF5QixJQUFJLEVBQUUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLElBQUksR0FBRyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEcsT0FBTyxFQUFFLCtCQUErQixJQUFJLEVBQUUsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSwwQkFBMEIsSUFBSSxFQUFFLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxHQUFHLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsc0JBQXNCLElBQUksR0FBRyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0YsT0FBTyxFQUFFLDJCQUEyQixJQUFJLEdBQUcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLElBQUksR0FBRyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixJQUFJLEdBQUcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxHQUFHLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLElBQUksR0FBRyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1DQUFtQyxJQUFJLEdBQUcsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdILE9BQU8sRUFBRSw0QkFBNEIsSUFBSSxHQUFHLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMvRyxPQUFPLEVBQUUsOEJBQThCLElBQUksR0FBRyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsSUFBSSxHQUFHLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqSCxPQUFPLEVBQUUsd0JBQXdCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVyTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtY2hhbmdlJztcbmV4cG9ydCB7IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWdyb3VwLWhlYWRpbmctbGV2ZWwnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdTdHlsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1zdHlsZSc7XG5leHBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5RmllbGRHcm91cEhlYWRpbmdMZXZlbCB9IGZyb20gJy4vbGliL21vZHVsZXMvZmllbGQtZ3JvdXAvZmllbGQtZ3JvdXAtaGVhZGluZy1sZXZlbCc7XG5leHBvcnQgeyBTa3lGaWVsZEdyb3VwSGVhZGluZ1N0eWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC1oZWFkaW5nLXN0eWxlJztcbmV4cG9ydCB7IFNreUZpZWxkR3JvdXBNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLm1vZHVsZSc7XG5cbmV4cG9ydCB7IFNreUZpbGVBdHRhY2htZW50Q2hhbmdlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC1jaGFuZ2UnO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRDbGljayB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtY2xpY2snO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50Lm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnRzLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGaWxlRHJvcENoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AtY2hhbmdlJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC5tb2R1bGUnO1xuZXhwb3J0IHsgU2t5RmlsZUxpbmsgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWRyb3AvZmlsZS1saW5rJztcbmV4cG9ydCB7IFNreUZpbGVJdGVtIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvc2hhcmVkL2ZpbGUtaXRlbSc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3NoYXJlZC9maWxlLWl0ZW0tZXJyb3ItdHlwZSc7XG5leHBvcnQgeyBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9zaGFyZWQvZmlsZS1zaXplLnBpcGUnO1xuZXhwb3J0IHsgU2t5RmlsZVZhbGlkYXRlRm4gfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9zaGFyZWQvZmlsZS12YWxpZGF0ZS1mdW5jdGlvbic7XG5cbmV4cG9ydCB7IFNreUZvcm1FcnJvck1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLm1vZHVsZSc7XG5cbmV4cG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtaG9zdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LXBvcHVsYXRlLWFyZ3MnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5UmFkaW9Nb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lSYWRpb0NoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tY2hhbmdlJztcbmV4cG9ydCB7IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3R5cGVzL3JhZGlvLWdyb3VwLWhlYWRpbmctbGV2ZWwnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cEhlYWRpbmdTdHlsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tZ3JvdXAtaGVhZGluZy1zdHlsZSc7XG5leHBvcnQgeyBTa3lSYWRpb1R5cGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3R5cGVzL3JhZGlvLXR5cGUnO1xuXG5leHBvcnQgeyBTa3lSZXF1aXJlZFN0YXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yZXF1aXJlZC1zdGF0ZS9yZXF1aXJlZC1zdGF0ZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC5tb2R1bGUnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvdHlwZXMvc2VsZWN0aW9uLWJveC1ncmlkLWFsaWduLWl0ZW1zJztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveEdyaWRBbGlnbkl0ZW1zVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC90eXBlcy9zZWxlY3Rpb24tYm94LWdyaWQtYWxpZ24taXRlbXMtdHlwZSc7XG5cbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lUb2dnbGVTd2l0Y2hDaGFuZ2UgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdHlwZXMvdG9nZ2xlLXN3aXRjaC1jaGFuZ2UnO1xuXG5leHBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcblxuLy8gQ29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBtdXN0IGJlIGV4cG9ydGVkIHRvIHN1cHBvcnQgQW5ndWxhcidzIFwicGFydGlhbFwiIEl2eSBjb21waWxlci5cbi8vIE9ic2N1cmUgbmFtZXMgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdHlwZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLlxuXG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IGFzIM67MSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyUGlwZSBhcyDOuzIzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUnO1xuZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUNoZWNrYm94R3JvdXBDb21wb25lbnQgYXMgzrsyNCB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxDb21wb25lbnQgYXMgzrs0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hDb21wb25lbnQgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmllbGRHcm91cENvbXBvbmVudCBhcyDOuzI1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENvbXBvbmVudCBhcyDOuzcgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlRHJvcENvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWRyb3AvZmlsZS1kcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUNvbXBvbmVudCBhcyDOuzkgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWRyb3AvZmlsZS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGb3JtRXJyb3JDb21wb25lbnQgYXMgzrsyMiB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGb3JtRXJyb3JzQ29tcG9uZW50IGFzIM67MjEgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUlucHV0Qm94Q29udHJvbERpcmVjdGl2ZSBhcyDOuzIwIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LWNvbnRyb2wuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUlucHV0Qm94SGludFRleHRQaXBlIGFzIM67MjYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtaGludC10ZXh0LnBpcGUnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hDb21wb25lbnQgYXMgzrsxMCB9IGZyb20gJy4vbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cENvbXBvbmVudCBhcyDOuzExIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9MYWJlbENvbXBvbmVudCBhcyDOuzEyIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9Db21wb25lbnQgYXMgzrsxMyB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveERlc2NyaXB0aW9uQ29tcG9uZW50IGFzIM67MTQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZENvbXBvbmVudCBhcyDOuzE1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94SGVhZGVyQ29tcG9uZW50IGFzIM67MTYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveENvbXBvbmVudCBhcyDOuzE3IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaExhYmVsQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5VG9nZ2xlU3dpdGNoQ29tcG9uZW50IGFzIM67MTkgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQnO1xuIl19
@@ -1,38 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "./character-counter-screen-reader.pipe";
5
- import * as i3 from "@skyux/i18n";
6
- export class SkyCharacterCounterIndicatorComponent {
7
- #_characterCountLimit = 0;
8
- #_characterCount = 0;
9
- #changeDetector;
10
- constructor(changeDetector) {
11
- this.#changeDetector = changeDetector;
12
- }
13
- get characterCount() {
14
- return this.#_characterCount;
15
- }
16
- set characterCount(count) {
17
- this.#_characterCount = count;
18
- this.#changeDetector.markForCheck();
19
- }
20
- get characterCountLimit() {
21
- return this.#_characterCountLimit;
22
- }
23
- set characterCountLimit(limit) {
24
- this.#_characterCountLimit = limit;
25
- this.#changeDetector.markForCheck();
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", inputs: { characterCount: "characterCount", characterCountLimit: "characterCountLimit" }, ngImport: i0, template: "<span\n class=\"sky-character-count-label sky-font-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n @if (characterCount > characterCountLimit) {\n <ng-container>{{\n 'skyux_character_count_over_limit' | skyLibResources\n }}</ng-container>\n } @else {\n @if (\n characterCount | skyCharacterCounterScreenReader: characterCountLimit;\n as screenReaderCount\n ) {\n <ng-container>{{\n 'skyux_character_count_message'\n | skyLibResources: screenReaderCount : characterCountLimit\n }}</ng-container>\n }\n }\n</span>\n", styles: [".sky-character-count-label:not(.sky-theme-modern *){--sky-override-character-count-font-size: 15px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-character-count-label{--sky-override-character-count-font-size: 15px}:host{flex-shrink:.0001}.sky-character-count-label{font-size:var(--sky-override-character-count-font-size, inherit)}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.SkyCharacterCounterScreenReaderPipe, name: "skyCharacterCounterScreenReader" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'sky-character-counter-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-character-count-label sky-font-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n @if (characterCount > characterCountLimit) {\n <ng-container>{{\n 'skyux_character_count_over_limit' | skyLibResources\n }}</ng-container>\n } @else {\n @if (\n characterCount | skyCharacterCounterScreenReader: characterCountLimit;\n as screenReaderCount\n ) {\n <ng-container>{{\n 'skyux_character_count_message'\n | skyLibResources: screenReaderCount : characterCountLimit\n }}</ng-container>\n }\n }\n</span>\n", styles: [".sky-character-count-label:not(.sky-theme-modern *){--sky-override-character-count-font-size: 15px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-character-count-label{--sky-override-character-count-font-size: 15px}:host{flex-shrink:.0001}.sky-character-count-label{font-size:var(--sky-override-character-count-font-size, inherit)}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\n"] }]
33
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { characterCount: [{
34
- type: Input
35
- }], characterCountLimit: [{
36
- type: Input
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLHFDQUFxQztJQUNoRCxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXJCLGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0E1QlUscUNBQXFDO21HQUFyQyxxQ0FBcUMsaUtDYmxELDB1QkF1QkE7OzRGRFZhLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU07c0ZBaUJwQyxjQUFjO3NCQUR4QixLQUFLO2dCQVdLLG1CQUFtQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgI19jaGFyYWN0ZXJDb3VudExpbWl0ID0gMDtcbiAgI19jaGFyYWN0ZXJDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyYWN0ZXJDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfY2hhcmFjdGVyQ291bnQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoYXJhY3RlckNvdW50KGNvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLiNfY2hhcmFjdGVyQ291bnQgPSBjb3VudDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmFjdGVyQ291bnRMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfY2hhcmFjdGVyQ291bnRMaW1pdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hhcmFjdGVyQ291bnRMaW1pdChsaW1pdDogbnVtYmVyKSB7XG4gICAgdGhpcy4jX2NoYXJhY3RlckNvdW50TGltaXQgPSBsaW1pdDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJza3ktY2hhcmFjdGVyLWNvdW50LWxhYmVsIHNreS1mb250LWRlZW1waGFzaXplZFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3NreS1lcnJvci1sYWJlbCc6IGNoYXJhY3RlckNvdW50ID4gY2hhcmFjdGVyQ291bnRMaW1pdCB9XCJcbj5cbiAge3sgY2hhcmFjdGVyQ291bnQgKyAnLycgKyBjaGFyYWN0ZXJDb3VudExpbWl0IH19XG48L3NwYW4+XG48c3BhbiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgQGlmIChjaGFyYWN0ZXJDb3VudCA+IGNoYXJhY3RlckNvdW50TGltaXQpIHtcbiAgICA8bmctY29udGFpbmVyPnt7XG4gICAgICAnc2t5dXhfY2hhcmFjdGVyX2NvdW50X292ZXJfbGltaXQnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgfX08L25nLWNvbnRhaW5lcj5cbiAgfSBAZWxzZSB7XG4gICAgQGlmIChcbiAgICAgIGNoYXJhY3RlckNvdW50IHwgc2t5Q2hhcmFjdGVyQ291bnRlclNjcmVlblJlYWRlcjogY2hhcmFjdGVyQ291bnRMaW1pdDtcbiAgICAgIGFzIHNjcmVlblJlYWRlckNvdW50XG4gICAgKSB7XG4gICAgICA8bmctY29udGFpbmVyPnt7XG4gICAgICAgICdza3l1eF9jaGFyYWN0ZXJfY291bnRfbWVzc2FnZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogc2NyZWVuUmVhZGVyQ291bnQgOiBjaGFyYWN0ZXJDb3VudExpbWl0XG4gICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgfVxuPC9zcGFuPlxuIl19
@@ -1,46 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SkyCharacterCounterScreenReaderPipe {
4
- #previousAnnouncementPoint;
5
- transform(characterCount, characterCountLimit) {
6
- /* Safety check */
7
- /* istanbul ignore if */
8
- if (characterCount === undefined || characterCountLimit === undefined) {
9
- return '';
10
- }
11
- // We want to announce every 10 characters if we are within 50 of the limit or every 50 otherwise.
12
- const modulus = characterCountLimit - Math.floor(characterCount / 10) * 10 <= 50
13
- ? 10
14
- : 50;
15
- if (characterCount === characterCountLimit ||
16
- characterCount % modulus === 0 ||
17
- this.#previousAnnouncementPoint === undefined) {
18
- this.#previousAnnouncementPoint = characterCount;
19
- }
20
- else {
21
- // We want the floor of the previous announcement and modulus in case the previous announcement wasn't an announcement point.
22
- const previousAnnouncementQuotient = Math.floor(this.#previousAnnouncementPoint / modulus);
23
- // Lower limit of what announcement should have been made for the current count
24
- const currentAnnouncementQuotient = Math.floor(characterCount / modulus);
25
- // Next announcement that would be made if the current count increases
26
- const currentAnnouncementNextAnnouncement = Math.ceil(characterCount / modulus);
27
- // Jump to the appropriate announcement point if the count jumps. For example, if going from 43 of 50 characters to 21 of 50 characters.
28
- if (currentAnnouncementQuotient !== previousAnnouncementQuotient &&
29
- currentAnnouncementNextAnnouncement !== previousAnnouncementQuotient) {
30
- this.#previousAnnouncementPoint =
31
- Math.floor(characterCount / modulus) * modulus;
32
- }
33
- }
34
- return this.#previousAnnouncementPoint.toLocaleString();
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
37
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, isStandalone: true, name: "skyCharacterCounterScreenReader" }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, decorators: [{
40
- type: Pipe,
41
- args: [{
42
- name: 'skyCharacterCounterScreenReader',
43
- standalone: true,
44
- }]
45
- }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItc2NyZWVuLXJlYWRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsMEJBQTBCLENBQXFCO0lBRXhDLFNBQVMsQ0FDZCxjQUFrQyxFQUNsQyxtQkFBdUM7UUFFdkMsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixJQUFJLGNBQWMsS0FBSyxTQUFTLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsa0dBQWtHO1FBQ2xHLE1BQU0sT0FBTyxHQUNYLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzlELENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULElBQ0UsY0FBYyxLQUFLLG1CQUFtQjtZQUN0QyxjQUFjLEdBQUcsT0FBTyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLDBCQUEwQixLQUFLLFNBQVMsRUFDN0MsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsR0FBRyxjQUFjLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTiw2SEFBNkg7WUFDN0gsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsT0FBTyxDQUMxQyxDQUFDO1lBQ0YsK0VBQStFO1lBQy9FLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDekUsc0VBQXNFO1lBQ3RFLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkQsY0FBYyxHQUFHLE9BQU8sQ0FDekIsQ0FBQztZQUVGLHdJQUF3STtZQUN4SSxJQUNFLDJCQUEyQixLQUFLLDRCQUE0QjtnQkFDNUQsbUNBQW1DLEtBQUssNEJBQTRCLEVBQ3BFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLDBCQUEwQjtvQkFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUQsQ0FBQzsrR0FoRFUsbUNBQW1DOzZHQUFuQyxtQ0FBbUM7OzRGQUFuQyxtQ0FBbUM7a0JBSi9DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hhcmFjdGVyQ291bnRlclNjcmVlblJlYWRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNoYXJhY3RlckNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgY2hhcmFjdGVyQ291bnRMaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiBzdHJpbmcge1xuICAgIC8qIFNhZmV0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChjaGFyYWN0ZXJDb3VudCA9PT0gdW5kZWZpbmVkIHx8IGNoYXJhY3RlckNvdW50TGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIFdlIHdhbnQgdG8gYW5ub3VuY2UgZXZlcnkgMTAgY2hhcmFjdGVycyBpZiB3ZSBhcmUgd2l0aGluIDUwIG9mIHRoZSBsaW1pdCBvciBldmVyeSA1MCBvdGhlcndpc2UuXG4gICAgY29uc3QgbW9kdWx1cyA9XG4gICAgICBjaGFyYWN0ZXJDb3VudExpbWl0IC0gTWF0aC5mbG9vcihjaGFyYWN0ZXJDb3VudCAvIDEwKSAqIDEwIDw9IDUwXG4gICAgICAgID8gMTBcbiAgICAgICAgOiA1MDtcblxuICAgIGlmIChcbiAgICAgIGNoYXJhY3RlckNvdW50ID09PSBjaGFyYWN0ZXJDb3VudExpbWl0IHx8XG4gICAgICBjaGFyYWN0ZXJDb3VudCAlIG1vZHVsdXMgPT09IDAgfHxcbiAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jcHJldmlvdXNBbm5vdW5jZW1lbnRQb2ludCA9IGNoYXJhY3RlckNvdW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSBmbG9vciBvZiB0aGUgcHJldmlvdXMgYW5ub3VuY2VtZW50IGFuZCBtb2R1bHVzIGluIGNhc2UgdGhlIHByZXZpb3VzIGFubm91bmNlbWVudCB3YXNuJ3QgYW4gYW5ub3VuY2VtZW50IHBvaW50LlxuICAgICAgY29uc3QgcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoXG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgLyBtb2R1bHVzLFxuICAgICAgKTtcbiAgICAgIC8vIExvd2VyIGxpbWl0IG9mIHdoYXQgYW5ub3VuY2VtZW50IHNob3VsZCBoYXZlIGJlZW4gbWFkZSBmb3IgdGhlIGN1cnJlbnQgY291bnRcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKTtcbiAgICAgIC8vIE5leHQgYW5ub3VuY2VtZW50IHRoYXQgd291bGQgYmUgbWFkZSBpZiB0aGUgY3VycmVudCBjb3VudCBpbmNyZWFzZXNcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnROZXh0QW5ub3VuY2VtZW50ID0gTWF0aC5jZWlsKFxuICAgICAgICBjaGFyYWN0ZXJDb3VudCAvIG1vZHVsdXMsXG4gICAgICApO1xuXG4gICAgICAvLyBKdW1wIHRvIHRoZSBhcHByb3ByaWF0ZSBhbm5vdW5jZW1lbnQgcG9pbnQgaWYgdGhlIGNvdW50IGp1bXBzLiBGb3IgZXhhbXBsZSwgaWYgZ29pbmcgZnJvbSA0MyBvZiA1MCBjaGFyYWN0ZXJzIHRvIDIxIG9mIDUwIGNoYXJhY3RlcnMuXG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCAmJlxuICAgICAgICBjdXJyZW50QW5ub3VuY2VtZW50TmV4dEFubm91bmNlbWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPVxuICAgICAgICAgIE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKSAqIG1vZHVsdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQudG9Mb2NhbGVTdHJpbmcoKTtcbiAgfVxufVxuIl19
@@ -1,96 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { NG_VALIDATORS, } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Creates an input field that validates the number of characters. Place this directive on
6
- * an `input` or `textarea` element. If users enter more characters than allowed, then the
7
- * input field is invalid and the component displays an error indicator.
8
- * @required
9
- */
10
- export class SkyCharacterCounterInputDirective {
11
- /**
12
- * The character count indicator component that displays the character count,
13
- * character limit, and over-the-limit indicator. Place this directive on an `input` or
14
- * `textarea` element.
15
- */
16
- get skyCharacterCounterIndicator() {
17
- return this.#_skyCharacterCounterIndicator;
18
- }
19
- set skyCharacterCounterIndicator(value) {
20
- this.#_skyCharacterCounterIndicator = value;
21
- this.#updateIndicatorLimit();
22
- }
23
- /**
24
- * The maximum number of characters allowed in the input field. Place this directive
25
- * on an `input` or `textarea` element. This property accepts `number` values.
26
- * @required
27
- */
28
- set skyCharacterCounterLimit(value) {
29
- this.#skyCharacterCounterLimitOrDefault = value ?? 0;
30
- this.#updateIndicatorLimit();
31
- }
32
- #_skyCharacterCounterIndicator;
33
- #skyCharacterCounterLimitOrDefault = 0;
34
- validate(control) {
35
- const value = control.value;
36
- this.#updateIndicatorCount((value && value.length) || 0);
37
- if (!value) {
38
- return null;
39
- }
40
- const limit = this.#skyCharacterCounterLimitOrDefault;
41
- if (value.length > this.#skyCharacterCounterLimitOrDefault) {
42
- // This is needed to apply the appropriate error styles to the input.
43
- control.markAsTouched();
44
- return {
45
- skyCharacterCounter: {
46
- invalid: value,
47
- limit,
48
- },
49
- };
50
- }
51
- return null;
52
- }
53
- registerOnValidatorChange(fn) {
54
- this.#validatorChange = fn;
55
- }
56
- #updateIndicatorCount(count) {
57
- if (this.skyCharacterCounterIndicator) {
58
- this.skyCharacterCounterIndicator.characterCount = count;
59
- }
60
- }
61
- #updateIndicatorLimit() {
62
- if (this.skyCharacterCounterIndicator) {
63
- this.skyCharacterCounterIndicator.characterCountLimit =
64
- this.#skyCharacterCounterLimitOrDefault;
65
- }
66
- this.#validatorChange();
67
- }
68
- // eslint-disable-next-line @typescript-eslint/no-empty-function
69
- #validatorChange = () => { };
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SkyCharacterCounterInputDirective, selector: "[skyCharacterCounter]", inputs: { skyCharacterCounterIndicator: "skyCharacterCounterIndicator", skyCharacterCounterLimit: "skyCharacterCounterLimit" }, providers: [
72
- {
73
- provide: NG_VALIDATORS,
74
- useExisting: SkyCharacterCounterInputDirective,
75
- multi: true,
76
- },
77
- ], ngImport: i0 }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterInputDirective, decorators: [{
80
- type: Directive,
81
- args: [{
82
- selector: '[skyCharacterCounter]',
83
- providers: [
84
- {
85
- provide: NG_VALIDATORS,
86
- useExisting: SkyCharacterCounterInputDirective,
87
- multi: true,
88
- },
89
- ],
90
- }]
91
- }], propDecorators: { skyCharacterCounterIndicator: [{
92
- type: Input
93
- }], skyCharacterCounterLimit: [{
94
- type: Input
95
- }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDOztBQUl4Qjs7Ozs7R0FLRztBQVdILE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUM7Ozs7T0FJRztJQUNILElBQ1csNEJBQTRCO1FBR3JDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFXLDRCQUE0QixDQUNyQyxLQUF3RDtRQUV4RCxJQUFJLENBQUMsOEJBQThCLEdBQUcsS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDVyx3QkFBd0IsQ0FBQyxLQUF5QjtRQUMzRCxJQUFJLENBQUMsa0NBQWtDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsOEJBQThCLENBRWhCO0lBRWQsa0NBQWtDLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO1FBRXRELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztZQUMzRCxxRUFBcUU7WUFDckUsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXhCLE9BQU87Z0JBQ0wsbUJBQW1CLEVBQUU7b0JBQ25CLE9BQU8sRUFBRSxLQUFLO29CQUNkLEtBQUs7aUJBQ047YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEVBQWM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYTtRQUNqQyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLG1CQUFtQjtnQkFDbkQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGdCQUFnQixHQUFHLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQzsrR0FsRnZCLGlDQUFpQzttR0FBakMsaUNBQWlDLGdMQVJqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQUVVLGlDQUFpQztrQkFWN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFRWSw0QkFBNEI7c0JBRHRDLEtBQUs7Z0JBbUJLLHdCQUF3QjtzQkFEbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW5wdXQgZmllbGQgdGhhdCB2YWxpZGF0ZXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzLiBQbGFjZSB0aGlzIGRpcmVjdGl2ZSBvblxuICogYW4gYGlucHV0YCBvciBgdGV4dGFyZWFgIGVsZW1lbnQuIElmIHVzZXJzIGVudGVyIG1vcmUgY2hhcmFjdGVycyB0aGFuIGFsbG93ZWQsIHRoZW4gdGhlXG4gKiBpbnB1dCBmaWVsZCBpcyBpbnZhbGlkIGFuZCB0aGUgY29tcG9uZW50IGRpc3BsYXlzIGFuIGVycm9yIGluZGljYXRvci5cbiAqIEByZXF1aXJlZFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5Q2hhcmFjdGVyQ291bnRlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUaGUgY2hhcmFjdGVyIGNvdW50IGluZGljYXRvciBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIGNvdW50LFxuICAgKiBjaGFyYWN0ZXIgbGltaXQsIGFuZCBvdmVyLXRoZS1saW1pdCBpbmRpY2F0b3IuIFBsYWNlIHRoaXMgZGlyZWN0aXZlIG9uIGFuIGBpbnB1dGAgb3JcbiAgICogYHRleHRhcmVhYCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBza3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yKCk6XG4gICAgfCBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50XG4gICAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcjtcbiAgfVxuICBwdWJsaWMgc2V0IHNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3IoXG4gICAgdmFsdWU6IFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMuI19za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlSW5kaWNhdG9yTGltaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSBpbnB1dCBmaWVsZC4gUGxhY2UgdGhpcyBkaXJlY3RpdmVcbiAgICogb24gYW4gYGlucHV0YCBvciBgdGV4dGFyZWFgIGVsZW1lbnQuIFRoaXMgcHJvcGVydHkgYWNjZXB0cyBgbnVtYmVyYCB2YWx1ZXMuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lDaGFyYWN0ZXJDb3VudGVyTGltaXQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI3NreUNoYXJhY3RlckNvdW50ZXJMaW1pdE9yRGVmYXVsdCA9IHZhbHVlID8/IDA7XG4gICAgdGhpcy4jdXBkYXRlSW5kaWNhdG9yTGltaXQoKTtcbiAgfVxuXG4gICNfc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcjpcbiAgICB8IFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnRcbiAgICB8IHVuZGVmaW5lZDtcblxuICAjc2t5Q2hhcmFjdGVyQ291bnRlckxpbWl0T3JEZWZhdWx0ID0gMDtcblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIHRoaXMuI3VwZGF0ZUluZGljYXRvckNvdW50KCh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGgpIHx8IDApO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbGltaXQgPSB0aGlzLiNza3lDaGFyYWN0ZXJDb3VudGVyTGltaXRPckRlZmF1bHQ7XG5cbiAgICBpZiAodmFsdWUubGVuZ3RoID4gdGhpcy4jc2t5Q2hhcmFjdGVyQ291bnRlckxpbWl0T3JEZWZhdWx0KSB7XG4gICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhcHBseSB0aGUgYXBwcm9wcmlhdGUgZXJyb3Igc3R5bGVzIHRvIHRoZSBpbnB1dC5cbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lDaGFyYWN0ZXJDb3VudGVyOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgICAgbGltaXQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gICN1cGRhdGVJbmRpY2F0b3JDb3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcikge1xuICAgICAgdGhpcy5za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yLmNoYXJhY3RlckNvdW50ID0gY291bnQ7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUluZGljYXRvckxpbWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3IpIHtcbiAgICAgIHRoaXMuc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvci5jaGFyYWN0ZXJDb3VudExpbWl0ID1cbiAgICAgICAgdGhpcy4jc2t5Q2hhcmFjdGVyQ291bnRlckxpbWl0T3JEZWZhdWx0O1xuICAgIH1cblxuICAgIHRoaXMuI3ZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjdmFsaWRhdG9yQ2hhbmdlID0gKCk6IHZvaWQgPT4ge307XG59XG4iXX0=
@@ -1,43 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';
5
- import { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';
6
- import { SkyCharacterCounterScreenReaderPipe } from './character-counter-screen-reader.pipe';
7
- import { SkyCharacterCounterInputDirective } from './character-counter.directive';
8
- import * as i0 from "@angular/core";
9
- export class SkyCharacterCounterModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterModule, declarations: [SkyCharacterCounterInputDirective,
12
- SkyCharacterCounterIndicatorComponent], imports: [CommonModule,
13
- FormsModule,
14
- ReactiveFormsModule,
15
- SkyCharacterCounterScreenReaderPipe,
16
- SkyFormsResourcesModule], exports: [SkyCharacterCounterInputDirective,
17
- SkyCharacterCounterIndicatorComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterModule, imports: [CommonModule,
19
- FormsModule,
20
- ReactiveFormsModule,
21
- SkyFormsResourcesModule] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCharacterCounterModule, decorators: [{
24
- type: NgModule,
25
- args: [{
26
- declarations: [
27
- SkyCharacterCounterInputDirective,
28
- SkyCharacterCounterIndicatorComponent,
29
- ],
30
- imports: [
31
- CommonModule,
32
- FormsModule,
33
- ReactiveFormsModule,
34
- SkyCharacterCounterScreenReaderPipe,
35
- SkyFormsResourcesModule,
36
- ],
37
- exports: [
38
- SkyCharacterCounterInputDirective,
39
- SkyCharacterCounterIndicatorComponent,
40
- ],
41
- }]
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQW1CbEYsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBZmxDLGlDQUFpQztZQUNqQyxxQ0FBcUMsYUFHckMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsbUNBQW1DO1lBQ25DLHVCQUF1QixhQUd2QixpQ0FBaUM7WUFDakMscUNBQXFDO2dIQUc1Qix5QkFBeUIsWUFYbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFFbkIsdUJBQXVCOzs0RkFPZCx5QkFBeUI7a0JBakJyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQ0FBaUM7d0JBQ2pDLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG1DQUFtQzt3QkFDbkMsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUnO1xuaW1wb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUsXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJNb2R1bGUge31cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3Qgb3IgZGVzZWxlY3QgdGhlIGNoZWNrYm94LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUNoZWNrYm94Q2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBmcm9tIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBjaGVja2VkPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1sZXZlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1sZXZlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCA9IDMgfCA0IHwgNTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1zdHlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdTdHlsZSA9IDMgfCA0IHwgNTtcbiJdfQ==
@@ -1,156 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, HostBinding, Input, booleanAttribute, inject, numberAttribute, } from '@angular/core';
3
- import { NG_VALIDATORS, } from '@angular/forms';
4
- import { SkyIdModule, SkyIdService } from '@skyux/core';
5
- import { SkyHelpInlineModule } from '@skyux/help-inline';
6
- import { SkyThemeComponentClassDirective, SkyThemeModule } from '@skyux/theme';
7
- import { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';
8
- import { SkyFormErrorsModule } from '../form-error/form-errors.module';
9
- import { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@skyux/theme";
12
- import * as i2 from "@angular/common";
13
- import * as i3 from "../form-error/form-errors.component";
14
- import * as i4 from "@skyux/i18n";
15
- import * as i5 from "@skyux/help-inline";
16
- import * as i6 from "@skyux/core";
17
- function numberAttribute4(value) {
18
- return numberAttribute(value, 4);
19
- }
20
- /**
21
- * Organizes checkboxes into a group.
22
- */
23
- export class SkyCheckboxGroupComponent {
24
- constructor() {
25
- /**
26
- * Indicates whether to hide the `headingText`.
27
- */
28
- this.headingHidden = false;
29
- /**
30
- * Whether the checkbox group is required.
31
- */
32
- this.required = false;
33
- this.stackedLg = false;
34
- this.stackedXL = false;
35
- this.#idSvc = inject(SkyIdService);
36
- this.errorId = this.#idSvc.generateId();
37
- this.headingClass = 'sky-font-heading-4';
38
- this.formErrorsDataId = 'checkbox-group-form-errors';
39
- this.#_stacked = false;
40
- }
41
- /**
42
- * The semantic heading level in the document structure. By default, the heading text is not wrapped in a heading element.
43
- */
44
- set headingLevel(value) {
45
- this.#_headingLevel = value && !isNaN(value) ? value : undefined;
46
- this.#updateStackedClasses();
47
- }
48
- get headingLevel() {
49
- return this.#_headingLevel;
50
- }
51
- /**
52
- * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).
53
- * @default 4
54
- */
55
- set headingStyle(value) {
56
- this.headingClass = `sky-font-heading-${value}`;
57
- }
58
- /**
59
- * Whether the checkbox group is stacked on another form component. When specified, the appropriate
60
- * vertical spacing is automatically added to the checkbox group.
61
- */
62
- set stacked(value) {
63
- this.#_stacked = value;
64
- this.#updateStackedClasses();
65
- }
66
- get stacked() {
67
- return this.#_stacked;
68
- }
69
- #idSvc;
70
- #_headingLevel;
71
- #_stacked;
72
- validate(formGroup) {
73
- this.formGroup ??= formGroup;
74
- if (!this.required) {
75
- return null;
76
- }
77
- const controlNames = Object.keys(formGroup.controls);
78
- let atLeastOneSelected = false;
79
- controlNames.forEach((controlName) => {
80
- const control = formGroup.get(controlName);
81
- if (control?.value) {
82
- atLeastOneSelected = true;
83
- }
84
- });
85
- if (!atLeastOneSelected) {
86
- return { required: true };
87
- }
88
- else {
89
- return null;
90
- }
91
- }
92
- #updateStackedClasses() {
93
- this.stackedLg = !this.headingLevel && this.stacked;
94
- this.stackedXL = !!this.headingLevel && this.stacked;
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyCheckboxGroupComponent, isStandalone: true, selector: "sky-checkbox-group", inputs: { helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", headingText: "headingText", headingHidden: ["headingHidden", "headingHidden", booleanAttribute], headingLevel: ["headingLevel", "headingLevel", numberAttribute], headingStyle: ["headingStyle", "headingStyle", numberAttribute4], hintText: "hintText", required: ["required", "required", booleanAttribute], stacked: ["stacked", "stacked", booleanAttribute], helpKey: "helpKey" }, host: { properties: { "class.sky-form-field-stacked": "this.stackedLg", "class.sky-field-group-stacked": "this.stackedXL" } }, providers: [
98
- {
99
- provide: NG_VALIDATORS,
100
- useExisting: SkyCheckboxGroupComponent,
101
- multi: true,
102
- },
103
- { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
104
- ], hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: "<fieldset\n class=\"sky-checkbox-group\"\n [attr.aria-invalid]=\"!!formGroup?.errors\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-errormessage]=\"\n headingText && formGroup?.errors ? errorId : undefined\n \"\n>\n <legend\n class=\"sky-checkbox-group-legend\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden\n }\"\n >\n <span\n class=\"sky-checkbox-group-heading\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >\n @switch (headingLevel) {\n @case (3) {\n <h3 [class]=\"headingClass\">{{ headingText }}</h3>\n }\n @case (4) {\n <h4 [class]=\"headingClass\">{{ headingText }}</h4>\n }\n @case (5) {\n <h5 [class]=\"headingClass\">{{ headingText }}</h5>\n }\n @default {\n <span [class]=\"'sky-checkbox-group-heading-text ' + headingClass\">{{\n headingText\n }}</span>\n }\n }\n </span>\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_form_group_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n <div\n #hintTextEl=\"skyId\"\n skyId\n [ngClass]=\"{\n 'sky-checkbox-group-hint-text': !!hintText\n }\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n <span class=\"sky-checkbox-group-inline sky-switch-icon-group\">\n <ng-content select=\"sky-checkbox[icon]\" />\n </span>\n <span class=\"sky-checkbox-group-stacked\">\n <ng-content select=\"sky-checkbox\" />\n </span>\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [attr.data-sky-id]=\"formErrorsDataId\"\n [errors]=\"formGroup?.errors\"\n [labelText]=\"headingText\"\n [touched]=\"formGroup?.touched\"\n [dirty]=\"formGroup?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [".sky-checkbox-group:not(.sky-theme-modern *){--sky-override-checkbox-group-content-space: 8px;--sky-override-checkbox-group-content-with-hint-text-space: 10px;--sky-override-checkbox-group-hint-text-space: 5px}.sky-checkbox-group:not(.sky-theme-modern *) .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-checkbox-group .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host{display:block}.sky-checkbox-group-legend h3,.sky-checkbox-group-legend h4,.sky-checkbox-group-legend h5{margin:0;display:inline-block}.sky-checkbox-group-inline,.sky-checkbox-group-stacked{display:block}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-space, var(--sky-space-gap-form-s))}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)) .sky-checkbox-group-hint-text{margin-top:var(--sky-override-checkbox-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SkyFormErrorsModule }, { kind: "component", type: i3.SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "touched", "dirty"] }, { kind: "ngmodule", type: SkyFormsResourcesModule }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i5.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
105
- }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyCheckboxGroupComponent, decorators: [{
107
- type: Component,
108
- args: [{ selector: 'sky-checkbox-group', standalone: true, imports: [
109
- CommonModule,
110
- SkyFormErrorsModule,
111
- SkyFormsResourcesModule,
112
- SkyHelpInlineModule,
113
- SkyIdModule,
114
- SkyThemeModule,
115
- ], providers: [
116
- {
117
- provide: NG_VALIDATORS,
118
- useExisting: SkyCheckboxGroupComponent,
119
- multi: true,
120
- },
121
- { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
122
- ], hostDirectives: [SkyThemeComponentClassDirective], template: "<fieldset\n class=\"sky-checkbox-group\"\n [attr.aria-invalid]=\"!!formGroup?.errors\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-errormessage]=\"\n headingText && formGroup?.errors ? errorId : undefined\n \"\n>\n <legend\n class=\"sky-checkbox-group-legend\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden\n }\"\n >\n <span\n class=\"sky-checkbox-group-heading\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >\n @switch (headingLevel) {\n @case (3) {\n <h3 [class]=\"headingClass\">{{ headingText }}</h3>\n }\n @case (4) {\n <h4 [class]=\"headingClass\">{{ headingText }}</h4>\n }\n @case (5) {\n <h5 [class]=\"headingClass\">{{ headingText }}</h5>\n }\n @default {\n <span [class]=\"'sky-checkbox-group-heading-text ' + headingClass\">{{\n headingText\n }}</span>\n }\n }\n </span>\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_form_group_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n <div\n #hintTextEl=\"skyId\"\n skyId\n [ngClass]=\"{\n 'sky-checkbox-group-hint-text': !!hintText\n }\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n <span class=\"sky-checkbox-group-inline sky-switch-icon-group\">\n <ng-content select=\"sky-checkbox[icon]\" />\n </span>\n <span class=\"sky-checkbox-group-stacked\">\n <ng-content select=\"sky-checkbox\" />\n </span>\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [attr.data-sky-id]=\"formErrorsDataId\"\n [errors]=\"formGroup?.errors\"\n [labelText]=\"headingText\"\n [touched]=\"formGroup?.touched\"\n [dirty]=\"formGroup?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [".sky-checkbox-group:not(.sky-theme-modern *){--sky-override-checkbox-group-content-space: 8px;--sky-override-checkbox-group-content-with-hint-text-space: 10px;--sky-override-checkbox-group-hint-text-space: 5px}.sky-checkbox-group:not(.sky-theme-modern *) .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-checkbox-group .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host{display:block}.sky-checkbox-group-legend h3,.sky-checkbox-group-legend h4,.sky-checkbox-group-legend h5{margin:0;display:inline-block}.sky-checkbox-group-inline,.sky-checkbox-group-stacked{display:block}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-space, var(--sky-space-gap-form-s))}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)) .sky-checkbox-group-hint-text{margin-top:var(--sky-override-checkbox-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\n"] }]
123
- }], propDecorators: { helpPopoverContent: [{
124
- type: Input
125
- }], helpPopoverTitle: [{
126
- type: Input
127
- }], headingText: [{
128
- type: Input,
129
- args: [{ required: true }]
130
- }], headingHidden: [{
131
- type: Input,
132
- args: [{ transform: booleanAttribute }]
133
- }], headingLevel: [{
134
- type: Input,
135
- args: [{ transform: numberAttribute }]
136
- }], headingStyle: [{
137
- type: Input,
138
- args: [{ transform: numberAttribute4 }]
139
- }], hintText: [{
140
- type: Input
141
- }], required: [{
142
- type: Input,
143
- args: [{ transform: booleanAttribute }]
144
- }], stacked: [{
145
- type: Input,
146
- args: [{ transform: booleanAttribute }]
147
- }], helpKey: [{
148
- type: Input
149
- }], stackedLg: [{
150
- type: HostBinding,
151
- args: ['class.sky-form-field-stacked']
152
- }], stackedXL: [{
153
- type: HostBinding,
154
- args: ['class.sky-field-group-stacked']
155
- }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztBQUsvRSxTQUFTLGdCQUFnQixDQUFDLEtBQWM7SUFDdEMsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7R0FFRztBQXdCSCxNQUFNLE9BQU8seUJBQXlCO0lBdkJ0QztRQTZDRTs7V0FFRztRQUVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBK0I3Qjs7V0FFRztRQUVJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUF5QmpCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVoQixXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsNEJBQTRCLENBQUM7UUFJMUQsY0FBUyxHQUFHLEtBQUssQ0FBQztLQThCbkI7SUFwR0M7O09BRUc7SUFDSCxJQUNXLFlBQVksQ0FBQyxLQUErQztRQUNyRSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDakUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csWUFBWSxDQUFDLEtBQW1DO1FBQ3pELElBQUksQ0FBQyxZQUFZLEdBQUcsb0JBQW9CLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFlRDs7O09BR0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFnQlEsTUFBTSxDQUF3QjtJQU12QyxjQUFjLENBQTJDO0lBQ3pELFNBQVMsQ0FBUztJQUVYLFFBQVEsQ0FBQyxTQUFvQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRS9CLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNuQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdkQsQ0FBQzsrR0EvSFUseUJBQXlCO21HQUF6Qix5QkFBeUIsOE5BeUJoQixnQkFBZ0Isa0RBTWhCLGVBQWUsa0RBN0Q1QixnQkFBZ0IsNERBMEZILGdCQUFnQixtQ0FPaEIsZ0JBQWdCLG1LQTdFekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNELEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDckQsK0ZDdERILGd4RUFtRkEsbW1ERDNDSSxZQUFZLDRIQUNaLG1CQUFtQix3S0FDbkIsdUJBQXVCLHVHQUN2QixtQkFBbUIsd1BBQ25CLFdBQVcsNEdBQ1gsY0FBYzs7NEZBWUwseUJBQXlCO2tCQXZCckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxjQUFjO3FCQUNmLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsMkJBQTJCOzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO3FCQUNyRCxrQkFDZSxDQUFDLCtCQUErQixDQUFDOzhCQVMxQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBUUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9sQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU8zQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFlMUIsWUFBWTtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVL0IsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRM0IsT0FBTztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFnQi9CLE9BQU87c0JBRGIsS0FBSztnQkFJQyxTQUFTO3NCQURmLFdBQVc7dUJBQUMsOEJBQThCO2dCQUlwQyxTQUFTO3NCQURmLFdBQVc7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lJZFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUsIFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWVuYWJsZWQtdG9rZW4nO1xuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMubW9kdWxlJztcbmltcG9ydCB7IFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1mb3Jtcy1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB9IGZyb20gJy4vY2hlY2tib3gtZ3JvdXAtaGVhZGluZy1sZXZlbCc7XG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGVhZGluZ1N0eWxlIH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC1oZWFkaW5nLXN0eWxlJztcblxuZnVuY3Rpb24gbnVtYmVyQXR0cmlidXRlNCh2YWx1ZTogdW5rbm93bik6IG51bWJlciB7XG4gIHJldHVybiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDQpO1xufVxuXG4vKipcbiAqIE9yZ2FuaXplcyBjaGVja2JveGVzIGludG8gYSBncm91cC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBoZWFkaW5nVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgY2hlY2tib3ggZ3JvdXAgZmllbGRzZXQgbGVnZW5kLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVhZGluZ1RleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgY2hlY2tib3ggZ3JvdXAncyBoZWFkaW5nLlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGhlYWRpbmdUZXh0ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgaGVhZGluZ1RleHRgLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEJ5IGRlZmF1bHQsIHRoZSBoZWFkaW5nIHRleHQgaXMgbm90IHdyYXBwZWQgaW4gYSBoZWFkaW5nIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oZWFkaW5nTGV2ZWwgPSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0xldmVsKCk6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaGVhZGluZ0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlNCB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdTdHlsZSh2YWx1ZTogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdTdHlsZSkge1xuICAgIHRoaXMuaGVhZGluZ0NsYXNzID0gYHNreS1mb250LWhlYWRpbmctJHt2YWx1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBncm91cCBpcyByZXF1aXJlZC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggZ3JvdXAgaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgY2hlY2tib3ggZ3JvdXAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBzdGFja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX3N0YWNrZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVTdGFja2VkQ2xhc3NlcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfc3RhY2tlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBoZWFkaW5nVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSBjaGVja2JveCBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWFkaW5nVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWZvcm0tZmllbGQtc3RhY2tlZCcpXG4gIHB1YmxpYyBzdGFja2VkTGcgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1maWVsZC1ncm91cC1zdGFja2VkJylcbiAgcHVibGljIHN0YWNrZWRYTCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHJvdGVjdGVkIGhlYWRpbmdDbGFzcyA9ICdza3ktZm9udC1oZWFkaW5nLTQnO1xuICBwcm90ZWN0ZWQgZm9ybUVycm9yc0RhdGFJZCA9ICdjaGVja2JveC1ncm91cC1mb3JtLWVycm9ycyc7XG4gIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cCB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgI19oZWFkaW5nTGV2ZWw6IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQ7XG4gICNfc3RhY2tlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA/Pz0gZm9ybUdyb3VwO1xuXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sTmFtZXMgPSBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpO1xuICAgIGxldCBhdExlYXN0T25lU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnRyb2xOYW1lcy5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWUpO1xuICAgICAgaWYgKGNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgIGF0TGVhc3RPbmVTZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWF0TGVhc3RPbmVTZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhY2tlZExnID0gIXRoaXMuaGVhZGluZ0xldmVsICYmIHRoaXMuc3RhY2tlZDtcbiAgICB0aGlzLnN0YWNrZWRYTCA9ICEhdGhpcy5oZWFkaW5nTGV2ZWwgJiYgdGhpcy5zdGFja2VkO1xuICB9XG59XG4iLCI8ZmllbGRzZXRcbiAgY2xhc3M9XCJza3ktY2hlY2tib3gtZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFmb3JtR3JvdXA/LmVycm9yc1wiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludFRleHQgPyBoaW50VGV4dEVsLmlkIDogdW5kZWZpbmVkXCJcbiAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiXG4gICAgaGVhZGluZ1RleHQgJiYgZm9ybUdyb3VwPy5lcnJvcnMgPyBlcnJvcklkIDogdW5kZWZpbmVkXG4gIFwiXG4+XG4gIDxsZWdlbmRcbiAgICBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cC1sZWdlbmRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlblxuICAgIH1cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LWdyb3VwLWhlYWRpbmdcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgQHN3aXRjaCAoaGVhZGluZ0xldmVsKSB7XG4gICAgICAgIEBjYXNlICgzKSB7XG4gICAgICAgICAgPGgzIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj57eyBoZWFkaW5nVGV4dCB9fTwvaDM+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKDQpIHtcbiAgICAgICAgICA8aDQgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPnt7IGhlYWRpbmdUZXh0IH19PC9oND5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoNSkge1xuICAgICAgICAgIDxoNSBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+e3sgaGVhZGluZ1RleHQgfX08L2g1PlxuICAgICAgICB9XG4gICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3NreS1jaGVja2JveC1ncm91cC1oZWFkaW5nLXRleHQgJyArIGhlYWRpbmdDbGFzc1wiPnt7XG4gICAgICAgICAgICBoZWFkaW5nVGV4dFxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICdza3l1eF9mb3JtX2dyb3VwX3JlcXVpcmVkJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgfX08L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICA8L2xlZ2VuZD5cbiAgPGRpdlxuICAgICNoaW50VGV4dEVsPVwic2t5SWRcIlxuICAgIHNreUlkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jaGVja2JveC1ncm91cC1oaW50LXRleHQnOiAhIWhpbnRUZXh0XG4gICAgfVwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6ICdkZWZhdWx0JyxcbiAgICAgICdza3ktZm9udC1oaW50LXRleHQtcyc6ICdtb2Rlcm4nXG4gICAgfVwiXG4gID5cbiAgICB7eyBoaW50VGV4dCB9fVxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktY2hlY2tib3gtZ3JvdXAtaW5saW5lIHNreS1zd2l0Y2gtaWNvbi1ncm91cFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1jaGVja2JveFtpY29uXVwiIC8+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktY2hlY2tib3gtZ3JvdXAtc3RhY2tlZFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1jaGVja2JveFwiIC8+XG4gIDwvc3Bhbj5cbjwvZmllbGRzZXQ+XG48c2t5LWZvcm0tZXJyb3JzXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2F0dHIuZGF0YS1za3ktaWRdPVwiZm9ybUVycm9yc0RhdGFJZFwiXG4gIFtlcnJvcnNdPVwiZm9ybUdyb3VwPy5lcnJvcnNcIlxuICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgW3RvdWNoZWRdPVwiZm9ybUdyb3VwPy50b3VjaGVkXCJcbiAgW2RpcnR5XT1cImZvcm1Hcm91cD8uZGlydHlcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZm9ybS1lcnJvclwiIC8+XG48L3NreS1mb3JtLWVycm9ycz5cbiJdfQ==