@skyux/forms 10.0.0-alpha.0 → 10.0.0-alpha.2

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 (71) hide show
  1. package/documentation.json +4278 -3104
  2. package/esm2022/index.mjs +5 -1
  3. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +7 -6
  4. package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +46 -0
  5. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +3 -3
  6. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +8 -5
  7. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
  8. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +30 -19
  9. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +36 -7
  10. package/esm2022/lib/modules/file-attachment/file-attachment-label.component.mjs +3 -3
  11. package/esm2022/lib/modules/file-attachment/file-attachment.component.mjs +6 -7
  12. package/esm2022/lib/modules/file-attachment/file-attachment.service.mjs +5 -6
  13. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +4 -4
  14. package/esm2022/lib/modules/file-attachment/file-drop.component.mjs +6 -7
  15. package/esm2022/lib/modules/file-attachment/file-item.component.mjs +4 -4
  16. package/esm2022/lib/modules/file-attachment/file-item.service.mjs +3 -3
  17. package/esm2022/lib/modules/file-attachment/file-size.pipe.mjs +3 -3
  18. package/esm2022/lib/modules/file-attachment/types/file-drop-change.mjs +1 -1
  19. package/esm2022/lib/modules/form-error/form-error.component.mjs +30 -14
  20. package/esm2022/lib/modules/form-error/form-error.module.mjs +16 -0
  21. package/esm2022/lib/modules/form-error/form-errors-enabled-token.mjs +6 -0
  22. package/esm2022/lib/modules/form-error/form-errors.component.mjs +5 -5
  23. package/esm2022/lib/modules/form-error/form-errors.module.mjs +7 -6
  24. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +3 -3
  25. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
  26. package/esm2022/lib/modules/input-box/input-box-help-inline.component.mjs +3 -3
  27. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +3 -3
  28. package/esm2022/lib/modules/input-box/input-box.component.mjs +21 -6
  29. package/esm2022/lib/modules/input-box/input-box.module.mjs +26 -12
  30. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +3 -3
  31. package/esm2022/lib/modules/radio/radio-group.component.mjs +74 -10
  32. package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
  33. package/esm2022/lib/modules/radio/radio.component.mjs +3 -3
  34. package/esm2022/lib/modules/radio/radio.module.mjs +43 -9
  35. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +3 -3
  36. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
  37. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +3 -3
  38. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
  39. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +3 -3
  40. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
  41. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +8 -6
  42. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
  43. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +3 -3
  44. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
  45. package/esm2022/testing/checkbox/checkbox-harness.mjs +15 -1
  46. package/esm2022/testing/form-error/form-error-harness.mjs +5 -9
  47. package/esm2022/testing/form-error/form-errors-harness.mjs +15 -64
  48. package/esm2022/testing/input-box/input-box-harness.mjs +59 -2
  49. package/fesm2022/skyux-forms-testing.mjs +122 -106
  50. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  51. package/fesm2022/skyux-forms.mjs +480 -256
  52. package/fesm2022/skyux-forms.mjs.map +1 -1
  53. package/index.d.ts +4 -0
  54. package/lib/modules/character-counter/character-counter-screen-reader.pipe.d.ts +8 -0
  55. package/lib/modules/character-counter/character-counter.module.d.ts +3 -2
  56. package/lib/modules/checkbox/checkbox.component.d.ts +9 -2
  57. package/lib/modules/checkbox/checkbox.module.d.ts +6 -3
  58. package/lib/modules/file-attachment/types/file-drop-change.d.ts +2 -2
  59. package/lib/modules/form-error/form-error.component.d.ts +17 -3
  60. package/lib/modules/form-error/form-error.module.d.ts +7 -0
  61. package/lib/modules/form-error/form-errors-enabled-token.d.ts +5 -0
  62. package/lib/modules/form-error/form-errors.module.d.ts +2 -1
  63. package/lib/modules/input-box/input-box.component.d.ts +2 -1
  64. package/lib/modules/input-box/input-box.module.d.ts +7 -5
  65. package/lib/modules/radio/radio-group.component.d.ts +18 -3
  66. package/lib/modules/radio/radio.module.d.ts +6 -3
  67. package/package.json +12 -12
  68. package/testing/checkbox/checkbox-harness.d.ts +2 -0
  69. package/testing/form-error/form-error-harness.d.ts +4 -2
  70. package/testing/form-error/form-errors-harness.d.ts +10 -11
  71. package/testing/input-box/input-box-harness.d.ts +36 -1
package/esm2022/index.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  export { SkyCharacterCounterModule } from './lib/modules/character-counter/character-counter.module';
2
2
  export { SkyCheckboxModule } from './lib/modules/checkbox/checkbox.module';
3
3
  export { SkyFormErrorsModule } from './lib/modules/form-error/form-errors.module';
4
+ export { SkyFormErrorModule } from './lib/modules/form-error/form-error.module';
4
5
  export { SkyFileAttachmentsModule } from './lib/modules/file-attachment/file-attachments.module';
5
6
  export { SkyFileSizePipe } from './lib/modules/file-attachment/file-size.pipe';
6
7
  export { SkyInputBoxHostService } from './lib/modules/input-box/input-box-host.service';
@@ -8,10 +9,12 @@ export { SkyInputBoxModule } from './lib/modules/input-box/input-box.module';
8
9
  export { SkyRadioModule } from './lib/modules/radio/radio.module';
9
10
  export { SkySelectionBoxModule } from './lib/modules/selection-box/selection-box.module';
10
11
  export { SkyToggleSwitchModule } from './lib/modules/toggle-switch/toggle-switch.module';
12
+ export { SKY_FORM_ERRORS_ENABLED } from './lib/modules/form-error/form-errors-enabled-token';
11
13
  // Components and directives must be exported to support Angular's "partial" Ivy compiler.
12
14
  // Obscure names are used to indicate types are not part of the public API.
13
15
  export { SkyCharacterCounterIndicatorComponent as λ1 } from './lib/modules/character-counter/character-counter-indicator.component';
14
16
  export { SkyCharacterCounterInputDirective as λ2 } from './lib/modules/character-counter/character-counter.directive';
17
+ export { SkyCharacterCounterScreenReaderPipe as λ23 } from './lib/modules/character-counter/character-counter-screen-reader.pipe';
15
18
  export { SkyCheckboxLabelComponent as λ4 } from './lib/modules/checkbox/checkbox-label.component';
16
19
  export { SkyCheckboxComponent as λ3 } from './lib/modules/checkbox/checkbox.component';
17
20
  export { SkyFileAttachmentLabelComponent as λ6 } from './lib/modules/file-attachment/file-attachment-label.component';
@@ -19,6 +22,7 @@ export { SkyFileAttachmentComponent as λ7 } from './lib/modules/file-attachment
19
22
  export { SkyFileDropComponent as λ8 } from './lib/modules/file-attachment/file-drop.component';
20
23
  export { SkyFileItemComponent as λ9 } from './lib/modules/file-attachment/file-item.component';
21
24
  export { SkyFormErrorsComponent as λ21 } from './lib/modules/form-error/form-errors.component';
25
+ export { SkyFormErrorComponent as λ22 } from './lib/modules/form-error/form-error.component';
22
26
  export { SkyInputBoxControlDirective as λ20 } from './lib/modules/input-box/input-box-control.directive';
23
27
  export { SkyInputBoxComponent as λ10 } from './lib/modules/input-box/input-box.component';
24
28
  export { SkyRadioGroupComponent as λ11 } from './lib/modules/radio/radio-group.component';
@@ -30,4 +34,4 @@ export { SkySelectionBoxHeaderComponent as λ16 } from './lib/modules/selection-
30
34
  export { SkySelectionBoxComponent as λ17 } from './lib/modules/selection-box/selection-box.component';
31
35
  export { SkyToggleSwitchLabelComponent as λ18 } from './lib/modules/toggle-switch/toggle-switch-label.component';
32
36
  export { SkyToggleSwitchComponent as λ19 } from './lib/modules/toggle-switch/toggle-switch.component';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBR3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBSWpHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUsvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFJekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHekYsMEZBQTBGO0FBQzFGLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUscUNBQXFDLElBQUksRUFBRSxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDcEksT0FBTyxFQUFFLGlDQUFpQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RILE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxFQUFFLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLCtCQUErQixJQUFJLEVBQUUsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3RILE9BQU8sRUFBRSwwQkFBMEIsSUFBSSxFQUFFLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxHQUFHLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsMkJBQTJCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixJQUFJLEdBQUcsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxHQUFHLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLElBQUksR0FBRyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQ0FBbUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsNEJBQTRCLElBQUksR0FBRyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0csT0FBTyxFQUFFLDhCQUE4QixJQUFJLEdBQUcsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxHQUFHLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNkJBQTZCLElBQUksR0FBRyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDakgsT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlck1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWNoYW5nZSc7XG5leHBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc01vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnRzLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbSc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbS1lcnJvci10eXBlJztcbmV4cG9ydCB7IFNreUZpbGVMaW5rIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1saW5rJztcbmV4cG9ydCB7IFNreUZpbGVTaXplUGlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtc2l6ZS5waXBlJztcbmV4cG9ydCB7IFNreUZpbGVBdHRhY2htZW50Q2hhbmdlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1hdHRhY2htZW50LWNoYW5nZSc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENsaWNrIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1hdHRhY2htZW50LWNsaWNrJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wQ2hhbmdlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1kcm9wLWNoYW5nZSc7XG5cbmV4cG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtaG9zdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LXBvcHVsYXRlLWFyZ3MnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5UmFkaW9Nb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lSYWRpb0NoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tY2hhbmdlJztcbmV4cG9ydCB7IFNreVJhZGlvVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tdHlwZSc7XG5cbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94Lm1vZHVsZSc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hHcmlkQWxpZ25JdGVtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC90eXBlcy9zZWxlY3Rpb24tYm94LWdyaWQtYWxpZ24taXRlbXMnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXNUeXBlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3R5cGVzL3NlbGVjdGlvbi1ib3gtZ3JpZC1hbGlnbi1pdGVtcy10eXBlJztcblxuZXhwb3J0IHsgU2t5VG9nZ2xlU3dpdGNoTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy90b2dnbGUtc3dpdGNoL3RvZ2dsZS1zd2l0Y2gubW9kdWxlJztcbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaENoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90eXBlcy90b2dnbGUtc3dpdGNoLWNoYW5nZSc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cblxuZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCBhcyDOuzEgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoYXJhY3Rlci1jb3VudGVyL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxDb21wb25lbnQgYXMgzrs0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hDb21wb25lbnQgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUZpbGVBdHRhY2htZW50Q29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmlsZURyb3BDb21wb25lbnQgYXMgzrs4IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUNvbXBvbmVudCBhcyDOuzkgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUZvcm1FcnJvcnNDb21wb25lbnQgYXMgzrsyMSB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hDb250cm9sRGlyZWN0aXZlIGFzIM67MjAgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtY29udHJvbC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hDb21wb25lbnQgYXMgzrsxMCB9IGZyb20gJy4vbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cENvbXBvbmVudCBhcyDOuzExIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9MYWJlbENvbXBvbmVudCBhcyDOuzEyIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5UmFkaW9Db21wb25lbnQgYXMgzrsxMyB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveERlc2NyaXB0aW9uQ29tcG9uZW50IGFzIM67MTQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZENvbXBvbmVudCBhcyDOuzE1IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94SGVhZGVyQ29tcG9uZW50IGFzIM67MTYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveENvbXBvbmVudCBhcyDOuzE3IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaExhYmVsQ29tcG9uZW50IGFzIM67MTggfSBmcm9tICcuL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5VG9nZ2xlU3dpdGNoQ29tcG9uZW50IGFzIM67MTkgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQnO1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBR3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBSWpHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUsvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFJekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFN0YsMEZBQTBGO0FBQzFGLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUscUNBQXFDLElBQUksRUFBRSxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDcEksT0FBTyxFQUFFLGlDQUFpQyxJQUFJLEVBQUUsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RILE9BQU8sRUFBRSxtQ0FBbUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNsSSxPQUFPLEVBQUUseUJBQXlCLElBQUksRUFBRSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwrQkFBK0IsSUFBSSxFQUFFLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN0SCxPQUFPLEVBQUUsMEJBQTBCLElBQUksRUFBRSxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0csT0FBTyxFQUFFLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLElBQUksR0FBRyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixJQUFJLEdBQUcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSwyQkFBMkIsSUFBSSxHQUFHLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLElBQUksR0FBRyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixJQUFJLEdBQUcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxHQUFHLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLElBQUksR0FBRyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1DQUFtQyxJQUFJLEdBQUcsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdILE9BQU8sRUFBRSw0QkFBNEIsSUFBSSxHQUFHLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMvRyxPQUFPLEVBQUUsOEJBQThCLElBQUksR0FBRyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsSUFBSSxHQUFHLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqSCxPQUFPLEVBQUUsd0JBQXdCLElBQUksR0FBRyxFQUFFLE1BQU0scURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVyTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtY2hhbmdlJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGb3JtRXJyb3JNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5tb2R1bGUnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnRzLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbSc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbS1lcnJvci10eXBlJztcbmV4cG9ydCB7IFNreUZpbGVMaW5rIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1saW5rJztcbmV4cG9ydCB7IFNreUZpbGVTaXplUGlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtc2l6ZS5waXBlJztcbmV4cG9ydCB7IFNreUZpbGVBdHRhY2htZW50Q2hhbmdlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1hdHRhY2htZW50LWNoYW5nZSc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENsaWNrIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1hdHRhY2htZW50LWNsaWNrJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wQ2hhbmdlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1kcm9wLWNoYW5nZSc7XG5cbmV4cG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtaG9zdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LXBvcHVsYXRlLWFyZ3MnO1xuZXhwb3J0IHsgU2t5SW5wdXRCb3hNb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU2t5UmFkaW9Nb2R1bGUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLm1vZHVsZSc7XG5leHBvcnQgeyBTa3lSYWRpb0NoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tY2hhbmdlJztcbmV4cG9ydCB7IFNreVJhZGlvVHlwZSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tdHlwZSc7XG5cbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveE1vZHVsZSB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94Lm1vZHVsZSc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hHcmlkQWxpZ25JdGVtcyB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC90eXBlcy9zZWxlY3Rpb24tYm94LWdyaWQtYWxpZ24taXRlbXMnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXNUeXBlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3R5cGVzL3NlbGVjdGlvbi1ib3gtZ3JpZC1hbGlnbi1pdGVtcy10eXBlJztcblxuZXhwb3J0IHsgU2t5VG9nZ2xlU3dpdGNoTW9kdWxlIH0gZnJvbSAnLi9saWIvbW9kdWxlcy90b2dnbGUtc3dpdGNoL3RvZ2dsZS1zd2l0Y2gubW9kdWxlJztcbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaENoYW5nZSB9IGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90eXBlcy90b2dnbGUtc3dpdGNoLWNoYW5nZSc7XG5cbmV4cG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWVuYWJsZWQtdG9rZW4nO1xuXG4vLyBDb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzIG11c3QgYmUgZXhwb3J0ZWQgdG8gc3VwcG9ydCBBbmd1bGFyJ3MgXCJwYXJ0aWFsXCIgSXZ5IGNvbXBpbGVyLlxuLy8gT2JzY3VyZSBuYW1lcyBhcmUgdXNlZCB0byBpbmRpY2F0ZSB0eXBlcyBhcmUgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuXG5cbmV4cG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQgYXMgzrsxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSBhcyDOuzIgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoYXJhY3Rlci1jb3VudGVyL2NoYXJhY3Rlci1jb3VudGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyUGlwZSBhcyDOuzIzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hMYWJlbENvbXBvbmVudCBhcyDOuzQgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lDaGVja2JveENvbXBvbmVudCBhcyDOuzMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50IGFzIM67NiB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRDb21wb25lbnQgYXMgzrs3IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlRHJvcENvbXBvbmVudCBhcyDOuzggfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWRyb3AuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUZpbGVJdGVtQ29tcG9uZW50IGFzIM67OSB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc0NvbXBvbmVudCBhcyDOuzIxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGb3JtRXJyb3JDb21wb25lbnQgYXMgzrsyMiB9IGZyb20gJy4vbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lJbnB1dEJveENvbnRyb2xEaXJlY3RpdmUgYXMgzrsyMCB9IGZyb20gJy4vbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1jb250cm9sLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTa3lJbnB1dEJveENvbXBvbmVudCBhcyDOuzEwIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lSYWRpb0dyb3VwQ29tcG9uZW50IGFzIM67MTEgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lSYWRpb0xhYmVsQ29tcG9uZW50IGFzIM67MTIgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lSYWRpb0NvbXBvbmVudCBhcyDOuzEzIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94RGVzY3JpcHRpb25Db21wb25lbnQgYXMgzrsxNCB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LWRlc2NyaXB0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hHcmlkQ29tcG9uZW50IGFzIM67MTUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hIZWFkZXJDb21wb25lbnQgYXMgzrsxNiB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5U2VsZWN0aW9uQm94Q29tcG9uZW50IGFzIM67MTcgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5VG9nZ2xlU3dpdGNoTGFiZWxDb21wb25lbnQgYXMgzrsxOCB9IGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lUb2dnbGVTd2l0Y2hDb21wb25lbnQgYXMgzrsxOSB9IGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,7 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- import * as i2 from "@skyux/i18n";
4
+ import * as i2 from "./character-counter-screen-reader.pipe";
5
+ import * as i3 from "@skyux/i18n";
5
6
  export class SkyCharacterCounterIndicatorComponent {
6
7
  #_characterCountLimit = 0;
7
8
  #_characterCount = 0;
@@ -23,15 +24,15 @@ export class SkyCharacterCounterIndicatorComponent {
23
24
  this.#_characterCountLimit = limit;
24
25
  this.#changeDetector.markForCheck();
25
26
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", inputs: { characterCount: "characterCount", characterCountLimit: "characterCountLimit" }, ngImport: i0, template: "<span\n class=\"sky-character-count-label sky-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 {{ characterCount }} {{ 'skyux_character_count_message' | skyLibResources }}\n {{ characterCountLimit }}.\n {{\n characterCount > characterCountLimit\n ? ('skyux_character_count_over_limit' | skyLibResources)\n : ''\n }}\n</span>\n", styles: [":host{flex-shrink:.0001}.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.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", inputs: { characterCount: "characterCount", characterCountLimit: "characterCountLimit" }, ngImport: i0, template: "<span\n class=\"sky-character-count-label sky-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 <ng-container\n *ngIf=\"characterCount > characterCountLimit; else screenReaderCountMessage\"\n >{{ 'skyux_character_count_over_limit' | skyLibResources }}</ng-container\n >\n <ng-template #screenReaderCountMessage>\n <ng-container\n *ngIf=\"\n characterCount\n | skyCharacterCounterScreenReader\n : characterCountLimit as screenReaderCount\n \"\n >{{\n 'skyux_character_count_message'\n | skyLibResources : screenReaderCount : characterCountLimit\n }}</ng-container\n >\n </ng-template>\n</span>\n", styles: [":host{flex-shrink:.0001}.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: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.SkyCharacterCounterScreenReaderPipe, name: "skyCharacterCounterScreenReader" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
29
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, decorators: [{
30
31
  type: Component,
31
- args: [{ selector: 'sky-character-counter-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-character-count-label sky-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 {{ characterCount }} {{ 'skyux_character_count_message' | skyLibResources }}\n {{ characterCountLimit }}.\n {{\n characterCount > characterCountLimit\n ? ('skyux_character_count_over_limit' | skyLibResources)\n : ''\n }}\n</span>\n", styles: [":host{flex-shrink:.0001}.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"] }]
32
+ args: [{ selector: 'sky-character-counter-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-character-count-label sky-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 <ng-container\n *ngIf=\"characterCount > characterCountLimit; else screenReaderCountMessage\"\n >{{ 'skyux_character_count_over_limit' | skyLibResources }}</ng-container\n >\n <ng-template #screenReaderCountMessage>\n <ng-container\n *ngIf=\"\n characterCount\n | skyCharacterCounterScreenReader\n : characterCountLimit as screenReaderCount\n \"\n >{{\n 'skyux_character_count_message'\n | skyLibResources : screenReaderCount : characterCountLimit\n }}</ng-container\n >\n </ng-template>\n</span>\n", styles: [":host{flex-shrink:.0001}.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"] }]
32
33
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { characterCount: [{
33
34
  type: Input
34
35
  }], characterCountLimit: [{
35
36
  type: Input
36
37
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELHFCQUFxQixHQUFHLENBQUMsQ0FBQztJQUMxQixnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFckIsZUFBZSxDQUFvQjtJQUVuQyxZQUFZLGNBQWlDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ1csY0FBYyxDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxtQkFBbUIsQ0FBQyxLQUFhO1FBQzFDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzhHQTVCVSxxQ0FBcUM7a0dBQXJDLHFDQUFxQyxpS0NibEQscWdCQWVBOzsyRkRGYSxxQ0FBcUM7a0JBTmpELFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNO3NGQWlCcEMsY0FBYztzQkFEeEIsS0FBSztnQkFXSyxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCB7XG4gICNfY2hhcmFjdGVyQ291bnRMaW1pdCA9IDA7XG4gICNfY2hhcmFjdGVyQ291bnQgPSAwO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmFjdGVyQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoYXJhY3RlckNvdW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGFyYWN0ZXJDb3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy4jX2NoYXJhY3RlckNvdW50ID0gY291bnQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJhY3RlckNvdW50TGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoYXJhY3RlckNvdW50TGltaXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoYXJhY3RlckNvdW50TGltaXQobGltaXQ6IG51bWJlcikge1xuICAgIHRoaXMuI19jaGFyYWN0ZXJDb3VudExpbWl0ID0gbGltaXQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwic2t5LWNoYXJhY3Rlci1jb3VudC1sYWJlbCBza3ktZGVlbXBoYXNpemVkXCJcbiAgW25nQ2xhc3NdPVwieyAnc2t5LWVycm9yLWxhYmVsJzogY2hhcmFjdGVyQ291bnQgPiBjaGFyYWN0ZXJDb3VudExpbWl0IH1cIlxuPlxuICB7eyBjaGFyYWN0ZXJDb3VudCArICcvJyArIGNoYXJhY3RlckNvdW50TGltaXQgfX1cbjwvc3Bhbj5cbjxzcGFuIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPlxuICB7eyBjaGFyYWN0ZXJDb3VudCB9fSB7eyAnc2t5dXhfY2hhcmFjdGVyX2NvdW50X21lc3NhZ2UnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIHt7IGNoYXJhY3RlckNvdW50TGltaXQgfX0uXG4gIHt7XG4gICAgY2hhcmFjdGVyQ291bnQgPiBjaGFyYWN0ZXJDb3VudExpbWl0XG4gICAgICA/ICgnc2t5dXhfY2hhcmFjdGVyX2NvdW50X292ZXJfbGltaXQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgOiAnJ1xuICB9fVxuPC9zcGFuPlxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLHFDQUFxQztJQUNoRCxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXJCLGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0E1QlUscUNBQXFDO2tHQUFyQyxxQ0FBcUMsaUtDYmxELDgwQkF5QkE7OzJGRFphLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU07c0ZBaUJwQyxjQUFjO3NCQUR4QixLQUFLO2dCQVdLLG1CQUFtQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgI19jaGFyYWN0ZXJDb3VudExpbWl0ID0gMDtcbiAgI19jaGFyYWN0ZXJDb3VudCA9IDA7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyYWN0ZXJDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfY2hhcmFjdGVyQ291bnQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoYXJhY3RlckNvdW50KGNvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLiNfY2hhcmFjdGVyQ291bnQgPSBjb3VudDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmFjdGVyQ291bnRMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfY2hhcmFjdGVyQ291bnRMaW1pdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hhcmFjdGVyQ291bnRMaW1pdChsaW1pdDogbnVtYmVyKSB7XG4gICAgdGhpcy4jX2NoYXJhY3RlckNvdW50TGltaXQgPSBsaW1pdDtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJza3ktY2hhcmFjdGVyLWNvdW50LWxhYmVsIHNreS1kZWVtcGhhc2l6ZWRcIlxuICBbbmdDbGFzc109XCJ7ICdza3ktZXJyb3ItbGFiZWwnOiBjaGFyYWN0ZXJDb3VudCA+IGNoYXJhY3RlckNvdW50TGltaXQgfVwiXG4+XG4gIHt7IGNoYXJhY3RlckNvdW50ICsgJy8nICsgY2hhcmFjdGVyQ291bnRMaW1pdCB9fVxuPC9zcGFuPlxuPHNwYW4gYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cImNoYXJhY3RlckNvdW50ID4gY2hhcmFjdGVyQ291bnRMaW1pdDsgZWxzZSBzY3JlZW5SZWFkZXJDb3VudE1lc3NhZ2VcIlxuICAgID57eyAnc2t5dXhfY2hhcmFjdGVyX2NvdW50X292ZXJfbGltaXQnIHwgc2t5TGliUmVzb3VyY2VzIH19PC9uZy1jb250YWluZXJcbiAgPlxuICA8bmctdGVtcGxhdGUgI3NjcmVlblJlYWRlckNvdW50TWVzc2FnZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIlxuICAgICAgICBjaGFyYWN0ZXJDb3VudFxuICAgICAgICAgIHwgc2t5Q2hhcmFjdGVyQ291bnRlclNjcmVlblJlYWRlclxuICAgICAgICAgICAgOiBjaGFyYWN0ZXJDb3VudExpbWl0IGFzIHNjcmVlblJlYWRlckNvdW50XG4gICAgICBcIlxuICAgICAgPnt7XG4gICAgICAgICdza3l1eF9jaGFyYWN0ZXJfY291bnRfbWVzc2FnZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlcyA6IHNjcmVlblJlYWRlckNvdW50IDogY2hhcmFjdGVyQ291bnRMaW1pdFxuICAgICAgfX08L25nLWNvbnRhaW5lclxuICAgID5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvc3Bhbj5cbiJdfQ==
@@ -0,0 +1,46 @@
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: "17.1.1", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
37
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, isStandalone: true, name: "skyCharacterCounterScreenReader" }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, decorators: [{
40
+ type: Pipe,
41
+ args: [{
42
+ name: 'skyCharacterCounterScreenReader',
43
+ standalone: true,
44
+ }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItc2NyZWVuLXJlYWRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsMEJBQTBCLENBQXFCO0lBRXhDLFNBQVMsQ0FDZCxjQUFrQyxFQUNsQyxtQkFBdUM7UUFFdkMsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixJQUFJLGNBQWMsS0FBSyxTQUFTLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsa0dBQWtHO1FBQ2xHLE1BQU0sT0FBTyxHQUNYLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzlELENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULElBQ0UsY0FBYyxLQUFLLG1CQUFtQjtZQUN0QyxjQUFjLEdBQUcsT0FBTyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLDBCQUEwQixLQUFLLFNBQVMsRUFDN0MsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsR0FBRyxjQUFjLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTiw2SEFBNkg7WUFDN0gsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsT0FBTyxDQUMxQyxDQUFDO1lBQ0YsK0VBQStFO1lBQy9FLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDekUsc0VBQXNFO1lBQ3RFLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkQsY0FBYyxHQUFHLE9BQU8sQ0FDekIsQ0FBQztZQUVGLHdJQUF3STtZQUN4SSxJQUNFLDJCQUEyQixLQUFLLDRCQUE0QjtnQkFDNUQsbUNBQW1DLEtBQUssNEJBQTRCLEVBQ3BFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLDBCQUEwQjtvQkFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUQsQ0FBQzs4R0FoRFUsbUNBQW1DOzRHQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBSi9DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hhcmFjdGVyQ291bnRlclNjcmVlblJlYWRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNoYXJhY3RlckNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgY2hhcmFjdGVyQ291bnRMaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiBzdHJpbmcge1xuICAgIC8qIFNhZmV0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChjaGFyYWN0ZXJDb3VudCA9PT0gdW5kZWZpbmVkIHx8IGNoYXJhY3RlckNvdW50TGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIFdlIHdhbnQgdG8gYW5ub3VuY2UgZXZlcnkgMTAgY2hhcmFjdGVycyBpZiB3ZSBhcmUgd2l0aGluIDUwIG9mIHRoZSBsaW1pdCBvciBldmVyeSA1MCBvdGhlcndpc2UuXG4gICAgY29uc3QgbW9kdWx1cyA9XG4gICAgICBjaGFyYWN0ZXJDb3VudExpbWl0IC0gTWF0aC5mbG9vcihjaGFyYWN0ZXJDb3VudCAvIDEwKSAqIDEwIDw9IDUwXG4gICAgICAgID8gMTBcbiAgICAgICAgOiA1MDtcblxuICAgIGlmIChcbiAgICAgIGNoYXJhY3RlckNvdW50ID09PSBjaGFyYWN0ZXJDb3VudExpbWl0IHx8XG4gICAgICBjaGFyYWN0ZXJDb3VudCAlIG1vZHVsdXMgPT09IDAgfHxcbiAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jcHJldmlvdXNBbm5vdW5jZW1lbnRQb2ludCA9IGNoYXJhY3RlckNvdW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSBmbG9vciBvZiB0aGUgcHJldmlvdXMgYW5ub3VuY2VtZW50IGFuZCBtb2R1bHVzIGluIGNhc2UgdGhlIHByZXZpb3VzIGFubm91bmNlbWVudCB3YXNuJ3QgYW4gYW5ub3VuY2VtZW50IHBvaW50LlxuICAgICAgY29uc3QgcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoXG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgLyBtb2R1bHVzLFxuICAgICAgKTtcbiAgICAgIC8vIExvd2VyIGxpbWl0IG9mIHdoYXQgYW5ub3VuY2VtZW50IHNob3VsZCBoYXZlIGJlZW4gbWFkZSBmb3IgdGhlIGN1cnJlbnQgY291bnRcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKTtcbiAgICAgIC8vIE5leHQgYW5ub3VuY2VtZW50IHRoYXQgd291bGQgYmUgbWFkZSBpZiB0aGUgY3VycmVudCBjb3VudCBpbmNyZWFzZXNcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnROZXh0QW5ub3VuY2VtZW50ID0gTWF0aC5jZWlsKFxuICAgICAgICBjaGFyYWN0ZXJDb3VudCAvIG1vZHVsdXMsXG4gICAgICApO1xuXG4gICAgICAvLyBKdW1wIHRvIHRoZSBhcHByb3ByaWF0ZSBhbm5vdW5jZW1lbnQgcG9pbnQgaWYgdGhlIGNvdW50IGp1bXBzLiBGb3IgZXhhbXBsZSwgaWYgZ29pbmcgZnJvbSA0MyBvZiA1MCBjaGFyYWN0ZXJzIHRvIDIxIG9mIDUwIGNoYXJhY3RlcnMuXG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCAmJlxuICAgICAgICBjdXJyZW50QW5ub3VuY2VtZW50TmV4dEFubm91bmNlbWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPVxuICAgICAgICAgIE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKSAqIG1vZHVsdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQudG9Mb2NhbGVTdHJpbmcoKTtcbiAgfVxufVxuIl19
@@ -67,8 +67,8 @@ export class SkyCharacterCounterInputDirective {
67
67
  }
68
68
  // eslint-disable-next-line @typescript-eslint/no-empty-function
69
69
  #validatorChange = () => { };
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: SkyCharacterCounterInputDirective, selector: "[skyCharacterCounter]", inputs: { skyCharacterCounterIndicator: "skyCharacterCounterIndicator", skyCharacterCounterLimit: "skyCharacterCounterLimit" }, providers: [
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: SkyCharacterCounterInputDirective, selector: "[skyCharacterCounter]", inputs: { skyCharacterCounterIndicator: "skyCharacterCounterIndicator", skyCharacterCounterLimit: "skyCharacterCounterLimit" }, providers: [
72
72
  {
73
73
  provide: NG_VALIDATORS,
74
74
  useExisting: SkyCharacterCounterInputDirective,
@@ -76,7 +76,7 @@ export class SkyCharacterCounterInputDirective {
76
76
  },
77
77
  ], ngImport: i0 }); }
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterInputDirective, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterInputDirective, decorators: [{
80
80
  type: Directive,
81
81
  args: [{
82
82
  selector: '[skyCharacterCounter]',
@@ -3,22 +3,24 @@ import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';
5
5
  import { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';
6
+ import { SkyCharacterCounterScreenReaderPipe } from './character-counter-screen-reader.pipe';
6
7
  import { SkyCharacterCounterInputDirective } from './character-counter.directive';
7
8
  import * as i0 from "@angular/core";
8
9
  export class SkyCharacterCounterModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterModule, declarations: [SkyCharacterCounterInputDirective,
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterModule, declarations: [SkyCharacterCounterInputDirective,
11
12
  SkyCharacterCounterIndicatorComponent], imports: [CommonModule,
12
13
  FormsModule,
13
14
  ReactiveFormsModule,
15
+ SkyCharacterCounterScreenReaderPipe,
14
16
  SkyFormsResourcesModule], exports: [SkyCharacterCounterInputDirective,
15
17
  SkyCharacterCounterIndicatorComponent] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterModule, imports: [CommonModule,
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterModule, imports: [CommonModule,
17
19
  FormsModule,
18
20
  ReactiveFormsModule,
19
21
  SkyFormsResourcesModule] }); }
20
22
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCharacterCounterModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCharacterCounterModule, decorators: [{
22
24
  type: NgModule,
23
25
  args: [{
24
26
  declarations: [
@@ -29,6 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
29
31
  CommonModule,
30
32
  FormsModule,
31
33
  ReactiveFormsModule,
34
+ SkyCharacterCounterScreenReaderPipe,
32
35
  SkyFormsResourcesModule,
33
36
  ],
34
37
  exports: [
@@ -37,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
37
40
  ],
38
41
  }]
39
42
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWtCbEYsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCOytHQUF6Qix5QkFBeUIsaUJBZGxDLGlDQUFpQztZQUNqQyxxQ0FBcUMsYUFHckMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsdUJBQXVCLGFBR3ZCLGlDQUFpQztZQUNqQyxxQ0FBcUM7K0dBRzVCLHlCQUF5QixZQVZsQyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQix1QkFBdUI7OzJGQU9kLHlCQUF5QjtrQkFoQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlDQUFpQzt3QkFDakMscUNBQXFDO3FCQUN0QztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSxcbiAgICBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGFyYWN0ZXJDb3VudGVyTW9kdWxlIHt9XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQW1CbEYsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCOytHQUF6Qix5QkFBeUIsaUJBZmxDLGlDQUFpQztZQUNqQyxxQ0FBcUMsYUFHckMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsbUNBQW1DO1lBQ25DLHVCQUF1QixhQUd2QixpQ0FBaUM7WUFDakMscUNBQXFDOytHQUc1Qix5QkFBeUIsWUFYbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFFbkIsdUJBQXVCOzsyRkFPZCx5QkFBeUI7a0JBakJyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQ0FBaUM7d0JBQ2pDLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG1DQUFtQzt3QkFDbkMsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUnO1xuaW1wb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUsXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJNb2R1bGUge31cbiJdfQ==
@@ -7,10 +7,10 @@ import * as i1 from "@skyux/core";
7
7
  * element.
8
8
  */
9
9
  export class SkyCheckboxLabelComponent {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCheckboxLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: SkyCheckboxLabelComponent, selector: "sky-checkbox-label", ngImport: i0, template: "<span class=\"sky-switch-label\"\n ><span skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n", dependencies: [{ kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCheckboxLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: SkyCheckboxLabelComponent, selector: "sky-checkbox-label", ngImport: i0, template: "<span class=\"sky-switch-label\"\n ><span skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n", dependencies: [{ kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCheckboxLabelComponent, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCheckboxLabelComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'sky-checkbox-label', template: "<span class=\"sky-switch-label\"\n ><span skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n" }]
16
16
  }] });
@@ -2,10 +2,14 @@ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output,
2
2
  import { NgControl, Validators } from '@angular/forms';
3
3
  import { SkyIdService, SkyLogService } from '@skyux/core';
4
4
  import { BehaviorSubject } from 'rxjs';
5
+ import { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';
5
6
  import { SkyFormsUtility } from '../shared/forms-utility';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
8
- import * as i2 from "@skyux/indicators";
9
+ import * as i2 from "../form-error/form-errors.component";
10
+ import * as i3 from "@skyux/indicators";
11
+ import * as i4 from "./checkbox-label.component";
12
+ import * as i5 from "@skyux/i18n";
9
13
  /**
10
14
  * Replaces the HTML input element with `type="checkbox"`. When users select a checkbox, its value
11
15
  * is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.
@@ -164,9 +168,9 @@ export class SkyCheckboxComponent {
164
168
  #_name;
165
169
  #_required;
166
170
  #changeDetector;
171
+ #idSvc;
167
172
  #defaultId;
168
173
  #logger;
169
- #ngControl;
170
174
  constructor() {
171
175
  /**
172
176
  * The index for the checkbox. If not defined, the index is set to the position of the
@@ -185,17 +189,22 @@ export class SkyCheckboxComponent {
185
189
  this.#_name = '';
186
190
  this.#_required = false;
187
191
  this.#changeDetector = inject(ChangeDetectorRef);
188
- this.#defaultId = inject(SkyIdService).generateId();
192
+ this.#idSvc = inject(SkyIdService);
193
+ this.#defaultId = this.#idSvc.generateId();
189
194
  this.#logger = inject(SkyLogService);
190
- this.#ngControl = inject(NgControl, { optional: true, self: true });
195
+ this.ngControl = inject(NgControl, {
196
+ optional: true,
197
+ self: true,
198
+ });
199
+ this.errorId = this.#idSvc.generateId();
191
200
  /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */
192
201
  // eslint-disable-next-line @typescript-eslint/no-empty-function
193
202
  // istanbul ignore next
194
203
  this.onTouched = () => { };
195
204
  // eslint-disable-next-line @typescript-eslint/no-empty-function
196
205
  this.#controlValueAccessorChangeFn = (value) => { };
197
- if (this.#ngControl) {
198
- this.#ngControl.valueAccessor = this;
206
+ if (this.ngControl) {
207
+ this.ngControl.valueAccessor = this;
199
208
  }
200
209
  this.#checkedChange = new BehaviorSubject(this.checked);
201
210
  this.#disabledChange = new BehaviorSubject(this.disabled);
@@ -207,10 +216,10 @@ export class SkyCheckboxComponent {
207
216
  this.name = this.#defaultId;
208
217
  }
209
218
  ngOnInit() {
210
- if (this.#ngControl) {
219
+ if (this.ngControl) {
211
220
  // Backwards compatibility support for anyone still using Validators.Required.
212
221
  this.required =
213
- this.required || SkyFormsUtility.hasRequiredValidation(this.#ngControl);
222
+ this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);
214
223
  }
215
224
  }
216
225
  /**
@@ -269,22 +278,22 @@ export class SkyCheckboxComponent {
269
278
  }
270
279
  #setValidators() {
271
280
  if (this.required &&
272
- !this.#ngControl?.control?.hasValidator(Validators.requiredTrue)) {
273
- this.#ngControl?.control?.addValidators(Validators.requiredTrue);
274
- this.#ngControl?.control?.updateValueAndValidity();
281
+ !this.ngControl?.control?.hasValidator(Validators.requiredTrue)) {
282
+ this.ngControl?.control?.addValidators(Validators.requiredTrue);
283
+ this.ngControl?.control?.updateValueAndValidity();
275
284
  }
276
285
  else if (!this.required &&
277
- this.#ngControl?.control?.hasValidator(Validators.requiredTrue)) {
278
- this.#ngControl.control.removeValidators(Validators.requiredTrue);
279
- this.#ngControl.control?.updateValueAndValidity();
286
+ this.ngControl?.control?.hasValidator(Validators.requiredTrue)) {
287
+ this.ngControl.control.removeValidators(Validators.requiredTrue);
288
+ this.ngControl.control?.updateValueAndValidity();
280
289
  }
281
290
  }
282
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: SkyCheckboxComponent, selector: "sky-checkbox", inputs: { label: "label", labelledBy: "labelledBy", id: "id", disabled: "disabled", tabindex: "tabindex", name: "name", icon: "icon", checkboxType: "checkboxType", checked: "checked", indeterminate: "indeterminate", required: "required" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange", indeterminateChange: "indeterminateChange" }, viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n #inputEl\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon; else checkedOrIndeterminateTemplate\"\n [fixedWidth]=\"true\"\n [icon]=\"icon\"\n />\n <ng-template #checkedOrIndeterminateTemplate>\n <sky-icon\n *ngIf=\"!indeterminate && checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n [fixedWidth]=\"true\"\n icon=\"check\"\n />\n <sky-icon\n *ngIf=\"indeterminate\"\n class=\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\"\n [fixedWidth]=\"true\"\n icon=\"square\"\n />\n </ng-template>\n </span>\n <ng-content select=\"sky-checkbox-label\" />\n</label>\n", styles: [".sky-checkbox-icon-indeterminate{font-size:14px}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-indeterminate{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-icon-modern-indeterminate{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }] }); }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: SkyCheckboxComponent, selector: "sky-checkbox", inputs: { label: "label", labelledBy: "labelledBy", id: "id", disabled: "disabled", tabindex: "tabindex", name: "name", icon: "icon", checkboxType: "checkboxType", checked: "checked", indeterminate: "indeterminate", required: "required", labelText: "labelText" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange", indeterminateChange: "indeterminateChange" }, providers: [{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true }], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.aria-invalid]=\"!!ngControl?.errors\"\n [attr.aria-errormessage]=\"\n labelText && ngControl?.errors ? errorId : undefined\n \"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n #inputEl\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon; else checkedOrIndeterminateTemplate\"\n [fixedWidth]=\"true\"\n [icon]=\"icon\"\n />\n <ng-template #checkedOrIndeterminateTemplate>\n <sky-icon\n *ngIf=\"!indeterminate && checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n [fixedWidth]=\"true\"\n icon=\"check\"\n />\n <sky-icon\n *ngIf=\"indeterminate\"\n class=\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\"\n [fixedWidth]=\"true\"\n icon=\"square\"\n />\n </ng-template>\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <sky-checkbox-label>{{ labelText }}</sky-checkbox-label>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-checkbox-label\" />\n </ng-template>\n</label>\n<sky-form-errors\n *ngIf=\"labelText && ngControl?.errors\"\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"'skyux_checkbox_required_label_text' | skyLibResources\"\n [showErrors]=\"ngControl?.touched || ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [".sky-checkbox-icon-indeterminate{font-size:14px}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-indeterminate{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-icon-modern-indeterminate{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }, { kind: "component", type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i4.SkyCheckboxLabelComponent, selector: "sky-checkbox-label" }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
284
293
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyCheckboxComponent, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCheckboxComponent, decorators: [{
286
295
  type: Component,
287
- args: [{ selector: 'sky-checkbox', template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n #inputEl\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon; else checkedOrIndeterminateTemplate\"\n [fixedWidth]=\"true\"\n [icon]=\"icon\"\n />\n <ng-template #checkedOrIndeterminateTemplate>\n <sky-icon\n *ngIf=\"!indeterminate && checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n [fixedWidth]=\"true\"\n icon=\"check\"\n />\n <sky-icon\n *ngIf=\"indeterminate\"\n class=\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\"\n [fixedWidth]=\"true\"\n icon=\"square\"\n />\n </ng-template>\n </span>\n <ng-content select=\"sky-checkbox-label\" />\n</label>\n", styles: [".sky-checkbox-icon-indeterminate{font-size:14px}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-indeterminate{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-icon-modern-indeterminate{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"] }]
296
+ args: [{ selector: 'sky-checkbox', providers: [{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true }], template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.aria-invalid]=\"!!ngControl?.errors\"\n [attr.aria-errormessage]=\"\n labelText && ngControl?.errors ? errorId : undefined\n \"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n #inputEl\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon; else checkedOrIndeterminateTemplate\"\n [fixedWidth]=\"true\"\n [icon]=\"icon\"\n />\n <ng-template #checkedOrIndeterminateTemplate>\n <sky-icon\n *ngIf=\"!indeterminate && checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n [fixedWidth]=\"true\"\n icon=\"check\"\n />\n <sky-icon\n *ngIf=\"indeterminate\"\n class=\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\"\n [fixedWidth]=\"true\"\n icon=\"square\"\n />\n </ng-template>\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <sky-checkbox-label>{{ labelText }}</sky-checkbox-label>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-checkbox-label\" />\n </ng-template>\n</label>\n<sky-form-errors\n *ngIf=\"labelText && ngControl?.errors\"\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"'skyux_checkbox_required_label_text' | skyLibResources\"\n [showErrors]=\"ngControl?.touched || ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [".sky-checkbox-icon-indeterminate{font-size:14px}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-indeterminate{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-icon-modern-indeterminate{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked,.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-indeterminate{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"] }]
288
297
  }], ctorParameters: () => [], propDecorators: { label: [{
289
298
  type: Input
290
299
  }], labelledBy: [{
@@ -309,6 +318,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
309
318
  type: Input
310
319
  }], required: [{
311
320
  type: Input
321
+ }], labelText: [{
322
+ type: Input
312
323
  }], checkedChange: [{
313
324
  type: Output
314
325
  }], disabledChange: [{
@@ -319,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
319
330
  type: ViewChild,
320
331
  args: ['inputEl', { read: ElementRef }]
321
332
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBSTFEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9COzs7T0FHRztJQUNILElBQ1csRUFBRSxDQUFDLEtBQXlCO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixLQUFLLFFBQVEsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUEwQjtRQUM1QyxNQUFNLFlBQVksR0FBRyxl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QyxTQUFTOytCQUNFLGNBQWM7d0RBWWpCLEtBQUs7c0JBRFgsS0FBSztnQkFVQyxVQUFVO3NCQURoQixLQUFLO2dCQVFLLEVBQUU7c0JBRFosS0FBSztnQkFlSyxRQUFRO3NCQURsQixLQUFLO2dCQXFCQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUssSUFBSTtzQkFEZCxLQUFLO2dCQWtCQyxNQUFNO3NCQUZaLE1BQU07Z0JBVUEsSUFBSTtzQkFEVixLQUFLO2dCQWFLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBb0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBcUJLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBc0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBY0ssYUFBYTtzQkFEdkIsTUFBTTtnQkFTSSxjQUFjO3NCQUR4QixNQUFNO2dCQVVJLG1CQUFtQjtzQkFEN0IsTUFBTTtnQkFNSSxPQUFPO3NCQURqQixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkU2VydmljZSwgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9mb3Jtcy11dGlsaXR5JztcblxuaW1wb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICcuL2NoZWNrYm94LWNoYW5nZSc7XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIEhUTUwgaW5wdXQgZWxlbWVudCB3aXRoIGB0eXBlPVwiY2hlY2tib3hcImAuIFdoZW4gdXNlcnMgc2VsZWN0IGEgY2hlY2tib3gsIGl0cyB2YWx1ZVxuICogaXMgZHJpdmVuIHRocm91Z2ggYW4gYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LWNoZWNrYm94YCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSBjaGVja2JveC4gVGhpcyBzZXRzIHRoZSBjaGVja2JveCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94I2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIGNoZWNrYm94IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLiBZb3UgbXVzdCBzZXQgdGhpcyBwcm9wZXJ0eSBmb3IgaWNvblxuICAgKiBjaGVja2JveGVzLiBJZiB0aGUgY2hlY2tib3ggaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEhUTUwgZWxlbWVudCBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVscyB0aGVcbiAgICogY2hlY2tib3guIFRoaXMgc2V0cyB0aGUgY2hlY2tib3gncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94I2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgY2hlY2tib3ggZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgZm9yIHRoZSBjaGVja2JveC5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1jaGVja2JveC0ke3ZhbHVlfS1pbnB1dGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRJZCA9IGBza3ktY2hlY2tib3gtJHt0aGlzLiNkZWZhdWx0SWR9LWlucHV0YDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjaGVja2JveCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gU2t5Rm9ybXNVdGlsaXR5LmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKGNvZXJjZWRWYWx1ZSAhPT0gdGhpcy4jX2Rpc2FibGVkKSB7XG4gICAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG4gICAgICB0aGlzLiNkaXNhYmxlZENoYW5nZS5uZXh0KGNvZXJjZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBmb3IgdGhlIGNoZWNrYm94LiBJZiBub3QgZGVmaW5lZCwgdGhlIGluZGV4IGlzIHNldCB0byB0aGUgcG9zaXRpb24gb2YgdGhlXG4gICAqIGNoZWNrYm94IG9uIGxvYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IDA7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgY2hlY2tib3guXG4gICAqIElmIGEgdmFsdWUgaXMgbm90IHByb3ZpZGVkLCBhbiBhdXRvZ2VuZXJhdGVkIElEIGlzIHVzZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy4jZGVmYXVsdElkKSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IGBza3ktY2hlY2tib3gtJHt0aGlzLiNkZWZhdWx0SWR9YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX25hbWU7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q2hlY2tib3hDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIGRpc3BsYXkgaW4gcGxhY2Ugb2YgdGhlIGNoZWNrYm94LiBUbyBncm91cCBpY29uIGNoZWNrYm94ZXNcbiAgICogbGlrZSBpbiB0aGUgZGVtbywgcGxhY2UgdGhlIGBza3ktc3dpdGNoLWljb24tZ3JvdXBgIGNsYXNzIG9uIHRoZSBkaXJlY3QgcGFyZW50XG4gICAqIGVsZW1lbnQgb2YgdGhlIGNoZWNrYm94ZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFja2dyb3VuZCBjb2xvciB0eXBlIGFmdGVyIHVzZXJzIHNlbGVjdCBhIGNoZWNrYm94IHdoZXJlIHRoZVxuICAgKiBgaWNvbmAgcHJvcGVydHkgZGlzcGxheXMgYW4gaWNvbiBpbiBwbGFjZSBvZiB0aGUgY2hlY2tib3guIFRoZSB2YWxpZCBvcHRpb25zIGNvcnJlc3BvbmQgdG9cbiAgICogW3RoZSBsYWJlbCBjb21wb25lbnQnc10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xhYmVsKVxuICAgKiBsYWJlbCB0eXBlcy4gYFwiaW5mb1wiYCBjcmVhdGVzIGEgYmx1ZSBiYWNrZ3JvdW5kLCBgXCJzdWNjZXNzXCJgIGNyZWF0ZXMgYSBncmVlblxuICAgKiBiYWNrZ3JvdW5kLCBgXCJ3YXJuaW5nXCJgIGNyZWF0ZXMgYW4gb3JhbmdlIGJhY2tncm91bmQsIGFuZCBgXCJkYW5nZXJcImAgY3JlYXRlcyBhIHJlZCBiYWNrZ3JvdW5kLlxuICAgKiBAZGVmYXVsdCBcImluZm9cIlxuICAgKiBAZGVwcmVjYXRlZCBjaGVja2JveFR5cGUgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2JveFR5cGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmNoZWNrYm94VHlwZScsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNfY2hlY2tib3hUeXBlID0gdmFsdWUgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogJ2luZm8nO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGVja2JveFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrYm94VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBzZWxlY3RlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAhIXZhbHVlO1xuICAgIGlmIChjaGVja2VkICE9PSB0aGlzLiNfY2hlY2tlZCkge1xuICAgICAgdGhpcy4jX2NoZWNrZWQgPSBjaGVja2VkO1xuICAgICAgdGhpcy4jY2hlY2tlZENoYW5nZS5uZXh0KGNoZWNrZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgaW4gdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUuIFRoaXMgaGFzIG5vIHZpc3VhbCBlZmZlY3QgZm9yIGljb24gY2hlY2tib3hlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaW5kZXRlcm1pbmF0ZSA9ICEhdmFsdWU7XG4gICAgdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZS5uZXh0KHRoaXMuI19pbmRldGVybWluYXRlKTtcbiAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy4jX2luZGV0ZXJtaW5hdGU7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pbmRldGVybWluYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIHJlcXVpcmVkIGZvciBmb3JtIHZhbGlkYXRpb24uXG4gICAqIFdoZW4geW91IHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYCwgdGhlIGNvbXBvbmVudCBhZGRzIGBhcmlhLXJlcXVpcmVkYCBhbmQgYHJlcXVpcmVkYFxuICAgKiBhdHRyaWJ1dGVzIHRvIHRoZSBpbnB1dCBlbGVtZW50IHNvIHRoYXQgZm9ybXMgZGlzcGxheSBhbiBpbnZhbGlkIHN0YXRlIHVudGlsIHRoZSBpbnB1dCBlbGVtZW50XG4gICAqIGlzIGNvbXBsZXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19yZXF1aXJlZCA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuI3NldFZhbGlkYXRvcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19yZXF1aXJlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBvciBkZXNlbGVjdCB0aGUgY2hlY2tib3guXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBjaGVja2VkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiNjaGVja2VkQ2hhbmdlT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZENoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnM7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBzZXQgaW5wdXRFbChlbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbnB1dEVsID0gZWw7XG4gICAgaWYgKGVsICYmIHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgZWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy5pbmRldGVybWluYXRlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5wdXRFbCgpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2lucHV0RWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5wdXRJZCA9ICcnO1xuXG4gICNjaGVja2VkQ2hhbmdlOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICNjaGVja2VkQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAjZGlzYWJsZWRDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgI2Rpc2FibGVkQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAjaW5kZXRlcm1pbmF0ZUNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAjaW5kZXRlcm1pbmF0ZUNoYW5nZU9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAjX2NoZWNrZWQgPSBmYWxzZTtcbiAgI19jaGVja2JveFR5cGUgPSAnaW5mbyc7XG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI19pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICNfaW5wdXRFbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgI19uYW1lID0gJyc7XG4gICNfcmVxdWlyZWQgPSBmYWxzZTtcblxuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjZGVmYXVsdElkID0gaW5qZWN0KFNreUlkU2VydmljZSkuZ2VuZXJhdGVJZCgpO1xuICAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICAjbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodGhpcy4jbmdDb250cm9sKSB7XG4gICAgICB0aGlzLiNuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hlY2tlZENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLiNkaXNhYmxlZENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5kaXNhYmxlZCk7XG4gICAgdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5kaXNhYmxlZCk7XG5cbiAgICB0aGlzLiNjaGVja2VkQ2hhbmdlT2JzID0gdGhpcy4jY2hlY2tlZENoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLiNkaXNhYmxlZENoYW5nZU9icyA9IHRoaXMuI2Rpc2FibGVkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnMgPSB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5pZCA9IHRoaXMuI2RlZmF1bHRJZDtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLiNkZWZhdWx0SWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI25nQ29udHJvbCkge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBmb3IgYW55b25lIHN0aWxsIHVzaW5nIFZhbGlkYXRvcnMuUmVxdWlyZWQuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuI25nQ29udHJvbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gISF2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGVja2JveCBpbnB1dCBlbGVtZW50LlxuICAgKiBUb2dnbGVzIGNoZWNrZWQgc3RhdGUgaWYgZWxlbWVudCBpcyBub3QgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgb25JbnRlcmFjdGlvbkV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIFdlIGFsd2F5cyBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGNoYW5nZSBldmVudC5cbiAgICAvLyBPdGhlcndpc2UgdGhlIGNoYW5nZSBldmVudCwgZnJvbSB0aGUgaW5wdXQgZWxlbWVudCwgd2lsbCBidWJibGUgdXAgYW5kXG4gICAgLy8gZW1pdCBpdHMgZXZlbnQgb2JqZWN0IHRvIHRoZSBgY2hhbmdlYCBvdXRwdXQuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy4jdG9nZ2xlKCk7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLiNlbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgYmx1cnJlZC4gTmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3Nvci4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBwdWJsaWMgb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICh2YWx1ZSkgPT4ge307XG5cbiAgI2VtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHsgY2hlY2tlZDogdGhpcy5jaGVja2VkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCB2YWx1ZSBiZXR3ZWVuIHRydWUgYW5kIGZhbHNlXG4gICAqL1xuICAjdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gIH1cblxuICAjc2V0VmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJlcXVpcmVkICYmXG4gICAgICAhdGhpcy4jbmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpXG4gICAgKSB7XG4gICAgICB0aGlzLiNuZ0NvbnRyb2w/LmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgdGhpcy4jbmdDb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLnJlcXVpcmVkICYmXG4gICAgICB0aGlzLiNuZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuI25nQ29udHJvbC5jb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgdGhpcy4jbmdDb250cm9sLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbFxuICBjbGFzcz1cInNreS1jaGVja2JveC13cmFwcGVyIHNreS1zd2l0Y2hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogcmVxdWlyZWQsXG4gICAgJ3NreS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaW5wdXQgc2t5LXN3aXRjaC1pbnB1dFwiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgKGNoYW5nZSk9XCJvbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gICAgI2lucHV0RWxcbiAgLz5cbiAgPHNwYW5cbiAgICBjbGFzcz1cInNreS1zd2l0Y2gtY29udHJvbCBza3ktcm91bmRlZC1jb3JuZXJzXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWljb24nOiBpY29uLFxuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pbmZvJzogY2hlY2tib3hUeXBlID09PSAnaW5mbycsXG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLXN1Y2Nlc3MnOiBjaGVja2JveFR5cGUgPT09ICdzdWNjZXNzJyxcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtd2FybmluZyc6IGNoZWNrYm94VHlwZSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1kYW5nZXInOiBjaGVja2JveFR5cGUgPT09ICdkYW5nZXInXG4gICAgfVwiXG4gID5cbiAgICA8c2t5LWljb25cbiAgICAgICpuZ0lmPVwiaWNvbjsgZWxzZSBjaGVja2VkT3JJbmRldGVybWluYXRlVGVtcGxhdGVcIlxuICAgICAgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2hlY2tlZE9ySW5kZXRlcm1pbmF0ZVRlbXBsYXRlPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpuZ0lmPVwiIWluZGV0ZXJtaW5hdGUgJiYgY2hlY2tlZFwiXG4gICAgICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LWljb24tbW9kZXJuLWNoZWNrZWRcIlxuICAgICAgICBbZml4ZWRXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgaWNvbj1cImNoZWNrXCJcbiAgICAgIC8+XG4gICAgICA8c2t5LWljb25cbiAgICAgICAgKm5nSWY9XCJpbmRldGVybWluYXRlXCJcbiAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1pbmRldGVybWluYXRlIHNreS1jaGVja2JveC1pY29uLW1vZGVybi1pbmRldGVybWluYXRlXCJcbiAgICAgICAgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIGljb249XCJzcXVhcmVcIlxuICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NwYW4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1jaGVja2JveC1sYWJlbFwiIC8+XG48L2xhYmVsPlxuIl19
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBSTFEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9COzs7T0FHRztJQUNILElBQ1csRUFBRSxDQUFDLEtBQXlCO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixLQUFLLFFBQVEsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7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U0FBUyxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOzhHQS9WVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0YkFGcEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMseUdBNk1uQyxVQUFVLDZCQzFPMUMsMHhFQXlFQTs7MkZEMUNhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxjQUFjLGFBR2IsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7d0RBVTFELEtBQUs7c0JBRFgsS0FBSztnQkFVQyxVQUFVO3NCQURoQixLQUFLO2dCQVFLLEVBQUU7c0JBRFosS0FBSztnQkFlSyxRQUFRO3NCQURsQixLQUFLO2dCQXFCQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUssSUFBSTtzQkFEZCxLQUFLO2dCQWtCQyxNQUFNO3NCQUZaLE1BQU07Z0JBVUEsSUFBSTtzQkFEVixLQUFLO2dCQWFLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBb0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBcUJLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBc0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZUMsU0FBUztzQkFEZixLQUFLO2dCQU9LLGFBQWE7c0JBRHZCLE1BQU07Z0JBU0ksY0FBYztzQkFEeEIsTUFBTTtnQkFVSSxtQkFBbUI7c0JBRDdCLE1BQU07Z0JBTUksT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UsIFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3Jtc1V0aWxpdHkgfSBmcm9tICcuLi9zaGFyZWQvZm9ybXMtdXRpbGl0eSc7XG5cbmltcG9ydCB7IFNreUNoZWNrYm94Q2hhbmdlIH0gZnJvbSAnLi9jaGVja2JveC1jaGFuZ2UnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCBgdHlwZT1cImNoZWNrYm94XCJgLiBXaGVuIHVzZXJzIHNlbGVjdCBhIGNoZWNrYm94LCBpdHMgdmFsdWVcbiAqIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1jaGVja2JveGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY2hlY2tib3ggZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIFlvdSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IGZvciBpY29uXG4gICAqIGNoZWNrYm94ZXMuIElmIHRoZSBjaGVja2JveCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRNTCBlbGVtZW50IElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZVxuICAgKiBjaGVja2JveC4gVGhpcyBzZXRzIHRoZSBjaGVja2JveCdzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSBjaGVja2JveCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBsYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIGNoZWNrYm94LlxuICAgKiBJZiBhIHZhbHVlIGlzIG5vdCBwcm92aWRlZCwgYW4gYXV0b2dlbmVyYXRlZCBJRCBpcyB1c2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNoZWNrYm94LSR7dmFsdWV9LWlucHV0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH0taW5wdXRgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNoZWNrYm94IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlLm5leHQoY29lcmNlZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluZGV4IGZvciB0aGUgY2hlY2tib3guIElmIG5vdCBkZWZpbmVkLCB0aGUgaW5kZXggaXMgc2V0IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGVcbiAgICogY2hlY2tib3ggb24gbG9hZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBjaGVja2JveC5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNkZWZhdWx0SWQpIHtcbiAgICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19uYW1lID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH1gO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBwdWJsaWMgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lDaGVja2JveENoYW5nZT4oKTtcblxuICAvKipcbiAgICogVGhlIGljb24gdG8gZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgY2hlY2tib3guIFRvIGdyb3VwIGljb24gY2hlY2tib3hlc1xuICAgKiBsaWtlIGluIHRoZSBkZW1vLCBwbGFjZSB0aGUgYHNreS1zd2l0Y2gtaWNvbi1ncm91cGAgY2xhc3Mgb24gdGhlIGRpcmVjdCBwYXJlbnRcbiAgICogZWxlbWVudCBvZiB0aGUgY2hlY2tib3hlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHR5cGUgYWZ0ZXIgdXNlcnMgc2VsZWN0IGEgY2hlY2tib3ggd2hlcmUgdGhlXG4gICAqIGBpY29uYCBwcm9wZXJ0eSBkaXNwbGF5cyBhbiBpY29uIGluIHBsYWNlIG9mIHRoZSBjaGVja2JveC4gVGhlIHZhbGlkIG9wdGlvbnMgY29ycmVzcG9uZCB0b1xuICAgKiBbdGhlIGxhYmVsIGNvbXBvbmVudCdzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvbGFiZWwpXG4gICAqIGxhYmVsIHR5cGVzLiBgXCJpbmZvXCJgIGNyZWF0ZXMgYSBibHVlIGJhY2tncm91bmQsIGBcInN1Y2Nlc3NcImAgY3JlYXRlcyBhIGdyZWVuXG4gICAqIGJhY2tncm91bmQsIGBcIndhcm5pbmdcImAgY3JlYXRlcyBhbiBvcmFuZ2UgYmFja2dyb3VuZCwgYW5kIGBcImRhbmdlclwiYCBjcmVhdGVzIGEgcmVkIGJhY2tncm91bmQuXG4gICAqIEBkZWZhdWx0IFwiaW5mb1wiXG4gICAqIEBkZXByZWNhdGVkIGNoZWNrYm94VHlwZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoZWNrYm94VHlwZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5Q2hlY2tib3hDb21wb25lbnQuY2hlY2tib3hUeXBlJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogNyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI19jaGVja2JveFR5cGUgPSB2YWx1ZSA/IHZhbHVlLnRvTG93ZXJDYXNlKCkgOiAnaW5mbyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoZWNrYm94VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfY2hlY2tib3hUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgY2hlY2tlZCA9ICEhdmFsdWU7XG4gICAgaWYgKGNoZWNrZWQgIT09IHRoaXMuI19jaGVja2VkKSB7XG4gICAgICB0aGlzLiNfY2hlY2tlZCA9IGNoZWNrZWQ7XG4gICAgICB0aGlzLiNjaGVja2VkQ2hhbmdlLm5leHQoY2hlY2tlZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfY2hlY2tlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbiB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZS4gVGhpcyBoYXMgbm8gdmlzdWFsIGVmZmVjdCBmb3IgaWNvbiBjaGVja2JveGVzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbmRldGVybWluYXRlID0gISF2YWx1ZTtcbiAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlLm5leHQodGhpcy4jX2luZGV0ZXJtaW5hdGUpO1xuICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB0aGlzLiNfaW5kZXRlcm1pbmF0ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2luZGV0ZXJtaW5hdGU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gdmFsaWRhdGlvbi5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnQgc28gdGhhdCBmb3JtcyBkaXNwbGF5IGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3JlcXVpcmVkID0gU2t5Rm9ybXNVdGlsaXR5LmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy4jc2V0VmFsaWRhdG9ycygpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX3JlcXVpcmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGNoZWNrYm94J3MgbGFiZWwuIFVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIGBza3ktY2hlY2tib3gtbGFiZWxgIHdoZW4gdGhlIGxhYmVsIGlzIHRleHQtb25seS5cbiAgICogU3BlY2lmeWluZyBgbGFiZWxUZXh0YCBhbHNvIGVuYWJsZXMgYXV0b21hdGljIGVycm9yIG1lc3NhZ2UgaGFuZGxpbmcgZm9yIGNoZWNrYm94LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBvciBkZXNlbGVjdCB0aGUgY2hlY2tib3guXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBjaGVja2VkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiNjaGVja2VkQ2hhbmdlT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZENoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnM7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBzZXQgaW5wdXRFbChlbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbnB1dEVsID0gZWw7XG4gICAgaWYgKGVsICYmIHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgZWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy5pbmRldGVybWluYXRlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5wdXRFbCgpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2lucHV0RWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5wdXRJZCA9ICcnO1xuXG4gICNjaGVja2VkQ2hhbmdlOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICNjaGVja2VkQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAjZGlzYWJsZWRDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgI2Rpc2FibGVkQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAjaW5kZXRlcm1pbmF0ZUNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAjaW5kZXRlcm1pbmF0ZUNoYW5nZU9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAjX2NoZWNrZWQgPSBmYWxzZTtcbiAgI19jaGVja2JveFR5cGUgPSAnaW5mbyc7XG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI19pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICNfaW5wdXRFbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgI19uYW1lID0gJyc7XG4gICNfcmVxdWlyZWQgPSBmYWxzZTtcblxuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgI2RlZmF1bHRJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgI2xvZ2dlciA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNlbGY6IHRydWUsXG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy4jZGlzYWJsZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuZGlzYWJsZWQpO1xuXG4gICAgdGhpcy4jY2hlY2tlZENoYW5nZU9icyA9IHRoaXMuI2NoZWNrZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jZGlzYWJsZWRDaGFuZ2VPYnMgPSB0aGlzLiNkaXNhYmxlZENoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlT2JzID0gdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuaWQgPSB0aGlzLiNkZWZhdWx0SWQ7XG4gICAgdGhpcy5uYW1lID0gdGhpcy4jZGVmYXVsdElkO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBmb3IgYW55b25lIHN0aWxsIHVzaW5nIFZhbGlkYXRvcnMuUmVxdWlyZWQuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMubmdDb250cm9sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNjb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNoZWNrYm94IGlucHV0IGVsZW1lbnQuXG4gICAqIFRvZ2dsZXMgY2hlY2tlZCBzdGF0ZSBpZiBlbGVtZW50IGlzIG5vdCBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBvbkludGVyYWN0aW9uRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2UgYWx3YXlzIGhhdmUgdG8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hhbmdlIGV2ZW50LlxuICAgIC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcbiAgICAvLyBlbWl0IGl0cyBldmVudCBvYmplY3QgdG8gdGhlIGBjaGFuZ2VgIG91dHB1dC5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLiN0b2dnbGUoKTtcbiAgICAgIHRoaXMuI2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIHRoaXMuI2VtaXRDaGFuZ2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCBpcyBibHVycmVkLiBOZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKHZhbHVlKSA9PiB7fTtcblxuICAjZW1pdENoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQoeyBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgYGNoZWNrZWRgIHZhbHVlIGJldHdlZW4gdHJ1ZSBhbmQgZmFsc2VcbiAgICovXG4gICN0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgfVxuXG4gICNzZXRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVxdWlyZWQgJiZcbiAgICAgICF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKVxuICAgICkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIXRoaXMucmVxdWlyZWQgJiZcbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpXG4gICAgKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsXG4gIGNsYXNzPVwic2t5LWNoZWNrYm94LXdyYXBwZXIgc2t5LXN3aXRjaFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZCxcbiAgICAnc2t5LXN3aXRjaC1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNreS1jaGVja2JveC1pbnB1dCBza3ktc3dpdGNoLWlucHV0XCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3RhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFuZ0NvbnRyb2w/LmVycm9yc1wiXG4gICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiXG4gICAgICBsYWJlbFRleHQgJiYgbmdDb250cm9sPy5lcnJvcnMgPyBlcnJvcklkIDogdW5kZWZpbmVkXG4gICAgXCJcbiAgICAoYmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICAoY2hhbmdlKT1cIm9uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgICAjaW5wdXRFbFxuICAvPlxuICA8c3BhblxuICAgIGNsYXNzPVwic2t5LXN3aXRjaC1jb250cm9sIHNreS1yb3VuZGVkLWNvcm5lcnNcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaWNvbic6IGljb24sXG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWluZm8nOiBjaGVja2JveFR5cGUgPT09ICdpbmZvJyxcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtc3VjY2Vzcyc6IGNoZWNrYm94VHlwZSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC13YXJuaW5nJzogY2hlY2tib3hUeXBlID09PSAnd2FybmluZycsXG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWRhbmdlcic6IGNoZWNrYm94VHlwZSA9PT0gJ2RhbmdlcidcbiAgICB9XCJcbiAgPlxuICAgIDxza3ktaWNvblxuICAgICAgKm5nSWY9XCJpY29uOyBlbHNlIGNoZWNrZWRPckluZGV0ZXJtaW5hdGVUZW1wbGF0ZVwiXG4gICAgICBbZml4ZWRXaWR0aF09XCJ0cnVlXCJcbiAgICAgIFtpY29uXT1cImljb25cIlxuICAgIC8+XG4gICAgPG5nLXRlbXBsYXRlICNjaGVja2VkT3JJbmRldGVybWluYXRlVGVtcGxhdGU+XG4gICAgICA8c2t5LWljb25cbiAgICAgICAgKm5nSWY9XCIhaW5kZXRlcm1pbmF0ZSAmJiBjaGVja2VkXCJcbiAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1tb2Rlcm4tY2hlY2tlZFwiXG4gICAgICAgIFtmaXhlZFdpZHRoXT1cInRydWVcIlxuICAgICAgICBpY29uPVwiY2hlY2tcIlxuICAgICAgLz5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICAqbmdJZj1cImluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBjbGFzcz1cInNreS1jaGVja2JveC1pY29uLWluZGV0ZXJtaW5hdGUgc2t5LWNoZWNrYm94LWljb24tbW9kZXJuLWluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBbZml4ZWRXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgaWNvbj1cInNxdWFyZVwiXG4gICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsVGV4dDsgZWxzZSBsYWJlbEVsZW1lbnRcIj5cbiAgICA8c2t5LWNoZWNrYm94LWxhYmVsPnt7IGxhYmVsVGV4dCB9fTwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNsYWJlbEVsZW1lbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94LWxhYmVsXCIgLz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG48c2t5LWZvcm0tZXJyb3JzXG4gICpuZ0lmPVwibGFiZWxUZXh0ICYmIG5nQ29udHJvbD8uZXJyb3JzXCJcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbZXJyb3JzXT1cIm5nQ29udHJvbD8uZXJyb3JzXCJcbiAgW2xhYmVsVGV4dF09XCInc2t5dXhfY2hlY2tib3hfcmVxdWlyZWRfbGFiZWxfdGV4dCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICBbc2hvd0Vycm9yc109XCJuZ0NvbnRyb2w/LnRvdWNoZWQgfHwgbmdDb250cm9sPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19