@skyux/forms 12.27.0 → 13.0.0-alpha.1

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 (117) hide show
  1. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  2. package/fesm2022/skyux-forms.mjs +159 -159
  3. package/fesm2022/skyux-forms.mjs.map +1 -1
  4. package/index.d.ts +1800 -61
  5. package/package.json +14 -14
  6. package/testing/index.d.ts +1117 -3
  7. package/lib/modules/character-counter/character-counter-indicator.component.d.ts +0 -12
  8. package/lib/modules/character-counter/character-counter-screen-reader.pipe.d.ts +0 -8
  9. package/lib/modules/character-counter/character-counter.directive.d.ts +0 -29
  10. package/lib/modules/character-counter/character-counter.module.d.ts +0 -12
  11. package/lib/modules/checkbox/checkbox-change.d.ts +0 -9
  12. package/lib/modules/checkbox/checkbox-group-heading-level.d.ts +0 -1
  13. package/lib/modules/checkbox/checkbox-group-heading-style.d.ts +0 -1
  14. package/lib/modules/checkbox/checkbox-group.component.d.ts +0 -76
  15. package/lib/modules/checkbox/checkbox-label-text-label.component.d.ts +0 -12
  16. package/lib/modules/checkbox/checkbox-label.component.d.ts +0 -11
  17. package/lib/modules/checkbox/checkbox.component.d.ts +0 -195
  18. package/lib/modules/checkbox/checkbox.module.d.ts +0 -19
  19. package/lib/modules/field-group/field-group-heading-level.d.ts +0 -1
  20. package/lib/modules/field-group/field-group-heading-style.d.ts +0 -1
  21. package/lib/modules/field-group/field-group.component.d.ts +0 -61
  22. package/lib/modules/field-group/field-group.module.d.ts +0 -7
  23. package/lib/modules/file-attachment/file-attachment/file-attachment-change.d.ts +0 -7
  24. package/lib/modules/file-attachment/file-attachment/file-attachment-click.d.ts +0 -7
  25. package/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.d.ts +0 -11
  26. package/lib/modules/file-attachment/file-attachment/file-attachment-label.component.d.ts +0 -17
  27. package/lib/modules/file-attachment/file-attachment/file-attachment.component.d.ts +0 -153
  28. package/lib/modules/file-attachment/file-attachment/file-attachment.module.d.ts +0 -9
  29. package/lib/modules/file-attachment/file-attachment/file-attachment.service.d.ts +0 -17
  30. package/lib/modules/file-attachment/file-attachments.module.d.ts +0 -11
  31. package/lib/modules/file-attachment/file-drop/file-drop-change.d.ts +0 -11
  32. package/lib/modules/file-attachment/file-drop/file-drop.component.d.ts +0 -162
  33. package/lib/modules/file-attachment/file-drop/file-drop.module.d.ts +0 -9
  34. package/lib/modules/file-attachment/file-drop/file-item.component.d.ts +0 -33
  35. package/lib/modules/file-attachment/file-drop/file-link.d.ts +0 -6
  36. package/lib/modules/file-attachment/shared/file-item-error-type.d.ts +0 -4
  37. package/lib/modules/file-attachment/shared/file-item.d.ts +0 -20
  38. package/lib/modules/file-attachment/shared/file-item.service.d.ts +0 -13
  39. package/lib/modules/file-attachment/shared/file-size.pipe.d.ts +0 -13
  40. package/lib/modules/file-attachment/shared/file-validate-function.d.ts +0 -5
  41. package/lib/modules/form-error/form-error.component.d.ts +0 -25
  42. package/lib/modules/form-error/form-error.module.d.ts +0 -7
  43. package/lib/modules/form-error/form-errors-enabled-token.d.ts +0 -5
  44. package/lib/modules/form-error/form-errors.component.d.ts +0 -30
  45. package/lib/modules/form-error/form-errors.module.d.ts +0 -11
  46. package/lib/modules/input-box/input-box-adapter.service.d.ts +0 -28
  47. package/lib/modules/input-box/input-box-control.directive.d.ts +0 -11
  48. package/lib/modules/input-box/input-box-hint-text.pipe.d.ts +0 -10
  49. package/lib/modules/input-box/input-box-host.service.d.ts +0 -40
  50. package/lib/modules/input-box/input-box-populate-args.d.ts +0 -12
  51. package/lib/modules/input-box/input-box.component.d.ts +0 -118
  52. package/lib/modules/input-box/input-box.module.d.ts +0 -16
  53. package/lib/modules/radio/radio-group-id.service.d.ts +0 -24
  54. package/lib/modules/radio/radio-group.component.d.ts +0 -157
  55. package/lib/modules/radio/radio-label.component.d.ts +0 -13
  56. package/lib/modules/radio/radio.component.d.ts +0 -169
  57. package/lib/modules/radio/radio.module.d.ts +0 -18
  58. package/lib/modules/radio/types/radio-change.d.ts +0 -9
  59. package/lib/modules/radio/types/radio-group-heading-level.d.ts +0 -1
  60. package/lib/modules/radio/types/radio-group-heading-style.d.ts +0 -1
  61. package/lib/modules/radio/types/radio-type.d.ts +0 -4
  62. package/lib/modules/required-state/required-state.directive.d.ts +0 -17
  63. package/lib/modules/selection-box/selection-box-adapter.service.d.ts +0 -46
  64. package/lib/modules/selection-box/selection-box-description.component.d.ts +0 -8
  65. package/lib/modules/selection-box/selection-box-grid.component.d.ts +0 -29
  66. package/lib/modules/selection-box/selection-box-header.component.d.ts +0 -8
  67. package/lib/modules/selection-box/selection-box.component.d.ts +0 -29
  68. package/lib/modules/selection-box/selection-box.module.d.ts +0 -12
  69. package/lib/modules/selection-box/types/selection-box-grid-align-items-type.d.ts +0 -4
  70. package/lib/modules/selection-box/types/selection-box-grid-align-items.d.ts +0 -14
  71. package/lib/modules/shared/sky-forms-resources.module.d.ts +0 -10
  72. package/lib/modules/toggle-switch/toggle-switch-label.component.d.ts +0 -12
  73. package/lib/modules/toggle-switch/toggle-switch.component.d.ts +0 -81
  74. package/lib/modules/toggle-switch/toggle-switch.module.d.ts +0 -12
  75. package/lib/modules/toggle-switch/types/toggle-switch-change.d.ts +0 -6
  76. package/testing/legacy/checkbox-fixture.d.ts +0 -38
  77. package/testing/legacy/radio-fixture.d.ts +0 -26
  78. package/testing/modules/character-counter/character-counter-indicator-harness-filters.d.ts +0 -6
  79. package/testing/modules/character-counter/character-counter-indicator-harness.d.ts +0 -31
  80. package/testing/modules/checkbox/checkbox-group-harness-filters.d.ts +0 -6
  81. package/testing/modules/checkbox/checkbox-group-harness.d.ts +0 -73
  82. package/testing/modules/checkbox/checkbox-harness-filters.d.ts +0 -6
  83. package/testing/modules/checkbox/checkbox-harness.d.ts +0 -103
  84. package/testing/modules/checkbox/checkbox-label-harness.d.ts +0 -16
  85. package/testing/modules/checkbox/checkbox-label-text-label.harness.d.ts +0 -16
  86. package/testing/modules/field-group/field-group-harness-filters.d.ts +0 -6
  87. package/testing/modules/field-group/field-group-harness.d.ts +0 -56
  88. package/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.d.ts +0 -6
  89. package/testing/modules/file-attachment/file-attachment/file-attachment-harness.d.ts +0 -101
  90. package/testing/modules/file-attachment/file-drop/file-drop-harness-filters.d.ts +0 -6
  91. package/testing/modules/file-attachment/file-drop/file-drop-harness.d.ts +0 -124
  92. package/testing/modules/file-attachment/file-drop/file-drop-link-upload-harness.d.ts +0 -28
  93. package/testing/modules/file-attachment/file-drop/file-drop-link-upload-input-harness.d.ts +0 -14
  94. package/testing/modules/file-attachment/file-drop/file-item-harness-filters.d.ts +0 -10
  95. package/testing/modules/file-attachment/file-drop/file-item-harness.d.ts +0 -28
  96. package/testing/modules/file-attachment/shared/provide-file-attachment-testing.d.ts +0 -11
  97. package/testing/modules/form-error/form-error-harness.d.ts +0 -23
  98. package/testing/modules/form-error/form-error-harness.filters.d.ts +0 -6
  99. package/testing/modules/form-error/form-errors-harness.d.ts +0 -24
  100. package/testing/modules/form-error/form-errors-harness.filters.d.ts +0 -6
  101. package/testing/modules/input-box/input-box-harness-filters.d.ts +0 -6
  102. package/testing/modules/input-box/input-box-harness.d.ts +0 -108
  103. package/testing/modules/radio/radio-group-harness-filters.d.ts +0 -6
  104. package/testing/modules/radio/radio-group-harness.d.ts +0 -69
  105. package/testing/modules/radio/radio-harness-filters.d.ts +0 -6
  106. package/testing/modules/radio/radio-harness.d.ts +0 -79
  107. package/testing/modules/radio/radio-label-harness.d.ts +0 -16
  108. package/testing/modules/selection-box/selection-box-description-harness.d.ts +0 -15
  109. package/testing/modules/selection-box/selection-box-grid-harness-filters.d.ts +0 -6
  110. package/testing/modules/selection-box/selection-box-grid-harness.d.ts +0 -27
  111. package/testing/modules/selection-box/selection-box-harness-filters.d.ts +0 -6
  112. package/testing/modules/selection-box/selection-box-harness.d.ts +0 -36
  113. package/testing/modules/selection-box/selection-box-header-harness.d.ts +0 -15
  114. package/testing/modules/toggle-switch/toggle-switch-harness-filters.d.ts +0 -6
  115. package/testing/modules/toggle-switch/toggle-switch-harness.d.ts +0 -67
  116. package/testing/modules/toggle-switch/toggle-switch-label-harness.d.ts +0 -16
  117. package/testing/public-api.d.ts +0 -35
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-forms.mjs","sources":["../../../../../libs/components/forms/src/lib/modules/shared/sky-forms-resources.module.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter-screen-reader.pipe.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter-indicator.component.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter-indicator.component.html","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter.directive.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter.module.ts","../../../../../libs/components/forms/src/lib/modules/form-error/form-errors-enabled-token.ts","../../../../../libs/components/forms/src/lib/modules/form-error/form-error.component.ts","../../../../../libs/components/forms/src/lib/modules/form-error/form-error.module.ts","../../../../../libs/components/forms/src/lib/modules/form-error/form-errors.component.ts","../../../../../libs/components/forms/src/lib/modules/form-error/form-errors.component.html","../../../../../libs/components/forms/src/lib/modules/form-error/form-errors.module.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-group.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-group.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label-text-label.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label-text-label.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.module.ts","../../../../../libs/components/forms/src/lib/modules/field-group/field-group.component.ts","../../../../../libs/components/forms/src/lib/modules/field-group/field-group.component.html","../../../../../libs/components/forms/src/lib/modules/field-group/field-group.module.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment-label.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment-label.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/shared/file-size.pipe.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment.service.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/shared/file-item.service.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment/file-attachment.module.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-host.service.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-control.directive.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-hint-text.pipe.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-adapter.service.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.html","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.module.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop/file-drop.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop/file-drop.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop/file-item.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop/file-item.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop/file-drop.module.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachments.module.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio-group-id.service.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio.module.ts","../../../../../libs/components/forms/src/lib/modules/required-state/required-state.directive.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-adapter.service.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-description.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-description.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-grid.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-grid.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-header.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-header.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.module.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch-label.component.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch-label.component.html","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.component.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.component.html","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.module.ts","../../../../../libs/components/forms/src/skyux-forms.ts"],"sourcesContent":["/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-forms' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_character_count_message: { message: '{0} characters out of {1}' },\n skyux_character_count_over_limit: {\n message: 'You are over the character limit.',\n },\n skyux_form_error_character_count: {\n message: 'Limit {0} to {1} characters.',\n },\n skyux_form_error_date: { message: 'Select or enter a valid date.' },\n skyux_form_error_date_max: {\n message: 'Select or enter a date on or before {0}.',\n },\n skyux_form_error_date_min: {\n message: 'Select or enter a date on or after {0}.',\n },\n skyux_form_error_fuzzy_date_future_disabled: {\n message: 'Future dates are disabled. Select or enter a date in the past.',\n },\n skyux_form_error_fuzzy_date_invalid: {\n message: 'Select or enter a valid date.',\n },\n skyux_form_error_fuzzy_date_max_date: {\n message: 'Select or enter a date on or before {0}.',\n },\n skyux_form_error_fuzzy_date_min_date: {\n message: 'Select or enter a date on or after {0}.',\n },\n skyux_form_error_fuzzy_date_year_required: { message: 'Year is required.' },\n skyux_form_error_email: {\n message: 'Enter an email address with a valid format.',\n },\n skyux_form_error_maxlength: { message: 'Limit {0} to {1} characters.' },\n skyux_form_error_minlength: {\n message: '{0} must be at least {1} characters.',\n },\n skyux_form_error_phone: {\n message:\n 'Enter a phone number matching the format for the selected country.',\n },\n skyux_form_error_required: { message: '{0} is required.' },\n skyux_form_error_time: { message: 'Select or enter a valid time.' },\n skyux_form_error_url: { message: 'Enter a URL with a valid format.' },\n skyux_form_group_required: { message: 'Required' },\n skyux_file_attachment_button_label_choose_file: { message: 'Attach file' },\n skyux_file_attachment_button_label_choose_file_label: {\n message: 'Attach file for',\n },\n skyux_file_attachment_button_label_replace_file: {\n message: 'Replace file',\n },\n skyux_file_attachment_button_label_replace_file_label: {\n message: 'Replace file {0} for',\n },\n skyux_file_attachment_file_item_delete: { message: 'Delete {0}' },\n skyux_file_attachment_file_item_remove: { message: 'Remove file {0} for' },\n skyux_file_attachment_file_size_b_plural: { message: '{0} bytes' },\n skyux_file_attachment_file_size_b_singular: { message: '{0} byte' },\n skyux_file_attachment_file_size_gb: { message: '{0} GB' },\n skyux_file_attachment_file_size_kb: { message: '{0} KB' },\n skyux_file_attachment_file_size_mb: { message: '{0} MB' },\n skyux_file_attachment_file_upload_drag_file_here: {\n message: 'Drag a file here',\n },\n skyux_file_attachment_file_upload_drag_or_click: {\n message: 'Drag a file here or click to browse',\n },\n skyux_file_attachment_file_upload_drop_files_here: {\n message: 'Drop files here',\n },\n skyux_file_attachment_file_upload_file_added: { message: '{0} added.' },\n skyux_file_attachment_file_upload_file_replaced: {\n message: '{0} removed. {1} added.',\n },\n skyux_file_attachment_file_upload_file_removed: { message: '{0} removed.' },\n skyux_file_attachment_file_upload_image_preview_alt_text: {\n message: 'Image preview',\n },\n skyux_file_attachment_file_upload_invalid_file: {\n message: 'This file type is invalid',\n },\n skyux_file_attachment_file_upload_link_label: { message: 'Link to a file' },\n skyux_file_attachment_file_upload_or_click_to_browse: {\n message: 'or click to browse',\n },\n skyux_file_attachment_file_upload_link_done: { message: 'Done' },\n skyux_file_attachment_file_upload_link_added: {\n message: 'Link to {0} added.',\n },\n skyux_file_attachment_file_upload_link_removed: {\n message: 'Link to {0} removed.',\n },\n skyux_file_attachment_file_type_error_label_text: {\n message: 'Upload one of these file types: {0}.',\n },\n skyux_file_attachment_file_type_error_label_text_with_name: {\n message: '{0}: Upload one of these file types: {1}.',\n },\n skyux_file_attachment_max_file_size_error_label_text: {\n message: 'Upload a file under {0}.',\n },\n skyux_file_attachment_max_file_size_error_label_text_with_name: {\n message: '{0}: Upload a file under {1}.',\n },\n skyux_file_attachment_min_file_size_error_label_text: {\n message: 'Upload a file over {0}.',\n },\n skyux_file_attachment_min_file_size_error_label_text_with_name: {\n message: '{0}: Upload a file over {1}.',\n },\n skyux_file_attachment_label_no_file_chosen: { message: 'No file chosen.' },\n skyux_file_attachment_required: { message: 'Required' },\n skyux_input_box_help_inline_aria_label: {\n message: 'Show help content for {0}',\n },\n },\n 'FR-CA': {\n skyux_character_count_message: { message: '{0} caractères de {1}' },\n skyux_character_count_over_limit: {\n message: 'Vous avez dépassé la limite de caractères.',\n },\n skyux_form_error_character_count: {\n message: 'Limite {0} de {1} caractère(s).',\n },\n skyux_form_error_date: {\n message: 'Sélectionnez ou entrez une date valide.',\n },\n skyux_form_error_date_max: {\n message: 'Sélectionnez ou entrez une date le ou avant le {0}.',\n },\n skyux_form_error_date_min: {\n message: 'Sélectionnez ou entrez une date le ou après le {0}.',\n },\n skyux_form_error_fuzzy_date_future_disabled: {\n message:\n 'Les dates futures sont désactivées; sélectionnez ou entrez une date dans le passé.',\n },\n skyux_form_error_fuzzy_date_invalid: {\n message: 'Sélectionnez ou entrez une date valide.',\n },\n skyux_form_error_fuzzy_date_max_date: {\n message: 'Sélectionnez ou entrez une date le ou avant le {0}.',\n },\n skyux_form_error_fuzzy_date_min_date: {\n message: 'Sélectionnez ou entrez une date le ou après le {0}.',\n },\n skyux_form_error_fuzzy_date_year_required: {\n message: 'L’année est requise.',\n },\n skyux_form_error_email: {\n message: 'Entrez une adresse courriel avec un format valide.',\n },\n skyux_form_error_maxlength: { message: 'Limite {0} de {1} caractère(s).' },\n skyux_form_error_minlength: {\n message: '{0} doit avoir au moins {1} caractère(s).',\n },\n skyux_form_error_phone: {\n message:\n 'Entrez un numéro de téléphone correspondant au format du pays sélectionné.',\n },\n skyux_form_error_required: { message: '{0} est requis.' },\n skyux_form_error_time: {\n message: 'Sélectionnez ou entrez une heure valide.',\n },\n skyux_form_error_url: { message: 'Entrez une URL avec un format valide.' },\n skyux_form_group_required: { message: 'Requis' },\n skyux_file_attachment_button_label_choose_file: {\n message: 'Joindre un fichier',\n },\n skyux_file_attachment_button_label_choose_file_label: {\n message: 'Joindre un fichier pour',\n },\n skyux_file_attachment_button_label_replace_file: {\n message: 'Remplacer le fichier',\n },\n skyux_file_attachment_button_label_replace_file_label: {\n message: 'Remplacer le fichier {0} pour',\n },\n skyux_file_attachment_file_item_delete: { message: 'Supprimer {0}' },\n skyux_file_attachment_file_item_remove: {\n message: 'Retirer le fichier {0} pour',\n },\n skyux_file_attachment_file_size_b_plural: { message: '{0} octets' },\n skyux_file_attachment_file_size_b_singular: { message: '{0} octet' },\n skyux_file_attachment_file_size_gb: { message: '{0} Go' },\n skyux_file_attachment_file_size_kb: { message: '{0} Ko' },\n skyux_file_attachment_file_size_mb: { message: '{0} Mo' },\n skyux_file_attachment_file_upload_drag_file_here: {\n message: 'Faites glisser un fichier ici',\n },\n skyux_file_attachment_file_upload_drag_or_click: {\n message: 'Faites glisser un fichier ici ou cliquez pour naviguer',\n },\n skyux_file_attachment_file_upload_drop_files_here: {\n message: 'Déplacez les fichiers ici',\n },\n skyux_file_attachment_file_upload_file_added: {\n message: '{0} a été ajouté.',\n },\n skyux_file_attachment_file_upload_file_replaced: {\n message: '{0} a été retiré. {1} a été ajouté.',\n },\n skyux_file_attachment_file_upload_file_removed: {\n message: '{0} a été retiré.',\n },\n skyux_file_attachment_file_upload_image_preview_alt_text: {\n message: 'Aperçu de l’image',\n },\n skyux_file_attachment_file_upload_invalid_file: {\n message: 'Ce type de fichier n’est pas valide',\n },\n skyux_file_attachment_file_upload_link_label: {\n message: 'Liens vers un fichier',\n },\n skyux_file_attachment_file_upload_or_click_to_browse: {\n message: 'ou cliquez pour naviguer',\n },\n skyux_file_attachment_file_upload_link_done: { message: 'Terminé' },\n skyux_file_attachment_file_upload_link_added: {\n message: 'Le lien vers {0} a été ajouté.',\n },\n skyux_file_attachment_file_upload_link_removed: {\n message: 'Le lien vers {0} a été retiré.',\n },\n skyux_file_attachment_file_type_error_label_text: {\n message: 'Téléversez l’un de ces types de fichier : {0}.',\n },\n skyux_file_attachment_file_type_error_label_text_with_name: {\n message: '{0} : Téléversez l’un de ces types de fichier : {1}.',\n },\n skyux_file_attachment_max_file_size_error_label_text: {\n message: 'Téléversez un fichier de moins de {0}.',\n },\n skyux_file_attachment_max_file_size_error_label_text_with_name: {\n message: '{0} : Téléversez un fichier de moins de {1}.',\n },\n skyux_file_attachment_min_file_size_error_label_text: {\n message: 'Téléversez un fichier de plus de {0}.',\n },\n skyux_file_attachment_min_file_size_error_label_text_with_name: {\n message: '{0} : Téléversez un fichier de plus de {1}.',\n },\n skyux_file_attachment_label_no_file_chosen: {\n message: 'Aucun fichier choisi.',\n },\n skyux_file_attachment_required: { message: 'Requis' },\n skyux_input_box_help_inline_aria_label: {\n message: 'Afficher le contenu de l’aide pour {0}',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyFormsResourcesModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'skyCharacterCounterScreenReader',\n standalone: true,\n})\nexport class SkyCharacterCounterScreenReaderPipe implements PipeTransform {\n #previousAnnouncementPoint: number | undefined;\n\n public transform(\n characterCount: number | undefined,\n characterCountLimit: number | undefined,\n ): string {\n /* Safety check */\n /* istanbul ignore if */\n if (characterCount === undefined || characterCountLimit === undefined) {\n return '';\n }\n\n // We want to announce every 10 characters if we are within 50 of the limit or every 50 otherwise.\n const modulus =\n characterCountLimit - Math.floor(characterCount / 10) * 10 <= 50\n ? 10\n : 50;\n\n if (\n characterCount === characterCountLimit ||\n characterCount % modulus === 0 ||\n this.#previousAnnouncementPoint === undefined\n ) {\n this.#previousAnnouncementPoint = characterCount;\n } else {\n // We want the floor of the previous announcement and modulus in case the previous announcement wasn't an announcement point.\n const previousAnnouncementQuotient = Math.floor(\n this.#previousAnnouncementPoint / modulus,\n );\n // Lower limit of what announcement should have been made for the current count\n const currentAnnouncementQuotient = Math.floor(characterCount / modulus);\n // Next announcement that would be made if the current count increases\n const currentAnnouncementNextAnnouncement = Math.ceil(\n characterCount / modulus,\n );\n\n // Jump to the appropriate announcement point if the count jumps. For example, if going from 43 of 50 characters to 21 of 50 characters.\n if (\n currentAnnouncementQuotient !== previousAnnouncementQuotient &&\n currentAnnouncementNextAnnouncement !== previousAnnouncementQuotient\n ) {\n this.#previousAnnouncementPoint =\n Math.floor(characterCount / modulus) * modulus;\n }\n }\n\n return this.#previousAnnouncementPoint.toLocaleString();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: 'sky-character-counter-indicator',\n templateUrl: './character-counter-indicator.component.html',\n styleUrls: ['./character-counter-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyCharacterCounterIndicatorComponent {\n #_characterCountLimit = 0;\n #_characterCount = 0;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef) {\n this.#changeDetector = changeDetector;\n }\n\n public get characterCount(): number {\n return this.#_characterCount;\n }\n\n @Input()\n public set characterCount(count: number) {\n this.#_characterCount = count;\n this.#changeDetector.markForCheck();\n }\n\n public get characterCountLimit(): number {\n return this.#_characterCountLimit;\n }\n\n @Input()\n public set characterCountLimit(limit: number) {\n this.#_characterCountLimit = limit;\n this.#changeDetector.markForCheck();\n }\n}\n","<span\n class=\"sky-character-count-label sky-font-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n @if (characterCount > characterCountLimit) {\n <ng-container>{{\n 'skyux_character_count_over_limit' | skyLibResources\n }}</ng-container>\n } @else {\n @if (\n characterCount | skyCharacterCounterScreenReader: characterCountLimit;\n as screenReaderCount\n ) {\n <ng-container>{{\n 'skyux_character_count_message'\n | skyLibResources: screenReaderCount : characterCountLimit\n }}</ng-container>\n }\n }\n</span>\n","import { Directive, Input } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';\n\n/**\n * Creates an input field that validates the number of characters. Place this directive on\n * an `input` or `textarea` element. If users enter more characters than allowed, then the\n * input field is invalid and the component displays an error indicator.\n * @required\n */\n@Directive({\n selector: '[skyCharacterCounter]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCharacterCounterInputDirective,\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class SkyCharacterCounterInputDirective implements Validator {\n /**\n * The character count indicator component that displays the character count,\n * character limit, and over-the-limit indicator. Place this directive on an `input` or\n * `textarea` element.\n */\n @Input()\n public get skyCharacterCounterIndicator():\n | SkyCharacterCounterIndicatorComponent\n | undefined {\n return this.#_skyCharacterCounterIndicator;\n }\n public set skyCharacterCounterIndicator(\n value: SkyCharacterCounterIndicatorComponent | undefined,\n ) {\n this.#_skyCharacterCounterIndicator = value;\n this.#updateIndicatorLimit();\n }\n\n /**\n * The maximum number of characters allowed in the input field. Place this directive\n * on an `input` or `textarea` element. This property accepts `number` values.\n * @required\n */\n @Input()\n public set skyCharacterCounterLimit(value: number | undefined) {\n this.#skyCharacterCounterLimitOrDefault = value ?? 0;\n this.#updateIndicatorLimit();\n }\n\n #_skyCharacterCounterIndicator:\n | SkyCharacterCounterIndicatorComponent\n | undefined;\n\n #skyCharacterCounterLimitOrDefault = 0;\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n this.#updateIndicatorCount((value && value.length) || 0);\n\n if (!value) {\n return null;\n }\n\n const limit = this.#skyCharacterCounterLimitOrDefault;\n\n if (value.length > this.#skyCharacterCounterLimitOrDefault) {\n // This is needed to apply the appropriate error styles to the input.\n control.markAsTouched();\n\n return {\n skyCharacterCounter: {\n invalid: value,\n limit,\n },\n };\n }\n\n return null;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n #updateIndicatorCount(count: number): void {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCount = count;\n }\n }\n\n #updateIndicatorLimit(): void {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCountLimit =\n this.#skyCharacterCounterLimitOrDefault;\n }\n\n this.#validatorChange();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = (): void => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';\nimport { SkyCharacterCounterScreenReaderPipe } from './character-counter-screen-reader.pipe';\nimport { SkyCharacterCounterInputDirective } from './character-counter.directive';\n\n@NgModule({\n declarations: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCharacterCounterScreenReaderPipe,\n SkyFormsResourcesModule,\n ],\n exports: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n})\nexport class SkyCharacterCounterModule {}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * @internal\n */\nexport const SKY_FORM_ERRORS_ENABLED = new InjectionToken<boolean>(\n 'SKY_FORM_ERRORS_ENABLED',\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n inject,\n} from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { SKY_FORM_ERRORS_ENABLED } from './form-errors-enabled-token';\n\n/**\n * Displays default and custom form field error messages for form field components.\n * Set `labelText` on the form field component to automatically display required,\n * maximum length, minimum length, date, email, phone number, time, and URL errors.\n * To display custom errors, include sky-form-error elements in the form field component.\n */\n@Component({\n selector: 'sky-form-error',\n imports: [SkyStatusIndicatorModule],\n template: `\n @if (formErrors) {\n <sky-status-indicator\n class=\"sky-form-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ errorText }}\n </sky-status-indicator>\n }\n `,\n styleUrl: './form-error.component.scss',\n hostDirectives: [SkyThemeComponentClassDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyFormErrorComponent {\n /**\n * The name of the error.\n * @required\n */\n @Input({ required: true })\n public errorName!: string;\n\n /**\n * The error message to display.\n * @required\n */\n @Input({ required: true })\n public errorText!: string;\n\n @HostBinding('attr.data-error-name') public get dataErrorName(): string {\n return this.errorName;\n }\n\n protected readonly formErrors = inject(SKY_FORM_ERRORS_ENABLED, {\n optional: true,\n });\n\n constructor() {\n if (!this.formErrors) {\n throw new Error(\n 'The `sky-form-error` component is not supported in the provided context.',\n );\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyFormErrorComponent } from './form-error.component';\n\n@NgModule({\n imports: [SkyFormErrorComponent],\n exports: [SkyFormErrorComponent],\n})\nexport class SkyFormErrorModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n booleanAttribute,\n} from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\n\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyFormErrorComponent } from './form-error.component';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-form-errors',\n imports: [SkyIdModule, SkyFormErrorComponent, SkyFormsResourcesModule],\n templateUrl: './form-errors.component.html',\n styleUrls: ['./form-errors.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyFormErrorsComponent {\n /**\n * The validation errors from the form control.\n */\n @Input()\n public errors: ValidationErrors | null | undefined;\n\n /**\n * Input label text to display in the error messages.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Indicates whether the parent component's control is touched\n */\n @Input({ transform: booleanAttribute })\n public touched = false;\n\n /**\n * Indicates whether the parent component's control is dirty\n */\n @Input({ transform: booleanAttribute })\n public dirty = false;\n\n @HostBinding('attr.aria-atomic')\n protected readonly ariaAtomic = 'true';\n\n @HostBinding('attr.aria-live')\n protected readonly ariaLive = 'assertive';\n\n @HostBinding('attr.aria-relevant')\n protected readonly ariaRelevant = 'all';\n}\n","@if (labelText) {\n @if (touched) {\n @if (errors?.['required']) {\n <sky-form-error\n errorName=\"required\"\n [errorText]=\"'skyux_form_error_required' | skyLibResources: labelText\"\n />\n }\n\n @if (errors?.['minlength']; as minLengthError) {\n <sky-form-error\n errorName=\"minlength\"\n [errorText]=\"\n 'skyux_form_error_minlength'\n | skyLibResources: labelText : minLengthError.requiredLength\n \"\n />\n }\n\n @if (errors?.['skyDate'] && errors?.['skyDate']['invalid']) {\n <sky-form-error\n errorName=\"invalidDate\"\n [errorText]=\"'skyux_form_error_date' | skyLibResources\"\n />\n }\n\n @if (errors?.['skyDate'] && errors?.['skyDate']['minDate']) {\n <sky-form-error\n errorName=\"minDate\"\n [errorText]=\"\n 'skyux_form_error_date_min'\n | skyLibResources: errors?.['skyDate']['minDateFormatted']\n \"\n />\n }\n\n @if (errors?.['skyDate'] && errors?.['skyDate']['maxDate']) {\n <sky-form-error\n errorName=\"maxDate\"\n [errorText]=\"\n 'skyux_form_error_date_max'\n | skyLibResources: errors?.['skyDate']['maxDateFormatted']\n \"\n />\n }\n\n @if (\n errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['futureDisabled']\n ) {\n <sky-form-error\n errorName=\"fuzzyFutureDisabled\"\n [errorText]=\"\n 'skyux_form_error_fuzzy_date_future_disabled' | skyLibResources\n \"\n />\n }\n\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['invalid']) {\n <sky-form-error\n errorName=\"fuzzyInvalidDate\"\n [errorText]=\"'skyux_form_error_fuzzy_date_invalid' | skyLibResources\"\n />\n }\n\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['maxDate']) {\n <sky-form-error\n errorName=\"fuzzyMaxDate\"\n [errorText]=\"\n 'skyux_form_error_fuzzy_date_max_date'\n | skyLibResources: errors?.['skyFuzzyDate']['maxDateFormatted']\n \"\n />\n }\n\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['minDate']) {\n <sky-form-error\n errorName=\"fuzzyMinDate\"\n [errorText]=\"\n 'skyux_form_error_fuzzy_date_min_date'\n | skyLibResources\n : errors?.['skyFuzzyDate'] &&\n errors?.['skyFuzzyDate']['minDateFormatted']\n \"\n />\n }\n\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['yearRequired']) {\n <sky-form-error\n errorName=\"fuzzyYearRequired\"\n [errorText]=\"\n 'skyux_form_error_fuzzy_date_year_required' | skyLibResources\n \"\n />\n }\n\n @if (errors?.['skyEmail']) {\n <sky-form-error\n errorName=\"email\"\n [errorText]=\"'skyux_form_error_email' | skyLibResources\"\n />\n }\n\n @if (errors?.['skyPhoneField']) {\n <sky-form-error\n errorName=\"phone\"\n [errorText]=\"'skyux_form_error_phone' | skyLibResources\"\n />\n }\n\n @if (errors?.['skyTime']) {\n <sky-form-error\n errorName=\"time\"\n [errorText]=\"'skyux_form_error_time' | skyLibResources\"\n />\n }\n\n @if (errors?.['skyUrl']) {\n <sky-form-error\n errorName=\"url\"\n [errorText]=\"'skyux_form_error_url' | skyLibResources\"\n />\n }\n }\n\n @if (touched || dirty) {\n @if (errors?.['maxlength']; as maxLengthError) {\n <sky-form-error\n errorName=\"maxlength\"\n [errorText]=\"\n 'skyux_form_error_maxlength'\n | skyLibResources: labelText : maxLengthError.requiredLength\n \"\n />\n }\n <ng-content />\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyFormErrorComponent } from './form-error.component';\nimport { SkyFormErrorsComponent } from './form-errors.component';\n\n/**\n * @internal\n */\n@NgModule({\n imports: [SkyFormErrorsComponent, SkyFormErrorComponent],\n exports: [SkyFormErrorsComponent],\n})\nexport class SkyFormErrorsModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n HostBinding,\n Input,\n TemplateRef,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport {\n FormGroup,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeComponentClassDirective, SkyThemeModule } from '@skyux/theme';\n\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyCheckboxGroupHeadingLevel } from './checkbox-group-heading-level';\nimport { SkyCheckboxGroupHeadingStyle } from './checkbox-group-heading-style';\n\nfunction numberAttribute4(value: unknown): number {\n return numberAttribute(value, 4);\n}\n\n/**\n * Organizes checkboxes into a group.\n */\n@Component({\n selector: 'sky-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrl: './checkbox-group.component.scss',\n imports: [\n CommonModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyThemeModule,\n ],\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCheckboxGroupComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ],\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyCheckboxGroupComponent implements Validator {\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the checkbox group fieldset legend. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * The text to display as the checkbox group's heading.\n */\n @Input({ required: true })\n public headingText!: string;\n\n /**\n * Indicates whether to hide the `headingText`.\n */\n @Input({ transform: booleanAttribute })\n public headingHidden = false;\n\n /**\n * The semantic heading level in the document structure. By default, the heading text is not wrapped in a heading element.\n */\n @Input({ transform: numberAttribute })\n public set headingLevel(value: SkyCheckboxGroupHeadingLevel | undefined) {\n this.#_headingLevel = value && !isNaN(value) ? value : undefined;\n this.#updateStackedClasses();\n }\n\n public get headingLevel(): SkyCheckboxGroupHeadingLevel | undefined {\n return this.#_headingLevel;\n }\n\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 4\n */\n @Input({ transform: numberAttribute4 })\n public set headingStyle(value: SkyCheckboxGroupHeadingStyle) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * Whether the checkbox group is required.\n */\n @Input({ transform: booleanAttribute })\n public required = false;\n\n /**\n * Whether the checkbox group is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the checkbox group.\n */\n @Input({ transform: booleanAttribute })\n public set stacked(value: boolean) {\n this.#_stacked = value;\n this.#updateStackedClasses();\n }\n\n public get stacked(): boolean {\n return this.#_stacked;\n }\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the checkbox group heading. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n @HostBinding('class.sky-form-field-stacked')\n public stackedLg = false;\n\n @HostBinding('class.sky-field-group-stacked')\n public stackedXL = false;\n\n readonly #idSvc = inject(SkyIdService);\n protected errorId = this.#idSvc.generateId();\n protected headingClass = 'sky-font-heading-4';\n protected formErrorsDataId = 'checkbox-group-form-errors';\n protected formGroup: FormGroup | null | undefined;\n\n #_headingLevel: SkyCheckboxGroupHeadingLevel | undefined;\n #_stacked = false;\n\n public validate(formGroup: FormGroup): ValidationErrors | null {\n this.formGroup ??= formGroup;\n\n if (!this.required) {\n return null;\n }\n\n const controlNames = Object.keys(formGroup.controls);\n let atLeastOneSelected = false;\n\n controlNames.forEach((controlName) => {\n const control = formGroup.get(controlName);\n if (control?.value) {\n atLeastOneSelected = true;\n }\n });\n\n if (!atLeastOneSelected) {\n return { required: true };\n } else {\n return null;\n }\n }\n\n #updateStackedClasses(): void {\n this.stackedLg = !this.headingLevel && this.stacked;\n this.stackedXL = !!this.headingLevel && this.stacked;\n }\n}\n","<fieldset\n class=\"sky-checkbox-group\"\n [attr.aria-invalid]=\"!!formGroup?.errors\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-errormessage]=\"\n headingText && formGroup?.errors ? errorId : undefined\n \"\n>\n <legend\n class=\"sky-checkbox-group-legend\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden\n }\"\n >\n <span\n class=\"sky-checkbox-group-heading\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >\n @switch (headingLevel) {\n @case (3) {\n <h3 [class]=\"headingClass\">{{ headingText }}</h3>\n }\n @case (4) {\n <h4 [class]=\"headingClass\">{{ headingText }}</h4>\n }\n @case (5) {\n <h5 [class]=\"headingClass\">{{ headingText }}</h5>\n }\n @default {\n <span [class]=\"'sky-checkbox-group-heading-text ' + headingClass\">{{\n headingText\n }}</span>\n }\n }\n </span>\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_form_group_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n <div\n #hintTextEl=\"skyId\"\n skyId\n [ngClass]=\"{\n 'sky-checkbox-group-hint-text': !!hintText\n }\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n <span class=\"sky-checkbox-group-inline sky-switch-icon-group\">\n <ng-content select=\"sky-checkbox[icon], sky-checkbox[iconName]\" />\n </span>\n <span class=\"sky-checkbox-group-stacked\">\n <ng-content select=\"sky-checkbox\" />\n </span>\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [attr.data-sky-id]=\"formErrorsDataId\"\n [errors]=\"formGroup?.errors\"\n [labelText]=\"headingText\"\n [touched]=\"formGroup?.touched\"\n [dirty]=\"formGroup?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n","import { Component, Input } from '@angular/core';\n\n/**\n@internal\n */\n@Component({\n selector: 'sky-checkbox-label-text-label',\n styleUrls: [\n './checkbox-label-text-label.default.component.scss',\n './checkbox-label-text-label.modern.component.scss',\n ],\n templateUrl: './checkbox-label-text-label.component.html',\n standalone: false,\n})\nexport class SkyCheckboxLabelTextLabelComponent {\n @Input()\n public labelHidden = false;\n\n @Input()\n public set labelText(value: string) {\n this.#_labelText = value.trim();\n }\n\n public get labelText(): string {\n return this.#_labelText;\n }\n\n #_labelText = '';\n}\n","@if (!labelHidden) {\n <span class=\"sky-switch-label\">{{ labelText }}</span>\n}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a label for the checkbox. To display a help button beside the label, include a help button element, such as\n * `sky-help-inline`, in the `sky-checkbox-label` element and a `sky-control-help` CSS class on that help button\n * element.\n * @deprecated Use `labelText` input on `sky-checkbox-component` instead.\n */\n@Component({\n selector: 'sky-checkbox-label',\n templateUrl: './checkbox-label.component.html',\n standalone: false,\n})\nexport class SkyCheckboxLabelComponent {}\n","<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","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\n\nimport { SkyCheckboxChange } from './checkbox-change';\n\n/**\n * Replaces the HTML input element with `type=\"checkbox\"`. When users select a checkbox, its value\n * is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.\n */\n@Component({\n selector: 'sky-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: [\n './checkbox.default.component.scss',\n './checkbox.modern.component.scss',\n ],\n hostDirectives: [SkyThemeComponentClassDirective],\n providers: [\n { provide: NG_VALIDATORS, useExisting: SkyCheckboxComponent, multi: true },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyCheckboxComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ],\n standalone: false,\n})\nexport class SkyCheckboxComponent\n implements AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * The ARIA label for the checkbox. This sets the checkbox's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)\n * when the checkbox does not include a visible label. You must set this property for icon\n * checkboxes. If the checkbox includes a visible label, use `labelledBy` instead.\n * @deprecated Use `labelText` instead.\n */\n @Input()\n public set label(value: string | undefined) {\n this.#_label = value;\n\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.label', {\n deprecationMajorVersion: 9,\n });\n }\n }\n\n public get label(): string | undefined {\n return this.#_label;\n }\n\n /**\n * The HTML element ID of the element that labels the\n * checkbox. This sets the checkbox's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\n * If the checkbox does not include a visible label, use `label` instead.\n * @deprecated Use `labelText` instead.\n */\n @Input()\n public set labelledBy(value: string | undefined) {\n this.#_labelledBy = value;\n\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.labelledBy', {\n deprecationMajorVersion: 9,\n });\n }\n }\n\n public get labelledBy(): string | undefined {\n return this.#_labelledBy;\n }\n\n /**\n * The ID for the checkbox.\n * If a value is not provided, an autogenerated ID is used.\n */\n @Input()\n public set id(value: string | undefined) {\n if (value) {\n this.inputId = `sky-checkbox-${value}-input`;\n } else {\n this.inputId = `sky-checkbox-${this.#defaultId}-input`;\n }\n }\n\n /**\n * Whether to disable the checkbox on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (value !== this.#_disabled) {\n this.#_disabled = value;\n this.#disabledChange.next(value);\n }\n }\n\n /**\n * Whether the checkbox is disabled.\n */\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * The index for the checkbox. If not defined, the index is set to the position of the\n * checkbox on load.\n */\n @Input()\n public tabindex: number | undefined = 0;\n\n /**\n * The name for the checkbox.\n * If a value is not provided, an autogenerated ID is used.\n */\n @Input()\n public set name(value: string | undefined) {\n if (value && value !== this.#defaultId) {\n this.#_name = value;\n } else {\n this.#_name = `sky-checkbox-${this.#defaultId}`;\n }\n }\n\n public get name(): string {\n return this.#_name;\n }\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the checkbox label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public change = new EventEmitter<SkyCheckboxChange>();\n\n /**\n * The icon to display in place of the checkbox. To group icon checkboxes\n * like in the demo, place the checkboxes within a `sky-checkbox-group`.\n * @deprecated Use `iconName` instead.\n */\n @Input()\n public icon: string | undefined;\n\n /**\n * The SVG icon to display in place of the checkbox. To group icon checkboxes\n * like in the demo, place the checkboxes within a `sky-checkbox-group`.\n */\n @Input()\n public iconName: string | undefined;\n\n /**\n * The background color type after users select a checkbox where the\n * `icon` property displays an icon in place of the checkbox. The valid options correspond to\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `\"info\"` creates a blue background, `\"success\"` creates a green\n * background, `\"warning\"` creates an orange background, and `\"danger\"` creates a red background.\n * @default \"info\"\n * @deprecated The `checkboxType` input is no longer supported.\n */\n @Input()\n public set checkboxType(value: string | undefined) {\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.checkboxType', {\n deprecationMajorVersion: 7,\n });\n }\n\n this.#_checkboxType = value ? value.toLowerCase() : 'info';\n }\n\n public get checkboxType(): string {\n return this.#_checkboxType;\n }\n\n /**\n * Whether the checkbox is selected.\n * @default false\n */\n @Input()\n public set checked(value: boolean | undefined) {\n const checked = !!value;\n if (checked !== this.#_checked) {\n this.#_checked = checked;\n this.#checkedChange.next(checked);\n }\n }\n\n /**\n * Whether the checkbox is selected.\n */\n public get checked(): boolean {\n return this.#_checked;\n }\n\n /**\n * Whether the checkbox is in the indeterminate state. This has no visual effect for icon checkboxes.\n * @internal\n */\n @Input()\n public set indeterminate(value: boolean | undefined) {\n if (value !== this.#_indeterminate) {\n this.#_indeterminate = !!value;\n this.#indeterminateChange.next(this.#_indeterminate);\n if (this.inputEl) {\n this.inputEl.nativeElement.indeterminate = this.#_indeterminate;\n this.#changeDetector.markForCheck();\n }\n }\n }\n\n public get indeterminate(): boolean {\n return this.#_indeterminate;\n }\n\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public required = false;\n\n /**\n * The text to display as the checkbox's label. Use this instead of the `sky-checkbox-label` when the label is text-only.\n * Specifying `labelText` also enables automatic error message handling for checkbox.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Indicates whether to hide the `labelText`.\n */\n @Input({ transform: booleanAttribute })\n public labelHidden = false;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * Whether the checkbox is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the checkbox. If the checkbox is within a checkbox group,\n * set `stacked` on the checkbox group component instead.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.sky-form-field-stacked')\n public stacked = false;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the checkbox label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * Fires when users select or deselect the checkbox.\n */\n @Output()\n public get checkedChange(): Observable<boolean> {\n return this.#checkedChangeObs;\n }\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public get disabledChange(): Observable<boolean> {\n return this.#disabledChangeObs;\n }\n\n /**\n * Fires when the indeterminate state changes.\n * @internal\n */\n @Output()\n public get indeterminateChange(): Observable<boolean> {\n return this.#indeterminateChangeObs;\n }\n\n @ViewChild('inputEl', { read: ElementRef })\n public set inputEl(el: ElementRef | undefined) {\n this.#_inputEl = el;\n if (el && this.indeterminate) {\n el.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n public get inputEl(): ElementRef | undefined {\n return this.#_inputEl;\n }\n\n protected get isCheckboxRequired(): boolean {\n return !!(\n this.required ||\n this.control?.hasValidator(Validators.requiredTrue) ||\n this.control?.hasValidator(Validators.required)\n );\n }\n\n protected control: AbstractControl | undefined;\n protected inputId = '';\n\n #checkedChange: Subject<boolean>;\n #checkedChangeObs: Observable<boolean>;\n #disabledChange: Subject<boolean>;\n #disabledChangeObs: Observable<boolean>;\n #indeterminateChange: Subject<boolean>;\n #indeterminateChangeObs: Observable<boolean>;\n\n #_checked = false;\n #_checkboxType = 'info';\n #_disabled = false;\n #_indeterminate = false;\n #_inputEl: ElementRef | undefined;\n #_name = '';\n #_label: string | undefined;\n #_labelledBy: string | undefined;\n\n #changeDetector = inject(ChangeDetectorRef);\n #idSvc = inject(SkyIdService);\n #defaultId = this.#idSvc.generateId();\n #logger = inject(SkyLogService);\n\n protected readonly errorId = this.#idSvc.generateId();\n\n constructor() {\n this.#checkedChange = new Subject<boolean>();\n this.#disabledChange = new Subject<boolean>();\n this.#indeterminateChange = new Subject<boolean>();\n\n this.#checkedChangeObs = this.#checkedChange.asObservable();\n this.#disabledChangeObs = this.#disabledChange.asObservable();\n this.#indeterminateChangeObs = this.#indeterminateChange.asObservable();\n this.id = this.#defaultId;\n this.name = this.#defaultId;\n }\n\n public ngAfterViewInit(): void {\n this.#checkedChange.next(this.checked);\n this.#disabledChange.next(this.disabled);\n this.#indeterminateChange.next(this.indeterminate);\n }\n\n public validate(control: AbstractControl<boolean>): ValidationErrors | null {\n this.control ||= control;\n\n // In template-driven forms, Angular's native 'required' attribute directive only works\n // on `input[type=\"checkbox\"]` selectors, so we need to write the validation logic ourselves.\n // Also, we're treating Validators.required the same as Validators.requiredTrue internally, so\n // we need to account for that decision in our custom validator.\n return this.isCheckboxRequired && control.value !== true\n ? { required: true }\n : null;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public writeValue(value: any): void {\n this.checked = !!value;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public registerOnChange(fn: (value: any) => void): void {\n this.#controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n */\n public onInteractionEvent(event: Event): void {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n if (!this.disabled) {\n this.indeterminate = false;\n this.#toggle();\n this.#controlValueAccessorChangeFn(this.checked);\n this.#emitChangeEvent();\n }\n }\n\n public onInputBlur(): void {\n this.onTouched();\n }\n\n /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */\n\n // istanbul ignore next\n public onTouched: () => any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #controlValueAccessorChangeFn: (value: any) => void = (value) => {};\n\n #emitChangeEvent(): void {\n this.change.emit({ checked: this.checked });\n }\n\n /**\n * Toggles the `checked` value between true and false\n */\n #toggle(): void {\n this.checked = !this.checked;\n }\n}\n","<span class=\"sky-checkbox-outer-wrapper\">\n <label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': isCheckboxRequired,\n 'sky-switch-disabled': disabled\n }\"\n >\n <input\n #inputEl\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]=\"isCheckboxRequired\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-required]=\"isCheckboxRequired ? true : null\"\n [attr.aria-invalid]=\"!!control?.errors\"\n [attr.aria-errormessage]=\"\n labelText && control?.errors ? errorId : undefined\n \"\n [ngClass]=\"{\n 'sky-switch-invalid':\n (control?.touched || control?.dirty) && control?.errors\n }\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon || iconName,\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 @if (icon || iconName) {\n @if (iconName) {\n <sky-icon variant=\"solid\" [iconName]=\"iconName\" />\n } @else {\n <sky-icon [fixedWidth]=\"true\" [icon]=\"icon\" />\n }\n } @else {\n @if (indeterminate) {\n <sky-icon\n class=\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\"\n iconName=\"square\"\n variant=\"solid\"\n />\n } @else if (checked) {\n <sky-icon\n class=\"sky-checkbox-icon-modern-checked\"\n iconName=\"checkmark\"\n iconSize=\"s\"\n />\n }\n }\n </span>\n\n @if (labelText) {\n <sky-checkbox-label-text-label\n [labelText]=\"labelText\"\n [labelHidden]=\"labelHidden\"\n />\n } @else {\n <ng-content select=\"sky-checkbox-label\" />\n }\n </label>\n @if ((helpPopoverContent || helpKey) && labelText) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n class=\"sky-checkbox-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n</span>\n<span #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div\n class=\"sky-checkbox-hint-text sky-checkbox-form-margin\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n</span>\n<sky-form-errors\n [class.sky-checkbox-form-margin]=\"labelText && control?.errors\"\n [id]=\"errorId\"\n [errors]=\"control?.errors\"\n [labelText]=\"labelText\"\n [touched]=\"control?.touched\"\n [dirty]=\"control?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyCheckboxGroupComponent } from './checkbox-group.component';\nimport { SkyCheckboxLabelTextLabelComponent } from './checkbox-label-text-label.component';\nimport { SkyCheckboxLabelComponent } from './checkbox-label.component';\nimport { SkyCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n declarations: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxLabelTextLabelComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyTrimModule,\n SkyThemeModule,\n ],\n exports: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n ],\n})\nexport class SkyCheckboxModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n HostBinding,\n Input,\n TemplateRef,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFieldGroupHeadingLevel } from './field-group-heading-level';\nimport { SkyFieldGroupHeadingStyle } from './field-group-heading-style';\n\nfunction numberAttribute3(value: unknown): number {\n return numberAttribute(value, 3);\n}\n\n/**\n * Organizes form fields into a group.\n */\n@Component({\n selector: 'sky-field-group',\n templateUrl: './field-group.component.html',\n styleUrl: './field-group.component.scss',\n imports: [CommonModule, SkyHelpInlineModule, SkyIdModule, SkyThemeModule],\n})\nexport class SkyFieldGroupComponent {\n /**\n * The text to display as the field group's heading.\n */\n @Input({ required: true })\n public headingText!: string;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * Indicates whether to hide the `headingText`.\n */\n @Input({ transform: booleanAttribute })\n public headingHidden = false;\n\n /**\n * Whether the field group is stacked on another field group. When specified, the appropriate\n * vertical spacing is automatically added to the field group.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.sky-field-group-stacked')\n public stacked = false;\n\n /**\n * The semantic heading level in the document structure.\n * @default 3\n */\n @Input({ transform: numberAttribute3 })\n public headingLevel: SkyFieldGroupHeadingLevel = 3;\n\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 3\n */\n @Input({ transform: numberAttribute3 })\n public set headingStyle(value: SkyFieldGroupHeadingStyle) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the field group heading. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the field group heading. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n protected headingClass = 'sky-font-heading-3';\n}\n","<fieldset\n class=\"sky-field-group\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n>\n <legend\n class=\"sky-field-group-legend\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden\n }\"\n >\n <span class=\"sky-field-group-heading\">\n @switch (headingLevel) {\n @case (4) {\n <h4 [class]=\"headingClass\">{{ headingText }}</h4>\n }\n @default {\n <h3 [class]=\"headingClass\">{{ headingText }}</h3>\n }\n }\n </span>\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n class=\"sky-field-group-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n <div #hintTextEl=\"skyId\" skyId class=\"sky-field-group-hint-text-wrapper\">\n @if (hintText) {\n <div\n class=\"sky-field-group-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n </div>\n <div class=\"sky-field-group-content\">\n <ng-content />\n </div>\n</fieldset>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFieldGroupComponent } from './field-group.component';\n\n@NgModule({\n imports: [SkyFieldGroupComponent],\n exports: [SkyFieldGroupComponent],\n})\nexport class SkyFieldGroupModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { SkyIdModule, SkyLogService, SkyTrimModule } from '@skyux/core';\n\n/**\n * Displays a label above the file attachment element. To display a help button\n * beside the label, include a help button element, such as `sky-help-inline`,\n * in the `sky-file-attachment-label` element and a `sky-control-help` CSS class\n * on that help button element.\n * @deprecated Use the `labelText` input on the single file attachment component\n * instead.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyIdModule, SkyTrimModule],\n selector: 'sky-file-attachment-label',\n styleUrl: 'file-attachment-label.component.scss',\n templateUrl: './file-attachment-label.component.html',\n})\nexport class SkyFileAttachmentLabelComponent {\n @ViewChild('labelContentId')\n public labelContentId: { id: string } | undefined;\n\n constructor() {\n inject(SkyLogService).deprecated('SkyFileAttachmentLabelComponent', {\n deprecationMajorVersion: 9,\n replacementRecommendation:\n 'To add a label to single file attachment, use the `labelText` input ' +\n 'on the `sky-file-attachment` component instead.',\n });\n }\n}\n","<span class=\"sky-control-label\"\n ><span #labelContentId=\"skyId\" skyId skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n","import { formatNumber } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\n/**\n * @internal\n */\n@Pipe({\n name: 'skyFileSize',\n standalone: true,\n})\nexport class SkyFileSizePipe implements PipeTransform {\n readonly #resourcesService: SkyLibResourcesService;\n readonly #defaultLocale = 'en-US';\n\n constructor(resourcesService: SkyLibResourcesService) {\n this.#resourcesService = resourcesService;\n }\n\n public transform(input?: number | string | null): string {\n let decimalPlaces = 0,\n dividend = 1,\n template: string;\n\n if (input === null || input === undefined) {\n return '';\n }\n\n if (typeof input === 'string') {\n input = Number.parseInt(input);\n }\n\n if (Math.abs(input) === 1) {\n template = 'skyux_file_attachment_file_size_b_singular';\n } else if (input < 1024) {\n template = 'skyux_file_attachment_file_size_b_plural';\n } else if (input < Math.pow(1024, 2)) {\n template = 'skyux_file_attachment_file_size_kb';\n dividend = 1024;\n } else if (input < Math.pow(1024, 3)) {\n template = 'skyux_file_attachment_file_size_mb';\n dividend = Math.pow(1024, 2);\n decimalPlaces = 1;\n } else {\n template = 'skyux_file_attachment_file_size_gb';\n dividend = Math.pow(1024, 3);\n decimalPlaces = 1;\n }\n\n const roundedSize =\n Math.floor(input / (dividend / Math.pow(10, decimalPlaces))) /\n Math.pow(10, decimalPlaces);\n\n const formattedSize = formatNumber(\n roundedSize,\n this.#defaultLocale,\n '.0-3',\n );\n\n return this.#getString(template, formattedSize);\n }\n\n #getString(key: string, ...args: unknown[]): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.#resourcesService.getStringForLocale(\n { locale: this.#defaultLocale },\n key,\n ...args,\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Joins an array of IDs with a single space.\n * @internal\n */\n@Pipe({\n name: 'skyFileAttachmentJoinIds',\n standalone: true,\n})\nexport class SkyFileAttachmentJoinIdsPipe implements PipeTransform {\n public transform(...ids: (string | null | undefined)[]): string | null {\n // Remove undefined values and join with a \" \".\n return ids && ids.filter((id) => id).join(' ');\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyFileItem } from '../shared/file-item';\nimport { SkyFileValidateFn } from '../shared/file-validate-function';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileAttachmentService {\n public checkFiles(\n files: SkyFileItem[],\n minFileSize: number,\n maxFileSize: number,\n acceptedTypes?: string,\n validateFn?: SkyFileValidateFn,\n ): SkyFileItem[] {\n const fileResults: SkyFileItem[] = [];\n\n files.forEach((fileItem) => {\n if (fileItem.file.size < minFileSize) {\n fileItem.errorType = 'minFileSize';\n fileItem.errorParam = minFileSize.toString();\n fileResults.push(fileItem);\n } else if (fileItem.file.size > maxFileSize) {\n fileItem.errorType = 'maxFileSize';\n fileItem.errorParam = maxFileSize.toString();\n fileResults.push(fileItem);\n } else if (this.fileTypeRejected(fileItem.file.type, acceptedTypes)) {\n fileItem.errorType = 'fileType';\n fileItem.errorParam = this.#getAcceptedTypesList(acceptedTypes);\n fileResults.push(fileItem);\n } else if (validateFn) {\n const errorParam = validateFn(fileItem);\n\n if (errorParam) {\n fileItem.errorType = 'validate';\n fileItem.errorParam = errorParam;\n }\n fileResults.push(fileItem);\n } else {\n fileResults.push(fileItem);\n }\n });\n return fileResults;\n }\n\n /**\n * Returns `true` if a directory is found in the provided `files` parameter.\n */\n public hasDirectory(files: FileList): boolean {\n for (let index = 0; index < files.length; index++) {\n const file: any = files.item(index);\n if (\n file.webkitGetAsEntry &&\n file.webkitGetAsEntry() &&\n file.webkitGetAsEntry().isDirectory\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n public fileTypeRejected(fileType: string, acceptedTypes?: string): boolean {\n if (!acceptedTypes) {\n return false;\n }\n\n if (!fileType) {\n return true;\n }\n\n const acceptedTypesUpper = acceptedTypes.toUpperCase();\n const typeArray = acceptedTypesUpper.split(',');\n\n return !this.#fileTypeInArray(typeArray, fileType.toUpperCase());\n }\n\n #fileTypeInArray(typeArray: string[], fileType: string): boolean {\n if (typeArray.indexOf(fileType) !== -1) {\n return true;\n }\n\n for (const type of typeArray) {\n const validSubtype = this.#getMimeSubtype(type);\n\n if (validSubtype === '*') {\n if (this.#getMimeMainType(type) === this.#getMimeMainType(fileType)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n #getAcceptedTypesList(rawTypes: string | undefined): string | undefined {\n return rawTypes\n ?.toUpperCase()\n .split(',')\n .map((type) => {\n const subType = this.#getMimeSubtype(type);\n return subType.startsWith('X-') ? subType.substr(2) : subType;\n })\n .join(', ');\n }\n\n #getMimeSubtype(type: string): string {\n return type.substr(type.indexOf('/') + 1, type.length);\n }\n\n #getMimeMainType(type: string): string {\n return type.substr(0, type.indexOf('/'));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyFileItem } from './file-item';\n\n/**\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class SkyFileItemService {\n public isFile(fileItem: SkyFileItem): boolean {\n const file = fileItem.file;\n\n return !!(\n file &&\n file !== undefined &&\n file !== null &&\n file.size !== undefined &&\n file.size !== null\n );\n }\n\n public isImage(fileItem: SkyFileItem): boolean {\n const fileTypeUpper = this.getFileTypeUpper(fileItem);\n const slashIndex = fileTypeUpper.indexOf('/');\n\n if (slashIndex >= 0) {\n switch (fileTypeUpper.substr(fileTypeUpper.indexOf('/') + 1)) {\n case 'BMP':\n case 'GIF':\n case 'JPEG':\n case 'PNG':\n return true;\n default:\n break;\n }\n }\n\n return false;\n }\n\n public getFileExtensionUpper(fileItem: SkyFileItem): string {\n let extension = '',\n name: string;\n\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n /* istanbul ignore next */\n name = file.name || '';\n /* istanbul ignore next */\n extension = name.substr(name.lastIndexOf('.')) || '';\n } else {\n extension = '';\n }\n }\n\n return extension.toUpperCase();\n }\n\n public getFileTypeUpper(fileItem: SkyFileItem): string {\n let fileType = '';\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n fileType = file.type || '';\n } else {\n fileType = '';\n }\n }\n\n return fileType.toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {\n SkyFileReaderService,\n SkyIdModule,\n SkyIdService,\n SkyLiveAnnouncerService,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SkyThemeComponentClassDirective,\n SkyThemeModule,\n SkyThemeService,\n} from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyFormErrorComponent } from '../../form-error/form-error.component';\nimport { SKY_FORM_ERRORS_ENABLED } from '../../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsComponent } from '../../form-error/form-errors.component';\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileItem } from '../shared/file-item';\nimport { SkyFileItemErrorType } from '../shared/file-item-error-type';\nimport { SkyFileItemService } from '../shared/file-item.service';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\nimport { SkyFileValidateFn } from '../shared/file-validate-function';\n\nimport { SkyFileAttachmentChange } from './file-attachment-change';\nimport { SkyFileAttachmentClick } from './file-attachment-click';\nimport { SkyFileAttachmentJoinIdsPipe } from './file-attachment-join-ids.pipe';\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentService } from './file-attachment.service';\n\nconst MAX_FILE_SIZE_DEFAULT = 500000;\nconst MIN_FILE_SIZE_DEFAULT = 0;\n\n/**\n * Provides an element to attach a single local file.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n SkyFileAttachmentJoinIdsPipe,\n SkyFileSizePipe,\n SkyFormErrorComponent,\n SkyFormErrorsComponent,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyThemeComponentClassDirective,\n ],\n providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ],\n hostDirectives: [SkyThemeComponentClassDirective],\n selector: 'sky-file-attachment',\n styleUrl: './file-attachment.component.scss',\n templateUrl: './file-attachment.component.html',\n})\nexport class SkyFileAttachmentComponent\n implements\n AfterViewInit,\n AfterContentInit,\n ControlValueAccessor,\n OnInit,\n OnDestroy\n{\n readonly #fileReaderSvc = inject(SkyFileReaderService);\n\n /**\n * The comma-delimited string literal of MIME types that users can attach.\n * By default, all file types are allowed.\n */\n @Input()\n public acceptedTypes: string | undefined;\n\n /**\n * A custom error message to display when a file doesn't match the accepted types.\n * This replaces a default error message that lists all accepted types.\n */\n @Input()\n public acceptedTypesErrorMessage: string | undefined;\n\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n */\n @Input({ transform: booleanAttribute })\n public disabled = false;\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the single file attachment label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the single file attachment label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The text to display as the file attachment's label.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Whether to hide `labelText` from view.\n */\n @Input({ transform: booleanAttribute })\n public labelHidden = false;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * The maximum size in bytes for valid files.\n * @default 500000\n */\n @Input()\n public set maxFileSize(value: number | undefined) {\n this.#_maxFileSize = value ?? MAX_FILE_SIZE_DEFAULT;\n }\n\n public get maxFileSize(): number {\n return this.#_maxFileSize;\n }\n\n /**\n * The minimum size in bytes for valid files.\n * @default 0\n */\n @Input()\n public set minFileSize(value: number | undefined) {\n this.#_minFileSize = value ?? MIN_FILE_SIZE_DEFAULT;\n }\n\n public get minFileSize(): number {\n return this.#_minFileSize;\n }\n\n /**\n * Whether the single file attachment is stacked on another form component. When specified,\n * the appropriate vertical spacing is automatically added to the single file attachment.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.sky-form-field-stacked')\n public stacked = false;\n\n /**\n * The custom validation function. This validation runs alongside the internal\n * file validation. This function takes a `SkyFileItem` object as a parameter.\n * @deprecated Add a custom Angular `Validator` function to the `FormControl` instead.\n */\n @Input()\n public validateFn: SkyFileValidateFn | undefined;\n\n /**\n * Fires when users add or remove files.\n * @deprecated Subscribe to the form control's `valueChanges` event instead.\n */\n @Output()\n public fileChange = new EventEmitter<SkyFileAttachmentChange>();\n\n /**\n * Fires when users select the file name link. Make sure to bind the event.\n * If you do not, the file name link will be a dead link.\n */\n @Output()\n public fileClick = new EventEmitter<SkyFileAttachmentClick>();\n\n public acceptedOver = false;\n\n public hasLabelComponent = false;\n\n public rejectedOver = false;\n\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n */\n @Input({ transform: booleanAttribute })\n public required = false;\n\n public set value(value: SkyFileItem | undefined | null) {\n // The null check is needed to address a bug in Angular 4.\n // writeValue is being called twice, first time with a phantom null value\n // See: https://github.com/angular/angular/issues/14988\n const isNewValue = value !== this.value && value !== null;\n\n if (isNewValue) {\n if (value) {\n this.isImage = this.#fileItemService.isImage(value);\n } else {\n this.isImage = false;\n }\n this.#setFileName(value);\n\n this.#_value = value;\n this.#onChange(value);\n this.#updateFileAttachmentButton();\n }\n }\n\n public get value(): SkyFileItem | undefined {\n return this.#_value;\n }\n\n public currentThemeName: string | undefined;\n\n public fileName = '';\n\n public showFileAttachmentButton = true;\n\n public truncatedFileName = '';\n\n @ViewChild('fileInputRef')\n public inputEl: ElementRef | undefined;\n\n @ContentChildren(SkyFileAttachmentLabelComponent)\n public labelComponents:\n | QueryList<SkyFileAttachmentLabelComponent>\n | undefined;\n\n public isImage = false;\n\n protected get isRequired(): boolean {\n return (\n this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false)\n );\n }\n\n #enterEventTarget: EventTarget | undefined | null;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_maxFileSize = MAX_FILE_SIZE_DEFAULT;\n\n #_minFileSize = MIN_FILE_SIZE_DEFAULT;\n\n #_value: SkyFileItem | undefined;\n\n #changeDetector: ChangeDetectorRef;\n #fileAttachmentService: SkyFileAttachmentService;\n #fileItemService: SkyFileItemService;\n #themeSvc: SkyThemeService | undefined;\n\n readonly #idSvc = inject(SkyIdService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n protected ngControl: NgControl | undefined;\n protected errorId = this.#idSvc.generateId();\n protected labelId = this.#idSvc.generateId();\n\n protected fileErrorName: SkyFileItemErrorType | undefined;\n protected fileErrorParam: string | undefined;\n protected fileErrorValidation: ValidationErrors | null | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n fileAttachmentService: SkyFileAttachmentService,\n fileItemService: SkyFileItemService,\n @Self() @Optional() ngControl?: NgControl,\n @Optional() themeSvc?: SkyThemeService,\n ) {\n this.#changeDetector = changeDetector;\n this.#fileAttachmentService = fileAttachmentService;\n this.#fileItemService = fileItemService;\n this.ngControl = ngControl;\n this.#themeSvc = themeSvc;\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.currentThemeName = themeSettings.currentSettings.theme.name;\n this.#updateFileAttachmentButton();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n // This is needed to address a bug in Angular 7.\n // When a control value is set initially, its value is not represented on the view.\n // See: https://github.com/angular/angular/issues/13792\n // Of note is the parent check which allows us to determine if the form is reactive.\n // Without this check there is a changed before checked error\n /* istanbul ignore else */\n if (this.ngControl) {\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.value, {\n emitEvent: false,\n });\n this.#changeDetector.markForCheck();\n });\n\n // There is some disconnect between the host control and the form control.\n // This handles that by running change detection whenever the host control\n // has any changes. This is a workaround for this existing bug and will be\n // addressed in a future story that refactors file attachment.\n this.ngControl.control?.events.subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterContentInit(): void {\n if (this.labelComponents) {\n this.hasLabelComponent = this.labelComponents.length > 0;\n this.#changeDetector.detectChanges();\n\n // Handles updating classes when label changes\n this.labelComponents.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(\n (newLabelComponents: QueryList<SkyFileAttachmentLabelComponent>) => {\n this.hasLabelComponent = newLabelComponents.length > 0;\n this.#changeDetector.markForCheck();\n },\n );\n }\n }\n\n public onButtonBlur(): void {\n this.#onTouched();\n }\n\n public onDropClicked(): void {\n this.#onTouched();\n /* istanbul ignore else */\n if (this.inputEl) {\n this.inputEl.nativeElement.click();\n }\n }\n\n public fileChangeEvent(fileChangeEvent: Event): void {\n /** Set a timeout here to allow the browser to regain context from the system dialog. Without this, error messages do not read out correctly to screen readers. */\n setTimeout(() => {\n this.#handleFiles(\n (fileChangeEvent.target as HTMLInputElement | undefined)?.files,\n );\n }, 500);\n }\n\n public fileDragEnter(dragEnterEvent: DragEvent): void {\n // Save this target to know when the drag event leaves\n this.#enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n\n public fileDragOver(dragOverEvent: DragEvent): void {\n const transfer = dragOverEvent.dataTransfer;\n\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n\n if (transfer) {\n if (transfer.items) {\n const files = Array.from(transfer.items);\n\n for (const file of files) {\n if (\n file.type &&\n this.#fileAttachmentService.fileTypeRejected(\n file.type,\n this.acceptedTypes,\n )\n ) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n } else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n\n public fileDrop(dropEvent: DragEvent): void {\n this.#onTouched();\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n\n this.#enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n if (dropEvent.dataTransfer.files.length > 1) {\n return;\n }\n\n if (\n this.#fileAttachmentService.hasDirectory(dropEvent.dataTransfer.files)\n ) {\n return;\n }\n\n this.#handleFiles(dropEvent.dataTransfer.files);\n }\n }\n\n public fileDragLeave(dragLeaveEvent: DragEvent): void {\n if (this.#enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n\n public deleteFileAttachment(): void {\n const fileName = this.value?.file.name;\n this.value = undefined;\n this.#emitFileChangeEvent(this.value);\n\n /* istanbul ignore else: safety check */\n if (fileName) {\n this.#announceState(\n 'skyux_file_attachment_file_upload_file_removed',\n fileName,\n );\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this.fileChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: any) => any): void {\n this.#onChange = fn;\n }\n public registerOnTouched(fn: () => any): void {\n this.#onTouched = fn;\n }\n\n public writeValue(value: any): void {\n this.value = value;\n this.#changeDetector.markForCheck();\n }\n\n /**\n * @internal\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.#changeDetector.markForCheck();\n }\n\n public emitClick(): void {\n /* istanbul ignore else */\n if (this.value) {\n this.fileClick.emit({\n file: this.value,\n });\n }\n }\n\n #announceState(resourceString: string, ...args: any[]): void {\n this.#resourcesSvc\n .getString(resourceString, ...args)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncerSvc.announce(internationalizedString);\n });\n }\n\n #emitFileChangeEvent(currentFile?: SkyFileItem): void {\n if (currentFile && !currentFile.errorType) {\n this.writeValue(currentFile);\n this.fileErrorName = undefined;\n this.fileErrorParam = undefined;\n this.fileErrorValidation = undefined;\n } else {\n this.writeValue(undefined);\n // Makes sure value accessor is marked as dirty even if current file is undefined\n this.#onChange(undefined);\n this.fileErrorValidation = { fileError: true };\n this.fileErrorName = currentFile?.errorType;\n this.fileErrorParam = currentFile?.errorParam;\n }\n this.fileChange.emit({\n file: currentFile,\n } as SkyFileAttachmentChange);\n\n /* istanbul ignore else */\n if (this.inputEl) {\n this.inputEl.nativeElement.value = '';\n }\n }\n\n async #loadFile(file: SkyFileItem): Promise<void> {\n if (file.file) {\n try {\n const previousFileName = this.value?.file.name;\n\n if (previousFileName) {\n this.#announceState(\n 'skyux_file_attachment_file_upload_file_replaced',\n previousFileName,\n file.file.name,\n );\n } else {\n this.#announceState(\n 'skyux_file_attachment_file_upload_file_added',\n file.file.name,\n );\n }\n\n file.url = await this.#fileReaderSvc.readAsDataURL(file.file);\n\n this.#emitFileChangeEvent(file);\n } catch {\n this.#emitFileChangeEvent(file);\n }\n }\n }\n\n #handleFiles(fileList?: FileList | null): void {\n if (fileList) {\n const files: SkyFileItem[] = [];\n\n if ('item' in fileList) {\n for (let index = 0; index < fileList.length; index++) {\n files.push({\n file: fileList.item(index),\n } as SkyFileItem);\n }\n }\n\n const processedFiles = this.#fileAttachmentService.checkFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.acceptedTypes,\n this.validateFn,\n );\n\n for (const file of processedFiles) {\n if (file.errorType) {\n this.#emitFileChangeEvent(file);\n } else {\n void this.#loadFile(file);\n }\n }\n }\n }\n\n #setFileName(file?: SkyFileItem): void {\n if (file) {\n const dropName =\n this.#fileItemService.isFile(file) && file.file.name\n ? file.file.name\n : file.url;\n\n this.fileName = dropName;\n\n if (dropName.length > 26) {\n this.truncatedFileName = dropName.slice(0, 26) + '...';\n } else {\n this.truncatedFileName = dropName;\n }\n } else {\n this.fileName = '';\n this.truncatedFileName = '';\n }\n }\n\n #updateFileAttachmentButton(): void {\n this.showFileAttachmentButton = !(\n this.value && this.currentThemeName === 'modern'\n );\n this.#changeDetector.markForCheck();\n }\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n #onChange = (_: any): void => {\n return;\n };\n // istanbul ignore next\n #onTouched = (): void => {\n return;\n };\n}\n","<div class=\"sky-file-attachment-wrapper\">\n <div\n class=\"sky-file-attachment-label-wrapper\"\n [ngClass]=\"{\n 'sky-control-label-required':\n !labelText && isRequired && hasLabelComponent\n }\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <span\n class=\"sky-control-label\"\n [attr.id]=\"labelId\"\n [ngClass]=\"{\n 'sky-control-label-required': isRequired\n }\"\n >{{ labelText }}</span\n >\n }\n } @else {\n <ng-content select=\"sky-file-attachment-label\" />\n }\n @if (isRequired && (hasLabelComponent || labelText)) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span>\n }\n @if (labelText && (helpPopoverContent || helpKey)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [labelText]=\"labelText\"\n [helpKey]=\"helpKey\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </div>\n <div\n class=\"sky-file-attachment-upload sky-file-attachment sky-file-attachment-target\"\n [ngClass]=\"{\n 'sky-file-attachment-accept': acceptedOver,\n 'sky-file-attachment-reject': rejectedOver\n }\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragover)=\"fileDragOver($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n >\n <div\n #fileDropDescriptionRef=\"skyId\"\n aria-hidden=\"true\"\n class=\"sky-screen-reader-only\"\n role=\"tooltip\"\n skyId\n >\n {{ 'skyux_file_attachment_file_upload_drag_or_click' | skyLibResources }}\n </div>\n <input\n #fileInputRef\n hidden\n tabindex=\"-1\"\n type=\"file\"\n [attr.accept]=\"acceptedTypes || null\"\n [disabled]=\"disabled\"\n [required]=\"isRequired\"\n (change)=\"fileChangeEvent($event)\"\n />\n @if (showFileAttachmentButton) {\n <button\n class=\"sky-file-attachment-btn sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-describedby]=\"\n hintText && hintTextEl.id\n | skyFileAttachmentJoinIds: fileDropDescriptionRef.id\n \"\n [attr.aria-labelledby]=\"\n attachButtonLabelRef.id\n | skyFileAttachmentJoinIds\n : (labelText\n ? labelId\n : labelComponents?.get(0)?.labelContentId?.id)\n \"\n [attr.aria-invalid]=\"!!(ngControl?.errors ?? fileErrorValidation)\"\n [attr.aria-errormessage]=\"\n !!(ngControl?.errors ?? fileErrorValidation) ? errorId : undefined\n \"\n [disabled]=\"disabled\"\n (click)=\"onDropClicked()\"\n (blur)=\"onButtonBlur()\"\n >\n <sky-icon iconName=\"folder-open\" />\n {{\n value\n ? ('skyux_file_attachment_button_label_replace_file'\n | skyLibResources)\n : ('skyux_file_attachment_button_label_choose_file'\n | skyLibResources)\n }}\n </button>\n }\n @if (value && !isImage && currentThemeName === 'modern') {\n <sky-icon\n class=\"sky-file-attachment-icon\"\n iconName=\"document\"\n iconSize=\"xl\"\n />\n }\n @if (value || currentThemeName === 'default') {\n <span class=\"sky-file-attachment-file-link\">\n @if (value) {\n <a [attr.title]=\"fileName\" (click)=\"emitClick()\">\n {{ truncatedFileName }}\n </a>\n } @else {\n <span class=\"sky-file-attachment-none sky-font-deemphasized\">\n {{ 'skyux_file_attachment_label_no_file_chosen' | skyLibResources }}\n </span>\n }\n </span>\n }\n\n @if (value) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-file-attachment-delete\"\n type=\"button\"\n [attr.aria-labelledby]=\"\n deleteButtonLabelRef.id\n | skyFileAttachmentJoinIds\n : (labelText\n ? labelId\n : labelComponents?.get(0)?.labelContentId?.id)\n \"\n [disabled]=\"disabled\"\n (click)=\"deleteFileAttachment()\"\n >\n <sky-icon iconName=\"delete\" />\n </button>\n }\n </div>\n\n @if (value && isImage) {\n <img\n class=\"sky-file-attachment-preview-img\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n [src]=\"value.url\"\n />\n }\n</div>\n<div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div\n class=\"sky-file-attachment-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n</div>\n\n<sky-form-errors\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"labelText\"\n [touched]=\"ngControl?.touched\"\n [dirty]=\"ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n @if (ngControl?.touched) {\n @if (fileErrorName === 'fileType') {\n <sky-form-error\n errorName=\"fileType\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_file_type_error_label_text'\n | skyLibResources: fileErrorParam\n \"\n />\n } @else if (fileErrorName === 'maxFileSize') {\n <sky-form-error\n errorName=\"maxFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_max_file_size_error_label_text'\n | skyLibResources: (fileErrorParam | skyFileSize)\n \"\n />\n } @else if (fileErrorName === 'minFileSize') {\n <sky-form-error\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text'\n | skyLibResources: (fileErrorParam | skyFileSize)\n \"\n />\n }\n }\n</sky-form-errors>\n\n<span\n #attachButtonLabelRef=\"skyId\"\n aria-hidden=\"true\"\n class=\"sky-screen-reader-only\"\n skyId\n>\n {{\n value\n ? ('skyux_file_attachment_button_label_replace_file_label'\n | skyLibResources: fileName)\n : ('skyux_file_attachment_button_label_choose_file_label'\n | skyLibResources)\n }}\n</span>\n\n<span\n #deleteButtonLabelRef=\"skyId\"\n aria-hidden=\"true\"\n class=\"sky-screen-reader-only\"\n skyId\n>\n {{ 'skyux_file_attachment_file_item_remove' | skyLibResources: fileName }}\n</span>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFormErrorModule } from '../../form-error/form-error.module';\n\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentComponent } from './file-attachment.component';\n\n@NgModule({\n exports: [\n SkyFileAttachmentComponent,\n SkyFileAttachmentLabelComponent,\n SkyFormErrorModule,\n ],\n imports: [SkyFileAttachmentComponent, SkyFileAttachmentLabelComponent],\n})\nexport class SkyFileAttachmentModule {}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\nimport { SkyInputBoxComponent } from './input-box.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxHostService implements OnDestroy {\n #host: SkyInputBoxComponent | undefined;\n #requiredSubject = new BehaviorSubject<boolean>(false);\n\n public required = this.#requiredSubject.asObservable();\n\n public get controlId(): string {\n return this.#host?.controlId ?? '';\n }\n\n public get labelId(): string {\n return this.#host?.labelText ? this.#host.labelId : '';\n }\n\n public get labelText(): string {\n return this.#host?.labelText ?? '';\n }\n\n public get ariaDescribedBy(): Observable<string | undefined> | undefined {\n return this.#ariaDescribedBy;\n }\n\n #ariaDescribedBy: Observable<string | undefined> | undefined;\n\n public init(host: SkyInputBoxComponent): void {\n this.#host = host;\n this.#ariaDescribedBy = host.ariaDescribedBy.asObservable();\n }\n\n public ngOnDestroy(): void {\n this.#requiredSubject.complete();\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n if (!this.#host) {\n throw new Error(\n 'Cannot populate the input box because `SkyInputBoxHostService` has not yet been initialized. Try running the `populate` method within an Angular lifecycle hook, such as `ngOnInit`.',\n );\n }\n\n this.#host.populate(args);\n }\n\n public setHintText(hintText: string | undefined): void {\n if (!this.#host) {\n throw new Error(\n 'Cannot set hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.',\n );\n }\n\n this.#host.setHostHintText(hintText);\n }\n\n public setHintTextHidden(hide: boolean): void {\n if (!this.#host) {\n throw new Error(\n 'Cannot hide hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.',\n );\n }\n\n this.#host.setHintTextHidden(hide);\n }\n\n public setHintTextScreenReaderOnly(hide: boolean): void {\n if (!this.#host) {\n throw new Error(\n 'Cannot remove hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.',\n );\n }\n\n this.#host.setHintTextScreenReaderOnly(hide);\n }\n\n /**\n * Set required so that input box displays the label correctly. When the input is supplied by the consumer it is a content\n * child that input box can read required from and this is unnecessary. When the input is supplied internally by the\n * component the input box does not have a ref to it, so the component needs to inform the input box of its required state.\n */\n public setRequired(required: boolean): void {\n this.#requiredSubject.next(required);\n }\n\n /**\n * Whether the focused element is inside the input box.\n * @internal\n */\n public focusIsInInput(el: EventTarget): boolean {\n if (!this.#host) {\n throw new Error(\n 'Cannot get whether the focus is in the input box because `SkyInputBoxHostService` has not yet been initialized.',\n );\n }\n return this.#host.containsElement(el);\n }\n\n /**\n * Returns an html element that is inside the input box.\n * @internal\n */\n public queryHost(query: string): HTMLElement | undefined {\n if (!this.#host) {\n throw new Error(\n 'Cannot query input box host because `SkyInputBoxHostService` has not yet been initialized.',\n );\n }\n return this.#host.queryPopulatedElement(query);\n }\n}\n","import { Directive, HostBinding, Input, inject } from '@angular/core';\n\nimport { SkyInputBoxHostService } from './input-box-host.service';\n\n/**\n * @internal\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)',\n standalone: true,\n})\nexport class SkyInputBoxControlDirective {\n @HostBinding('autocomplete')\n @Input()\n public set autocomplete(value: string | undefined) {\n this.#_autocomplete = value;\n }\n\n public get autocomplete(): string | undefined {\n return this.#_autocomplete || (this.#hostSvc ? 'off' : undefined);\n }\n\n #_autocomplete: string | undefined;\n #hostSvc = inject(SkyInputBoxHostService, { optional: true });\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * @internal\n */\n@Pipe({\n standalone: true,\n name: 'skyInputBoxHintText',\n})\nexport class SkyInputBoxHintTextPipe implements PipeTransform {\n public transform(\n hintText?: string,\n hostHintText?: string,\n ): string | undefined {\n if (hintText && hostHintText) {\n return `${hintText} ${hostHintText}`;\n }\n\n return hintText || hostHintText;\n }\n}\n","import {\n ElementRef,\n Injectable,\n RendererFactory2,\n inject,\n} from '@angular/core';\n\nconst ARIA_DESCRIBEDBY_ATTR = 'aria-describedby';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxAdapterService {\n #renderer = inject(RendererFactory2).createRenderer(undefined, null);\n\n /**\n * Returns whether the provided input box contains the focus event target.\n */\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public containsElement(inputRef: ElementRef, el: EventTarget): boolean {\n return inputRef.nativeElement.contains(el);\n }\n\n public focusControl(elRef: ElementRef): void {\n const control = elRef.nativeElement.querySelector('.sky-form-control');\n /* istanbul ignore else */\n if (control) {\n control.focus();\n }\n }\n\n /**\n * Returns the inline help element.\n */\n public getInlineHelpElement(elRef: ElementRef): HTMLElement {\n return elRef.nativeElement.querySelector('.sky-control-help');\n }\n\n /**\n * Returns true if the provided element contains the focused element.\n */\n public isFocusInElement(el: HTMLElement): boolean {\n if (el) {\n return (\n el === document.activeElement || el.contains(document.activeElement)\n );\n }\n return false;\n }\n\n public updateDescribedBy(\n inputRef: ElementRef,\n hintTextId: string,\n hintText: string | undefined,\n ): void {\n const inputEl = inputRef.nativeElement as HTMLElement;\n\n const describedByIds =\n inputEl\n .getAttribute(ARIA_DESCRIBEDBY_ATTR)\n ?.split(' ')\n .map((id) => id.trim()) ?? [];\n\n const hintTextIdIndex = describedByIds.indexOf(hintTextId);\n const previousCount = describedByIds.length;\n\n if (hintText && hintTextIdIndex < 0) {\n describedByIds.push(hintTextId);\n } else if (!hintText && hintTextIdIndex >= 0) {\n describedByIds.splice(hintTextIdIndex, 1);\n }\n\n if (describedByIds.length !== previousCount) {\n this.#setDescribedByIds(inputEl, describedByIds);\n }\n }\n\n /**\n * Queries the provided input box with the query string.\n */\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public queryElement(inputRef: ElementRef, query: string): HTMLElement {\n return inputRef.nativeElement.querySelector(query);\n }\n\n #setDescribedByIds(inputEl: HTMLElement, describedByIds: string[]): void {\n if (describedByIds.length === 0) {\n this.#renderer.removeAttribute(inputEl, ARIA_DESCRIBEDBY_ATTR);\n } else {\n this.#renderer.setAttribute(\n inputEl,\n ARIA_DESCRIBEDBY_ATTR,\n describedByIds.join(' '),\n );\n }\n }\n}\n","import {\n BooleanInput,\n NumberInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n AbstractControlDirective,\n FormControlDirective,\n FormControlName,\n NgModel,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { SkyContentInfoProvider, SkyIdService } from '@skyux/core';\n\nimport { ReplaySubject, Subject, takeUntil } from 'rxjs';\n\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\n\nimport { SkyInputBoxAdapterService } from './input-box-adapter.service';\nimport { SkyInputBoxControlDirective } from './input-box-control.directive';\nimport { SkyInputBoxHostService } from './input-box-host.service';\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\n\n/**\n * A wrapper component that provides styling and accessibility to form elements.\n */\n@Component({\n selector: 'sky-input-box',\n templateUrl: './input-box.component.html',\n styleUrls: ['./input-box.component.scss'],\n providers: [\n SkyContentInfoProvider,\n SkyInputBoxAdapterService,\n SkyInputBoxHostService,\n {\n provide: SKY_FORM_ERRORS_ENABLED,\n useValue: true,\n },\n ],\n // Note that change detection is not set to OnPush; default change detection allows the\n // invalid CSS class to be added when the content control's invalid/dirty state changes.\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkyInputBoxComponent\n implements OnInit, AfterContentChecked, OnDestroy\n{\n #changeRef = inject(ChangeDetectorRef);\n #inputBoxHostSvc = inject(SkyInputBoxHostService);\n #adapterService = inject(SkyInputBoxAdapterService);\n #idSvc = inject(SkyIdService);\n #elementRef = inject(ElementRef);\n #renderer = inject(Renderer2);\n\n /**\n * Whether to visually highlight the input box in an error state. If not specified, the input box\n * displays in an error state when either the `ngModel` or the Angular `FormControl` contains an error.\n * @default undefined\n */\n @Input()\n public hasErrors: boolean | undefined;\n\n /**\n * Whether to visually highlight the input box as disabled. To disable the input box's\n * input element, use the HTML `disabled` attribute or the Angular `FormControl.disabled`\n * property. If the input element is mapped to an Angular form control\n * (e.g. `formControlName`, `ngModel`, etc.), \"disabled\" styles are applied automatically;\n * if the input element is not associated with an Angular form control, the `disabled`\n * property on the input box must be set to `true` to visually indicate\n * the disabled state on the input box.\n * @default false\n */\n @Input()\n public disabled: boolean | undefined;\n\n /**\n * The text to display as the input's label and in known validation error messages. The label\n * will automatically be associated with the `input`, `select`, `textarea`, or compatible SKY UX\n * component included in the input box.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * The maximum number of characters allowed in the input. A [SKY UX character count](https://developer.blackbaud.com/skyux/components/character-count)\n * will be placed on the input element with the appropriate validator.\n */\n @Input()\n public set characterLimit(value: NumberInput) {\n this.#_characterLimit =\n value === undefined ? undefined : coerceNumberProperty(value, undefined);\n\n this.#updateMaxLengthValidator();\n }\n\n public get characterLimit(): number | undefined {\n return this.#_characterLimit;\n }\n\n /**\n * Whether the input box is stacked on another input box. When specified, the appropriate\n * vertical spacing is automatically added to the input box.\n */\n @Input()\n public set stacked(value: BooleanInput) {\n this.#_stacked = coerceBooleanProperty(value);\n this.cssClass = this.#_stacked ? 'sky-form-field-stacked' : '';\n }\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the input box label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the input box label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public set hintText(value: string | undefined) {\n this.#_hintText = value;\n\n this.ariaDescribedBy.next(value ? this.hintTextId : undefined);\n }\n\n public get hintText(): string | undefined {\n return this.#_hintText;\n }\n\n public hostInputTemplate: TemplateRef<unknown> | undefined;\n\n public hostButtonsTemplate: TemplateRef<unknown> | undefined;\n\n public hostButtonsInsetTemplate: TemplateRef<unknown> | undefined;\n\n public hostButtonsLeftTemplate: TemplateRef<unknown> | undefined;\n\n public formControlHasFocus = false;\n\n public hostIconsInsetTemplate: TemplateRef<unknown> | undefined;\n\n public hostIconsInsetLeftTemplate: TemplateRef<unknown> | undefined;\n\n protected hintTextHidden = false;\n\n protected hintTextScreenReaderOnly = false;\n\n protected hostHintText: string | undefined;\n\n public readonly controlId = this.#idSvc.generateId();\n public readonly labelId = this.#idSvc.generateId();\n public readonly errorId = this.#idSvc.generateId();\n public readonly hintTextId = this.#idSvc.generateId();\n public readonly ariaDescribedBy = new ReplaySubject<string | undefined>(1);\n\n #requiredByFormField: boolean | undefined;\n\n @HostBinding('class')\n public cssClass = '';\n\n @ContentChild(FormControlDirective)\n public formControl: FormControlDirective | undefined;\n\n @ContentChild(FormControlName)\n public formControlByName: FormControlName | undefined;\n\n @ContentChild(NgModel)\n public ngModel: NgModel | undefined;\n\n @ContentChild(SkyInputBoxControlDirective, {\n read: ElementRef,\n })\n public inputRef: ElementRef | undefined;\n\n protected controlDir: AbstractControlDirective | undefined;\n\n protected get isDisabled(): boolean {\n return !!(\n this.disabled ||\n this.controlDir?.control?.disabled ||\n this.inputRef?.nativeElement?.disabled\n );\n }\n\n protected get hasErrorsComputed(): boolean {\n if (this.hasErrors === undefined) {\n return this.#controlHasErrors(this.controlDir);\n }\n\n return this.hasErrors;\n }\n\n protected get required(): boolean {\n return (\n this.#hasRequiredValidator() ||\n this.inputRef?.nativeElement.required ||\n this.#requiredByFormField\n );\n }\n\n protected characterCountScreenReader = 0;\n\n #_stacked = false;\n #_characterLimit: number | undefined;\n #_hintText: string | undefined;\n\n #previousInputRef: ElementRef | undefined;\n #previousMaxLengthValidator: ValidatorFn | undefined;\n #ngUnsubscribe = new Subject<void>();\n\n public ngOnInit(): void {\n this.#inputBoxHostSvc.init(this);\n\n this.#inputBoxHostSvc.required\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((required) => {\n this.#requiredByFormField = required;\n this.#changeRef.markForCheck();\n });\n }\n\n public ngAfterContentChecked(): void {\n this.controlDir =\n this.formControl || this.formControlByName || this.ngModel;\n\n if (!this.formControlHasFocus) {\n this.characterCountScreenReader = this.controlDir?.value?.length || 0;\n }\n\n this.#updateInputRef();\n }\n\n public ngOnDestroy(): void {\n this.ariaDescribedBy.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Whether the input box component contains the focused element.\n * @internal\n */\n public containsElement(el: EventTarget): boolean {\n return this.#adapterService.containsElement(this.#elementRef, el);\n }\n\n public formControlFocusIn(): void {\n const inlineHelpEl = this.#adapterService.getInlineHelpElement(\n this.#elementRef,\n );\n if (!this.#adapterService.isFocusInElement(inlineHelpEl)) {\n this.#updateHasFocus(true);\n }\n }\n\n public formControlFocusOut(): void {\n this.characterCountScreenReader = this.controlDir?.value?.length || 0;\n this.#updateHasFocus(false);\n }\n\n public onInsetIconClick(): void {\n if (!this.isDisabled) {\n this.#adapterService.focusControl(this.#elementRef);\n }\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n this.hostInputTemplate = args.inputTemplate;\n this.hostButtonsTemplate = args.buttonsTemplate;\n this.hostButtonsLeftTemplate = args.buttonsLeftTemplate;\n this.hostButtonsInsetTemplate = args.buttonsInsetTemplate;\n this.hostIconsInsetTemplate = args.iconsInsetTemplate;\n this.hostIconsInsetLeftTemplate = args.iconsInsetLeftTemplate;\n this.#changeRef.markForCheck();\n }\n\n /**\n * Returns an element inside the input box.\n * This can be used to query parts of a input box\n * that was populated through the `SkyInputBoxHostService`\n * @internal\n */\n public queryPopulatedElement(query: string): HTMLElement {\n return this.#adapterService.queryElement(this.#elementRef, query);\n }\n\n public setHintTextHidden(hide: boolean): void {\n this.hintTextHidden = hide;\n this.#changeRef.markForCheck();\n }\n\n public setHostHintText(value: string | undefined): void {\n this.hostHintText = value;\n this.#changeRef.markForCheck();\n }\n\n public setHintTextScreenReaderOnly(hide: boolean): void {\n this.hintTextScreenReaderOnly = hide;\n this.#changeRef.markForCheck();\n }\n\n #hasRequiredValidator(): boolean {\n return !!this.controlDir?.control?.hasValidator(Validators.required);\n }\n\n #updateHasFocus(hasFocus: boolean): void {\n // Some components manipulate the focus of elements inside an input box programmatically,\n // which can cause an `ExpressionChangedAfterItHasBeenCheckedError` if focus was set after\n // initial change detection. Using `setTimeout()` here fixes it.\n setTimeout(() => {\n this.formControlHasFocus = hasFocus;\n this.#changeRef.markForCheck();\n });\n }\n\n #controlHasErrors(control: AbstractControlDirective | undefined): boolean {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n\n #updateInputRef(): void {\n if (!this.inputRef) {\n return;\n }\n\n const inputEl = this.inputRef.nativeElement as HTMLElement;\n\n // Check for the Angular required validator and add an aria-required attribute\n // to match. For template-driven forms, the input will have a `required` attribute\n // so the aria-required attribute is unnecessary.\n const hasRequiredValidator = this.#hasRequiredValidator();\n const ariaRequired = inputEl.ariaRequired;\n\n if (hasRequiredValidator && ariaRequired !== 'true') {\n inputEl.ariaRequired = 'true';\n } else if (!hasRequiredValidator && ariaRequired === 'true') {\n inputEl.ariaRequired = null;\n }\n\n if (this.hasErrorsComputed) {\n this.#renderer.setAttribute(inputEl, 'aria-invalid', 'true');\n this.#renderer.setAttribute(inputEl, 'aria-errormessage', this.errorId);\n } else {\n this.#renderer.removeAttribute(inputEl, 'aria-invalid');\n this.#renderer.removeAttribute(inputEl, 'aria-errormessage');\n }\n\n this.#adapterService.updateDescribedBy(\n this.inputRef,\n this.hintTextId,\n this.hintText ?? this.hostHintText,\n );\n\n if (this.inputRef !== this.#previousInputRef) {\n this.#renderer.addClass(inputEl, 'sky-form-control');\n this.#renderer.setAttribute(inputEl, 'id', this.controlId);\n\n this.#updateMaxLengthValidator();\n\n this.#previousInputRef = this.inputRef;\n }\n }\n\n #updateMaxLengthValidator(): void {\n const control = this.controlDir?.control;\n\n if (this.#previousMaxLengthValidator) {\n control?.removeValidators(this.#previousMaxLengthValidator);\n this.#previousMaxLengthValidator = undefined;\n }\n\n if (control && this.characterLimit !== undefined) {\n this.#previousMaxLengthValidator = Validators.maxLength(\n this.characterLimit,\n );\n\n control.addValidators([this.#previousMaxLengthValidator]);\n }\n }\n}\n","<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': isDisabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': isDisabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\" />\n @if (labelText) {\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"\n characterLimit !== undefined\n ? labelText +\n ' ' +\n ('skyux_character_count_message'\n | skyLibResources: characterCountScreenReader : characterLimit)\n : null\n \"\n [for]=\"controlId\"\n [id]=\"labelId\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</label\n >\n }\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n @if ((helpPopoverContent || helpKey) && labelText) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n</ng-template>\n\n<ng-template #characterCountTemplate>\n @if (characterLimit !== undefined) {\n <sky-character-counter-indicator\n [characterCount]=\"controlDir?.value?.length || 0\"\n [characterCountLimit]=\"characterLimit\"\n />\n }\n <ng-content select=\"sky-character-counter-indicator\" />\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content\n select=\"input,select,.sky-form-control:not(textarea),sky-autocomplete,sky-text-editor\"\n />\n @if (hostInputTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostInputTemplate\" />\n }\n <ng-content select=\"textarea\" />\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\" />\n @if (hostButtonsLeftTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostButtonsLeftTemplate\" />\n }\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n />\n @if (hostButtonsTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostButtonsTemplate\" />\n }\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-inset\" />\n @if (hostButtonsInsetTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostButtonsInsetTemplate\" />\n }\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset\" />\n @if (hostIconsInsetTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostIconsInsetTemplate\" />\n }\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset-left\" />\n @if (hostIconsInsetLeftTemplate) {\n <ng-container [ngTemplateOutlet]=\"hostIconsInsetLeftTemplate\" />\n }\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <sky-form-errors\n [id]=\"errorId\"\n [errors]=\"controlDir?.errors\"\n [labelText]=\"labelText\"\n [touched]=\"controlDir?.touched\"\n [dirty]=\"controlDir?.dirty\"\n >\n <ng-content\n select=\"sky-form-error,span.sky-input-box-descendent-form-error\"\n />\n </sky-form-errors>\n <ng-content select=\".sky-error-label,.sky-error-indicator\" />\n</ng-template>\n\n<ng-template #hintTextTemplate>\n @if (hintText || hostHintText) {\n <div\n class=\"sky-input-box-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n [ngClass]=\"{\n 'sky-input-box-hint-text-hidden': hintTextHidden,\n 'sky-screen-reader-only': hintTextScreenReaderOnly\n }\"\n [id]=\"hintTextId\"\n >\n {{ hintText | skyInputBoxHintText: hostHintText }}\n </div>\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyCharacterCounterModule } from '../character-counter/character-counter.module';\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyInputBoxControlDirective } from './input-box-control.directive';\nimport { SkyInputBoxHintTextPipe } from './input-box-hint-text.pipe';\nimport { SkyInputBoxComponent } from './input-box.component';\n\n@NgModule({\n declarations: [SkyInputBoxComponent],\n imports: [\n CommonModule,\n SkyCharacterCounterModule,\n SkyFormErrorsModule,\n SkyFormErrorModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyInputBoxControlDirective,\n SkyInputBoxHintTextPipe,\n SkyThemeModule,\n ],\n exports: [\n SkyInputBoxHintTextPipe,\n SkyInputBoxComponent,\n SkyInputBoxControlDirective,\n SkyFormErrorModule,\n ],\n})\nexport class SkyInputBoxModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n SkyFileReaderService,\n SkyIdModule,\n SkyLiveAnnouncerService,\n} from '@skyux/core';\nimport { SkyIdService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyFormErrorComponent } from '../../form-error/form-error.component';\nimport { SKY_FORM_ERRORS_ENABLED } from '../../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsComponent } from '../../form-error/form-errors.component';\nimport { SkyInputBoxModule } from '../../input-box/input-box.module';\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileAttachmentService } from '../file-attachment/file-attachment.service';\nimport { SkyFileItem } from '../shared/file-item';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\nimport { SkyFileValidateFn } from '../shared/file-validate-function';\n\nimport { SkyFileDropChange } from './file-drop-change';\nimport { SkyFileLink } from './file-link';\n\nconst MAX_FILE_SIZE_DEFAULT = 500000;\nconst MIN_FILE_SIZE_DEFAULT = 0;\n\n/**\n * Provides an element to attach multiple files where users can browse or drag and drop local files\n * or provide hyperlinks to external files. You can leave the contents of the component\n * blank to display the drop zone's default UI, or you can specify custom content to\n * display instead. When the module initializes, it disables the ability to drag and\n * drop files for the entire window to prevent the browser from opening files that are\n * accidentally dropped outside the target zone. If you implement your own file drop functionality\n * outside of the file drop component, you can place the `sky-file-drop-target` CSS class\n * on the element that receives drop events to exempt it from the drop exclusion rule.\n */\n@Component({\n selector: 'sky-file-drop',\n templateUrl: './file-drop.component.html',\n styleUrls: ['./file-drop.component.scss'],\n providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyFileSizePipe,\n SkyFormErrorComponent,\n SkyFormErrorsComponent,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyInputBoxModule,\n SkyThemeModule,\n ],\n})\nexport class SkyFileDropComponent implements OnDestroy, ControlValueAccessor {\n /**\n * Fires when users add or remove files.\n */\n @Output()\n public filesChanged = new EventEmitter<SkyFileDropChange>();\n\n /**\n * Fires when the link input box triggers a blur event.\n */\n @Output()\n public linkInputBlur = new EventEmitter<void>();\n\n /**\n * Fires when users add or remove links.\n */\n @Output()\n public linkChanged = new EventEmitter<SkyFileLink>();\n\n /**\n * The ARIA label for the file upload button. This provides a text equivalent for\n * screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @default \"Drag a file here or click to browse\"\n */\n @Input()\n public fileUploadAriaLabel: string | undefined;\n\n /**\n * The ARIA label for the link upload input. This sets the button's `aria-label` attribute to provide a text equivalent for\n * screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @default \"Link to a file\"\n */\n @Input()\n public linkUploadAriaLabel: string | undefined;\n\n /**\n * The hint text for the link upload input.\n */\n @Input()\n public linkUploadHintText: string | undefined;\n\n /**\n * The minimum size in bytes for valid files.\n * @default 0\n */\n @Input()\n public set minFileSize(value: number | undefined) {\n this.#_minFileSize = value ?? MIN_FILE_SIZE_DEFAULT;\n }\n\n public get minFileSize(): number {\n return this.#_minFileSize;\n }\n\n /**\n * The maximum size in bytes for valid files.\n * @default 500000\n */\n @Input()\n public set maxFileSize(value: number | undefined) {\n this.#_maxFileSize = value ?? MAX_FILE_SIZE_DEFAULT;\n }\n\n public get maxFileSize(): number {\n return this.#_maxFileSize;\n }\n\n /**\n * Whether users can drag and drop multiple files at the same time.\n */\n @Input()\n public multiple: boolean | undefined = true;\n\n /**\n * The custom validation function. This validation runs alongside the internal\n * file validation. This function takes a `SkyFileItem` object as a parameter.\n * The string returned is used as the error message in multi-file attachment.\n */\n @Input()\n public validateFn: SkyFileValidateFn | undefined;\n\n /**\n * The comma-delimited string literal of MIME types that users can attach.\n * By default, all file types are allowed.\n * @required\n */\n @Input()\n public acceptedTypes: string | undefined;\n\n /**\n * A custom error message to display when a file doesn't match the accepted types.\n * This replaces a default error message that lists all accepted types.\n */\n @Input()\n public acceptedTypesErrorMessage: string | undefined;\n\n /**\n * Whether to disable the option to browse for files to attach.\n */\n @Input()\n public noClick: boolean | undefined = false;\n\n /**\n * Whether to display the option to attach files from URLs rather than from local devices.\n */\n @Input()\n public allowLinks: boolean | undefined = false;\n\n /**\n * The text to display as the file attachment's label.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Whether to hide `labelText` from view.\n */\n @Input({ transform: booleanAttribute })\n public labelHidden = false;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * Whether uploading a file or link is required.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input elements so that screen readers announce an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n */\n @Input({ transform: booleanAttribute })\n public required = false;\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the file attachment label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Whether the file attachment is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the file attachment.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.sky-form-field-stacked')\n public stacked = false;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the file attachment label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n @ViewChild('fileInput')\n public inputEl: ElementRef | undefined;\n\n public rejectedOver = false;\n public acceptedOver = false;\n public linkUrl: string | undefined;\n\n #enterEventTarget: any;\n\n #_maxFileSize = MAX_FILE_SIZE_DEFAULT;\n\n #_minFileSize = MIN_FILE_SIZE_DEFAULT;\n\n #notifyTouched: (() => void) | undefined;\n #notifyChange:\n | ((_: (SkyFileItem | SkyFileLink)[] | undefined | null) => void)\n | undefined;\n #_uploadedFiles: (SkyFileItem | SkyFileLink)[] = [];\n\n readonly #fileAttachmentService = inject(SkyFileAttachmentService);\n readonly #fileReaderSvc = inject(SkyFileReaderService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n readonly #idSvc = inject(SkyIdService);\n\n protected errorId = this.#idSvc.generateId();\n\n protected ngControl = inject(NgControl, { optional: true });\n\n protected rejectedFiles: SkyFileItem[] = [];\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnDestroy(): void {\n this.filesChanged.complete();\n this.linkChanged.complete();\n this.linkInputBlur.complete();\n }\n\n public writeValue(value: unknown): void {\n if (Array.isArray(value)) {\n const linkUploads: SkyFileLink[] = [];\n const fileUploads: SkyFileItem[] = [];\n\n value.forEach((file) => {\n if ('url' in file && file.url !== undefined) {\n if (!('file' in file)) {\n linkUploads.push(file);\n } else if ('file' in file && file.file !== undefined) {\n fileUploads.push(file);\n }\n }\n });\n\n if (!(linkUploads.length > 0) && !(fileUploads.length > 0)) {\n this.#notifyChange?.(null);\n } else {\n this.#_uploadedFiles = [];\n\n if (linkUploads.length > 0) {\n linkUploads.forEach((file) => {\n this.uploadLink(file);\n });\n }\n if (fileUploads.length > 0) {\n // this prevents FormControl from setting an invalid value before the async\n // processes in #handleFile is complete\n this.#notifyChange?.(null);\n this.#handleFiles(fileUploads);\n }\n }\n } else {\n this.#notifyChange?.(null);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.#notifyChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#notifyTouched = fn;\n }\n\n public dropClicked(): void {\n if (!this.noClick && this.inputEl) {\n this.#notifyTouched?.();\n this.inputEl.nativeElement.click();\n }\n }\n\n public fileChangeEvent(fileChangeEvent: Event): void {\n /** Set a timeout here to allow the browser to regain context from the system dialog. Without this, error messages do not read out correctly to screen readers. */\n setTimeout(() => {\n this.#handleFiles(\n (fileChangeEvent.target as HTMLInputElement | undefined)?.files,\n );\n }, 500);\n }\n\n public fileDragEnter(dragEnterEvent: DragEvent): void {\n // Save this target to know when the drag event leaves\n this.#enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n\n public fileDragOver(dragOverEvent: DragEvent): void {\n const transfer = dragOverEvent.dataTransfer;\n\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n\n if (transfer) {\n if (transfer.items) {\n const files = Array.from(transfer.items);\n\n for (const file of files) {\n if (\n file.type &&\n this.#fileAttachmentService.fileTypeRejected(\n file.type,\n this.acceptedTypes,\n )\n ) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n } /* istanbul ignore next: untestable */ else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n\n public fileDrop(dropEvent: DragEvent): void {\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n\n this.#notifyTouched?.();\n\n this.#enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n const hasDirectory = this.#fileAttachmentService.hasDirectory(\n dropEvent.dataTransfer.files,\n );\n const invalidNumberOfFiles =\n !this.multiple && dropEvent.dataTransfer.files.length > 1;\n\n if (hasDirectory || invalidNumberOfFiles) {\n return;\n }\n\n this.#handleFiles(dropEvent.dataTransfer.files);\n }\n }\n\n public fileDragLeave(dragLeaveEvent: any): void {\n if (this.#enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n\n public addLinkEnter(event: KeyboardEvent): void {\n if (event.which === 13) {\n this.addLink(event);\n }\n }\n\n public addLink(event: Event): void {\n event.preventDefault();\n this.uploadLink({ url: this.linkUrl } as SkyFileLink);\n this.linkUrl = undefined;\n this.#notifyTouched?.();\n }\n\n protected uploadLink(file: SkyFileLink): void {\n this.linkChanged.emit(file);\n this.#_uploadedFiles?.push(file);\n this.#notifyChange?.(this.#_uploadedFiles);\n this.#announceState(\n 'skyux_file_attachment_file_upload_link_added',\n file.url,\n );\n }\n\n public onLinkBlur(): void {\n this.#notifyTouched?.();\n this.linkInputBlur.emit();\n }\n\n protected get isRequired(): boolean {\n return (\n this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false)\n );\n }\n\n #announceState(resourceString: string, ...args: any[]): void {\n this.#resourcesSvc\n .getString(resourceString, ...args)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncerSvc.announce(internationalizedString);\n });\n }\n\n #emitFileChangeEvent(\n totalFiles: number,\n rejectedFileArray: SkyFileItem[],\n validFileArray: SkyFileItem[],\n ): void {\n if (totalFiles === rejectedFileArray.length + validFileArray.length) {\n this.filesChanged.emit({\n files: validFileArray,\n rejectedFiles: rejectedFileArray,\n } as SkyFileDropChange);\n\n if (this.inputEl) {\n this.inputEl.nativeElement.value = '';\n }\n }\n }\n\n #filesRejected(\n file: SkyFileItem,\n validFileArray: SkyFileItem[],\n rejectedFileArray: SkyFileItem[],\n totalFiles: number,\n ): void {\n rejectedFileArray.push(file);\n this.#notifyChange?.(\n this.#_uploadedFiles.length > 0 ? this.#_uploadedFiles : null,\n );\n this.#emitFileChangeEvent(totalFiles, rejectedFileArray, validFileArray);\n }\n\n async #loadFile(\n fileDrop: SkyFileDropComponent,\n file: SkyFileItem,\n validFileArray: SkyFileItem[],\n rejectedFileArray: SkyFileItem[],\n totalFiles: number,\n ): Promise<void> {\n try {\n file.url = await this.#fileReaderSvc.readAsDataURL(file.file);\n\n validFileArray.push(file);\n fileDrop.#emitFileChangeEvent(\n totalFiles,\n rejectedFileArray,\n validFileArray,\n );\n this.#announceState(\n 'skyux_file_attachment_file_upload_file_added',\n file.file.name,\n );\n this.#_uploadedFiles?.push(file);\n this.#notifyChange?.(this.#_uploadedFiles);\n } catch {\n fileDrop.#filesRejected(\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles,\n );\n }\n }\n\n #handleFiles(fileList?: FileList | null | SkyFileItem[]): void {\n if (fileList) {\n const validFileArray: SkyFileItem[] = [];\n const rejectedFileArray: SkyFileItem[] = [];\n const totalFiles = fileList.length;\n\n let files: SkyFileItem[] = [];\n\n if ('item' in fileList) {\n for (let index = 0; index < fileList.length; index++) {\n files.push({\n file: fileList.item(index),\n } as SkyFileItem);\n }\n } else {\n files = fileList;\n }\n\n const processedFiles = this.#fileAttachmentService.checkFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.acceptedTypes,\n this.validateFn,\n );\n\n for (const file of processedFiles) {\n if (file.errorType) {\n this.#filesRejected(\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles,\n );\n } else {\n void this.#loadFile(\n this,\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles,\n );\n }\n }\n\n this.rejectedFiles = rejectedFileArray;\n }\n }\n}\n","<fieldset class=\"sky-file-drop-wrapper\">\n @if (labelText) {\n <legend\n class=\"sky-control-label sky-font-body-default\"\n [ngClass]=\"{\n 'sky-screen-reader-only': labelHidden\n }\"\n >\n <span\n class=\"sky-file-drop-label-text\"\n [ngClass]=\"{\n 'sky-control-label-required': isRequired\n }\"\n >{{ labelText }}</span\n >\n @if (isRequired) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n }\n <div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n >\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n ></button>\n\n <input\n #fileInput\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n />\n\n @if (customEl.children.length === 0) {\n <div class=\"sky-file-drop-contents sky-file-drop-upload-contents\">\n <div class=\"sky-file-drop-contents-not-over\">\n <div\n class=\"sky-file-drop-text-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'default'\n }\"\n >\n {{\n 'skyux_file_attachment_file_upload_drag_file_here'\n | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon\n class=\"sky-file-upload-icon\"\n iconName=\"arrow-upload\"\n iconSize=\"xl\"\n />\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div\n class=\"sky-file-drop-text-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'default'\n }\"\n >\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon\n class=\"sky-file-upload-icon sky-file-upload-icon-target\"\n iconName=\"target\"\n iconSize=\"xl\"\n />\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div\n class=\"sky-file-drop-text-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'default'\n }\"\n >\n {{\n 'skyux_file_attachment_file_upload_invalid_file'\n | skyLibResources\n }}\n </div>\n <sky-icon\n class=\"sky-file-upload-icon sky-file-upload-icon-close\"\n iconName=\"prohibited\"\n iconSize=\"xl\"\n />\n </div>\n </div>\n }\n\n <div #customEl class=\"sky-file-drop-contents-custom\">\n <ng-content />\n </div>\n </div>\n @if (allowLinks) {\n <div class=\"sky-file-drop-col\">\n <div class=\"sky-file-drop-contents\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div\n class=\"sky-file-drop-text-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'default'\n }\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_label'\n | skyLibResources\n }}\n </div>\n </div>\n <sky-input-box [hintText]=\"linkUploadHintText\">\n <input\n type=\"text\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_label'\n | skyLibResources)\n \"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </sky-input-box>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n <div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div\n class=\"sky-font-deemphasized sky-file-drop-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n </div>\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [labelText]=\"labelText\"\n [touched]=\"ngControl ? ngControl.touched : rejectedFiles.length > 0\"\n [dirty]=\"ngControl?.dirty\"\n [errors]=\"ngControl?.errors\"\n>\n <ng-content select=\"sky-form-error\" />\n @for (rejectedFile of rejectedFiles; track rejectedFile.url) {\n <div>\n @if (rejectedFile.errorType === 'fileType') {\n <sky-form-error\n errorName=\"fileType\"\n [errorText]=\"\n 'skyux_file_attachment_file_type_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : rejectedFile.errorParam\n \"\n />\n } @else if (rejectedFile.errorType === 'maxFileSize') {\n <sky-form-error\n errorName=\"maxFileSize\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (rejectedFile.errorType === 'minFileSize') {\n <sky-form-error\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (\n rejectedFile.errorType === 'validate' && rejectedFile.errorParam\n ) {\n <sky-form-error\n errorName=\"validate\"\n [errorText]=\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\"\n />\n }\n </div>\n }\n</sky-form-errors>\n","import {\n Component,\n DoCheck,\n EventEmitter,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n Output,\n inject,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileItem } from '../shared/file-item';\nimport { SkyFileItemService } from '../shared/file-item.service';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\n\nimport { SkyFileLink } from './file-link';\n\n@Component({\n imports: [SkyFileSizePipe, SkyFormsResourcesModule, SkyIconModule],\n selector: 'sky-file-item',\n styleUrl: './file-item.component.scss',\n templateUrl: './file-item.component.html',\n})\nexport class SkyFileItemComponent implements DoCheck {\n /**\n * The summary information to display about file attachments. For local files,\n * the default summary includes the file name, file size, file preview, and a delete button.\n * For external files, the default summary includes the URL and a delete button.\n * You can include additional inputs to display user-entered metadata.\n * @required\n */\n @Input()\n public set fileItem(value: SkyFileItem | SkyFileLink | undefined) {\n this.#_fileItem = value;\n if (value && 'file' in value) {\n this.isFile = this.#fileItemService.isFile(value);\n this.isImage = this.#fileItemService.isImage(value);\n this.fileName = value.file.name;\n this.fileSize = value.file.size;\n } else {\n this.isFile = this.isImage = false;\n this.fileName = '';\n this.fileSize = undefined;\n }\n this.url = value?.url ?? '';\n }\n\n public get fileItem(): SkyFileItem | SkyFileLink | undefined {\n return this.#_fileItem;\n }\n\n /**\n * Fires when users select the delete button for an item. The deleted item is passed to the\n * function.\n */\n @Output()\n public deleteFile = new EventEmitter<SkyFileLink | SkyFileItem>();\n\n public fileName = '';\n\n public fileSize: number | undefined;\n\n public url = '';\n\n public icon: string | undefined;\n\n public isFile = false;\n public isImage = false;\n\n #_fileItem: SkyFileItem | SkyFileLink | undefined;\n\n #differ: KeyValueDiffer<any, any>;\n #fileItemService: SkyFileItemService;\n\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n constructor(differs: KeyValueDiffers, fileItemService: SkyFileItemService) {\n this.#differ = differs.find({}).create();\n this.#fileItemService = fileItemService;\n }\n\n public ngDoCheck(): void {\n if (this.fileItem) {\n const changes = this.#differ.diff(this.fileItem);\n\n if (changes) {\n let cls: string | undefined;\n const extensionUpper = this.#fileItemService.getFileExtensionUpper(\n this.fileItem as SkyFileItem,\n );\n let fileTypeUpper: string;\n\n switch (extensionUpper) {\n case '.PDF':\n cls = 'pdf';\n break;\n case '.GZ':\n case '.RAR':\n case '.TGZ':\n case '.ZIP':\n cls = 'archive';\n break;\n case '.PPT':\n case '.PPTX':\n cls = 'ppt';\n break;\n case '.DOC':\n case '.DOCX':\n cls = 'doc';\n break;\n case '.XLS':\n case '.XLSX':\n cls = 'xls';\n break;\n case '.TXT':\n cls = 'text';\n break;\n case '.HTM':\n case '.HTML':\n cls = 'chevron-double';\n break;\n default:\n break;\n }\n\n if (!cls) {\n fileTypeUpper = this.#fileItemService.getFileTypeUpper(\n this.fileItem as SkyFileItem,\n );\n\n switch (fileTypeUpper.substr(0, fileTypeUpper.indexOf('/'))) {\n case 'AUDIO':\n cls = 'audio';\n break;\n case 'IMAGE':\n // Normally images are displayed as thumbnails, but if an image type is not recognized\n // as being widely supported by modern browsers (e.g. TIFF files) then an icon should\n // be displayed instead.\n cls = 'image';\n break;\n case 'TEXT':\n cls = 'text';\n break;\n case 'VIDEO':\n cls = 'video';\n break;\n default:\n break;\n }\n }\n this.icon = 'document' + (cls ? '-' + cls : '');\n }\n } else {\n this.icon = undefined;\n }\n }\n\n public itemDelete(): void {\n this.deleteFile.emit(this.fileItem);\n if (!this.isFile) {\n this.#resourcesSvc\n .getString('skyux_file_attachment_file_upload_link_removed', this.url)\n .pipe(take(1))\n .subscribe((resourceString) => {\n this.#liveAnnouncerSvc.announce(resourceString);\n });\n } else {\n this.#resourcesSvc\n .getString(\n 'skyux_file_attachment_file_upload_file_removed',\n this.fileName,\n )\n .pipe(take(1))\n .subscribe((resourceString) => {\n this.#liveAnnouncerSvc.announce(resourceString);\n });\n }\n }\n}\n","@if (fileItem) {\n <div class=\"sky-file-item\">\n <div class=\"sky-file-item-title\">\n <div class=\"sky-file-item-name-container\">\n <div class=\"sky-file-item-name\">\n @if (isFile) {\n {{ fileName }}\n } @else {\n {{ url }}\n }\n </div>\n @if (isFile) {\n <div class=\"sky-file-item-size\">({{ fileSize | skyFileSize }})</div>\n }\n </div>\n <div class=\"sky-file-item-controls\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-file-item-btn-delete\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete'\n | skyLibResources: (isFile ? fileName : url)\n \"\n (click)=\"itemDelete()\"\n >\n <sky-icon iconName=\"delete\" />\n </button>\n </div>\n </div>\n <div class=\"sky-file-item-content\">\n <div class=\"sky-file-item-preview\">\n @if (isImage) {\n <div class=\"sky-file-item-preview-img-container\">\n <img\n class=\"sky-file-item-preview-img\"\n [src]=\"url\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n />\n </div>\n } @else {\n <div class=\"sky-file-item-preview-other\">\n <sky-icon iconSize=\"xxxl\" [iconName]=\"icon\" />\n </div>\n }\n </div>\n <div class=\"sky-file-item-content-custom\">\n <ng-content />\n </div>\n </div>\n </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyFormErrorModule } from '../../form-error/form-error.module';\n\nimport { SkyFileDropComponent } from './file-drop.component';\nimport { SkyFileItemComponent } from './file-item.component';\n\n@NgModule({\n exports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule],\n imports: [SkyFileDropComponent, SkyFileItemComponent],\n})\nexport class SkyFileDropModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyFileAttachmentModule } from './file-attachment/file-attachment.module';\nimport { SkyFileDropModule } from './file-drop/file-drop.module';\n\n/**\n * @deprecated Import either `SkyFileAttachmentModule` or `SkyFileDropModule`.\n */\n@NgModule({\n exports: [SkyFileAttachmentModule, SkyFileDropModule],\n imports: [SkyFileAttachmentModule, SkyFileDropModule],\n})\nexport class SkyFileAttachmentsModule {}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Tracks the element IDs for all radios within a radio group.\n * @internal\n */\n@Injectable()\nexport class SkyRadioGroupIdService {\n public get radioIds(): Observable<string[]> {\n return this.#radioIdsObs;\n }\n\n #radioIds: Map<string, string>;\n #radioIds$: BehaviorSubject<string[]>;\n #radioIdsObs: Observable<string[]>;\n\n constructor() {\n this.#radioIds = new Map();\n this.#radioIds$ = new BehaviorSubject<string[]>([]);\n this.#radioIdsObs = this.#radioIds$.asObservable();\n }\n\n /**\n * Associates a radio input's ID with its parent radio group.\n * @param {string} id A unique ID for the radio component.\n * @param {string} inputElementId The ID applied to the radio input element.\n */\n public register(id: string, inputElementId: string): void {\n if (!this.#radioIds.has(id) || this.#radioIds.get(id) !== inputElementId) {\n this.#radioIds.set(id, inputElementId);\n this.#emitRadioIds();\n }\n }\n\n /**\n * Disassociates a radio input's ID with its parent radio group.\n * @param {string} id The ID used to register the radio component.\n */\n public unregister(id: string): void {\n if (this.#radioIds.has(id)) {\n this.#radioIds.delete(id);\n this.#emitRadioIds();\n }\n }\n\n #emitRadioIds(): void {\n this.#radioIds$.next(Array.from(this.#radioIds.values()));\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Provider,\n TemplateRef,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\n\nimport { SkyRadioGroupIdService } from './radio-group-id.service';\nimport { SkyRadioChange } from './types/radio-change';\nimport { SkyRadioType } from './types/radio-type';\n\n/**\n * Provider Expression that allows sky-radio to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n */\nconst SKY_RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyRadioComponent),\n multi: true,\n};\n\n/**\n * Renders a SKY UX-themed replacement for an HTML `input` element\n * with `type=\"radio\"`. When users select a radio button, its value is driven through an\n * `ngModel` attribute that you specify on the `sky-radio` element or the parent `sky-radio-group` element.\n */\n@Component({\n selector: 'sky-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [SkyThemeComponentClassDirective],\n standalone: false,\n})\nexport class SkyRadioComponent implements OnDestroy, ControlValueAccessor {\n /**\n * Fires when users focus off a radio button.\n */\n public blur = new Subject<void>();\n\n /**\n * Whether the radio button is selected.\n * @default false\n */\n @Input()\n public set checked(value: boolean | undefined) {\n const newCheckedState = !!value;\n\n if (this.#_checked !== newCheckedState) {\n this.#_checked = newCheckedState;\n this.checkedChange.next(newCheckedState);\n\n if (newCheckedState) {\n this.selectedValue = this.value;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public get checked(): boolean {\n return this.#_checked;\n }\n\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (value !== this.disabled) {\n this.#_disabled = value;\n this.disabledChange.next(value);\n this.#changeDetector.markForCheck();\n }\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * The ID for the radio button.\n * If a value is not provided, an autogenerated ID is used.\n */\n @Input()\n public set id(value: string | undefined) {\n if (value) {\n this.inputId = `sky-radio-${value}-input`;\n } else {\n this.inputId = `sky-radio-${this.#defaultId}-input`;\n }\n this.#radioGroupIdSvc?.register(this.#defaultId, this.inputId);\n }\n\n /**\n * The ARIA label for the radio button. This sets the radio button's `aria-label`\n * attribute to provide a text equivalent for screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * when the radio button does not include a visible label. You must set this property for icon\n * radio buttons. If the radio button includes a visible label, use `labelledBy` instead.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use `labelText` instead.\n */\n @Input()\n public set label(value: string | undefined) {\n this.#_label = value;\n\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.label', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Use the `labelText` input instead.',\n });\n }\n }\n\n public get label(): string | undefined {\n return this.#_label;\n }\n\n /**\n * The HTML element ID of the element that labels\n * the radio button. This sets the radio button's `aria-labelledby` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button does not include a visible label, use `label` instead.\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n * @deprecated Use `labelText` instead.\n */\n @Input()\n public set labelledBy(value: string | undefined) {\n this.#_labelledBy = value;\n\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.labelledBy', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Use the `labelText` input instead.',\n });\n }\n }\n\n public get labelledBy(): string | undefined {\n return this.#_labelledBy;\n }\n\n /**\n * This property is deprecated in favor of the `name` property on the `sky-radio-group element`.\n * We recommend using the `sky-radio-group` element with all radio buttons, but if you opt not to,\n * then this property specifies a name for a group of radio buttons.\n * @deprecated\n */\n @Input()\n public set name(value: string | undefined) {\n this.#_name = value;\n this.#changeDetector.markForCheck();\n }\n\n public get name(): string | undefined {\n return this.#_name;\n }\n\n /**\n * This property is deprecated in favor of\n * the `tabIndex` property on the `sky-radio-group` element. It specifies an index for the radio\n * button. If the index is not defined, it is set to the position of the radio button on load.\n * @deprecated\n */\n @Input()\n public set tabindex(value: number | undefined) {\n console.warn(\n 'The sky-radio `tabindex` property is deprecated. Please use the `tabindex` property on the sky-radio-group component.',\n );\n if (value) {\n this.#_tabindex = value;\n } else {\n this.#_tabindex = 0;\n }\n this.#changeDetector.markForCheck();\n }\n public get tabindex(): number {\n return this.#_tabindex;\n }\n\n // For setting the tabindex from the radio group\n public set groupTabIndex(value: number | undefined) {\n if (value) {\n this.#_tabindex = value;\n } else {\n this.#_tabindex = 0;\n }\n\n this.#changeDetector.markForCheck();\n }\n\n /**\n * The value bound to the radio button's `value` property. The value usually\n * corresponds to the radio button's label, which you specify with the `sky-radio-label`\n * component.\n * @required\n */\n @Input()\n public set value(value: any) {\n /* istanbul ignore else */\n if (this.#_value !== value) {\n if (this.selectedValue && this.selectedValue === this.#_value) {\n this.selectedValue = value;\n this.#onChangeCallback(this.selectedValue);\n this.#onTouchedCallback();\n }\n\n this.#_value = value;\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public get value(): any {\n return this.#_value;\n }\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to radio button. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * The icon to display in place of the radio button. To group radio buttons like in\n * the demo above, place the `sky-switch-icon-group` class on the direct parent element of the\n * radio buttons.\n * @deprecated Use `iconName` instead.\n */\n @Input()\n public icon: string | undefined;\n\n /**\n * The SVG icon to display in place of the radio button. To group radio buttons like in\n * the demo above, place the `sky-switch-icon-group` class on the direct parent element of the\n * radio buttons.\n */\n @Input()\n public iconName: string | undefined;\n\n /**\n * The background color type after users select an icon radio button.\n * The valid options correspond\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `danger` creates a red background, `info` creates a blue background,\n * `success` creates a green background, and `warning` creates an orange background.\n * @default \"info\"\n * @deprecated radioType is no longer supported\n */\n @Input()\n public get radioType(): SkyRadioType {\n return this.#_radioType;\n }\n public set radioType(value: SkyRadioType | undefined) {\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.radioType', {\n deprecationMajorVersion: 7,\n });\n }\n\n this.#_radioType = value ?? 'info';\n }\n\n /**\n * The text to display as the radio button's label. Use this instead of the `sky-radio-label` when the label is text-only.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Indicates whether to hide the `labelText`.\n */\n @Input({ transform: booleanAttribute })\n public labelHidden = false;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the radio button label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * Fires when users select a radio button.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public change = new EventEmitter<SkyRadioChange>();\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public checkedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public disabledChange = new EventEmitter<boolean>();\n\n public set selectedValue(value: any) {\n if (value !== this.#_selectedValue) {\n this.#_selectedValue = value;\n }\n }\n public get selectedValue(): any {\n return this.#_selectedValue;\n }\n\n public radioGroupDisabled = false;\n\n protected inputId = '';\n\n #_checked = false;\n #_disabled = false;\n #_name: string | undefined;\n #_radioType: SkyRadioType = 'info';\n #_selectedValue: unknown;\n #_tabindex = 0;\n #_value: any;\n #_label: string | undefined;\n #_labelledBy: string | undefined;\n\n #changeDetector = inject(ChangeDetectorRef);\n #defaultId = inject(SkyIdService).generateId();\n #radioGroupIdSvc = inject(SkyRadioGroupIdService, { optional: true });\n #logger = inject(SkyLogService);\n\n constructor() {\n this.id = this.#defaultId;\n }\n\n public ngOnDestroy(): void {\n this.#radioGroupIdSvc?.unregister(this.#defaultId);\n this.#removeUniqueSelectionListener();\n this.change.complete();\n this.checkedChange.complete();\n this.disabledChange.complete();\n }\n\n public writeValue(value: unknown): void {\n if (value === undefined) {\n return;\n }\n\n this.selectedValue = value;\n this.checked = this.value === this.selectedValue;\n\n this.#changeDetector.markForCheck();\n }\n\n /**\n * @internal\n * Whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public setGroupDisabledState(isDisabled: boolean): void {\n this.radioGroupDisabled = isDisabled;\n this.#changeDetector.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.#onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.#onTouchedCallback = fn;\n }\n\n public onInputChange(event: Event): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.checked = true;\n this.change.next({\n value: this.value,\n });\n\n this.onInputFocusChange();\n this.#onChangeCallback(this.value);\n }\n }\n\n public onInputFocusChange(): void {\n this.#onTouchedCallback();\n this.blur.next();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #removeUniqueSelectionListener = (): void => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onChangeCallback = (value: any): void => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouchedCallback = (): void => {};\n}\n","<span class=\"sky-radio-outer-wrapper\">\n <label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\"\n >\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [checked]=\"checked\"\n [disabled]=\"disabled || radioGroupDisabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange()\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon || iconName,\n 'sky-rounded-corners': icon || iconName,\n 'sky-rounded-circle': !(icon || iconName),\n 'sky-switch-control-info': (icon || iconName) && radioType === 'info',\n 'sky-switch-control-success':\n (icon || iconName) && radioType === 'success',\n 'sky-switch-control-warning':\n (icon || iconName) && radioType === 'warning',\n 'sky-switch-control-danger':\n (icon || iconName) && radioType === 'danger'\n }\"\n >\n @if (iconName) {\n <sky-icon [iconName]=\"iconName\" />\n } @else if (icon) {\n <sky-icon [fixedWidth]=\"true\" [icon]=\"icon\" />\n }\n </span>\n @if (labelText) {\n <span\n class=\"sky-switch-label sky-radio-label-text\"\n [class.sky-screen-reader-only]=\"labelHidden\"\n >{{ labelText }}</span\n >\n } @else {\n <ng-content select=\"sky-radio-label\" />\n }\n </label>\n @if ((helpPopoverContent || helpKey) && labelText) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n class=\"sky-radio-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n</span>\n<div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div\n class=\"sky-radio-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n</div>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Self,\n TemplateRef,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\n\nimport { SkyRadioGroupIdService } from './radio-group-id.service';\nimport { SkyRadioComponent } from './radio.component';\nimport { SkyRadioChange } from './types/radio-change';\nimport { SkyRadioGroupHeadingLevel } from './types/radio-group-heading-level';\nimport { SkyRadioGroupHeadingStyle } from './types/radio-group-heading-style';\n\nlet nextUniqueId = 0;\n\nfunction numberAttribute4(value: unknown): number {\n return numberAttribute(value, 4);\n}\n\n/**\n * Organizes radio buttons into a group. It is required for radio\n * buttons on Angular reactive forms, and we recommend using it with all radio buttons.\n * On Angular forms, the component manages the selected values and keeps the forms up-to-date.\n * When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.\n */\n@Component({\n selector: 'sky-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n providers: [\n SkyRadioGroupIdService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ],\n hostDirectives: [SkyThemeComponentClassDirective],\n standalone: false,\n})\nexport class SkyRadioGroupComponent implements AfterContentInit, OnDestroy {\n /**\n * The HTML element ID of the element that labels\n * the radio button group. This sets the radio button group's `aria-labelledby` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group does not include a visible label, use `ariaLabel` instead.\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n * @deprecated Use `headingText` instead.\n */\n @Input()\n public set ariaLabelledBy(value: string | undefined) {\n this.#_ariaLabelledBy = value;\n\n if (value) {\n this.#logger.deprecated('SkyRadioGroupComponent.ariaLabelledBy', {\n deprecationMajorVersion: 9,\n });\n }\n }\n\n public get ariaLabelledBy(): string | undefined {\n return this.#_ariaLabelledBy;\n }\n\n /**\n * The ARIA label for the radio button group. This sets the\n * radio button group's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group includes a visible label, use `ariaLabelledBy` instead.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use `headingText` instead.\n */\n @Input()\n public set ariaLabel(value: string | undefined) {\n this.#_ariaLabel = value;\n\n if (value) {\n this.#logger.deprecated('SkyRadioGroupComponent.ariaLabel', {\n deprecationMajorVersion: 9,\n });\n }\n }\n\n public get ariaLabel(): string | undefined {\n return this.#_ariaLabel;\n }\n\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (this.#_disabled !== value) {\n this.#_disabled = value;\n this.#updateRadioButtonDisabled();\n }\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * The semantic heading level in the document structure. By default, the heading text is not wrapped in a heading element.\n */\n @Input({ transform: numberAttribute })\n public set headingLevel(value: SkyRadioGroupHeadingLevel | undefined) {\n this.#_headingLevel = value && !isNaN(value) ? value : undefined;\n this.#updateStackedClasses();\n }\n\n public get headingLevel(): SkyRadioGroupHeadingLevel | undefined {\n return this.#_headingLevel;\n }\n\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 4\n */\n @Input({ transform: numberAttribute4 })\n public set headingStyle(value: SkyRadioGroupHeadingStyle) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n\n /**\n * The name for the collection of radio buttons that the component groups together.\n * This property overwrites the deprecated `name` property on individual `sky-radio` elements,\n * and it is required unless the `name` property is set on individual `sky-radio` elements.\n * @required\n */\n @Input()\n public set name(value: string | undefined) {\n if (value) {\n this.#_name = value;\n } else {\n this.#_name = this.#defaultName;\n }\n this.#updateRadioButtonNames();\n }\n public get name(): string {\n return this.#_name;\n }\n\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public required = false;\n\n /**\n * Whether the radio button group is stacked on another form component. When specified,\n * the appropriate vertical spacing is automatically added to the radio button group.\n */\n @Input({ transform: booleanAttribute })\n public set stacked(value: boolean) {\n this.#_stacked = value;\n this.#updateStackedClasses();\n }\n\n public get stacked(): boolean {\n return this.#_stacked;\n }\n\n /**\n * The value of the radio button to select by default when the group loads.\n * The value corresponds to the `value` property of an individual `sky-radio` element within the\n * group.\n */\n // TODO: Look into more strongly typing in a breaking change\n @Input()\n public set value(value: any) {\n const isNewValue = value !== this.#controlValue;\n\n /* istanbul ignore else */\n if (isNewValue) {\n this.#controlValue = value;\n this.#onChange(value);\n this.#updateCheckedRadioFromValue();\n }\n }\n\n /**\n * The index for all the radio buttons in the group. If the index is not defined,\n * the indices for individual radio buttons are set to their positions on load.\n * This property supports accessibility by placing focus on the currently selected radio\n * button. If no radio button is selected, it places focus on the first or last button\n * depending on how users navigate to the radio button group.\n */\n @Input()\n public set tabIndex(value: number | undefined) {\n if (this.#_tabIndex !== value) {\n this.#_tabIndex = value;\n this.#updateRadioButtonTabIndexes();\n }\n }\n public get tabIndex(): number | undefined {\n return this.#_tabIndex;\n }\n\n /**\n * The text to display as the radio group's heading.\n */\n @Input()\n public headingText: string | undefined;\n\n /**\n * Indicates whether to hide the `headingText`.\n */\n @Input({ transform: booleanAttribute })\n public headingHidden = false;\n\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n @Input()\n public hintText: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to radio group. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the radio group heading. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * Our radio components are usually implemented using an unordered list. This is an\n * accessibility violation because the unordered list has an implicit role which\n * interrupts the 'radiogroup' and 'radio' relationship. To correct this, we can set the\n * radio group's 'aria-owns' attribute to a space-separated list of radio IDs.\n * For more information about the `aria-owns` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-owns), and for more information about the `radio` role, see [its definition](https://www.w3.org/TR/wai-aria/#radio).\n */\n public ariaOwns: string | undefined;\n\n @ContentChildren(SkyRadioComponent, { descendants: true })\n public radios: QueryList<SkyRadioComponent> | undefined;\n\n @HostBinding('class.sky-form-field-stacked')\n public stackedLg = false;\n\n @HostBinding('class.sky-field-group-stacked')\n public stackedXL = false;\n\n protected get isRequired(): boolean {\n return (\n this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false)\n );\n }\n\n protected headingClass = 'sky-font-heading-4';\n\n #controlValue: any;\n\n #defaultName = `sky-radio-group-${nextUniqueId++}`;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_disabled = false;\n\n #_name = '';\n\n #_tabIndex: number | undefined;\n\n #_ariaLabel: string | undefined;\n\n #_ariaLabelledBy: string | undefined;\n\n #_headingLevel: SkyRadioGroupHeadingLevel | undefined;\n\n #_stacked = false;\n\n #changeDetector: ChangeDetectorRef;\n #radioGroupIdSvc: SkyRadioGroupIdService;\n\n readonly #logger = inject(SkyLogService);\n readonly #idService = inject(SkyIdService);\n\n protected errorId = this.#idService.generateId();\n protected ngControl: NgControl | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n radioGroupIdSvc: SkyRadioGroupIdService,\n @Self() @Optional() ngControl: NgControl,\n ) {\n if (ngControl) {\n ngControl.valueAccessor = this;\n }\n this.#changeDetector = changeDetector;\n this.#radioGroupIdSvc = radioGroupIdSvc;\n this.ngControl = ngControl;\n this.name = this.#defaultName;\n\n this.#radioGroupIdSvc.radioIds\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((ids) => {\n this.ariaOwns = ids.join(' ') || undefined;\n this.#changeDetector.markForCheck();\n });\n }\n\n public ngAfterContentInit(): void {\n // Let child radio components render before updating.\n setTimeout(() => {\n this.#resetRadioButtons();\n });\n\n // Watch for radio selections.\n this.watchForSelections();\n\n /* istanbul ignore else */\n if (this.radios) {\n this.radios.changes.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n // Wait for child radio components to finish any rendering updates.\n setTimeout(() => {\n this.#resetRadioButtons();\n });\n\n // Subscribe to the new radio buttons\n this.watchForSelections();\n });\n }\n }\n\n public watchForSelections(): void {\n /* istanbul ignore else */\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.change\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change: SkyRadioChange) => {\n this.#onTouched();\n this.value = change.value;\n });\n radio.blur.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.#onTouched();\n this.#changeDetector.markForCheck();\n });\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public writeValue(value: unknown): void {\n const isNewValue = value !== this.#controlValue;\n\n /* istanbul ignore else */\n if (isNewValue) {\n this.#controlValue = value;\n this.#updateCheckedRadioFromValue();\n }\n }\n\n /**\n * @internal\n * Whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public registerOnChange(fn: (value: any) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.#onTouched = fn;\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onChange: (value: any) => void = () => {};\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched: () => any = () => {};\n\n #updateRadioButtonDisabled(): void {\n if (this.radios) {\n this.radios.forEach((radio) =>\n radio.setGroupDisabledState(this.disabled),\n );\n }\n }\n\n #updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n\n #updateRadioButtonTabIndexes(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.groupTabIndex = this.tabIndex;\n });\n }\n }\n\n #updateCheckedRadioFromValue(): void {\n if (!this.radios) {\n return;\n }\n\n this.radios.forEach((radio) => {\n radio.checked = this.#controlValue === radio.value;\n });\n }\n\n #resetRadioButtons(): void {\n this.#updateCheckedRadioFromValue();\n this.#updateRadioButtonNames();\n this.#updateRadioButtonTabIndexes();\n this.#updateRadioButtonDisabled();\n }\n\n #updateStackedClasses(): void {\n this.stackedLg = !this.headingLevel && this.stacked;\n this.stackedXL = !!this.headingLevel && this.stacked;\n }\n}\n","<fieldset\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"headingText ? undefined : ariaLabel\"\n [attr.aria-labelledby]=\"headingText ? undefined : ariaLabelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"isRequired ? true : null\"\n [attr.required]=\"isRequired ? '' : null\"\n [attr.aria-invalid]=\"!!ngControl?.errors\"\n [attr.aria-errormessage]=\"\n headingText && ngControl?.errors ? errorId : undefined\n \"\n>\n @if (headingText) {\n <legend\n class=\"sky-radio-group-legend\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden\n }\"\n >\n <span\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >\n @switch (headingLevel) {\n @case (3) {\n <h3 [class]=\"headingClass\">{{ headingText }}</h3>\n }\n @case (4) {\n <h4 [class]=\"headingClass\">{{ headingText }}</h4>\n }\n @case (5) {\n <h5 [class]=\"headingClass\">{{ headingText }}</h5>\n }\n @default {\n <span [class]=\"'sky-radio-group-heading-text ' + headingClass\">{{\n headingText\n }}</span>\n }\n }\n </span>\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_form_group_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n }\n </legend>\n }\n <div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div\n class=\"sky-radio-group-hint-text\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'default',\n 'sky-font-hint-text-s': 'modern'\n }\"\n >\n {{ hintText }}\n </div>\n }\n </div>\n <div class=\"sky-radio-group-content\">\n <ng-content />\n </div>\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"headingText\"\n [touched]=\"ngControl?.touched\"\n [dirty]=\"ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n","import { Component, HostListener, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\n\n/**\n * Specifies a label for the radio button. To display a help button beside the label, include a help button element,\n * such as `sky-help-inline`, in the `sky-radio-label` element and a `sky-control-help` CSS class on that help button\n * element.\n * @deprecated Use `labelText` input on `sky-radio-component` instead.\n */\n@Component({\n selector: 'sky-radio-label',\n templateUrl: './radio-label.component.html',\n standalone: false,\n})\nexport class SkyRadioLabelComponent {\n // When clicking on a checkbox label, Angular registers two click events.\n // This handler ignores all events except for those that deal\n // with the checkbox input explicitly.\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n constructor() {\n inject(SkyLogService).deprecated('SkyToggleSwitchLabelComponent', {\n deprecationMajorVersion: 10,\n replacementRecommendation:\n 'To add a label to radio button, use the `labelText` input on the radio button component instead.',\n });\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyRadioGroupComponent } from './radio-group.component';\nimport { SkyRadioLabelComponent } from './radio-label.component';\nimport { SkyRadioComponent } from './radio.component';\n\n@NgModule({\n declarations: [\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyFormsResourcesModule,\n SkyTrimModule,\n SkyThemeModule,\n ],\n exports: [\n SkyFormErrorModule,\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent,\n ],\n})\nexport class SkyRadioModule {}\n","import { Directive, Input, booleanAttribute, inject } from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\n\n/**\n * A host directive used to capture the \"required\" state of the host's form control.\n * @internal\n */\n@Directive({\n standalone: true,\n})\nexport class SkyRequiredStateDirective {\n @Input({ transform: booleanAttribute })\n public required = false;\n\n /**\n * Whether the `required` attribute is set to `true`, or the control includes\n * the `Validators.required` validator.\n */\n public isRequired(): boolean {\n return (\n this.required ||\n !!this.#ngControl?.control?.hasValidator(Validators.required)\n );\n }\n\n readonly #ngControl = inject(NgControl, { optional: true, self: true });\n}\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyCoreAdapterService, SkyMediaBreakpoints } from '@skyux/core';\n\nconst RESPONSIVE_CLASS_XS = 'sky-selection-box-container-xs';\nconst RESPONSIVE_CLASS_SM = 'sky-selection-box-container-sm';\nconst RESPONSIVE_CLASS_MD = 'sky-selection-box-container-md';\nconst RESPONSIVE_CLASS_LG = 'sky-selection-box-container-lg';\n\nconst BREAKPOINT_XS_MAX_PIXELS = 767;\nconst BREAKPOINT_SM_MIN_PIXELS = 768;\nconst BREAKPOINT_SM_MAX_PIXELS = 991;\nconst BREAKPOINT_MD_MIN_PIXELS = 992;\nconst BREAKPOINT_MD_MAX_PIXELS = 1439;\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkySelectionBoxAdapterService {\n #coreAdapterService: SkyCoreAdapterService;\n #renderer: Renderer2;\n\n constructor(\n coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2,\n ) {\n this.#coreAdapterService = coreAdapterService;\n this.#renderer = rendererFactory.createRenderer(undefined, null);\n }\n\n /**\n * Sets focus on the specified element.\n */\n public focus(el: ElementRef): void {\n el.nativeElement.focus();\n }\n\n /**\n * Returns a child element with the `.sky-switch` class.\n * Useful for getting SKY UX-themed radio buttons or checkboxes.\n */\n public getControl(el: ElementRef): HTMLElement {\n return el.nativeElement.querySelector('.sky-switch');\n }\n\n /**\n * Returns a breakpoint based on the width.\n * @param width Width of the element in pixels.\n */\n public getBreakpointForWidth(width: number | undefined): SkyMediaBreakpoints {\n if (!width) {\n return SkyMediaBreakpoints.lg;\n }\n\n if (width <= BREAKPOINT_XS_MAX_PIXELS) {\n return SkyMediaBreakpoints.xs;\n } else if (\n width >= BREAKPOINT_SM_MIN_PIXELS &&\n width <= BREAKPOINT_SM_MAX_PIXELS\n ) {\n return SkyMediaBreakpoints.sm;\n } else if (\n width >= BREAKPOINT_MD_MIN_PIXELS &&\n width <= BREAKPOINT_MD_MAX_PIXELS\n ) {\n return SkyMediaBreakpoints.md;\n } else {\n return SkyMediaBreakpoints.lg;\n }\n }\n\n /**\n * Returns the width of the `parentNode` of the provided `element`.\n */\n public getParentWidth(element: ElementRef): number | undefined {\n return (\n element.nativeElement as HTMLElement | undefined\n )?.parentElement?.getBoundingClientRect()?.width;\n }\n\n /**\n * Returns `true` if the `childEl` is a descendant of the `parentEl`.\n */\n public isDescendant(parentEl: ElementRef, childEl: HTMLElement): boolean {\n return parentEl.nativeElement.contains(childEl);\n }\n\n /**\n * Sets the `tabIndex` of all focusable children of the `element` to the provided `tabIndex`.\n */\n public setChildrenTabIndex(element: ElementRef, tabIndex: number): void {\n const el = element.nativeElement;\n const focusableEls = this.#coreAdapterService.getFocusableChildren(el, {\n ignoreVisibility: true,\n });\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n\n /**\n * Adds a responsive CSS class on the provided element based on its current width.\n */\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints,\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_XS);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_SM);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_MD);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_LG);\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = RESPONSIVE_CLASS_XS;\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = RESPONSIVE_CLASS_SM;\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = RESPONSIVE_CLASS_MD;\n break;\n }\n case SkyMediaBreakpoints.lg: {\n newClass = RESPONSIVE_CLASS_LG;\n break;\n }\n }\n\n this.#renderer.addClass(nativeEl, newClass);\n }\n\n /**\n * Sets the `tabIndex` of the `element` to the provided `tabIndex`.\n */\n public setTabIndex(element: ElementRef, tabIndex: number): void {\n const el = element.nativeElement;\n\n el.tabIndex = tabIndex;\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the description to display in a selection box.\n */\n@Component({\n selector: 'sky-selection-box-description',\n templateUrl: './selection-box-description.component.html',\n standalone: false,\n})\nexport class SkySelectionBoxDescriptionComponent {}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyCheckboxComponent } from '../checkbox/checkbox.component';\nimport { SkyRadioComponent } from '../radio/radio.component';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\n\n/**\n * Creates a button to present users with a choice or question before proceeding with a one-time process.\n */\n@Component({\n selector: 'sky-selection-box',\n styleUrls: ['./selection-box.component.scss'],\n templateUrl: './selection-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkySelectionBoxComponent implements OnDestroy {\n /**\n * The radio button or checkbox to display in the selection box.\n * @required\n */\n @Input()\n public set control(\n value: SkyCheckboxComponent | SkyRadioComponent | undefined,\n ) {\n this.#_control = value;\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#ngUnsubscribe = new Subject<void>();\n if (value) {\n this.#updateCheckedOnControlChange();\n this.#updateDisabledState();\n }\n }\n\n public get control(): SkyCheckboxComponent | SkyRadioComponent | undefined {\n return this.#_control;\n }\n\n public set checked(value: boolean) {\n this.#_checked = value;\n this.#changeDetector.markForCheck();\n }\n\n public get checked(): boolean {\n return this.#_checked;\n }\n\n public set disabled(value: boolean) {\n if (this.selectionBoxEl) {\n this.#selectionBoxAdapterService.setTabIndex(\n this.selectionBoxEl,\n value ? -1 : 0,\n );\n }\n this.#_disabled = value;\n this.#changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n @ViewChild('control', {\n read: ElementRef,\n static: false,\n })\n public controlEl: ElementRef | undefined;\n\n @ViewChild('selectionBox', {\n read: ElementRef,\n static: false,\n })\n public set selectionBoxEl(value: ElementRef | undefined) {\n this.#_selectionBoxEl = value;\n if (value) {\n this.#selectionBoxAdapterService.setTabIndex(\n value,\n this.disabled ? -1 : 0,\n );\n\n // Wait for child elements to render before overriding tabIndex values.\n // TODO: This logic is brittle since the checkbox/radio can set its own tab index\n // value at any time. We need a way to enforce the tab index for the entire lifespan of the component.\n setTimeout(() => {\n this.#selectionBoxAdapterService.setChildrenTabIndex(value, -1);\n });\n }\n }\n\n public get selectionBoxEl(): ElementRef | undefined {\n return this.#_selectionBoxEl;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_checked = false;\n\n #_control: SkyCheckboxComponent | SkyRadioComponent | undefined;\n\n #_disabled = false;\n\n #_selectionBoxEl: ElementRef | undefined;\n\n #changeDetector: ChangeDetectorRef;\n #selectionBoxAdapterService: SkySelectionBoxAdapterService;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n selectionBoxAdapterService: SkySelectionBoxAdapterService,\n ) {\n this.#changeDetector = changeDetector;\n this.#selectionBoxAdapterService = selectionBoxAdapterService;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public onKeydown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key === ' ') {\n this.#selectControl();\n event.preventDefault();\n }\n }\n\n #selectControl(): void {\n if (this.controlEl) {\n this.#selectionBoxAdapterService.getControl(this.controlEl).click();\n }\n\n if (this.selectionBoxEl) {\n this.#selectionBoxAdapterService.focus(this.selectionBoxEl);\n }\n }\n\n #updateCheckedOnControlChange(): void {\n /* istanbul ignore else */\n if (this.control) {\n this.control.checkedChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.checked = value;\n });\n }\n }\n\n #updateDisabledState(): void {\n /* istanbul ignore else */\n if (this.control) {\n this.control.disabledChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.disabled = value;\n });\n }\n }\n}\n","<label\n #selectionBox\n class=\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\"\n [attr.disabled]=\"disabled ? true : null\"\n [ngClass]=\"{\n 'sky-selection-box-selected': checked,\n 'sky-selection-box-disabled': disabled\n }\"\n (keydown)=\"onKeydown($event)\"\n>\n <div\n #icon\n class=\"sky-selection-box-icon\"\n [ngClass]=\"{\n 'sky-selection-box-icon-hidden': !icon.innerHTML.trim()\n }\"\n >\n <ng-content select=\"sky-icon\" />\n </div>\n\n <div class=\"sky-selection-box-content\">\n <div class=\"sky-selection-box-header sky-font-display-2\">\n <ng-content select=\"sky-selection-box-header\" />\n </div>\n <div class=\"sky-selection-box-description sky-font-deemphasized\">\n <ng-content select=\"sky-selection-box-description\" />\n </div>\n </div>\n\n <div #control class=\"sky-selection-box-control\">\n <ng-content select=\"sky-radio\" />\n <ng-content select=\"sky-checkbox\" />\n </div>\n</label>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SkyCoreAdapterService, SkyMutationObserverService } from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\nimport { SkySelectionBoxComponent } from './selection-box.component';\nimport { SkySelectionBoxGridAlignItemsType } from './types/selection-box-grid-align-items-type';\n\nconst SKY_SELECTION_BOX_CLASS_NAME = '.sky-selection-box';\n\n/**\n * Creates a grid layout for an array of selection boxes.\n */\n@Component({\n selector: 'sky-selection-box-grid',\n templateUrl: './selection-box-grid.component.html',\n styleUrls: ['./selection-box-grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkySelectionBoxGridComponent implements OnDestroy, OnInit {\n /**\n * @internal\n * How to display the selection boxes in the grid.\n * @default 'center'\n */\n @Input()\n public set alignItems(value: SkySelectionBoxGridAlignItemsType | undefined) {\n if (value) {\n this.#_alignItems = value;\n } else {\n this.#_alignItems = 'center';\n }\n }\n\n public get alignItems(): SkySelectionBoxGridAlignItemsType {\n return this.#_alignItems;\n }\n\n @ContentChildren(SkySelectionBoxComponent, {\n read: SkySelectionBoxComponent,\n })\n public selectionBoxes: QueryList<SkySelectionBoxComponent> | undefined;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true,\n })\n public set containerElementRef(value: ElementRef | undefined) {\n this.#_containerElementRef = value;\n this.#destroyMutationObserver();\n if (value) {\n this.#updateBreakpointClass();\n this.#initMutationObserver();\n }\n }\n\n public get containerElementRef(): ElementRef | undefined {\n return this.#_containerElementRef;\n }\n\n #mutationObserver: MutationObserver | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_alignItems: SkySelectionBoxGridAlignItemsType = 'center';\n\n #_containerElementRef: ElementRef | undefined;\n\n #coreAdapterService: SkyCoreAdapterService;\n #selectionBoxAdapter: SkySelectionBoxAdapterService;\n #hostElRef: ElementRef;\n #mutationObserverSvc: SkyMutationObserverService;\n #ngZone: NgZone;\n #themeSvc: SkyThemeService | undefined;\n\n constructor(\n coreAdapterService: SkyCoreAdapterService,\n selectionBoxAdapter: SkySelectionBoxAdapterService,\n hostElRef: ElementRef,\n mutationObserverSvc: SkyMutationObserverService,\n ngZone: NgZone,\n @Optional() themeSvc?: SkyThemeService,\n ) {\n this.#coreAdapterService = coreAdapterService;\n this.#selectionBoxAdapter = selectionBoxAdapter;\n this.#hostElRef = hostElRef;\n this.#mutationObserverSvc = mutationObserverSvc;\n this.#ngZone = ngZone;\n this.#themeSvc = themeSvc;\n }\n\n public ngOnInit(): void {\n /* istanbul ignore else */\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateBreakpointClass();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#destroyMutationObserver();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.#updateBreakpointClass();\n }\n\n #initMutationObserver(): void {\n /* istanbul ignore else */\n if (!this.#mutationObserver && this.containerElementRef) {\n const el = this.containerElementRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // scenarios. This will keep MutationObserver from triggering change detection.\n this.#ngZone.runOutsideAngular(() => {\n this.#mutationObserver = this.#mutationObserverSvc.create(() => {\n this.#updateChildrenHeights();\n });\n\n this.#mutationObserver.observe(el, {\n characterData: true,\n subtree: true,\n });\n });\n }\n }\n\n #destroyMutationObserver(): void {\n /* istanbul ignore else */\n if (this.#mutationObserver) {\n this.#mutationObserver.disconnect();\n this.#mutationObserver = undefined;\n }\n }\n\n #updateBreakpointClass(): void {\n const parentWidth = this.#selectionBoxAdapter.getParentWidth(\n this.#hostElRef,\n );\n\n if (this.containerElementRef) {\n this.#selectionBoxAdapter.setResponsiveClass(\n this.containerElementRef,\n this.#selectionBoxAdapter.getBreakpointForWidth(parentWidth),\n );\n }\n this.#updateChildrenHeights();\n }\n\n #updateChildrenHeights(): void {\n if (this.containerElementRef) {\n this.#coreAdapterService.resetHeight(\n this.containerElementRef,\n SKY_SELECTION_BOX_CLASS_NAME,\n );\n this.#coreAdapterService.syncMaxHeight(\n this.containerElementRef,\n SKY_SELECTION_BOX_CLASS_NAME,\n );\n }\n }\n}\n","<div\n #container\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n>\n <ng-content select=\"sky-selection-box\" />\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the header to display in a selection box.\n */\n@Component({\n selector: 'sky-selection-box-header',\n templateUrl: './selection-box-header.component.html',\n standalone: false,\n})\nexport class SkySelectionBoxHeaderComponent {}\n","<ng-content />\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\nimport { SkySelectionBoxDescriptionComponent } from './selection-box-description.component';\nimport { SkySelectionBoxGridComponent } from './selection-box-grid.component';\nimport { SkySelectionBoxHeaderComponent } from './selection-box-header.component';\nimport { SkySelectionBoxComponent } from './selection-box.component';\n\n@NgModule({\n declarations: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n imports: [CommonModule, SkyThemeModule],\n exports: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n providers: [SkySelectionBoxAdapterService],\n})\nexport class SkySelectionBoxModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\n\n/**\n * Specifies the label to display beside the toggle switch. To display a help button beside the label, include a help\n * button element, such as `sky-help-inline`, in the `sky-toggle-switch` element and a `sky-control-help` CSS class on\n * that help button element.\n * @deprecated Use the `labelText` input on the toggle switch component instead.\n */\n@Component({\n selector: 'sky-toggle-switch-label',\n templateUrl: './toggle-switch-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyToggleSwitchLabelComponent {\n constructor() {\n inject(SkyLogService).deprecated('SkyToggleSwitchLabelComponent', {\n deprecationMajorVersion: 9,\n replacementRecommendation:\n 'To add a label to toggle switch, use the `labelText` input on the toggle switch component instead.',\n });\n }\n}\n","<span skyTrim><ng-content /></span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport { SkyToggleSwitchChange } from './types/toggle-switch-change';\n\nconst SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\nconst SKY_TOGGLE_SWITCH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\n\n@Component({\n selector: 'sky-toggle-switch',\n templateUrl: './toggle-switch.component.html',\n styleUrls: ['./toggle-switch.component.scss'],\n providers: [\n SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,\n SKY_TOGGLE_SWITCH_VALIDATOR,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyToggleSwitchComponent\n implements AfterContentInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * The ARIA label for the toggle switch. This sets the `aria-label`\n * attribute to provide a text equivalent for screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * Use a context-sensitive label, such as \"Activate annual fundraiser\" for a toggle switch that activates and deactivates an annual fundraiser. Context is especially important if multiple toggle switches are in close proximity.\n * When the `sky-toggle-switch-label` component displays a visible label, this property is only necessary if that label requires extra context.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use the `labelText` input instead.\n */\n @Input()\n public set ariaLabel(value: string | undefined) {\n this.#_ariaLabel = value;\n\n if (value !== undefined) {\n this.#logSvc.deprecated('SkyToggleSwitchComponent.ariaLabel', {\n deprecationMajorVersion: 9,\n replacementRecommendation:\n 'To add an ARIA label to the toggle switch, use the `labelText` input instead',\n });\n }\n }\n\n public get ariaLabel(): string | undefined {\n return this.#_ariaLabel;\n }\n\n /**\n * Whether the toggle switch is selected.\n * @default false\n */\n @Input()\n public set checked(value: boolean | undefined) {\n const checked = !!value;\n if (checked !== this.#_checked) {\n this.#_checked = checked;\n this.#onChange(checked);\n\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.#isFirstChange && this.#control) {\n this.#control.markAsPristine();\n this.#isFirstChange = false;\n }\n }\n }\n\n public get checked(): boolean {\n return this.#_checked;\n }\n\n /**\n * Whether to disable the toggle switch on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n */\n @Input()\n public disabled: boolean | undefined = false;\n\n /**\n * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the toggle switch. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * The tab index for the toggle switch. If not defined, the index is set to the position\n * of the toggle switch on load.\n */\n @Input()\n public tabIndex: number | undefined = 0;\n\n /**\n * The text to display as the toggle switch's label.\n */\n @Input()\n public labelText: string | undefined;\n\n /**\n * Whether to hide `labelText` from view.\n */\n @Input({ transform: booleanAttribute })\n public labelHidden = false;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the toggle switch label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application. This property only applies when `labelText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * Fires when the checked state of a toggle switch changes.\n */\n @Output()\n public toggleChange = new EventEmitter<SkyToggleSwitchChange>();\n\n public hasLabelComponent = false;\n public labelId: string;\n\n public enableIndicatorAnimation = false;\n\n @ContentChildren(SkyToggleSwitchLabelComponent)\n public labelComponents: QueryList<SkyToggleSwitchLabelComponent> | undefined;\n\n #control: AbstractControl | undefined;\n #isFirstChange = true;\n readonly #logSvc = inject(SkyLogService);\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaLabel: string | undefined;\n #_checked = false;\n\n #changeDetector: ChangeDetectorRef;\n\n constructor(changeDetector: ChangeDetectorRef, idService: SkyIdService) {\n this.#changeDetector = changeDetector;\n this.labelId = idService.generateId();\n }\n\n public ngAfterContentInit(): void {\n /* istanbul ignore else */\n if (this.labelComponents) {\n this.hasLabelComponent = this.labelComponents.length > 0;\n\n this.labelComponents.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((newLabelComponents) => {\n this.hasLabelComponent = newLabelComponents.length > 0;\n // Allow the template to reload any ARIA attributes that are relying on the\n // label component existing in the DOM.\n this.#changeDetector.markForCheck();\n });\n }\n\n // Wait for the view to render before applying animation effects.\n // (Some browsers, such as Firefox, apply the animation too early.)\n setTimeout(() => {\n this.enableIndicatorAnimation = true;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public writeValue(value: boolean): void {\n this.checked = !!value;\n this.#changeDetector.markForCheck();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n return null;\n }\n\n public registerOnChange(fn: (value: any) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.#onTouched = fn;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.#changeDetector.markForCheck();\n }\n\n public onButtonClick(event: any): void {\n event.stopPropagation();\n this.#toggleChecked();\n this.#emitChangeEvent();\n }\n\n public onButtonBlur(): void {\n this.#onTouched();\n }\n\n /* istanbul ignore next */\n #onTouched: () => any = () => {};\n /* istanbul ignore next */\n #onChange: (value: any) => void = () => {};\n\n #emitChangeEvent(): void {\n this.#onChange(this.#_checked);\n this.toggleChange.emit({\n checked: this.#_checked,\n });\n }\n\n #toggleChecked(): void {\n this.checked = !this.checked;\n }\n}\n","<span\n class=\"sky-toggle-switch\"\n [ngClass]=\"{\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\n }\"\n>\n <button\n #toggle=\"skyId\"\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n skyId\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"labelText || ariaLabel || null\"\n [attr.aria-labelledby]=\"\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\n \"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <div aria-hidden=\"true\" class=\"sky-toggle-switch-switch\">\n <i\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n >&nbsp;</i\n >\n </div>\n </button>\n <span>\n @if (hasLabelComponent || labelText) {\n <label\n class=\"sky-toggle-switch-label\"\n [for]=\"toggle.id\"\n [attr.id]=\"labelId\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <span class=\"sky-toggle-switch-label-text\">{{ labelText }}</span>\n }\n } @else {\n <ng-content select=\"sky-toggle-switch-label\" />\n }\n </label>\n }\n <span class=\"sky-control-help-container\">\n @if (labelText && (helpPopoverContent || helpKey)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n </span>\n </span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\n\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport { SkyToggleSwitchComponent } from './toggle-switch.component';\n\n@NgModule({\n declarations: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n imports: [\n CommonModule,\n FormsModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyTrimModule,\n ],\n exports: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n})\nexport class SkyToggleSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyCharacterCounterScreenReaderPipe","i3","i1","numberAttribute4","i2","i3.SkyFormErrorsComponent","i4","i5","i6","i7.SkyCheckboxLabelTextLabelComponent","MAX_FILE_SIZE_DEFAULT","MIN_FILE_SIZE_DEFAULT","i1.SkyFileAttachmentService","i2.SkyFileItemService","i7","i9","takeUntil","i2.SkyCharacterCounterIndicatorComponent","i7.SkyInputBoxHintTextPipe","i7.SkyInputBoxComponent","i8.SkyInputBoxControlDirective","i1.SkyFileItemService","i1.SkyRadioGroupIdService","i5.SkyFormErrorsComponent","i8","i1.SkySelectionBoxAdapterService","i2.SkySelectionBoxAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-forms.mjs","sources":["../tmp-esm2022/lib/modules/shared/sky-forms-resources.module.js","../tmp-esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.js","../tmp-esm2022/lib/modules/character-counter/character-counter-indicator.component.js","../tmp-esm2022/lib/modules/character-counter/character-counter.directive.js","../tmp-esm2022/lib/modules/character-counter/character-counter.module.js","../tmp-esm2022/lib/modules/form-error/form-errors-enabled-token.js","../tmp-esm2022/lib/modules/form-error/form-error.component.js","../tmp-esm2022/lib/modules/form-error/form-error.module.js","../tmp-esm2022/lib/modules/form-error/form-errors.component.js","../tmp-esm2022/lib/modules/form-error/form-errors.module.js","../tmp-esm2022/lib/modules/checkbox/checkbox-group.component.js","../tmp-esm2022/lib/modules/checkbox/checkbox-label-text-label.component.js","../tmp-esm2022/lib/modules/checkbox/checkbox-label.component.js","../tmp-esm2022/lib/modules/checkbox/checkbox.component.js","../tmp-esm2022/lib/modules/checkbox/checkbox.module.js","../tmp-esm2022/lib/modules/field-group/field-group.component.js","../tmp-esm2022/lib/modules/field-group/field-group.module.js","../tmp-esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.js","../tmp-esm2022/lib/modules/file-attachment/shared/file-size.pipe.js","../tmp-esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.js","../tmp-esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.js","../tmp-esm2022/lib/modules/file-attachment/shared/file-item.service.js","../tmp-esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.js","../tmp-esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.js","../tmp-esm2022/lib/modules/input-box/input-box-host.service.js","../tmp-esm2022/lib/modules/input-box/input-box-control.directive.js","../tmp-esm2022/lib/modules/input-box/input-box-hint-text.pipe.js","../tmp-esm2022/lib/modules/input-box/input-box-adapter.service.js","../tmp-esm2022/lib/modules/input-box/input-box.component.js","../tmp-esm2022/lib/modules/input-box/input-box.module.js","../tmp-esm2022/lib/modules/file-attachment/file-drop/file-drop.component.js","../tmp-esm2022/lib/modules/file-attachment/file-drop/file-item.component.js","../tmp-esm2022/lib/modules/file-attachment/file-drop/file-drop.module.js","../tmp-esm2022/lib/modules/file-attachment/file-attachments.module.js","../tmp-esm2022/lib/modules/radio/radio-group-id.service.js","../tmp-esm2022/lib/modules/radio/radio.component.js","../tmp-esm2022/lib/modules/radio/radio-group.component.js","../tmp-esm2022/lib/modules/radio/radio-label.component.js","../tmp-esm2022/lib/modules/radio/radio.module.js","../tmp-esm2022/lib/modules/required-state/required-state.directive.js","../tmp-esm2022/lib/modules/selection-box/selection-box-adapter.service.js","../tmp-esm2022/lib/modules/selection-box/selection-box-description.component.js","../tmp-esm2022/lib/modules/selection-box/selection-box.component.js","../tmp-esm2022/lib/modules/selection-box/selection-box-grid.component.js","../tmp-esm2022/lib/modules/selection-box/selection-box-header.component.js","../tmp-esm2022/lib/modules/selection-box/selection-box.module.js","../tmp-esm2022/lib/modules/toggle-switch/toggle-switch-label.component.js","../tmp-esm2022/lib/modules/toggle-switch/toggle-switch.component.js","../tmp-esm2022/lib/modules/toggle-switch/toggle-switch.module.js","../tmp-esm2022/skyux-forms.js"],"sourcesContent":["/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-forms' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\n 'EN-US': {\n skyux_character_count_message: { message: '{0} characters out of {1}' },\n skyux_character_count_over_limit: {\n message: 'You are over the character limit.',\n },\n skyux_form_error_character_count: {\n message: 'Limit {0} to {1} characters.',\n },\n skyux_form_error_date: { message: 'Select or enter a valid date.' },\n skyux_form_error_date_max: {\n message: 'Select or enter a date on or before {0}.',\n },\n skyux_form_error_date_min: {\n message: 'Select or enter a date on or after {0}.',\n },\n skyux_form_error_fuzzy_date_future_disabled: {\n message: 'Future dates are disabled. Select or enter a date in the past.',\n },\n skyux_form_error_fuzzy_date_invalid: {\n message: 'Select or enter a valid date.',\n },\n skyux_form_error_fuzzy_date_max_date: {\n message: 'Select or enter a date on or before {0}.',\n },\n skyux_form_error_fuzzy_date_min_date: {\n message: 'Select or enter a date on or after {0}.',\n },\n skyux_form_error_fuzzy_date_year_required: { message: 'Year is required.' },\n skyux_form_error_email: {\n message: 'Enter an email address with a valid format.',\n },\n skyux_form_error_maxlength: { message: 'Limit {0} to {1} characters.' },\n skyux_form_error_minlength: {\n message: '{0} must be at least {1} characters.',\n },\n skyux_form_error_phone: {\n message: 'Enter a phone number matching the format for the selected country.',\n },\n skyux_form_error_required: { message: '{0} is required.' },\n skyux_form_error_time: { message: 'Select or enter a valid time.' },\n skyux_form_error_url: { message: 'Enter a URL with a valid format.' },\n skyux_form_group_required: { message: 'Required' },\n skyux_file_attachment_button_label_choose_file: { message: 'Attach file' },\n skyux_file_attachment_button_label_choose_file_label: {\n message: 'Attach file for',\n },\n skyux_file_attachment_button_label_replace_file: {\n message: 'Replace file',\n },\n skyux_file_attachment_button_label_replace_file_label: {\n message: 'Replace file {0} for',\n },\n skyux_file_attachment_file_item_delete: { message: 'Delete {0}' },\n skyux_file_attachment_file_item_remove: { message: 'Remove file {0} for' },\n skyux_file_attachment_file_size_b_plural: { message: '{0} bytes' },\n skyux_file_attachment_file_size_b_singular: { message: '{0} byte' },\n skyux_file_attachment_file_size_gb: { message: '{0} GB' },\n skyux_file_attachment_file_size_kb: { message: '{0} KB' },\n skyux_file_attachment_file_size_mb: { message: '{0} MB' },\n skyux_file_attachment_file_upload_drag_file_here: {\n message: 'Drag a file here',\n },\n skyux_file_attachment_file_upload_drag_or_click: {\n message: 'Drag a file here or click to browse',\n },\n skyux_file_attachment_file_upload_drop_files_here: {\n message: 'Drop files here',\n },\n skyux_file_attachment_file_upload_file_added: { message: '{0} added.' },\n skyux_file_attachment_file_upload_file_replaced: {\n message: '{0} removed. {1} added.',\n },\n skyux_file_attachment_file_upload_file_removed: { message: '{0} removed.' },\n skyux_file_attachment_file_upload_image_preview_alt_text: {\n message: 'Image preview',\n },\n skyux_file_attachment_file_upload_invalid_file: {\n message: 'This file type is invalid',\n },\n skyux_file_attachment_file_upload_link_label: { message: 'Link to a file' },\n skyux_file_attachment_file_upload_or_click_to_browse: {\n message: 'or click to browse',\n },\n skyux_file_attachment_file_upload_link_done: { message: 'Done' },\n skyux_file_attachment_file_upload_link_added: {\n message: 'Link to {0} added.',\n },\n skyux_file_attachment_file_upload_link_removed: {\n message: 'Link to {0} removed.',\n },\n skyux_file_attachment_file_type_error_label_text: {\n message: 'Upload one of these file types: {0}.',\n },\n skyux_file_attachment_file_type_error_label_text_with_name: {\n message: '{0}: Upload one of these file types: {1}.',\n },\n skyux_file_attachment_max_file_size_error_label_text: {\n message: 'Upload a file under {0}.',\n },\n skyux_file_attachment_max_file_size_error_label_text_with_name: {\n message: '{0}: Upload a file under {1}.',\n },\n skyux_file_attachment_min_file_size_error_label_text: {\n message: 'Upload a file over {0}.',\n },\n skyux_file_attachment_min_file_size_error_label_text_with_name: {\n message: '{0}: Upload a file over {1}.',\n },\n skyux_file_attachment_label_no_file_chosen: { message: 'No file chosen.' },\n skyux_file_attachment_required: { message: 'Required' },\n skyux_input_box_help_inline_aria_label: {\n message: 'Show help content for {0}',\n },\n },\n 'FR-CA': {\n skyux_character_count_message: { message: '{0} caractères de {1}' },\n skyux_character_count_over_limit: {\n message: 'Vous avez dépassé la limite de caractères.',\n },\n skyux_form_error_character_count: {\n message: 'Limite {0} de {1} caractère(s).',\n },\n skyux_form_error_date: {\n message: 'Sélectionnez ou entrez une date valide.',\n },\n skyux_form_error_date_max: {\n message: 'Sélectionnez ou entrez une date le ou avant le {0}.',\n },\n skyux_form_error_date_min: {\n message: 'Sélectionnez ou entrez une date le ou après le {0}.',\n },\n skyux_form_error_fuzzy_date_future_disabled: {\n message: 'Les dates futures sont désactivées; sélectionnez ou entrez une date dans le passé.',\n },\n skyux_form_error_fuzzy_date_invalid: {\n message: 'Sélectionnez ou entrez une date valide.',\n },\n skyux_form_error_fuzzy_date_max_date: {\n message: 'Sélectionnez ou entrez une date le ou avant le {0}.',\n },\n skyux_form_error_fuzzy_date_min_date: {\n message: 'Sélectionnez ou entrez une date le ou après le {0}.',\n },\n skyux_form_error_fuzzy_date_year_required: {\n message: 'L’année est requise.',\n },\n skyux_form_error_email: {\n message: 'Entrez une adresse courriel avec un format valide.',\n },\n skyux_form_error_maxlength: { message: 'Limite {0} de {1} caractère(s).' },\n skyux_form_error_minlength: {\n message: '{0} doit avoir au moins {1} caractère(s).',\n },\n skyux_form_error_phone: {\n message: 'Entrez un numéro de téléphone correspondant au format du pays sélectionné.',\n },\n skyux_form_error_required: { message: '{0} est requis.' },\n skyux_form_error_time: {\n message: 'Sélectionnez ou entrez une heure valide.',\n },\n skyux_form_error_url: { message: 'Entrez une URL avec un format valide.' },\n skyux_form_group_required: { message: 'Requis' },\n skyux_file_attachment_button_label_choose_file: {\n message: 'Joindre un fichier',\n },\n skyux_file_attachment_button_label_choose_file_label: {\n message: 'Joindre un fichier pour',\n },\n skyux_file_attachment_button_label_replace_file: {\n message: 'Remplacer le fichier',\n },\n skyux_file_attachment_button_label_replace_file_label: {\n message: 'Remplacer le fichier {0} pour',\n },\n skyux_file_attachment_file_item_delete: { message: 'Supprimer {0}' },\n skyux_file_attachment_file_item_remove: {\n message: 'Retirer le fichier {0} pour',\n },\n skyux_file_attachment_file_size_b_plural: { message: '{0} octets' },\n skyux_file_attachment_file_size_b_singular: { message: '{0} octet' },\n skyux_file_attachment_file_size_gb: { message: '{0} Go' },\n skyux_file_attachment_file_size_kb: { message: '{0} Ko' },\n skyux_file_attachment_file_size_mb: { message: '{0} Mo' },\n skyux_file_attachment_file_upload_drag_file_here: {\n message: 'Faites glisser un fichier ici',\n },\n skyux_file_attachment_file_upload_drag_or_click: {\n message: 'Faites glisser un fichier ici ou cliquez pour naviguer',\n },\n skyux_file_attachment_file_upload_drop_files_here: {\n message: 'Déplacez les fichiers ici',\n },\n skyux_file_attachment_file_upload_file_added: {\n message: '{0} a été ajouté.',\n },\n skyux_file_attachment_file_upload_file_replaced: {\n message: '{0} a été retiré. {1} a été ajouté.',\n },\n skyux_file_attachment_file_upload_file_removed: {\n message: '{0} a été retiré.',\n },\n skyux_file_attachment_file_upload_image_preview_alt_text: {\n message: 'Aperçu de l’image',\n },\n skyux_file_attachment_file_upload_invalid_file: {\n message: 'Ce type de fichier n’est pas valide',\n },\n skyux_file_attachment_file_upload_link_label: {\n message: 'Liens vers un fichier',\n },\n skyux_file_attachment_file_upload_or_click_to_browse: {\n message: 'ou cliquez pour naviguer',\n },\n skyux_file_attachment_file_upload_link_done: { message: 'Terminé' },\n skyux_file_attachment_file_upload_link_added: {\n message: 'Le lien vers {0} a été ajouté.',\n },\n skyux_file_attachment_file_upload_link_removed: {\n message: 'Le lien vers {0} a été retiré.',\n },\n skyux_file_attachment_file_type_error_label_text: {\n message: 'Téléversez l’un de ces types de fichier : {0}.',\n },\n skyux_file_attachment_file_type_error_label_text_with_name: {\n message: '{0} : Téléversez l’un de ces types de fichier : {1}.',\n },\n skyux_file_attachment_max_file_size_error_label_text: {\n message: 'Téléversez un fichier de moins de {0}.',\n },\n skyux_file_attachment_max_file_size_error_label_text_with_name: {\n message: '{0} : Téléversez un fichier de moins de {1}.',\n },\n skyux_file_attachment_min_file_size_error_label_text: {\n message: 'Téléversez un fichier de plus de {0}.',\n },\n skyux_file_attachment_min_file_size_error_label_text_with_name: {\n message: '{0} : Téléversez un fichier de plus de {1}.',\n },\n skyux_file_attachment_label_no_file_chosen: {\n message: 'Aucun fichier choisi.',\n },\n skyux_file_attachment_required: { message: 'Requis' },\n skyux_input_box_help_inline_aria_label: {\n message: 'Afficher le contenu de l’aide pour {0}',\n },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyFormsResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormsResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormsResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormsResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktZm9ybXMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUU7UUFDdkUsZ0NBQWdDLEVBQUU7WUFDaEMsT0FBTyxFQUFFLG1DQUFtQztTQUM3QztRQUNELGdDQUFnQyxFQUFFO1lBQ2hDLE9BQU8sRUFBRSw4QkFBOEI7U0FDeEM7UUFDRCxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRTtRQUNuRSx5QkFBeUIsRUFBRTtZQUN6QixPQUFPLEVBQUUsMENBQTBDO1NBQ3BEO1FBQ0QseUJBQXlCLEVBQUU7WUFDekIsT0FBTyxFQUFFLHlDQUF5QztTQUNuRDtRQUNELDJDQUEyQyxFQUFFO1lBQzNDLE9BQU8sRUFBRSxnRUFBZ0U7U0FDMUU7UUFDRCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0Qsb0NBQW9DLEVBQUU7WUFDcEMsT0FBTyxFQUFFLDBDQUEwQztTQUNwRDtRQUNELG9DQUFvQyxFQUFFO1lBQ3BDLE9BQU8sRUFBRSx5Q0FBeUM7U0FDbkQ7UUFDRCx5Q0FBeUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRTtRQUMzRSxzQkFBc0IsRUFBRTtZQUN0QixPQUFPLEVBQUUs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b0RBQW9ELEVBQUU7WUFDcEQsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQztRQUNELDJDQUEyQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNuRSw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsZ0NBQWdDO1NBQzFDO1FBQ0QsOENBQThDLEVBQUU7WUFDOUMsT0FBTyxFQUFFLGdDQUFnQztTQUMxQztRQUNELGdEQUFnRCxFQUFFO1lBQ2hELE9BQU8sRUFBRSxnREFBZ0Q7U0FDMUQ7UUFDRCwwREFBMEQsRUFBRTtZQUMxRCxPQUFPLEVBQUUsc0RBQXNEO1NBQ2hFO1FBQ0Qsb0RBQW9ELEVBQUU7WUFDcEQsT0FBTyxFQUFFLHdDQUF3QztTQUNsRDtRQUNELDhEQUE4RCxFQUFFO1lBQzlELE9BQU8sRUFBRSw4Q0FBOEM7U0FDeEQ7UUFDRCxvREFBb0QsRUFBRTtZQUNwRCxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLDZDQUE2QztTQUN2RDtRQUNELDBDQUEwQyxFQUFFO1lBQzFDLE9BQU8sRUFBRSx1QkFBdUI7U0FDakM7UUFDRCw4QkFBOEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDckQsc0NBQXNDLEVBQUU7WUFDdEMsT0FBTyxFQUFFLHdDQUF3QztTQUNsRDtLQUNGO0NBQ0YsQ0FBQztBQUVGLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvQzs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLFlBRnhCLGFBQWE7K0dBRVosdUJBQXVCLFlBRnhCLGFBQWE7OzJGQUVaLHVCQUF1QjtrQkFIbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWZvcm1zJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfY2hhcmFjdGVyX2NvdW50X21lc3NhZ2U6IHsgbWVzc2FnZTogJ3swfSBjaGFyYWN0ZXJzIG91dCBvZiB7MX0nIH0sXG4gICAgc2t5dXhfY2hhcmFjdGVyX2NvdW50X292ZXJfbGltaXQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdZb3UgYXJlIG92ZXIgdGhlIGNoYXJhY3RlciBsaW1pdC4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9jaGFyYWN0ZXJfY291bnQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdMaW1pdCB7MH0gdG8gezF9IGNoYXJhY3RlcnMuJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfZGF0ZTogeyBtZXNzYWdlOiAnU2VsZWN0IG9yIGVudGVyIGEgdmFsaWQgZGF0ZS4nIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9kYXRlX21heDoge1xuICAgICAgbWVzc2FnZTogJ1NlbGVjdCBvciBlbnRlciBhIGRhdGUgb24gb3IgYmVmb3JlIHswfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9kYXRlX21pbjoge1xuICAgICAgbWVzc2FnZTogJ1NlbGVjdCBvciBlbnRlciBhIGRhdGUgb24gb3IgYWZ0ZXIgezB9LicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2Z1enp5X2RhdGVfZnV0dXJlX2Rpc2FibGVkOiB7XG4gICAgICBtZXNzYWdlOiAnRnV0dXJlIGRhdGVzIGFyZSBkaXNhYmxlZC4gU2VsZWN0IG9yIGVudGVyIGEgZGF0ZSBpbiB0aGUgcGFzdC4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX2ludmFsaWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdTZWxlY3Qgb3IgZW50ZXIgYSB2YWxpZCBkYXRlLicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2Z1enp5X2RhdGVfbWF4X2RhdGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdTZWxlY3Qgb3IgZW50ZXIgYSBkYXRlIG9uIG9yIGJlZm9yZSB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfZnV6enlfZGF0ZV9taW5fZGF0ZToge1xuICAgICAgbWVzc2FnZTogJ1NlbGVjdCBvciBlbnRlciBhIGRhdGUgb24gb3IgYWZ0ZXIgezB9LicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2Z1enp5X2RhdGVfeWVhcl9yZXF1aXJlZDogeyBtZXNzYWdlOiAnWWVhciBpcyByZXF1aXJlZC4nIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9lbWFpbDoge1xuICAgICAgbWVzc2FnZTogJ0VudGVyIGFuIGVtYWlsIGFkZHJlc3Mgd2l0aCBhIHZhbGlkIGZvcm1hdC4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9tYXhsZW5ndGg6IHsgbWVzc2FnZTogJ0xpbWl0IHswfSB0byB7MX0gY2hhcmFjdGVycy4nIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9taW5sZW5ndGg6IHtcbiAgICAgIG1lc3NhZ2U6ICd7MH0gbXVzdCBiZSBhdCBsZWFzdCB7MX0gY2hhcmFjdGVycy4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9waG9uZToge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0VudGVyIGEgcGhvbmUgbnVtYmVyIG1hdGNoaW5nIHRoZSBmb3JtYXQgZm9yIHRoZSBzZWxlY3RlZCBjb3VudHJ5LicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX3JlcXVpcmVkOiB7IG1lc3NhZ2U6ICd7MH0gaXMgcmVxdWlyZWQuJyB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfdGltZTogeyBtZXNzYWdlOiAnU2VsZWN0IG9yIGVudGVyIGEgdmFsaWQgdGltZS4nIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl91cmw6IHsgbWVzc2FnZTogJ0VudGVyIGEgVVJMIHdpdGggYSB2YWxpZCBmb3JtYXQuJyB9LFxuICAgIHNreXV4X2Zvcm1fZ3JvdXBfcmVxdWlyZWQ6IHsgbWVzc2FnZTogJ1JlcXVpcmVkJyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGU6IHsgbWVzc2FnZTogJ0F0dGFjaCBmaWxlJyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGVfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdBdHRhY2ggZmlsZSBmb3InLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9yZXBsYWNlX2ZpbGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdSZXBsYWNlIGZpbGUnLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9yZXBsYWNlX2ZpbGVfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdSZXBsYWNlIGZpbGUgezB9IGZvcicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9pdGVtX2RlbGV0ZTogeyBtZXNzYWdlOiAnRGVsZXRlIHswfScgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9pdGVtX3JlbW92ZTogeyBtZXNzYWdlOiAnUmVtb3ZlIGZpbGUgezB9IGZvcicgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9zaXplX2JfcGx1cmFsOiB7IG1lc3NhZ2U6ICd7MH0gYnl0ZXMnIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9iX3Npbmd1bGFyOiB7IG1lc3NhZ2U6ICd7MH0gYnl0ZScgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9zaXplX2diOiB7IG1lc3NhZ2U6ICd7MH0gR0InIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9rYjogeyBtZXNzYWdlOiAnezB9IEtCJyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3NpemVfbWI6IHsgbWVzc2FnZTogJ3swfSBNQicgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJhZ19maWxlX2hlcmU6IHtcbiAgICAgIG1lc3NhZ2U6ICdEcmFnIGEgZmlsZSBoZXJlJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX29yX2NsaWNrOiB7XG4gICAgICBtZXNzYWdlOiAnRHJhZyBhIGZpbGUgaGVyZSBvciBjbGljayB0byBicm93c2UnLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2Ryb3BfZmlsZXNfaGVyZToge1xuICAgICAgbWVzc2FnZTogJ0Ryb3AgZmlsZXMgaGVyZScsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9hZGRlZDogeyBtZXNzYWdlOiAnezB9IGFkZGVkLicgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZXBsYWNlZDoge1xuICAgICAgbWVzc2FnZTogJ3swfSByZW1vdmVkLiB7MX0gYWRkZWQuJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9maWxlX3JlbW92ZWQ6IHsgbWVzc2FnZTogJ3swfSByZW1vdmVkLicgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW1hZ2VfcHJldmlld19hbHRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ0ltYWdlIHByZXZpZXcnLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZToge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmlsZSB0eXBlIGlzIGludmFsaWQnLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfbGFiZWw6IHsgbWVzc2FnZTogJ0xpbmsgdG8gYSBmaWxlJyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9vcl9jbGlja190b19icm93c2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdvciBjbGljayB0byBicm93c2UnLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfZG9uZTogeyBtZXNzYWdlOiAnRG9uZScgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19hZGRlZDoge1xuICAgICAgbWVzc2FnZTogJ0xpbmsgdG8gezB9IGFkZGVkLicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19yZW1vdmVkOiB7XG4gICAgICBtZXNzYWdlOiAnTGluayB0byB7MH0gcmVtb3ZlZC4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdHlwZV9lcnJvcl9sYWJlbF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXBsb2FkIG9uZSBvZiB0aGVzZSBmaWxlIHR5cGVzOiB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3R5cGVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWU6IHtcbiAgICAgIG1lc3NhZ2U6ICd7MH06IFVwbG9hZCBvbmUgb2YgdGhlc2UgZmlsZSB0eXBlczogezF9LicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfbWF4X2ZpbGVfc2l6ZV9lcnJvcl9sYWJlbF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVXBsb2FkIGEgZmlsZSB1bmRlciB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9tYXhfZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHRfd2l0aF9uYW1lOiB7XG4gICAgICBtZXNzYWdlOiAnezB9OiBVcGxvYWQgYSBmaWxlIHVuZGVyIHsxfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X21pbl9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1VwbG9hZCBhIGZpbGUgb3ZlciB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9taW5fZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHRfd2l0aF9uYW1lOiB7XG4gICAgICBtZXNzYWdlOiAnezB9OiBVcGxvYWQgYSBmaWxlIG92ZXIgezF9LicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfbGFiZWxfbm9fZmlsZV9jaG9zZW46IHsgbWVzc2FnZTogJ05vIGZpbGUgY2hvc2VuLicgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfcmVxdWlyZWQ6IHsgbWVzc2FnZTogJ1JlcXVpcmVkJyB9LFxuICAgIHNreXV4X2lucHV0X2JveF9oZWxwX2lubGluZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnU2hvdyBoZWxwIGNvbnRlbnQgZm9yIHswfScsXG4gICAgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreXV4X2NoYXJhY3Rlcl9jb3VudF9tZXNzYWdlOiB7IG1lc3NhZ2U6ICd7MH3CoGNhcmFjdMOocmVzIGRlIHsxfScgfSxcbiAgICBza3l1eF9jaGFyYWN0ZXJfY291bnRfb3Zlcl9saW1pdDoge1xuICAgICAgbWVzc2FnZTogJ1ZvdXMgYXZleiBkw6lwYXNzw6kgbGEgbGltaXRlIGRlIGNhcmFjdMOocmVzLicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2NoYXJhY3Rlcl9jb3VudDoge1xuICAgICAgbWVzc2FnZTogJ0xpbWl0ZSB7MH0gZGUgezF9wqBjYXJhY3TDqHJlKHMpLicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2RhdGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmV6IG91IGVudHJleiB1bmUgZGF0ZSB2YWxpZGUuJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfZGF0ZV9tYXg6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmV6IG91IGVudHJleiB1bmUgZGF0ZSBsZSBvdSBhdmFudCBsZSB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfZGF0ZV9taW46IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmV6IG91IGVudHJleiB1bmUgZGF0ZSBsZSBvdSBhcHLDqHMgbGUgezB9LicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2Z1enp5X2RhdGVfZnV0dXJlX2Rpc2FibGVkOiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnTGVzIGRhdGVzIGZ1dHVyZXMgc29udCBkw6lzYWN0aXbDqWVzOyBzw6lsZWN0aW9ubmV6IG91IGVudHJleiB1bmUgZGF0ZSBkYW5zIGxlIHBhc3PDqS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX2ludmFsaWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmV6IG91IGVudHJleiB1bmUgZGF0ZSB2YWxpZGUuJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfZnV6enlfZGF0ZV9tYXhfZGF0ZToge1xuICAgICAgbWVzc2FnZTogJ1PDqWxlY3Rpb25uZXogb3UgZW50cmV6IHVuZSBkYXRlIGxlIG91IGF2YW50IGxlIHswfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX21pbl9kYXRlOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGlvbm5leiBvdSBlbnRyZXogdW5lIGRhdGUgbGUgb3UgYXByw6hzIGxlIHswfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX3llYXJfcmVxdWlyZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdM4oCZYW5uw6llIGVzdCByZXF1aXNlLicsXG4gICAgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX2VtYWlsOiB7XG4gICAgICBtZXNzYWdlOiAnRW50cmV6IHVuZSBhZHJlc3NlIGNvdXJyaWVsIGF2ZWMgdW4gZm9ybWF0IHZhbGlkZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9tYXhsZW5ndGg6IHsgbWVzc2FnZTogJ0xpbWl0ZSB7MH0gZGUgezF9wqBjYXJhY3TDqHJlKHMpLicgfSxcbiAgICBza3l1eF9mb3JtX2Vycm9yX21pbmxlbmd0aDoge1xuICAgICAgbWVzc2FnZTogJ3swfSBkb2l0IGF2b2lyIGF1IG1vaW5zIHsxfcKgY2FyYWN0w6hyZShzKS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9waG9uZToge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0VudHJleiB1biBudW3DqXJvIGRlIHTDqWzDqXBob25lIGNvcnJlc3BvbmRhbnQgYXUgZm9ybWF0IGR1IHBheXMgc8OpbGVjdGlvbm7DqS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZm9ybV9lcnJvcl9yZXF1aXJlZDogeyBtZXNzYWdlOiAnezB9IGVzdCByZXF1aXMuJyB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfdGltZToge1xuICAgICAgbWVzc2FnZTogJ1PDqWxlY3Rpb25uZXogb3UgZW50cmV6IHVuZSBoZXVyZSB2YWxpZGUuJyxcbiAgICB9LFxuICAgIHNreXV4X2Zvcm1fZXJyb3JfdXJsOiB7IG1lc3NhZ2U6ICdFbnRyZXogdW5lIFVSTCBhdmVjIHVuIGZvcm1hdCB2YWxpZGUuJyB9LFxuICAgIHNreXV4X2Zvcm1fZ3JvdXBfcmVxdWlyZWQ6IHsgbWVzc2FnZTogJ1JlcXVpcycgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfYnV0dG9uX2xhYmVsX2Nob29zZV9maWxlOiB7XG4gICAgICBtZXNzYWdlOiAnSm9pbmRyZSB1biBmaWNoaWVyJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGVfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdKb2luZHJlIHVuIGZpY2hpZXIgcG91cicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfYnV0dG9uX2xhYmVsX3JlcGxhY2VfZmlsZToge1xuICAgICAgbWVzc2FnZTogJ1JlbXBsYWNlciBsZSBmaWNoaWVyJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfcmVwbGFjZV9maWxlX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnUmVtcGxhY2VyIGxlIGZpY2hpZXIgezB9IHBvdXInLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfaXRlbV9kZWxldGU6IHsgbWVzc2FnZTogJ1N1cHByaW1lciB7MH0nIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfaXRlbV9yZW1vdmU6IHtcbiAgICAgIG1lc3NhZ2U6ICdSZXRpcmVyIGxlIGZpY2hpZXIgezB9IHBvdXInLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9iX3BsdXJhbDogeyBtZXNzYWdlOiAnezB9wqBvY3RldHMnIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9iX3Npbmd1bGFyOiB7IG1lc3NhZ2U6ICd7MH3CoG9jdGV0JyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3NpemVfZ2I6IHsgbWVzc2FnZTogJ3swfcKgR28nIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9rYjogeyBtZXNzYWdlOiAnezB9wqBLbycgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9zaXplX21iOiB7IG1lc3NhZ2U6ICd7MH3CoE1vJyB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX2ZpbGVfaGVyZToge1xuICAgICAgbWVzc2FnZTogJ0ZhaXRlcyBnbGlzc2VyIHVuIGZpY2hpZXIgaWNpJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX29yX2NsaWNrOiB7XG4gICAgICBtZXNzYWdlOiAnRmFpdGVzIGdsaXNzZXIgdW4gZmljaGllciBpY2kgb3UgY2xpcXVleiBwb3VyIG5hdmlndWVyJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcm9wX2ZpbGVzX2hlcmU6IHtcbiAgICAgIG1lc3NhZ2U6ICdEw6lwbGFjZXogbGVzIGZpY2hpZXJzIGljaScsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9hZGRlZDoge1xuICAgICAgbWVzc2FnZTogJ3swfcKgYSDDqXTDqSBham91dMOpLicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZXBsYWNlZDoge1xuICAgICAgbWVzc2FnZTogJ3swfcKgYSDDqXTDqSByZXRpcsOpLiB7MX3CoGEgw6l0w6kgYWpvdXTDqS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfcmVtb3ZlZDoge1xuICAgICAgbWVzc2FnZTogJ3swfcKgYSDDqXTDqSByZXRpcsOpLicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW1hZ2VfcHJldmlld19hbHRfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ0FwZXLDp3UgZGUgbOKAmWltYWdlJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdDZSB0eXBlIGRlIGZpY2hpZXIgbuKAmWVzdCBwYXMgdmFsaWRlJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnTGllbnMgdmVycyB1biBmaWNoaWVyJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9vcl9jbGlja190b19icm93c2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdvdSBjbGlxdWV6IHBvdXIgbmF2aWd1ZXInLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfZG9uZTogeyBtZXNzYWdlOiAnVGVybWluw6knIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfYWRkZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdMZSBsaWVuIHZlcnMgezB9IGEgw6l0w6kgYWpvdXTDqS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfcmVtb3ZlZDoge1xuICAgICAgbWVzc2FnZTogJ0xlIGxpZW4gdmVycyB7MH0gYSDDqXTDqSByZXRpcsOpLicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV90eXBlX2Vycm9yX2xhYmVsX3RleHQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdUw6lsw6l2ZXJzZXogbOKAmXVuIGRlIGNlcyB0eXBlcyBkZSBmaWNoaWVywqA6IHswfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdHlwZV9lcnJvcl9sYWJlbF90ZXh0X3dpdGhfbmFtZToge1xuICAgICAgbWVzc2FnZTogJ3swfcKgOiBUw6lsw6l2ZXJzZXogbOKAmXVuIGRlIGNlcyB0eXBlcyBkZSBmaWNoaWVywqA6IHsxfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X21heF9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dDoge1xuICAgICAgbWVzc2FnZTogJ1TDqWzDqXZlcnNleiB1biBmaWNoaWVyIGRlIG1vaW5zIGRlIHswfS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X21heF9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWU6IHtcbiAgICAgIG1lc3NhZ2U6ICd7MH3CoDogVMOpbMOpdmVyc2V6IHVuIGZpY2hpZXIgZGUgbW9pbnMgZGUgezF9LicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfbWluX2ZpbGVfc2l6ZV9lcnJvcl9sYWJlbF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnVMOpbMOpdmVyc2V6IHVuIGZpY2hpZXIgZGUgcGx1cyBkZSB7MH0uJyxcbiAgICB9LFxuICAgIHNreXV4X2ZpbGVfYXR0YWNobWVudF9taW5fZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHRfd2l0aF9uYW1lOiB7XG4gICAgICBtZXNzYWdlOiAnezB9wqA6IFTDqWzDqXZlcnNleiB1biBmaWNoaWVyIGRlIHBsdXMgZGUgezF9LicsXG4gICAgfSxcbiAgICBza3l1eF9maWxlX2F0dGFjaG1lbnRfbGFiZWxfbm9fZmlsZV9jaG9zZW46IHtcbiAgICAgIG1lc3NhZ2U6ICdBdWN1biBmaWNoaWVyIGNob2lzaS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZmlsZV9hdHRhY2htZW50X3JlcXVpcmVkOiB7IG1lc3NhZ2U6ICdSZXF1aXMnIH0sXG4gICAgc2t5dXhfaW5wdXRfYm94X2hlbHBfaW5saW5lX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdBZmZpY2hlciBsZSBjb250ZW51IGRlIGzigJlhaWRlIHBvdXIgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SkyCharacterCounterScreenReaderPipe {\n #previousAnnouncementPoint;\n transform(characterCount, characterCountLimit) {\n /* Safety check */\n /* istanbul ignore if */\n if (characterCount === undefined || characterCountLimit === undefined) {\n return '';\n }\n // We want to announce every 10 characters if we are within 50 of the limit or every 50 otherwise.\n const modulus = characterCountLimit - Math.floor(characterCount / 10) * 10 <= 50\n ? 10\n : 50;\n if (characterCount === characterCountLimit ||\n characterCount % modulus === 0 ||\n this.#previousAnnouncementPoint === undefined) {\n this.#previousAnnouncementPoint = characterCount;\n }\n else {\n // We want the floor of the previous announcement and modulus in case the previous announcement wasn't an announcement point.\n const previousAnnouncementQuotient = Math.floor(this.#previousAnnouncementPoint / modulus);\n // Lower limit of what announcement should have been made for the current count\n const currentAnnouncementQuotient = Math.floor(characterCount / modulus);\n // Next announcement that would be made if the current count increases\n const currentAnnouncementNextAnnouncement = Math.ceil(characterCount / modulus);\n // Jump to the appropriate announcement point if the count jumps. For example, if going from 43 of 50 characters to 21 of 50 characters.\n if (currentAnnouncementQuotient !== previousAnnouncementQuotient &&\n currentAnnouncementNextAnnouncement !== previousAnnouncementQuotient) {\n this.#previousAnnouncementPoint =\n Math.floor(characterCount / modulus) * modulus;\n }\n }\n return this.#previousAnnouncementPoint.toLocaleString();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, isStandalone: true, name: \"skyCharacterCounterScreenReader\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterScreenReaderPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'skyCharacterCounterScreenReader',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItc2NyZWVuLXJlYWRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsMEJBQTBCLENBQXFCO0lBRXhDLFNBQVMsQ0FDZCxjQUFrQyxFQUNsQyxtQkFBdUM7UUFFdkMsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixJQUFJLGNBQWMsS0FBSyxTQUFTLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsa0dBQWtHO1FBQ2xHLE1BQU0sT0FBTyxHQUNYLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzlELENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULElBQ0UsY0FBYyxLQUFLLG1CQUFtQjtZQUN0QyxjQUFjLEdBQUcsT0FBTyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLDBCQUEwQixLQUFLLFNBQVMsRUFDN0MsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsR0FBRyxjQUFjLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTiw2SEFBNkg7WUFDN0gsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsT0FBTyxDQUMxQyxDQUFDO1lBQ0YsK0VBQStFO1lBQy9FLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDekUsc0VBQXNFO1lBQ3RFLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkQsY0FBYyxHQUFHLE9BQU8sQ0FDekIsQ0FBQztZQUVGLHdJQUF3STtZQUN4SSxJQUNFLDJCQUEyQixLQUFLLDRCQUE0QjtnQkFDNUQsbUNBQW1DLEtBQUssNEJBQTRCLEVBQ3BFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLDBCQUEwQjtvQkFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUQsQ0FBQzs4R0FoRFUsbUNBQW1DOzRHQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBSi9DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hhcmFjdGVyQ291bnRlclNjcmVlblJlYWRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNoYXJhY3RlckNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgY2hhcmFjdGVyQ291bnRMaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiBzdHJpbmcge1xuICAgIC8qIFNhZmV0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChjaGFyYWN0ZXJDb3VudCA9PT0gdW5kZWZpbmVkIHx8IGNoYXJhY3RlckNvdW50TGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIFdlIHdhbnQgdG8gYW5ub3VuY2UgZXZlcnkgMTAgY2hhcmFjdGVycyBpZiB3ZSBhcmUgd2l0aGluIDUwIG9mIHRoZSBsaW1pdCBvciBldmVyeSA1MCBvdGhlcndpc2UuXG4gICAgY29uc3QgbW9kdWx1cyA9XG4gICAgICBjaGFyYWN0ZXJDb3VudExpbWl0IC0gTWF0aC5mbG9vcihjaGFyYWN0ZXJDb3VudCAvIDEwKSAqIDEwIDw9IDUwXG4gICAgICAgID8gMTBcbiAgICAgICAgOiA1MDtcblxuICAgIGlmIChcbiAgICAgIGNoYXJhY3RlckNvdW50ID09PSBjaGFyYWN0ZXJDb3VudExpbWl0IHx8XG4gICAgICBjaGFyYWN0ZXJDb3VudCAlIG1vZHVsdXMgPT09IDAgfHxcbiAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jcHJldmlvdXNBbm5vdW5jZW1lbnRQb2ludCA9IGNoYXJhY3RlckNvdW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSBmbG9vciBvZiB0aGUgcHJldmlvdXMgYW5ub3VuY2VtZW50IGFuZCBtb2R1bHVzIGluIGNhc2UgdGhlIHByZXZpb3VzIGFubm91bmNlbWVudCB3YXNuJ3QgYW4gYW5ub3VuY2VtZW50IHBvaW50LlxuICAgICAgY29uc3QgcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoXG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgLyBtb2R1bHVzLFxuICAgICAgKTtcbiAgICAgIC8vIExvd2VyIGxpbWl0IG9mIHdoYXQgYW5ub3VuY2VtZW50IHNob3VsZCBoYXZlIGJlZW4gbWFkZSBmb3IgdGhlIGN1cnJlbnQgY291bnRcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCA9IE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKTtcbiAgICAgIC8vIE5leHQgYW5ub3VuY2VtZW50IHRoYXQgd291bGQgYmUgbWFkZSBpZiB0aGUgY3VycmVudCBjb3VudCBpbmNyZWFzZXNcbiAgICAgIGNvbnN0IGN1cnJlbnRBbm5vdW5jZW1lbnROZXh0QW5ub3VuY2VtZW50ID0gTWF0aC5jZWlsKFxuICAgICAgICBjaGFyYWN0ZXJDb3VudCAvIG1vZHVsdXMsXG4gICAgICApO1xuXG4gICAgICAvLyBKdW1wIHRvIHRoZSBhcHByb3ByaWF0ZSBhbm5vdW5jZW1lbnQgcG9pbnQgaWYgdGhlIGNvdW50IGp1bXBzLiBGb3IgZXhhbXBsZSwgaWYgZ29pbmcgZnJvbSA0MyBvZiA1MCBjaGFyYWN0ZXJzIHRvIDIxIG9mIDUwIGNoYXJhY3RlcnMuXG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnRBbm5vdW5jZW1lbnRRdW90aWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudCAmJlxuICAgICAgICBjdXJyZW50QW5ub3VuY2VtZW50TmV4dEFubm91bmNlbWVudCAhPT0gcHJldmlvdXNBbm5vdW5jZW1lbnRRdW90aWVudFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQgPVxuICAgICAgICAgIE1hdGguZmxvb3IoY2hhcmFjdGVyQ291bnQgLyBtb2R1bHVzKSAqIG1vZHVsdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI3ByZXZpb3VzQW5ub3VuY2VtZW50UG9pbnQudG9Mb2NhbGVTdHJpbmcoKTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"./character-counter-screen-reader.pipe\";\nimport * as i3 from \"@skyux/i18n\";\nexport class SkyCharacterCounterIndicatorComponent {\n #_characterCountLimit = 0;\n #_characterCount = 0;\n #changeDetector;\n constructor(changeDetector) {\n this.#changeDetector = changeDetector;\n }\n get characterCount() {\n return this.#_characterCount;\n }\n set characterCount(count) {\n this.#_characterCount = count;\n this.#changeDetector.markForCheck();\n }\n get characterCountLimit() {\n return this.#_characterCountLimit;\n }\n set characterCountLimit(limit) {\n this.#_characterCountLimit = limit;\n this.#changeDetector.markForCheck();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyCharacterCounterIndicatorComponent, isStandalone: false, selector: \"sky-character-counter-indicator\", inputs: { characterCount: \"characterCount\", characterCountLimit: \"characterCountLimit\" }, ngImport: i0, template: \"<span\\n class=\\\"sky-character-count-label sky-font-deemphasized\\\"\\n [ngClass]=\\\"{ 'sky-error-label': characterCount > characterCountLimit }\\\"\\n>\\n {{ characterCount + '/' + characterCountLimit }}\\n</span>\\n<span aria-live=\\\"polite\\\" class=\\\"sky-screen-reader-only\\\">\\n @if (characterCount > characterCountLimit) {\\n <ng-container>{{\\n 'skyux_character_count_over_limit' | skyLibResources\\n }}</ng-container>\\n } @else {\\n @if (\\n characterCount | skyCharacterCounterScreenReader: characterCountLimit;\\n as screenReaderCount\\n ) {\\n <ng-container>{{\\n 'skyux_character_count_message'\\n | skyLibResources: screenReaderCount : characterCountLimit\\n }}</ng-container>\\n }\\n }\\n</span>\\n\", styles: [\".sky-character-count-label:not(.sky-theme-modern *){--sky-override-character-count-font-size: 15px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-character-count-label{--sky-override-character-count-font-size: 15px}:host{flex-shrink:.0001}.sky-character-count-label{font-size:var(--sky-override-character-count-font-size, inherit)}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"pipe\", type: i2.SkyCharacterCounterScreenReaderPipe, name: \"skyCharacterCounterScreenReader\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-character-counter-indicator', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<span\\n class=\\\"sky-character-count-label sky-font-deemphasized\\\"\\n [ngClass]=\\\"{ 'sky-error-label': characterCount > characterCountLimit }\\\"\\n>\\n {{ characterCount + '/' + characterCountLimit }}\\n</span>\\n<span aria-live=\\\"polite\\\" class=\\\"sky-screen-reader-only\\\">\\n @if (characterCount > characterCountLimit) {\\n <ng-container>{{\\n 'skyux_character_count_over_limit' | skyLibResources\\n }}</ng-container>\\n } @else {\\n @if (\\n characterCount | skyCharacterCounterScreenReader: characterCountLimit;\\n as screenReaderCount\\n ) {\\n <ng-container>{{\\n 'skyux_character_count_message'\\n | skyLibResources: screenReaderCount : characterCountLimit\\n }}</ng-container>\\n }\\n }\\n</span>\\n\", styles: [\".sky-character-count-label:not(.sky-theme-modern *){--sky-override-character-count-font-size: 15px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-character-count-label{--sky-override-character-count-font-size: 15px}:host{flex-shrink:.0001}.sky-character-count-label{font-size:var(--sky-override-character-count-font-size, inherit)}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { characterCount: [{\n type: Input\n }], characterCountLimit: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdkIsTUFBTSxPQUFPLHFDQUFxQztJQUNoRCxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXJCLGVBQWUsQ0FBb0I7SUFFbkMsWUFBWSxjQUFpQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0E1QlUscUNBQXFDO2tHQUFyQyxxQ0FBcUMsc0xDZGxELDB1QkF1QkE7OzJGRFRhLHFDQUFxQztrQkFQakQsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSztzRkFpQk4sY0FBYztzQkFEeEIsS0FBSztnQkFXSyxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQge1xuICAjX2NoYXJhY3RlckNvdW50TGltaXQgPSAwO1xuICAjX2NoYXJhY3RlckNvdW50ID0gMDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJhY3RlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGFyYWN0ZXJDb3VudDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hhcmFjdGVyQ291bnQoY291bnQ6IG51bWJlcikge1xuICAgIHRoaXMuI19jaGFyYWN0ZXJDb3VudCA9IGNvdW50O1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyYWN0ZXJDb3VudExpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGFyYWN0ZXJDb3VudExpbWl0O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGFyYWN0ZXJDb3VudExpbWl0KGxpbWl0OiBudW1iZXIpIHtcbiAgICB0aGlzLiNfY2hhcmFjdGVyQ291bnRMaW1pdCA9IGxpbWl0O1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cInNreS1jaGFyYWN0ZXItY291bnQtbGFiZWwgc2t5LWZvbnQtZGVlbXBoYXNpemVkXCJcbiAgW25nQ2xhc3NdPVwieyAnc2t5LWVycm9yLWxhYmVsJzogY2hhcmFjdGVyQ291bnQgPiBjaGFyYWN0ZXJDb3VudExpbWl0IH1cIlxuPlxuICB7eyBjaGFyYWN0ZXJDb3VudCArICcvJyArIGNoYXJhY3RlckNvdW50TGltaXQgfX1cbjwvc3Bhbj5cbjxzcGFuIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPlxuICBAaWYgKGNoYXJhY3RlckNvdW50ID4gY2hhcmFjdGVyQ291bnRMaW1pdCkge1xuICAgIDxuZy1jb250YWluZXI+e3tcbiAgICAgICdza3l1eF9jaGFyYWN0ZXJfY291bnRfb3Zlcl9saW1pdCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICB9fTwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICBAaWYgKFxuICAgICAgY2hhcmFjdGVyQ291bnQgfCBza3lDaGFyYWN0ZXJDb3VudGVyU2NyZWVuUmVhZGVyOiBjaGFyYWN0ZXJDb3VudExpbWl0O1xuICAgICAgYXMgc2NyZWVuUmVhZGVyQ291bnRcbiAgICApIHtcbiAgICAgIDxuZy1jb250YWluZXI+e3tcbiAgICAgICAgJ3NreXV4X2NoYXJhY3Rlcl9jb3VudF9tZXNzYWdlJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBzY3JlZW5SZWFkZXJDb3VudCA6IGNoYXJhY3RlckNvdW50TGltaXRcbiAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgfVxuICB9XG48L3NwYW4+XG4iXX0=","import { Directive, Input } from '@angular/core';\nimport { NG_VALIDATORS, } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\n/**\n * Creates an input field that validates the number of characters. Place this directive on\n * an `input` or `textarea` element. If users enter more characters than allowed, then the\n * input field is invalid and the component displays an error indicator.\n * @required\n */\nexport class SkyCharacterCounterInputDirective {\n /**\n * The character count indicator component that displays the character count,\n * character limit, and over-the-limit indicator. Place this directive on an `input` or\n * `textarea` element.\n */\n get skyCharacterCounterIndicator() {\n return this.#_skyCharacterCounterIndicator;\n }\n set skyCharacterCounterIndicator(value) {\n this.#_skyCharacterCounterIndicator = value;\n this.#updateIndicatorLimit();\n }\n /**\n * The maximum number of characters allowed in the input field. Place this directive\n * on an `input` or `textarea` element. This property accepts `number` values.\n * @required\n */\n set skyCharacterCounterLimit(value) {\n this.#skyCharacterCounterLimitOrDefault = value ?? 0;\n this.#updateIndicatorLimit();\n }\n #_skyCharacterCounterIndicator;\n #skyCharacterCounterLimitOrDefault = 0;\n validate(control) {\n const value = control.value;\n this.#updateIndicatorCount((value && value.length) || 0);\n if (!value) {\n return null;\n }\n const limit = this.#skyCharacterCounterLimitOrDefault;\n if (value.length > this.#skyCharacterCounterLimitOrDefault) {\n // This is needed to apply the appropriate error styles to the input.\n control.markAsTouched();\n return {\n skyCharacterCounter: {\n invalid: value,\n limit,\n },\n };\n }\n return null;\n }\n registerOnValidatorChange(fn) {\n this.#validatorChange = fn;\n }\n #updateIndicatorCount(count) {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCount = count;\n }\n }\n #updateIndicatorLimit() {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCountLimit =\n this.#skyCharacterCounterLimitOrDefault;\n }\n this.#validatorChange();\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => { };\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyCharacterCounterInputDirective, isStandalone: false, selector: \"[skyCharacterCounter]\", inputs: { skyCharacterCounterIndicator: \"skyCharacterCounterIndicator\", skyCharacterCounterLimit: \"skyCharacterCounterLimit\" }, providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCharacterCounterInputDirective,\n multi: true,\n },\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterInputDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyCharacterCounter]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCharacterCounterInputDirective,\n multi: true,\n },\n ],\n standalone: false,\n }]\n }], propDecorators: { skyCharacterCounterIndicator: [{\n type: Input\n }], skyCharacterCounterLimit: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDOztBQUl4Qjs7Ozs7R0FLRztBQVlILE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUM7Ozs7T0FJRztJQUNILElBQ1csNEJBQTRCO1FBR3JDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFXLDRCQUE0QixDQUNyQyxLQUF3RDtRQUV4RCxJQUFJLENBQUMsOEJBQThCLEdBQUcsS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDVyx3QkFBd0IsQ0FBQyxLQUF5QjtRQUMzRCxJQUFJLENBQUMsa0NBQWtDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsOEJBQThCLENBRWhCO0lBRWQsa0NBQWtDLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO1FBRXRELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztZQUMzRCxxRUFBcUU7WUFDckUsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXhCLE9BQU87Z0JBQ0wsbUJBQW1CLEVBQUU7b0JBQ25CLE9BQU8sRUFBRSxLQUFLO29CQUNkLEtBQUs7aUJBQ047YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEVBQWM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYTtRQUNqQyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLG1CQUFtQjtnQkFDbkQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGdCQUFnQixHQUFHLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQzs4R0FsRnZCLGlDQUFpQztrR0FBakMsaUNBQWlDLHFNQVRqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzJGQUdVLGlDQUFpQztrQkFYN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsS0FBSztpQkFDbEI7OEJBUVksNEJBQTRCO3NCQUR0QyxLQUFLO2dCQW1CSyx3QkFBd0I7c0JBRGxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGlucHV0IGZpZWxkIHRoYXQgdmFsaWRhdGVzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycy4gUGxhY2UgdGhpcyBkaXJlY3RpdmUgb25cbiAqIGFuIGBpbnB1dGAgb3IgYHRleHRhcmVhYCBlbGVtZW50LiBJZiB1c2VycyBlbnRlciBtb3JlIGNoYXJhY3RlcnMgdGhhbiBhbGxvd2VkLCB0aGVuIHRoZVxuICogaW5wdXQgZmllbGQgaXMgaW52YWxpZCBhbmQgdGhlIGNvbXBvbmVudCBkaXNwbGF5cyBhbiBlcnJvciBpbmRpY2F0b3IuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUNoYXJhY3RlckNvdW50ZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBjaGFyYWN0ZXIgY291bnQgaW5kaWNhdG9yIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgY291bnQsXG4gICAqIGNoYXJhY3RlciBsaW1pdCwgYW5kIG92ZXItdGhlLWxpbWl0IGluZGljYXRvci4gUGxhY2UgdGhpcyBkaXJlY3RpdmUgb24gYW4gYGlucHV0YCBvclxuICAgKiBgdGV4dGFyZWFgIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3IoKTpcbiAgICB8IFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnRcbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yO1xuICB9XG4gIHB1YmxpYyBzZXQgc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcihcbiAgICB2YWx1ZTogU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgdGhpcy4jX3NreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3IgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVJbmRpY2F0b3JMaW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIGlucHV0IGZpZWxkLiBQbGFjZSB0aGlzIGRpcmVjdGl2ZVxuICAgKiBvbiBhbiBgaW5wdXRgIG9yIGB0ZXh0YXJlYWAgZWxlbWVudC4gVGhpcyBwcm9wZXJ0eSBhY2NlcHRzIGBudW1iZXJgIHZhbHVlcy5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreUNoYXJhY3RlckNvdW50ZXJMaW1pdCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jc2t5Q2hhcmFjdGVyQ291bnRlckxpbWl0T3JEZWZhdWx0ID0gdmFsdWUgPz8gMDtcbiAgICB0aGlzLiN1cGRhdGVJbmRpY2F0b3JMaW1pdCgpO1xuICB9XG5cbiAgI19za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yOlxuICAgIHwgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudFxuICAgIHwgdW5kZWZpbmVkO1xuXG4gICNza3lDaGFyYWN0ZXJDb3VudGVyTGltaXRPckRlZmF1bHQgPSAwO1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgdGhpcy4jdXBkYXRlSW5kaWNhdG9yQ291bnQoKHZhbHVlICYmIHZhbHVlLmxlbmd0aCkgfHwgMCk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsaW1pdCA9IHRoaXMuI3NreUNoYXJhY3RlckNvdW50ZXJMaW1pdE9yRGVmYXVsdDtcblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiB0aGlzLiNza3lDaGFyYWN0ZXJDb3VudGVyTGltaXRPckRlZmF1bHQpIHtcbiAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhcHByb3ByaWF0ZSBlcnJvciBzdHlsZXMgdG8gdGhlIGlucHV0LlxuICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreUNoYXJhY3RlckNvdW50ZXI6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI3ZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgI3VwZGF0ZUluZGljYXRvckNvdW50KGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yKSB7XG4gICAgICB0aGlzLnNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3IuY2hhcmFjdGVyQ291bnQgPSBjb3VudDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlSW5kaWNhdG9yTGltaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcikge1xuICAgICAgdGhpcy5za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yLmNoYXJhY3RlckNvdW50TGltaXQgPVxuICAgICAgICB0aGlzLiNza3lDaGFyYWN0ZXJDb3VudGVyTGltaXRPckRlZmF1bHQ7XG4gICAgfVxuXG4gICAgdGhpcy4jdmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICN2YWxpZGF0b3JDaGFuZ2UgPSAoKTogdm9pZCA9PiB7fTtcbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';\nimport { SkyCharacterCounterScreenReaderPipe } from './character-counter-screen-reader.pipe';\nimport { SkyCharacterCounterInputDirective } from './character-counter.directive';\nimport * as i0 from \"@angular/core\";\nexport class SkyCharacterCounterModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterModule, declarations: [SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent], imports: [CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCharacterCounterScreenReaderPipe,\n SkyFormsResourcesModule], exports: [SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterModule, imports: [CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyFormsResourcesModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCharacterCounterModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCharacterCounterScreenReaderPipe,\n SkyFormsResourcesModule,\n ],\n exports: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQW1CbEYsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCOytHQUF6Qix5QkFBeUIsaUJBZmxDLGlDQUFpQztZQUNqQyxxQ0FBcUMsYUFHckMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsbUNBQW1DO1lBQ25DLHVCQUF1QixhQUd2QixpQ0FBaUM7WUFDakMscUNBQXFDOytHQUc1Qix5QkFBeUIsWUFYbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFFbkIsdUJBQXVCOzsyRkFPZCx5QkFBeUI7a0JBakJyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQ0FBaUM7d0JBQ2pDLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG1DQUFtQzt3QkFDbkMsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1zY3JlZW4tcmVhZGVyLnBpcGUnO1xuaW1wb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUsXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJTY3JlZW5SZWFkZXJQaXBlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJNb2R1bGUge31cbiJdfQ==","import { InjectionToken } from '@angular/core';\n/**\n * @internal\n */\nexport const SKY_FORM_ERRORS_ENABLED = new InjectionToken('SKY_FORM_ERRORS_ENABLED');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLENBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oXG4gICdTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCcsXG4pO1xuIl19","import { ChangeDetectionStrategy, Component, HostBinding, Input, inject, } from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { SKY_FORM_ERRORS_ENABLED } from './form-errors-enabled-token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@skyux/indicators\";\n/**\n * Displays default and custom form field error messages for form field components.\n * Set `labelText` on the form field component to automatically display required,\n * maximum length, minimum length, date, email, phone number, time, and URL errors.\n * To display custom errors, include sky-form-error elements in the form field component.\n */\nexport class SkyFormErrorComponent {\n get dataErrorName() {\n return this.errorName;\n }\n constructor() {\n this.formErrors = inject(SKY_FORM_ERRORS_ENABLED, {\n optional: true,\n });\n if (!this.formErrors) {\n throw new Error('The `sky-form-error` component is not supported in the provided context.');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFormErrorComponent, isStandalone: true, selector: \"sky-form-error\", inputs: { errorName: \"errorName\", errorText: \"errorText\" }, host: { properties: { \"attr.data-error-name\": \"this.dataErrorName\" } }, hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: `\n @if (formErrors) {\n <sky-status-indicator\n class=\"sky-form-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ errorText }}\n </sky-status-indicator>\n }\n `, isInline: true, styles: [\":host.sky-cmp-theme-default{--sky-override-form-error-margin-top: var(--sky-margin-stacked-xs)}@keyframes sky-modal-error{0%,50%{max-height:0;margin-top:0;opacity:0}to{max-height:500px;opacity:1}}:host{animation:sky-modal-error .3s ease-out 1;display:block;margin-top:var(--sky-override-form-error-margin-top, var(--sky-space-gap-stacked_supplemental-s))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyStatusIndicatorModule }, { kind: \"component\", type: i2.λ10, selector: \"sky-status-indicator\", inputs: [\"indicatorType\", \"descriptionType\", \"customDescription\", \"helpPopoverContent\", \"helpPopoverTitle\", \"helpKey\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-form-error', imports: [SkyStatusIndicatorModule], template: `\n @if (formErrors) {\n <sky-status-indicator\n class=\"sky-form-error\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ errorText }}\n </sky-status-indicator>\n }\n `, hostDirectives: [SkyThemeComponentClassDirective], changeDetection: ChangeDetectionStrategy.OnPush, styles: [\":host.sky-cmp-theme-default{--sky-override-form-error-margin-top: var(--sky-margin-stacked-xs)}@keyframes sky-modal-error{0%,50%{max-height:0;margin-top:0;opacity:0}to{max-height:500px;opacity:1}}:host{animation:sky-modal-error .3s ease-out 1;display:block;margin-top:var(--sky-override-form-error-margin-top, var(--sky-space-gap-stacked_supplemental-s))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { errorName: [{\n type: Input,\n args: [{ required: true }]\n }], errorText: [{\n type: Input,\n args: [{ required: true }]\n }], dataErrorName: [{\n type: HostBinding,\n args: ['attr.data-error-name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBRXRFOzs7OztHQUtHO0FBbUJILE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsSUFBZ0QsYUFBYTtRQUMzRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQU1EO1FBSm1CLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUU7WUFDOUQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7UUFHRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEVBQTBFLENBQzNFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzs4R0E3QlUscUJBQXFCO2tHQUFyQixxQkFBcUIsbVJBZnRCOzs7Ozs7Ozs7O0dBVVQsOGFBWFMsd0JBQXdCOzsyRkFnQnZCLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLFdBQ2pCLENBQUMsd0JBQXdCLENBQUMsWUFDekI7Ozs7Ozs7Ozs7R0FVVCxrQkFFZSxDQUFDLCtCQUErQixDQUFDLG1CQUNoQyx1QkFBdUIsQ0FBQyxNQUFNO3dEQVF4QyxTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVFsQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUd1QixhQUFhO3NCQUE1RCxXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVN0YXR1c0luZGljYXRvck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4vZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5cbi8qKlxuICogRGlzcGxheXMgZGVmYXVsdCBhbmQgY3VzdG9tIGZvcm0gZmllbGQgZXJyb3IgbWVzc2FnZXMgZm9yIGZvcm0gZmllbGQgY29tcG9uZW50cy5cbiAqIFNldCBgbGFiZWxUZXh0YCBvbiB0aGUgZm9ybSBmaWVsZCBjb21wb25lbnQgdG8gYXV0b21hdGljYWxseSBkaXNwbGF5IHJlcXVpcmVkLFxuICogbWF4aW11bSBsZW5ndGgsIG1pbmltdW0gbGVuZ3RoLCBkYXRlLCBlbWFpbCwgcGhvbmUgbnVtYmVyLCB0aW1lLCBhbmQgVVJMIGVycm9ycy5cbiAqIFRvIGRpc3BsYXkgY3VzdG9tIGVycm9ycywgaW5jbHVkZSBza3ktZm9ybS1lcnJvciBlbGVtZW50cyBpbiB0aGUgZm9ybSBmaWVsZCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1mb3JtLWVycm9yJyxcbiAgaW1wb3J0czogW1NreVN0YXR1c0luZGljYXRvck1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChmb3JtRXJyb3JzKSB7XG4gICAgICA8c2t5LXN0YXR1cy1pbmRpY2F0b3JcbiAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1lcnJvclwiXG4gICAgICAgIGRlc2NyaXB0aW9uVHlwZT1cImVycm9yXCJcbiAgICAgICAgaW5kaWNhdG9yVHlwZT1cImRhbmdlclwiXG4gICAgICA+XG4gICAgICAgIHt7IGVycm9yVGV4dCB9fVxuICAgICAgPC9za3ktc3RhdHVzLWluZGljYXRvcj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZvcm1FcnJvckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXJyb3IuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGVycm9yTmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgZXJyb3JUZXh0ITogc3RyaW5nO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWVycm9yLW5hbWUnKSBwdWJsaWMgZ2V0IGRhdGFFcnJvck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvck5hbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUVycm9ycyA9IGluamVjdChTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUVycm9ycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIGBza3ktZm9ybS1lcnJvcmAgY29tcG9uZW50IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIHByb3ZpZGVkIGNvbnRleHQuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyFormErrorComponent } from './form-error.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyFormErrorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorModule, imports: [SkyFormErrorComponent], exports: [SkyFormErrorComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorModule, imports: [SkyFormErrorComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyFormErrorComponent],\n exports: [SkyFormErrorComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFIbkIscUJBQXFCLGFBQ3JCLHFCQUFxQjsrR0FFcEIsa0JBQWtCLFlBSG5CLHFCQUFxQjs7MkZBR3BCLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lGb3JtRXJyb3JDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5Rm9ybUVycm9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rm9ybUVycm9yTW9kdWxlIHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, HostBinding, Input, booleanAttribute, } from '@angular/core';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport { SkyFormErrorComponent } from './form-error.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyFormErrorsComponent {\n constructor() {\n /**\n * Indicates whether the parent component's control is touched\n */\n this.touched = false;\n /**\n * Indicates whether the parent component's control is dirty\n */\n this.dirty = false;\n this.ariaAtomic = 'true';\n this.ariaLive = 'assertive';\n this.ariaRelevant = 'all';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFormErrorsComponent, isStandalone: true, selector: \"sky-form-errors\", inputs: { errors: \"errors\", labelText: \"labelText\", touched: [\"touched\", \"touched\", booleanAttribute], dirty: [\"dirty\", \"dirty\", booleanAttribute] }, host: { properties: { \"attr.aria-atomic\": \"this.ariaAtomic\", \"attr.aria-live\": \"this.ariaLive\", \"attr.aria-relevant\": \"this.ariaRelevant\" } }, ngImport: i0, template: \"@if (labelText) {\\n @if (touched) {\\n @if (errors?.['required']) {\\n <sky-form-error\\n errorName=\\\"required\\\"\\n [errorText]=\\\"'skyux_form_error_required' | skyLibResources: labelText\\\"\\n />\\n }\\n\\n @if (errors?.['minlength']; as minLengthError) {\\n <sky-form-error\\n errorName=\\\"minlength\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_minlength'\\n | skyLibResources: labelText : minLengthError.requiredLength\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['invalid']) {\\n <sky-form-error\\n errorName=\\\"invalidDate\\\"\\n [errorText]=\\\"'skyux_form_error_date' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['minDate']) {\\n <sky-form-error\\n errorName=\\\"minDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_date_min'\\n | skyLibResources: errors?.['skyDate']['minDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['maxDate']) {\\n <sky-form-error\\n errorName=\\\"maxDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_date_max'\\n | skyLibResources: errors?.['skyDate']['maxDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (\\n errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['futureDisabled']\\n ) {\\n <sky-form-error\\n errorName=\\\"fuzzyFutureDisabled\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_future_disabled' | skyLibResources\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['invalid']) {\\n <sky-form-error\\n errorName=\\\"fuzzyInvalidDate\\\"\\n [errorText]=\\\"'skyux_form_error_fuzzy_date_invalid' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['maxDate']) {\\n <sky-form-error\\n errorName=\\\"fuzzyMaxDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_max_date'\\n | skyLibResources: errors?.['skyFuzzyDate']['maxDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['minDate']) {\\n <sky-form-error\\n errorName=\\\"fuzzyMinDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_min_date'\\n | skyLibResources\\n : errors?.['skyFuzzyDate'] &&\\n errors?.['skyFuzzyDate']['minDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['yearRequired']) {\\n <sky-form-error\\n errorName=\\\"fuzzyYearRequired\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_year_required' | skyLibResources\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyEmail']) {\\n <sky-form-error\\n errorName=\\\"email\\\"\\n [errorText]=\\\"'skyux_form_error_email' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyPhoneField']) {\\n <sky-form-error\\n errorName=\\\"phone\\\"\\n [errorText]=\\\"'skyux_form_error_phone' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyTime']) {\\n <sky-form-error\\n errorName=\\\"time\\\"\\n [errorText]=\\\"'skyux_form_error_time' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyUrl']) {\\n <sky-form-error\\n errorName=\\\"url\\\"\\n [errorText]=\\\"'skyux_form_error_url' | skyLibResources\\\"\\n />\\n }\\n }\\n\\n @if (touched || dirty) {\\n @if (errors?.['maxlength']; as maxLengthError) {\\n <sky-form-error\\n errorName=\\\"maxlength\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_maxlength'\\n | skyLibResources: labelText : maxLengthError.requiredLength\\n \\\"\\n />\\n }\\n <ng-content />\\n }\\n}\\n\", styles: [\"sky-status-indicator{display:block;line-height:normal}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyIdModule }, { kind: \"component\", type: SkyFormErrorComponent, selector: \"sky-form-error\", inputs: [\"errorName\", \"errorText\"] }, { kind: \"ngmodule\", type: SkyFormsResourcesModule }, { kind: \"pipe\", type: i1.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-form-errors', imports: [SkyIdModule, SkyFormErrorComponent, SkyFormsResourcesModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (labelText) {\\n @if (touched) {\\n @if (errors?.['required']) {\\n <sky-form-error\\n errorName=\\\"required\\\"\\n [errorText]=\\\"'skyux_form_error_required' | skyLibResources: labelText\\\"\\n />\\n }\\n\\n @if (errors?.['minlength']; as minLengthError) {\\n <sky-form-error\\n errorName=\\\"minlength\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_minlength'\\n | skyLibResources: labelText : minLengthError.requiredLength\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['invalid']) {\\n <sky-form-error\\n errorName=\\\"invalidDate\\\"\\n [errorText]=\\\"'skyux_form_error_date' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['minDate']) {\\n <sky-form-error\\n errorName=\\\"minDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_date_min'\\n | skyLibResources: errors?.['skyDate']['minDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyDate'] && errors?.['skyDate']['maxDate']) {\\n <sky-form-error\\n errorName=\\\"maxDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_date_max'\\n | skyLibResources: errors?.['skyDate']['maxDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (\\n errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['futureDisabled']\\n ) {\\n <sky-form-error\\n errorName=\\\"fuzzyFutureDisabled\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_future_disabled' | skyLibResources\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['invalid']) {\\n <sky-form-error\\n errorName=\\\"fuzzyInvalidDate\\\"\\n [errorText]=\\\"'skyux_form_error_fuzzy_date_invalid' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['maxDate']) {\\n <sky-form-error\\n errorName=\\\"fuzzyMaxDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_max_date'\\n | skyLibResources: errors?.['skyFuzzyDate']['maxDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['minDate']) {\\n <sky-form-error\\n errorName=\\\"fuzzyMinDate\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_min_date'\\n | skyLibResources\\n : errors?.['skyFuzzyDate'] &&\\n errors?.['skyFuzzyDate']['minDateFormatted']\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyFuzzyDate'] && errors?.['skyFuzzyDate']['yearRequired']) {\\n <sky-form-error\\n errorName=\\\"fuzzyYearRequired\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_fuzzy_date_year_required' | skyLibResources\\n \\\"\\n />\\n }\\n\\n @if (errors?.['skyEmail']) {\\n <sky-form-error\\n errorName=\\\"email\\\"\\n [errorText]=\\\"'skyux_form_error_email' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyPhoneField']) {\\n <sky-form-error\\n errorName=\\\"phone\\\"\\n [errorText]=\\\"'skyux_form_error_phone' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyTime']) {\\n <sky-form-error\\n errorName=\\\"time\\\"\\n [errorText]=\\\"'skyux_form_error_time' | skyLibResources\\\"\\n />\\n }\\n\\n @if (errors?.['skyUrl']) {\\n <sky-form-error\\n errorName=\\\"url\\\"\\n [errorText]=\\\"'skyux_form_error_url' | skyLibResources\\\"\\n />\\n }\\n }\\n\\n @if (touched || dirty) {\\n @if (errors?.['maxlength']; as maxLengthError) {\\n <sky-form-error\\n errorName=\\\"maxlength\\\"\\n [errorText]=\\\"\\n 'skyux_form_error_maxlength'\\n | skyLibResources: labelText : maxLengthError.requiredLength\\n \\\"\\n />\\n }\\n <ng-content />\\n }\\n}\\n\", styles: [\"sky-status-indicator{display:block;line-height:normal}\\n\"] }]\n }], propDecorators: { errors: [{\n type: Input\n }], labelText: [{\n type: Input\n }], touched: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dirty: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaAtomic: [{\n type: HostBinding,\n args: ['attr.aria-atomic']\n }], ariaLive: [{\n type: HostBinding,\n args: ['attr.aria-live']\n }], ariaRelevant: [{\n type: HostBinding,\n args: ['attr.aria-relevant']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFL0Q7O0dBRUc7QUFRSCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBb0JFOztXQUVHO1FBRUksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV2Qjs7V0FFRztRQUVJLFVBQUssR0FBRyxLQUFLLENBQUM7UUFHRixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBR3BCLGFBQVEsR0FBRyxXQUFXLENBQUM7UUFHdkIsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FDekM7OEdBakNZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVJQWdCYixnQkFBZ0IsNkJBTWhCLGdCQUFnQiw0S0M5Q3RDLG12SEF5SUEsaUhEdEhZLFdBQVcsK0JBQUUscUJBQXFCLDhGQUFFLHVCQUF1Qjs7MkZBSzFELHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxpQkFBaUIsV0FDbEIsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsbUJBR3JELHVCQUF1QixDQUFDLE1BQU07OEJBT3hDLE1BQU07c0JBRFosS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU8vQixLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSW5CLFVBQVU7c0JBRDVCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUlaLFFBQVE7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUlWLFlBQVk7c0JBRDlCLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWZvcm0tZXJyb3JzJyxcbiAgaW1wb3J0czogW1NreUlkTW9kdWxlLCBTa3lGb3JtRXJyb3JDb21wb25lbnQsIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZXJyb3JzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1lcnJvcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZvcm1FcnJvcnNDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIHZhbGlkYXRpb24gZXJyb3JzIGZyb20gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBsYWJlbCB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGVycm9yIG1lc3NhZ2VzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcGFyZW50IGNvbXBvbmVudCdzIGNvbnRyb2wgaXMgdG91Y2hlZFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyB0b3VjaGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBwYXJlbnQgY29tcG9uZW50J3MgY29udHJvbCBpcyBkaXJ0eVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBkaXJ0eSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWF0b21pYycpXG4gIHByb3RlY3RlZCByZWFkb25seSBhcmlhQXRvbWljID0gJ3RydWUnO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxpdmUnKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXJpYUxpdmUgPSAnYXNzZXJ0aXZlJztcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yZWxldmFudCcpXG4gIHByb3RlY3RlZCByZWFkb25seSBhcmlhUmVsZXZhbnQgPSAnYWxsJztcbn1cbiIsIkBpZiAobGFiZWxUZXh0KSB7XG4gIEBpZiAodG91Y2hlZCkge1xuICAgIEBpZiAoZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJyZXF1aXJlZFwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiJ3NreXV4X2Zvcm1fZXJyb3JfcmVxdWlyZWQnIHwgc2t5TGliUmVzb3VyY2VzOiBsYWJlbFRleHRcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKGVycm9ycz8uWydtaW5sZW5ndGgnXTsgYXMgbWluTGVuZ3RoRXJyb3IpIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJtaW5sZW5ndGhcIlxuICAgICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAgICdza3l1eF9mb3JtX2Vycm9yX21pbmxlbmd0aCdcbiAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBsYWJlbFRleHQgOiBtaW5MZW5ndGhFcnJvci5yZXF1aXJlZExlbmd0aFxuICAgICAgICBcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKGVycm9ycz8uWydza3lEYXRlJ10gJiYgZXJyb3JzPy5bJ3NreURhdGUnXVsnaW52YWxpZCddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiaW52YWxpZERhdGVcIlxuICAgICAgICBbZXJyb3JUZXh0XT1cIidza3l1eF9mb3JtX2Vycm9yX2RhdGUnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgIC8+XG4gICAgfVxuXG4gICAgQGlmIChlcnJvcnM/Llsnc2t5RGF0ZSddICYmIGVycm9ycz8uWydza3lEYXRlJ11bJ21pbkRhdGUnXSkge1xuICAgICAgPHNreS1mb3JtLWVycm9yXG4gICAgICAgIGVycm9yTmFtZT1cIm1pbkRhdGVcIlxuICAgICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAgICdza3l1eF9mb3JtX2Vycm9yX2RhdGVfbWluJ1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGVycm9ycz8uWydza3lEYXRlJ11bJ21pbkRhdGVGb3JtYXR0ZWQnXVxuICAgICAgICBcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKGVycm9ycz8uWydza3lEYXRlJ10gJiYgZXJyb3JzPy5bJ3NreURhdGUnXVsnbWF4RGF0ZSddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwibWF4RGF0ZVwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgJ3NreXV4X2Zvcm1fZXJyb3JfZGF0ZV9tYXgnXG4gICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZXJyb3JzPy5bJ3NreURhdGUnXVsnbWF4RGF0ZUZvcm1hdHRlZCddXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoXG4gICAgICBlcnJvcnM/Llsnc2t5RnV6enlEYXRlJ10gJiYgZXJyb3JzPy5bJ3NreUZ1enp5RGF0ZSddWydmdXR1cmVEaXNhYmxlZCddXG4gICAgKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiZnV6enlGdXR1cmVEaXNhYmxlZFwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgJ3NreXV4X2Zvcm1fZXJyb3JfZnV6enlfZGF0ZV9mdXR1cmVfZGlzYWJsZWQnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreUZ1enp5RGF0ZSddICYmIGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsnaW52YWxpZCddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiZnV6enlJbnZhbGlkRGF0ZVwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiJ3NreXV4X2Zvcm1fZXJyb3JfZnV6enlfZGF0ZV9pbnZhbGlkJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreUZ1enp5RGF0ZSddICYmIGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsnbWF4RGF0ZSddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiZnV6enlNYXhEYXRlXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAnc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX21heF9kYXRlJ1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsnbWF4RGF0ZUZvcm1hdHRlZCddXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreUZ1enp5RGF0ZSddICYmIGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsnbWluRGF0ZSddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiZnV6enlNaW5EYXRlXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAnc2t5dXhfZm9ybV9lcnJvcl9mdXp6eV9kYXRlX21pbl9kYXRlJ1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgOiBlcnJvcnM/Llsnc2t5RnV6enlEYXRlJ10gJiZcbiAgICAgICAgICAgICAgICAgIGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsnbWluRGF0ZUZvcm1hdHRlZCddXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreUZ1enp5RGF0ZSddICYmIGVycm9ycz8uWydza3lGdXp6eURhdGUnXVsneWVhclJlcXVpcmVkJ10pIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJmdXp6eVllYXJSZXF1aXJlZFwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgJ3NreXV4X2Zvcm1fZXJyb3JfZnV6enlfZGF0ZV95ZWFyX3JlcXVpcmVkJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICBcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKGVycm9ycz8uWydza3lFbWFpbCddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwiZW1haWxcIlxuICAgICAgICBbZXJyb3JUZXh0XT1cIidza3l1eF9mb3JtX2Vycm9yX2VtYWlsJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreVBob25lRmllbGQnXSkge1xuICAgICAgPHNreS1mb3JtLWVycm9yXG4gICAgICAgIGVycm9yTmFtZT1cInBob25lXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCInc2t5dXhfZm9ybV9lcnJvcl9waG9uZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICBAaWYgKGVycm9ycz8uWydza3lUaW1lJ10pIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJ0aW1lXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCInc2t5dXhfZm9ybV9lcnJvcl90aW1lJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAvPlxuICAgIH1cblxuICAgIEBpZiAoZXJyb3JzPy5bJ3NreVVybCddKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwidXJsXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCInc2t5dXhfZm9ybV9lcnJvcl91cmwnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgIC8+XG4gICAgfVxuICB9XG5cbiAgQGlmICh0b3VjaGVkIHx8IGRpcnR5KSB7XG4gICAgQGlmIChlcnJvcnM/LlsnbWF4bGVuZ3RoJ107IGFzIG1heExlbmd0aEVycm9yKSB7XG4gICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgZXJyb3JOYW1lPVwibWF4bGVuZ3RoXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAnc2t5dXhfZm9ybV9lcnJvcl9tYXhsZW5ndGgnXG4gICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogbGFiZWxUZXh0IDogbWF4TGVuZ3RoRXJyb3IucmVxdWlyZWRMZW5ndGhcbiAgICAgICAgXCJcbiAgICAgIC8+XG4gICAgfVxuICAgIDxuZy1jb250ZW50IC8+XG4gIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyFormErrorComponent } from './form-error.component';\nimport { SkyFormErrorsComponent } from './form-errors.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyFormErrorsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsModule, imports: [SkyFormErrorsComponent, SkyFormErrorComponent], exports: [SkyFormErrorsComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsModule, imports: [SkyFormErrorsComponent, SkyFormErrorComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFormErrorsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyFormErrorsComponent, SkyFormErrorComponent],\n exports: [SkyFormErrorsComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVqRTs7R0FFRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLFlBSHBCLHNCQUFzQixFQUFFLHFCQUFxQixhQUM3QyxzQkFBc0I7K0dBRXJCLG1CQUFtQixZQUhwQixzQkFBc0IsRUFBRSxxQkFBcUI7OzJGQUc1QyxtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3hELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1lcnJvcnMuY29tcG9uZW50JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreUZvcm1FcnJvcnNDb21wb25lbnQsIFNreUZvcm1FcnJvckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTa3lGb3JtRXJyb3JzQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Rm9ybUVycm9yc01vZHVsZSB7fVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Input, booleanAttribute, inject, numberAttribute, } from '@angular/core';\nimport { NG_VALIDATORS, } from '@angular/forms';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeComponentClassDirective, SkyThemeModule } from '@skyux/theme';\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"../form-error/form-errors.component\";\nimport * as i4 from \"@skyux/i18n\";\nimport * as i5 from \"@skyux/help-inline\";\nimport * as i6 from \"@skyux/core\";\nfunction numberAttribute4(value) {\n return numberAttribute(value, 4);\n}\n/**\n * Organizes checkboxes into a group.\n */\nexport class SkyCheckboxGroupComponent {\n constructor() {\n /**\n * Indicates whether to hide the `headingText`.\n */\n this.headingHidden = false;\n /**\n * Whether the checkbox group is required.\n */\n this.required = false;\n this.stackedLg = false;\n this.stackedXL = false;\n this.#idSvc = inject(SkyIdService);\n this.errorId = this.#idSvc.generateId();\n this.headingClass = 'sky-font-heading-4';\n this.formErrorsDataId = 'checkbox-group-form-errors';\n this.#_stacked = false;\n }\n /**\n * The semantic heading level in the document structure. By default, the heading text is not wrapped in a heading element.\n */\n set headingLevel(value) {\n this.#_headingLevel = value && !isNaN(value) ? value : undefined;\n this.#updateStackedClasses();\n }\n get headingLevel() {\n return this.#_headingLevel;\n }\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 4\n */\n set headingStyle(value) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n /**\n * Whether the checkbox group is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the checkbox group.\n */\n set stacked(value) {\n this.#_stacked = value;\n this.#updateStackedClasses();\n }\n get stacked() {\n return this.#_stacked;\n }\n #idSvc;\n #_headingLevel;\n #_stacked;\n validate(formGroup) {\n this.formGroup ??= formGroup;\n if (!this.required) {\n return null;\n }\n const controlNames = Object.keys(formGroup.controls);\n let atLeastOneSelected = false;\n controlNames.forEach((controlName) => {\n const control = formGroup.get(controlName);\n if (control?.value) {\n atLeastOneSelected = true;\n }\n });\n if (!atLeastOneSelected) {\n return { required: true };\n }\n else {\n return null;\n }\n }\n #updateStackedClasses() {\n this.stackedLg = !this.headingLevel && this.stacked;\n this.stackedXL = !!this.headingLevel && this.stacked;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyCheckboxGroupComponent, isStandalone: true, selector: \"sky-checkbox-group\", inputs: { helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", headingText: \"headingText\", headingHidden: [\"headingHidden\", \"headingHidden\", booleanAttribute], headingLevel: [\"headingLevel\", \"headingLevel\", numberAttribute], headingStyle: [\"headingStyle\", \"headingStyle\", numberAttribute4], hintText: \"hintText\", required: [\"required\", \"required\", booleanAttribute], stacked: [\"stacked\", \"stacked\", booleanAttribute], helpKey: \"helpKey\" }, host: { properties: { \"class.sky-form-field-stacked\": \"this.stackedLg\", \"class.sky-field-group-stacked\": \"this.stackedXL\" } }, providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCheckboxGroupComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<fieldset\\n class=\\\"sky-checkbox-group\\\"\\n [attr.aria-invalid]=\\\"!!formGroup?.errors\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-errormessage]=\\\"\\n headingText && formGroup?.errors ? errorId : undefined\\n \\\"\\n>\\n <legend\\n class=\\\"sky-checkbox-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span\\n class=\\\"sky-checkbox-group-heading\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >\\n @switch (headingLevel) {\\n @case (3) {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @case (5) {\\n <h5 [class]=\\\"headingClass\\\">{{ headingText }}</h5>\\n }\\n @default {\\n <span [class]=\\\"'sky-checkbox-group-heading-text ' + headingClass\\\">{{\\n headingText\\n }}</span>\\n }\\n }\\n </span>\\n @if (required) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_form_group_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n <div\\n #hintTextEl=\\\"skyId\\\"\\n skyId\\n [ngClass]=\\\"{\\n 'sky-checkbox-group-hint-text': !!hintText\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n <span class=\\\"sky-checkbox-group-inline sky-switch-icon-group\\\">\\n <ng-content select=\\\"sky-checkbox[icon], sky-checkbox[iconName]\\\" />\\n </span>\\n <span class=\\\"sky-checkbox-group-stacked\\\">\\n <ng-content select=\\\"sky-checkbox\\\" />\\n </span>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [attr.data-sky-id]=\\\"formErrorsDataId\\\"\\n [errors]=\\\"formGroup?.errors\\\"\\n [labelText]=\\\"headingText\\\"\\n [touched]=\\\"formGroup?.touched\\\"\\n [dirty]=\\\"formGroup?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\".sky-checkbox-group:not(.sky-theme-modern *){--sky-override-checkbox-group-content-space: 8px;--sky-override-checkbox-group-content-with-hint-text-space: 10px;--sky-override-checkbox-group-hint-text-space: 5px}.sky-checkbox-group:not(.sky-theme-modern *) .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-checkbox-group .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host{display:block}.sky-checkbox-group-legend h3,.sky-checkbox-group-legend h4,.sky-checkbox-group-legend h5{margin:0;display:inline-block}.sky-checkbox-group-inline,.sky-checkbox-group-stacked{display:block}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-space, var(--sky-space-gap-form-s))}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)) .sky-checkbox-group-hint-text{margin-top:var(--sky-override-checkbox-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyFormErrorsModule }, { kind: \"component\", type: i3.SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"ngmodule\", type: SkyFormsResourcesModule }, { kind: \"pipe\", type: i4.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i1.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-checkbox-group', imports: [\n CommonModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyThemeModule,\n ], providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCheckboxGroupComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], hostDirectives: [SkyThemeComponentClassDirective], template: \"<fieldset\\n class=\\\"sky-checkbox-group\\\"\\n [attr.aria-invalid]=\\\"!!formGroup?.errors\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-errormessage]=\\\"\\n headingText && formGroup?.errors ? errorId : undefined\\n \\\"\\n>\\n <legend\\n class=\\\"sky-checkbox-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span\\n class=\\\"sky-checkbox-group-heading\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >\\n @switch (headingLevel) {\\n @case (3) {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @case (5) {\\n <h5 [class]=\\\"headingClass\\\">{{ headingText }}</h5>\\n }\\n @default {\\n <span [class]=\\\"'sky-checkbox-group-heading-text ' + headingClass\\\">{{\\n headingText\\n }}</span>\\n }\\n }\\n </span>\\n @if (required) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_form_group_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n <div\\n #hintTextEl=\\\"skyId\\\"\\n skyId\\n [ngClass]=\\\"{\\n 'sky-checkbox-group-hint-text': !!hintText\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n <span class=\\\"sky-checkbox-group-inline sky-switch-icon-group\\\">\\n <ng-content select=\\\"sky-checkbox[icon], sky-checkbox[iconName]\\\" />\\n </span>\\n <span class=\\\"sky-checkbox-group-stacked\\\">\\n <ng-content select=\\\"sky-checkbox\\\" />\\n </span>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [attr.data-sky-id]=\\\"formErrorsDataId\\\"\\n [errors]=\\\"formGroup?.errors\\\"\\n [labelText]=\\\"headingText\\\"\\n [touched]=\\\"formGroup?.touched\\\"\\n [dirty]=\\\"formGroup?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\".sky-checkbox-group:not(.sky-theme-modern *){--sky-override-checkbox-group-content-space: 8px;--sky-override-checkbox-group-content-with-hint-text-space: 10px;--sky-override-checkbox-group-hint-text-space: 5px}.sky-checkbox-group:not(.sky-theme-modern *) .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-checkbox-group .sky-checkbox-group-legend .sky-checkbox-group-heading-text{line-height:1.1}:host{display:block}.sky-checkbox-group-legend h3,.sky-checkbox-group-legend h4,.sky-checkbox-group-legend h5{margin:0;display:inline-block}.sky-checkbox-group-inline,.sky-checkbox-group-stacked{display:block}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-checkbox-group-hint-text)) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-space, var(--sky-space-gap-form-s))}.sky-checkbox-group:has(.sky-checkbox-group-legend:not(.sky-screen-reader-only)) .sky-checkbox-group-hint-text{margin-top:var(--sky-override-checkbox-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-inline,.sky-checkbox-group:has(.sky-checkbox-group-hint-text) .sky-checkbox-group-stacked{margin-top:var(--sky-override-checkbox-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"] }]\n }], propDecorators: { helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], headingText: [{\n type: Input,\n args: [{ required: true }]\n }], headingHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], headingLevel: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], headingStyle: [{\n type: Input,\n args: [{ transform: numberAttribute4 }]\n }], hintText: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], helpKey: [{\n type: Input\n }], stackedLg: [{\n type: HostBinding,\n args: ['class.sky-form-field-stacked']\n }], stackedXL: [{\n type: HostBinding,\n args: ['class.sky-field-group-stacked']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztBQUsvRSxTQUFTLGdCQUFnQixDQUFDLEtBQWM7SUFDdEMsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7R0FFRztBQXVCSCxNQUFNLE9BQU8seUJBQXlCO0lBdEJ0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Z0JBSXBDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreUlkU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSwgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG5mdW5jdGlvbiBudW1iZXJBdHRyaWJ1dGU0KHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHtcbiAgcmV0dXJuIG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgNCk7XG59XG5cbi8qKlxuICogT3JnYW5pemVzIGNoZWNrYm94ZXMgaW50byBhIGdyb3VwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2hlY2tib3gtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LnNjc3MnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUZvcm1FcnJvcnNNb2R1bGUsXG4gICAgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lDaGVja2JveEdyb3VwQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1NreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGVja2JveEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGhlYWRpbmdUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBjaGVja2JveCBncm91cCBmaWVsZHNldCBsZWdlbmQuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWFkaW5nVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBjaGVja2JveCBncm91cCdzIGhlYWRpbmcuXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgaGVhZGluZ1RleHQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZGUgdGhlIGBoZWFkaW5nVGV4dGAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGhlYWRpbmdIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHNlbWFudGljIGhlYWRpbmcgbGV2ZWwgaW4gdGhlIGRvY3VtZW50IHN0cnVjdHVyZS4gQnkgZGVmYXVsdCwgdGhlIGhlYWRpbmcgdGV4dCBpcyBub3Qgd3JhcHBlZCBpbiBhIGhlYWRpbmcgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgaGVhZGluZ0xldmVsKHZhbHVlOiBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2hlYWRpbmdMZXZlbCA9IHZhbHVlICYmICFpc05hTih2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLiN1cGRhdGVTdGFja2VkQ2xhc3NlcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWFkaW5nTGV2ZWwoKTogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19oZWFkaW5nTGV2ZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhlYWRpbmcgW2ZvbnQgc3R5bGVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL3N0eWxlcy90eXBvZ3JhcGh5I2hlYWRpbmdzKS5cbiAgICogQGRlZmF1bHQgNFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGU0IH0pXG4gIHB1YmxpYyBzZXQgaGVhZGluZ1N0eWxlKHZhbHVlOiBTa3lDaGVja2JveEdyb3VwSGVhZGluZ1N0eWxlKSB7XG4gICAgdGhpcy5oZWFkaW5nQ2xhc3MgPSBgc2t5LWZvbnQtaGVhZGluZy0ke3ZhbHVlfWA7XG4gIH1cblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBncm91cCBpcyBzdGFja2VkIG9uIGFub3RoZXIgZm9ybSBjb21wb25lbnQuIFdoZW4gc3BlY2lmaWVkLCB0aGUgYXBwcm9wcmlhdGVcbiAgICogdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBjaGVja2JveCBncm91cC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHN0YWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfc3RhY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGhlYWRpbmdUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIGNoZWNrYm94IGdyb3VwIGhlYWRpbmcuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlYWRpbmdUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktZm9ybS1maWVsZC1zdGFja2VkJylcbiAgcHVibGljIHN0YWNrZWRMZyA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWZpZWxkLWdyb3VwLXN0YWNrZWQnKVxuICBwdWJsaWMgc3RhY2tlZFhMID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gIHByb3RlY3RlZCBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICBwcm90ZWN0ZWQgaGVhZGluZ0NsYXNzID0gJ3NreS1mb250LWhlYWRpbmctNCc7XG4gIHByb3RlY3RlZCBmb3JtRXJyb3JzRGF0YUlkID0gJ2NoZWNrYm94LWdyb3VwLWZvcm0tZXJyb3JzJztcbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICAjX2hlYWRpbmdMZXZlbDogU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZDtcbiAgI19zdGFja2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHZhbGlkYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuZm9ybUdyb3VwID8/PSBmb3JtR3JvdXA7XG5cbiAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xOYW1lcyA9IE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scyk7XG4gICAgbGV0IGF0TGVhc3RPbmVTZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgY29udHJvbE5hbWVzLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XG4gICAgICBpZiAoY29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgYXRMZWFzdE9uZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghYXRMZWFzdE9uZVNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlU3RhY2tlZENsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFja2VkTGcgPSAhdGhpcy5oZWFkaW5nTGV2ZWwgJiYgdGhpcy5zdGFja2VkO1xuICAgIHRoaXMuc3RhY2tlZFhMID0gISF0aGlzLmhlYWRpbmdMZXZlbCAmJiB0aGlzLnN0YWNrZWQ7XG4gIH1cbn1cbiIsIjxmaWVsZHNldFxuICBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cFwiXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWZvcm1Hcm91cD8uZXJyb3JzXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICBoZWFkaW5nVGV4dCAmJiBmb3JtR3JvdXA/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgXCJcbj5cbiAgPGxlZ2VuZFxuICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LWdyb3VwLWxlZ2VuZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknOiBoZWFkaW5nSGlkZGVuXG4gICAgfVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtZ3JvdXAtaGVhZGluZ1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAc3dpdGNoIChoZWFkaW5nTGV2ZWwpIHtcbiAgICAgICAgQGNhc2UgKDMpIHtcbiAgICAgICAgICA8aDMgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPnt7IGhlYWRpbmdUZXh0IH19PC9oMz5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoNCkge1xuICAgICAgICAgIDxoNCBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+e3sgaGVhZGluZ1RleHQgfX08L2g0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICg1KSB7XG4gICAgICAgICAgPGg1IFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj57eyBoZWFkaW5nVGV4dCB9fTwvaDU+XG4gICAgICAgIH1cbiAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInc2t5LWNoZWNrYm94LWdyb3VwLWhlYWRpbmctdGV4dCAnICsgaGVhZGluZ0NsYXNzXCI+e3tcbiAgICAgICAgICAgIGhlYWRpbmdUZXh0XG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgJ3NreXV4X2Zvcm1fZ3JvdXBfcmVxdWlyZWQnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICB9fTwvc3Bhbj5cbiAgICB9XG4gICAgQGlmIChoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgW2xhYmVsVGV4dF09XCJoZWFkaW5nVGV4dFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvbGVnZW5kPlxuICA8ZGl2XG4gICAgI2hpbnRUZXh0RWw9XCJza3lJZFwiXG4gICAgc2t5SWRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNoZWNrYm94LWdyb3VwLWhpbnQtdGV4dCc6ICEhaGludFRleHRcbiAgICB9XCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LWZvbnQtZGVlbXBoYXNpemVkJzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1mb250LWhpbnQtdGV4dC1zJzogJ21vZGVybidcbiAgICB9XCJcbiAgPlxuICAgIHt7IGhpbnRUZXh0IH19XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cC1pbmxpbmUgc2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94W2ljb25dLCBza3ktY2hlY2tib3hbaWNvbk5hbWVdXCIgLz5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInNreS1jaGVja2JveC1ncm91cC1zdGFja2VkXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94XCIgLz5cbiAgPC9zcGFuPlxuPC9maWVsZHNldD5cbjxza3ktZm9ybS1lcnJvcnNcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbYXR0ci5kYXRhLXNreS1pZF09XCJmb3JtRXJyb3JzRGF0YUlkXCJcbiAgW2Vycm9yc109XCJmb3JtR3JvdXA/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICBbdG91Y2hlZF09XCJmb3JtR3JvdXA/LnRvdWNoZWRcIlxuICBbZGlydHldPVwiZm9ybUdyb3VwPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19","import { Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n@internal\n */\nexport class SkyCheckboxLabelTextLabelComponent {\n constructor() {\n this.labelHidden = false;\n this.#_labelText = '';\n }\n set labelText(value) {\n this.#_labelText = value.trim();\n }\n get labelText() {\n return this.#_labelText;\n }\n #_labelText;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxLabelTextLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyCheckboxLabelTextLabelComponent, isStandalone: false, selector: \"sky-checkbox-label-text-label\", inputs: { labelHidden: \"labelHidden\", labelText: \"labelText\" }, ngImport: i0, template: \"@if (!labelHidden) {\\n <span class=\\\"sky-switch-label\\\">{{ labelText }}</span>\\n}\\n\", styles: [\".sky-switch-label:not(.sky-theme-modern *){margin-right:0}\\n\", \":host-context(.sky-theme-modern) .sky-switch-label{margin-right:0}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxLabelTextLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-checkbox-label-text-label', standalone: false, template: \"@if (!labelHidden) {\\n <span class=\\\"sky-switch-label\\\">{{ labelText }}</span>\\n}\\n\", styles: [\".sky-switch-label:not(.sky-theme-modern *){margin-right:0}\\n\", \":host-context(.sky-theme-modern) .sky-switch-label{margin-right:0}\\n\"] }]\n }], propDecorators: { labelHidden: [{\n type: Input\n }], labelText: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGFiZWwtdGV4dC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLXRleHQtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7R0FFRztBQVVILE1BQU0sT0FBTyxrQ0FBa0M7SUFUL0M7UUFXUyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVczQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztLQUNsQjtJQVZDLElBQ1csU0FBUyxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBTTs4R0FiTixrQ0FBa0M7a0dBQWxDLGtDQUFrQywwSkNkL0Msc0ZBR0E7OzJGRFdhLGtDQUFrQztrQkFUOUMsU0FBUzsrQkFDRSwrQkFBK0IsY0FNN0IsS0FBSzs4QkFJVixXQUFXO3NCQURqQixLQUFLO2dCQUlLLFNBQVM7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vY2hlY2tib3gtbGFiZWwtdGV4dC1sYWJlbC5kZWZhdWx0LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi9jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsLm1vZGVybi5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoZWNrYm94TGFiZWxUZXh0TGFiZWxDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxIaWRkZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX2xhYmVsVGV4dCA9IHZhbHVlLnRyaW0oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbFRleHQ7XG4gIH1cblxuICAjX2xhYmVsVGV4dCA9ICcnO1xufVxuIiwiQGlmICghbGFiZWxIaWRkZW4pIHtcbiAgPHNwYW4gY2xhc3M9XCJza3ktc3dpdGNoLWxhYmVsXCI+e3sgbGFiZWxUZXh0IH19PC9zcGFuPlxufVxuIl19","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies a label for the checkbox. To display a help button beside the label, include a help button element, such as\n * `sky-help-inline`, in the `sky-checkbox-label` element and a `sky-control-help` CSS class on that help button\n * element.\n * @deprecated Use `labelText` input on `sky-checkbox-component` instead.\n */\nexport class SkyCheckboxLabelComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyCheckboxLabelComponent, isStandalone: false, 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]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-checkbox-label', standalone: false, 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\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUUxQzs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCLCtFQ2J0Qyw0TEFLQTs7MkZEUWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQixjQUVsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgbGFiZWwgZm9yIHRoZSBjaGVja2JveC4gVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uIGJlc2lkZSB0aGUgbGFiZWwsIGluY2x1ZGUgYSBoZWxwIGJ1dHRvbiBlbGVtZW50LCBzdWNoIGFzXG4gKiBgc2t5LWhlbHAtaW5saW5lYCwgaW4gdGhlIGBza3ktY2hlY2tib3gtbGFiZWxgIGVsZW1lbnQgYW5kIGEgYHNreS1jb250cm9sLWhlbHBgIENTUyBjbGFzcyBvbiB0aGF0IGhlbHAgYnV0dG9uXG4gKiBlbGVtZW50LlxuICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGlucHV0IG9uIGBza3ktY2hlY2tib3gtY29tcG9uZW50YCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2hlY2tib3gtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hMYWJlbENvbXBvbmVudCB7fVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktc3dpdGNoLWxhYmVsXCJcbiAgPjxzcGFuIHNreVRyaW0+PG5nLWNvbnRlbnQgLz48L3NwYW5cbiAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgID48bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+PC9zcGFuXG4+PC9zcGFuPlxuIl19","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, booleanAttribute, inject, } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"../form-error/form-errors.component\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/icon\";\nimport * as i6 from \"@skyux/core\";\nimport * as i7 from \"./checkbox-label-text-label.component\";\n/**\n * Replaces the HTML input element with `type=\"checkbox\"`. When users select a checkbox, its value\n * is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.\n */\nexport class SkyCheckboxComponent {\n /**\n * The ARIA label for the checkbox. This sets the checkbox's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)\n * when the checkbox does not include a visible label. You must set this property for icon\n * checkboxes. If the checkbox includes a visible label, use `labelledBy` instead.\n * @deprecated Use `labelText` instead.\n */\n set label(value) {\n this.#_label = value;\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.label', {\n deprecationMajorVersion: 9,\n });\n }\n }\n get label() {\n return this.#_label;\n }\n /**\n * The HTML element ID of the element that labels the\n * checkbox. This sets the checkbox's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\n * If the checkbox does not include a visible label, use `label` instead.\n * @deprecated Use `labelText` instead.\n */\n set labelledBy(value) {\n this.#_labelledBy = value;\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.labelledBy', {\n deprecationMajorVersion: 9,\n });\n }\n }\n get labelledBy() {\n return this.#_labelledBy;\n }\n /**\n * The ID for the checkbox.\n * If a value is not provided, an autogenerated ID is used.\n */\n set id(value) {\n if (value) {\n this.inputId = `sky-checkbox-${value}-input`;\n }\n else {\n this.inputId = `sky-checkbox-${this.#defaultId}-input`;\n }\n }\n /**\n * Whether to disable the checkbox on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n set disabled(value) {\n if (value !== this.#_disabled) {\n this.#_disabled = value;\n this.#disabledChange.next(value);\n }\n }\n /**\n * Whether the checkbox is disabled.\n */\n get disabled() {\n return this.#_disabled;\n }\n /**\n * The name for the checkbox.\n * If a value is not provided, an autogenerated ID is used.\n */\n set name(value) {\n if (value && value !== this.#defaultId) {\n this.#_name = value;\n }\n else {\n this.#_name = `sky-checkbox-${this.#defaultId}`;\n }\n }\n get name() {\n return this.#_name;\n }\n /**\n * The background color type after users select a checkbox where the\n * `icon` property displays an icon in place of the checkbox. The valid options correspond to\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `\"info\"` creates a blue background, `\"success\"` creates a green\n * background, `\"warning\"` creates an orange background, and `\"danger\"` creates a red background.\n * @default \"info\"\n * @deprecated The `checkboxType` input is no longer supported.\n */\n set checkboxType(value) {\n if (value) {\n this.#logger.deprecated('SkyCheckboxComponent.checkboxType', {\n deprecationMajorVersion: 7,\n });\n }\n this.#_checkboxType = value ? value.toLowerCase() : 'info';\n }\n get checkboxType() {\n return this.#_checkboxType;\n }\n /**\n * Whether the checkbox is selected.\n * @default false\n */\n set checked(value) {\n const checked = !!value;\n if (checked !== this.#_checked) {\n this.#_checked = checked;\n this.#checkedChange.next(checked);\n }\n }\n /**\n * Whether the checkbox is selected.\n */\n get checked() {\n return this.#_checked;\n }\n /**\n * Whether the checkbox is in the indeterminate state. This has no visual effect for icon checkboxes.\n * @internal\n */\n set indeterminate(value) {\n if (value !== this.#_indeterminate) {\n this.#_indeterminate = !!value;\n this.#indeterminateChange.next(this.#_indeterminate);\n if (this.inputEl) {\n this.inputEl.nativeElement.indeterminate = this.#_indeterminate;\n this.#changeDetector.markForCheck();\n }\n }\n }\n get indeterminate() {\n return this.#_indeterminate;\n }\n /**\n * Fires when users select or deselect the checkbox.\n */\n get checkedChange() {\n return this.#checkedChangeObs;\n }\n /**\n * Fires when the selected value changes.\n */\n get disabledChange() {\n return this.#disabledChangeObs;\n }\n /**\n * Fires when the indeterminate state changes.\n * @internal\n */\n get indeterminateChange() {\n return this.#indeterminateChangeObs;\n }\n set inputEl(el) {\n this.#_inputEl = el;\n if (el && this.indeterminate) {\n el.nativeElement.indeterminate = this.indeterminate;\n }\n }\n get inputEl() {\n return this.#_inputEl;\n }\n get isCheckboxRequired() {\n return !!(this.required ||\n this.control?.hasValidator(Validators.requiredTrue) ||\n this.control?.hasValidator(Validators.required));\n }\n #checkedChange;\n #checkedChangeObs;\n #disabledChange;\n #disabledChangeObs;\n #indeterminateChange;\n #indeterminateChangeObs;\n #_checked;\n #_checkboxType;\n #_disabled;\n #_indeterminate;\n #_inputEl;\n #_name;\n #_label;\n #_labelledBy;\n #changeDetector;\n #idSvc;\n #defaultId;\n #logger;\n constructor() {\n /**\n * The index for the checkbox. If not defined, the index is set to the position of the\n * checkbox on load.\n */\n this.tabindex = 0;\n /**\n * Fires when the selected value changes.\n */\n this.change = new EventEmitter();\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * @default false\n */\n this.required = false;\n /**\n * Indicates whether to hide the `labelText`.\n */\n this.labelHidden = false;\n /**\n * Whether the checkbox is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the checkbox. If the checkbox is within a checkbox group,\n * set `stacked` on the checkbox group component instead.\n */\n this.stacked = false;\n this.inputId = '';\n this.#_checked = false;\n this.#_checkboxType = 'info';\n this.#_disabled = false;\n this.#_indeterminate = false;\n this.#_name = '';\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#idSvc = inject(SkyIdService);\n this.#defaultId = this.#idSvc.generateId();\n this.#logger = inject(SkyLogService);\n this.errorId = this.#idSvc.generateId();\n /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */\n // istanbul ignore next\n this.onTouched = () => { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#controlValueAccessorChangeFn = (value) => { };\n this.#checkedChange = new Subject();\n this.#disabledChange = new Subject();\n this.#indeterminateChange = new Subject();\n this.#checkedChangeObs = this.#checkedChange.asObservable();\n this.#disabledChangeObs = this.#disabledChange.asObservable();\n this.#indeterminateChangeObs = this.#indeterminateChange.asObservable();\n this.id = this.#defaultId;\n this.name = this.#defaultId;\n }\n ngAfterViewInit() {\n this.#checkedChange.next(this.checked);\n this.#disabledChange.next(this.disabled);\n this.#indeterminateChange.next(this.indeterminate);\n }\n validate(control) {\n this.control ||= control;\n // In template-driven forms, Angular's native 'required' attribute directive only works\n // on `input[type=\"checkbox\"]` selectors, so we need to write the validation logic ourselves.\n // Also, we're treating Validators.required the same as Validators.requiredTrue internally, so\n // we need to account for that decision in our custom validator.\n return this.isCheckboxRequired && control.value !== true\n ? { required: true }\n : null;\n }\n /**\n * Implemented as part of ControlValueAccessor.\n */\n writeValue(value) {\n this.checked = !!value;\n }\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnChange(fn) {\n this.#controlValueAccessorChangeFn = fn;\n }\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Implemented as part of ControlValueAccessor.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n */\n onInteractionEvent(event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n if (!this.disabled) {\n this.indeterminate = false;\n this.#toggle();\n this.#controlValueAccessorChangeFn(this.checked);\n this.#emitChangeEvent();\n }\n }\n onInputBlur() {\n this.onTouched();\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #controlValueAccessorChangeFn;\n #emitChangeEvent() {\n this.change.emit({ checked: this.checked });\n }\n /**\n * Toggles the `checked` value between true and false\n */\n #toggle() {\n this.checked = !this.checked;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyCheckboxComponent, isStandalone: false, selector: \"sky-checkbox\", inputs: { label: \"label\", labelledBy: \"labelledBy\", id: \"id\", disabled: [\"disabled\", \"disabled\", booleanAttribute], tabindex: \"tabindex\", name: \"name\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", icon: \"icon\", iconName: \"iconName\", checkboxType: \"checkboxType\", checked: \"checked\", indeterminate: \"indeterminate\", required: [\"required\", \"required\", booleanAttribute], labelText: \"labelText\", labelHidden: [\"labelHidden\", \"labelHidden\", booleanAttribute], hintText: \"hintText\", stacked: [\"stacked\", \"stacked\", booleanAttribute], helpKey: \"helpKey\" }, outputs: { change: \"change\", checkedChange: \"checkedChange\", disabledChange: \"disabledChange\", indeterminateChange: \"indeterminateChange\" }, host: { properties: { \"class.sky-form-field-stacked\": \"this.stacked\" } }, providers: [\n { provide: NG_VALIDATORS, useExisting: SkyCheckboxComponent, multi: true },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyCheckboxComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], viewQueries: [{ propertyName: \"inputEl\", first: true, predicate: [\"inputEl\"], descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<span class=\\\"sky-checkbox-outer-wrapper\\\">\\n <label\\n class=\\\"sky-checkbox-wrapper sky-switch\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isCheckboxRequired,\\n 'sky-switch-disabled': disabled\\n }\\\"\\n >\\n <input\\n #inputEl\\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]=\\\"isCheckboxRequired\\\"\\n [tabIndex]=\\\"tabindex\\\"\\n [attr.aria-label]=\\\"labelText || label\\\"\\n [attr.aria-labelledby]=\\\"labelText ? undefined : labelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-required]=\\\"isCheckboxRequired ? true : null\\\"\\n [attr.aria-invalid]=\\\"!!control?.errors\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && control?.errors ? errorId : undefined\\n \\\"\\n [ngClass]=\\\"{\\n 'sky-switch-invalid':\\n (control?.touched || control?.dirty) && control?.errors\\n }\\\"\\n (blur)=\\\"onInputBlur()\\\"\\n (change)=\\\"onInteractionEvent($event)\\\"\\n />\\n <span\\n class=\\\"sky-switch-control sky-rounded-corners\\\"\\n [ngClass]=\\\"{\\n 'sky-switch-control-icon': icon || iconName,\\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 @if (icon || iconName) {\\n @if (iconName) {\\n <sky-icon variant=\\\"solid\\\" [iconName]=\\\"iconName\\\" />\\n } @else {\\n <sky-icon [fixedWidth]=\\\"true\\\" [icon]=\\\"icon\\\" />\\n }\\n } @else {\\n @if (indeterminate) {\\n <sky-icon\\n class=\\\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\\\"\\n iconName=\\\"square\\\"\\n variant=\\\"solid\\\"\\n iconSize=\\\"s\\\"\\n />\\n } @else if (checked) {\\n <sky-icon\\n class=\\\"sky-checkbox-icon-modern-checked\\\"\\n iconName=\\\"checkmark\\\"\\n iconSize=\\\"s\\\"\\n />\\n }\\n }\\n </span>\\n\\n @if (labelText) {\\n <sky-checkbox-label-text-label\\n [labelText]=\\\"labelText\\\"\\n [labelHidden]=\\\"labelHidden\\\"\\n />\\n } @else {\\n <ng-content select=\\\"sky-checkbox-label\\\" />\\n }\\n </label>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-checkbox-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n</span>\\n<span #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-checkbox-hint-text sky-checkbox-form-margin\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</span>\\n<sky-form-errors\\n [class.sky-checkbox-form-margin]=\\\"labelText && control?.errors\\\"\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"control?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"control?.touched\\\"\\n [dirty]=\\\"control?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\":host.sky-cmp-theme-default{display:inline-block}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *){display:flex}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *) .sky-checkbox-help-inline{display:inline-flex}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *) .sky-checkbox-icon-indeterminate{font-size:14px}.sky-checkbox-hint-text:not(.sky-theme-modern *){margin-top:var(--sky-margin-stacked-xs)}.sky-checkbox-form-margin:not(.sky-theme-modern *){display:block;margin-left:calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host.sky-form-field-stacked.sky-cmp-theme-default{display:block}:host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-default{display:block}:host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-default:not(:last-child){margin-bottom:var(--sky-margin-stacked-sm)}\\n\", \":host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-checkbox-outer-wrapper{--sky-override-checkbox-label-margin-right: var(--sky-margin-inline-xs)}:host-context(.sky-theme-modern) :host.sky-cmp-theme-modern{display:inline-block}:host-context(.sky-theme-modern) :host.sky-cmp-theme-modern .sky-switch:not(:has(~.sky-control-help-container)):not(:has(.sky-switch-control-icon)):has(sky-checkbox-label-text-label){margin-right:var(--sky-override-checkbox-label-margin-right, 0)}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper{display:flex}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-checkbox-help-inline{display:inline-flex}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-checkbox-label{padding-left:var(--sky-space-gap-label-s)}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-switch-control{border-radius:var(--sky-border-radius-s)}:host-context(.sky-theme-modern) .sky-checkbox-hint-text{margin-top:var(--sky-space-gap-stacked_supplemental-xs)}:host-context(.sky-theme-modern) .sky-checkbox-form-margin{display:block;margin-left:var(--sky-space-inset-switch)}:host-context(.sky-theme-modern) :host.sky-form-field-stacked.sky-cmp-theme-modern{display:block}:host-context(.sky-theme-modern) :host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-modern{display:block}:host-context(.sky-theme-modern) :host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-modern:not(:last-child){margin-bottom:var(--sky-space-gap-form-s)}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: i3.SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"component\", type: i5.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"directive\", type: i1.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"component\", type: i7.SkyCheckboxLabelTextLabelComponent, selector: \"sky-checkbox-label-text-label\", inputs: [\"labelHidden\", \"labelText\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-checkbox', hostDirectives: [SkyThemeComponentClassDirective], providers: [\n { provide: NG_VALIDATORS, useExisting: SkyCheckboxComponent, multi: true },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyCheckboxComponent,\n multi: true,\n },\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], standalone: false, template: \"<span class=\\\"sky-checkbox-outer-wrapper\\\">\\n <label\\n class=\\\"sky-checkbox-wrapper sky-switch\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isCheckboxRequired,\\n 'sky-switch-disabled': disabled\\n }\\\"\\n >\\n <input\\n #inputEl\\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]=\\\"isCheckboxRequired\\\"\\n [tabIndex]=\\\"tabindex\\\"\\n [attr.aria-label]=\\\"labelText || label\\\"\\n [attr.aria-labelledby]=\\\"labelText ? undefined : labelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-required]=\\\"isCheckboxRequired ? true : null\\\"\\n [attr.aria-invalid]=\\\"!!control?.errors\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && control?.errors ? errorId : undefined\\n \\\"\\n [ngClass]=\\\"{\\n 'sky-switch-invalid':\\n (control?.touched || control?.dirty) && control?.errors\\n }\\\"\\n (blur)=\\\"onInputBlur()\\\"\\n (change)=\\\"onInteractionEvent($event)\\\"\\n />\\n <span\\n class=\\\"sky-switch-control sky-rounded-corners\\\"\\n [ngClass]=\\\"{\\n 'sky-switch-control-icon': icon || iconName,\\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 @if (icon || iconName) {\\n @if (iconName) {\\n <sky-icon variant=\\\"solid\\\" [iconName]=\\\"iconName\\\" />\\n } @else {\\n <sky-icon [fixedWidth]=\\\"true\\\" [icon]=\\\"icon\\\" />\\n }\\n } @else {\\n @if (indeterminate) {\\n <sky-icon\\n class=\\\"sky-checkbox-icon-indeterminate sky-checkbox-icon-modern-indeterminate\\\"\\n iconName=\\\"square\\\"\\n variant=\\\"solid\\\"\\n iconSize=\\\"s\\\"\\n />\\n } @else if (checked) {\\n <sky-icon\\n class=\\\"sky-checkbox-icon-modern-checked\\\"\\n iconName=\\\"checkmark\\\"\\n iconSize=\\\"s\\\"\\n />\\n }\\n }\\n </span>\\n\\n @if (labelText) {\\n <sky-checkbox-label-text-label\\n [labelText]=\\\"labelText\\\"\\n [labelHidden]=\\\"labelHidden\\\"\\n />\\n } @else {\\n <ng-content select=\\\"sky-checkbox-label\\\" />\\n }\\n </label>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-checkbox-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n</span>\\n<span #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-checkbox-hint-text sky-checkbox-form-margin\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</span>\\n<sky-form-errors\\n [class.sky-checkbox-form-margin]=\\\"labelText && control?.errors\\\"\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"control?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"control?.touched\\\"\\n [dirty]=\\\"control?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\":host.sky-cmp-theme-default{display:inline-block}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *){display:flex}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *) .sky-checkbox-help-inline{display:inline-flex}.sky-checkbox-outer-wrapper:not(.sky-theme-modern *) .sky-checkbox-icon-indeterminate{font-size:14px}.sky-checkbox-hint-text:not(.sky-theme-modern *){margin-top:var(--sky-margin-stacked-xs)}.sky-checkbox-form-margin:not(.sky-theme-modern *){display:block;margin-left:calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host.sky-form-field-stacked.sky-cmp-theme-default{display:block}:host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-default{display:block}:host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-default:not(:last-child){margin-bottom:var(--sky-margin-stacked-sm)}\\n\", \":host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-checkbox-outer-wrapper{--sky-override-checkbox-label-margin-right: var(--sky-margin-inline-xs)}:host-context(.sky-theme-modern) :host.sky-cmp-theme-modern{display:inline-block}:host-context(.sky-theme-modern) :host.sky-cmp-theme-modern .sky-switch:not(:has(~.sky-control-help-container)):not(:has(.sky-switch-control-icon)):has(sky-checkbox-label-text-label){margin-right:var(--sky-override-checkbox-label-margin-right, 0)}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper{display:flex}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-checkbox-help-inline{display:inline-flex}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-checkbox-label{padding-left:var(--sky-space-gap-label-s)}:host-context(.sky-theme-modern) .sky-checkbox-outer-wrapper .sky-switch-control{border-radius:var(--sky-border-radius-s)}:host-context(.sky-theme-modern) .sky-checkbox-hint-text{margin-top:var(--sky-space-gap-stacked_supplemental-xs)}:host-context(.sky-theme-modern) .sky-checkbox-form-margin{display:block;margin-left:var(--sky-space-inset-switch)}:host-context(.sky-theme-modern) :host.sky-form-field-stacked.sky-cmp-theme-modern{display:block}:host-context(.sky-theme-modern) :host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-modern{display:block}:host-context(.sky-theme-modern) :host-context(sky-checkbox-group .sky-checkbox-group-stacked) :host.sky-cmp-theme-modern:not(:last-child){margin-bottom:var(--sky-space-gap-form-s)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { label: [{\n type: Input\n }], labelledBy: [{\n type: Input\n }], id: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabindex: [{\n type: Input\n }], name: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], change: [{\n type: Output\n }], icon: [{\n type: Input\n }], iconName: [{\n type: Input\n }], checkboxType: [{\n type: Input\n }], checked: [{\n type: Input\n }], indeterminate: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], labelText: [{\n type: Input\n }], labelHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hintText: [{\n type: Input\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }, {\n type: HostBinding,\n args: ['class.sky-form-field-stacked']\n }], helpKey: [{\n type: Input\n }], checkedChange: [{\n type: Output\n }], disabledChange: [{\n type: Output\n }], indeterminateChange: [{\n type: Output\n }], inputEl: [{\n type: ViewChild,\n args: ['inputEl', { read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7OztBQUlsRjs7O0dBR0c7QUFvQkgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQjs7Ozs7O09BTUc7SUFDSCxJQUNXLEtBQUssQ0FBQyxLQUF5QjtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ3BELHVCQUF1QixFQUFFLENBQUM7YUFDM0IsQ0FBQyxD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QUFLO2dCQW9CSyxFQUFFO3NCQURaLEtBQUs7Z0JBZUssUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFvQi9CLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxJQUFJO3NCQURkLEtBQUs7Z0JBbUJDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFRQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUUMsTUFBTTtzQkFGWixNQUFNO2dCQVVBLElBQUk7c0JBRFYsS0FBSztnQkFRQyxRQUFRO3NCQURkLEtBQUs7Z0JBYUssWUFBWTtzQkFEdEIsS0FBSztnQkFvQkssT0FBTztzQkFEakIsS0FBSztnQkFxQkssYUFBYTtzQkFEdkIsS0FBSztnQkF3QkMsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEvQixTQUFTO3NCQURmLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVVDLE9BQU87c0JBRmIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsOEJBQThCO2dCQVNwQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0ssYUFBYTtzQkFEdkIsTUFBTTtnQkFTSSxjQUFjO3NCQUR4QixNQUFNO2dCQVVJLG1CQUFtQjtzQkFEN0IsTUFBTTtnQkFNSSxPQUFPO3NCQURqQixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWVuYWJsZWQtdG9rZW4nO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJy4vY2hlY2tib3gtY2hhbmdlJztcblxuLyoqXG4gKiBSZXBsYWNlcyB0aGUgSFRNTCBpbnB1dCBlbGVtZW50IHdpdGggYHR5cGU9XCJjaGVja2JveFwiYC4gV2hlbiB1c2VycyBzZWxlY3QgYSBjaGVja2JveCwgaXRzIHZhbHVlXG4gKiBpcyBkcml2ZW4gdGhyb3VnaCBhbiBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gdGhlIGBza3ktY2hlY2tib3hgIGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2NoZWNrYm94LmRlZmF1bHQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2NoZWNrYm94Lm1vZGVybi5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFNreUNoZWNrYm94Q29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNreUNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY2hlY2tib3ggZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIFlvdSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IGZvciBpY29uXG4gICAqIGNoZWNrYm94ZXMuIElmIHRoZSBjaGVja2JveCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbGFiZWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2xhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlXG4gICAqIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGNoZWNrYm94IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGxhYmVsVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxsZWRCeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsbGVkQnkgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmxhYmVsbGVkQnknLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbGxlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIGNoZWNrYm94LlxuICAgKiBJZiBhIHZhbHVlIGlzIG5vdCBwcm92aWRlZCwgYW4gYXV0b2dlbmVyYXRlZCBJRCBpcyB1c2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNoZWNrYm94LSR7dmFsdWV9LWlucHV0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1jaGVja2JveC0ke3RoaXMuI2RlZmF1bHRJZH0taW5wdXRgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNoZWNrYm94IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jZGlzYWJsZWRDaGFuZ2UubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBmb3IgdGhlIGNoZWNrYm94LiBJZiBub3QgZGVmaW5lZCwgdGhlIGluZGV4IGlzIHNldCB0byB0aGUgcG9zaXRpb24gb2YgdGhlXG4gICAqIGNoZWNrYm94IG9uIGxvYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IDA7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgY2hlY2tib3guXG4gICAqIElmIGEgdmFsdWUgaXMgbm90IHByb3ZpZGVkLCBhbiBhdXRvZ2VuZXJhdGVkIElEIGlzIHVzZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy4jZGVmYXVsdElkKSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IGBza3ktY2hlY2tib3gtJHt0aGlzLiNkZWZhdWx0SWR9YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX25hbWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBjaGVja2JveCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGxhYmVsVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBwdWJsaWMgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lDaGVja2JveENoYW5nZT4oKTtcblxuICAvKipcbiAgICogVGhlIGljb24gdG8gZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgY2hlY2tib3guIFRvIGdyb3VwIGljb24gY2hlY2tib3hlc1xuICAgKiBsaWtlIGluIHRoZSBkZW1vLCBwbGFjZSB0aGUgY2hlY2tib3hlcyB3aXRoaW4gYSBgc2t5LWNoZWNrYm94LWdyb3VwYC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBpY29uTmFtZWAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTVkcgaWNvbiB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBjaGVja2JveC4gVG8gZ3JvdXAgaWNvbiBjaGVja2JveGVzXG4gICAqIGxpa2UgaW4gdGhlIGRlbW8sIHBsYWNlIHRoZSBjaGVja2JveGVzIHdpdGhpbiBhIGBza3ktY2hlY2tib3gtZ3JvdXBgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHR5cGUgYWZ0ZXIgdXNlcnMgc2VsZWN0IGEgY2hlY2tib3ggd2hlcmUgdGhlXG4gICAqIGBpY29uYCBwcm9wZXJ0eSBkaXNwbGF5cyBhbiBpY29uIGluIHBsYWNlIG9mIHRoZSBjaGVja2JveC4gVGhlIHZhbGlkIG9wdGlvbnMgY29ycmVzcG9uZCB0b1xuICAgKiBbdGhlIGxhYmVsIGNvbXBvbmVudCdzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvbGFiZWwpXG4gICAqIGxhYmVsIHR5cGVzLiBgXCJpbmZvXCJgIGNyZWF0ZXMgYSBibHVlIGJhY2tncm91bmQsIGBcInN1Y2Nlc3NcImAgY3JlYXRlcyBhIGdyZWVuXG4gICAqIGJhY2tncm91bmQsIGBcIndhcm5pbmdcImAgY3JlYXRlcyBhbiBvcmFuZ2UgYmFja2dyb3VuZCwgYW5kIGBcImRhbmdlclwiYCBjcmVhdGVzIGEgcmVkIGJhY2tncm91bmQuXG4gICAqIEBkZWZhdWx0IFwiaW5mb1wiXG4gICAqIEBkZXByZWNhdGVkIFRoZSBgY2hlY2tib3hUeXBlYCBpbnB1dCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2JveFR5cGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUNoZWNrYm94Q29tcG9uZW50LmNoZWNrYm94VHlwZScsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNfY2hlY2tib3hUeXBlID0gdmFsdWUgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogJ2luZm8nO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGVja2JveFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrYm94VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBzZWxlY3RlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAhIXZhbHVlO1xuICAgIGlmIChjaGVja2VkICE9PSB0aGlzLiNfY2hlY2tlZCkge1xuICAgICAgdGhpcy4jX2NoZWNrZWQgPSBjaGVja2VkO1xuICAgICAgdGhpcy4jY2hlY2tlZENoYW5nZS5uZXh0KGNoZWNrZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgaW4gdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUuIFRoaXMgaGFzIG5vIHZpc3VhbCBlZmZlY3QgZm9yIGljb24gY2hlY2tib3hlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pbmRldGVybWluYXRlKSB7XG4gICAgICB0aGlzLiNfaW5kZXRlcm1pbmF0ZSA9ICEhdmFsdWU7XG4gICAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlLm5leHQodGhpcy4jX2luZGV0ZXJtaW5hdGUpO1xuICAgICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy4jX2luZGV0ZXJtaW5hdGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2luZGV0ZXJtaW5hdGU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gdmFsaWRhdGlvbi5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnQgc28gdGhhdCBmb3JtcyBkaXNwbGF5IGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGNoZWNrYm94J3MgbGFiZWwuIFVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIGBza3ktY2hlY2tib3gtbGFiZWxgIHdoZW4gdGhlIGxhYmVsIGlzIHRleHQtb25seS5cbiAgICogU3BlY2lmeWluZyBgbGFiZWxUZXh0YCBhbHNvIGVuYWJsZXMgYXV0b21hdGljIGVycm9yIG1lc3NhZ2UgaGFuZGxpbmcgZm9yIGNoZWNrYm94LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgbGFiZWxUZXh0YC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbGFiZWxIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGNoZWNrYm94LiBJZiB0aGUgY2hlY2tib3ggaXMgd2l0aGluIGEgY2hlY2tib3ggZ3JvdXAsXG4gICAqIHNldCBgc3RhY2tlZGAgb24gdGhlIGNoZWNrYm94IGdyb3VwIGNvbXBvbmVudCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWZvcm0tZmllbGQtc3RhY2tlZCcpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSBjaGVja2JveCBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IG9yIGRlc2VsZWN0IHRoZSBjaGVja2JveC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGNoZWNrZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI2NoZWNrZWRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiNkaXNhYmxlZENoYW5nZU9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIGNoYW5nZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZU9icztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIHNldCBpbnB1dEVsKGVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2lucHV0RWwgPSBlbDtcbiAgICBpZiAoZWwgJiYgdGhpcy5pbmRldGVybWluYXRlKSB7XG4gICAgICBlbC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB0aGlzLmluZGV0ZXJtaW5hdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbnB1dEVsKCk6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaW5wdXRFbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNDaGVja2JveFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucmVxdWlyZWQgfHxcbiAgICAgIHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKSB8fFxuICAgICAgdGhpcy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlucHV0SWQgPSAnJztcblxuICAjY2hlY2tlZENoYW5nZTogU3ViamVjdDxib29sZWFuPjtcbiAgI2NoZWNrZWRDaGFuZ2VPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICNkaXNhYmxlZENoYW5nZTogU3ViamVjdDxib29sZWFuPjtcbiAgI2Rpc2FibGVkQ2hhbmdlT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAjaW5kZXRlcm1pbmF0ZUNoYW5nZTogU3ViamVjdDxib29sZWFuPjtcbiAgI2luZGV0ZXJtaW5hdGVDaGFuZ2VPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgI19jaGVja2VkID0gZmFsc2U7XG4gICNfY2hlY2tib3hUeXBlID0gJ2luZm8nO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAjX2lucHV0RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gICNfbmFtZSA9ICcnO1xuICAjX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfbGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICAjZGVmYXVsdElkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICB0aGlzLiNpbmRldGVybWluYXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2VPYnMgPSB0aGlzLiNjaGVja2VkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlT2JzID0gdGhpcy4jZGlzYWJsZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZU9icyA9IHRoaXMuI2luZGV0ZXJtaW5hdGVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5pZCA9IHRoaXMuI2RlZmF1bHRJZDtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLiNkZWZhdWx0SWQ7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2NoZWNrZWRDaGFuZ2UubmV4dCh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMuI2Rpc2FibGVkQ2hhbmdlLm5leHQodGhpcy5kaXNhYmxlZCk7XG4gICAgdGhpcy4jaW5kZXRlcm1pbmF0ZUNoYW5nZS5uZXh0KHRoaXMuaW5kZXRlcm1pbmF0ZSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sPGJvb2xlYW4+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuY29udHJvbCB8fD0gY29udHJvbDtcblxuICAgIC8vIEluIHRlbXBsYXRlLWRyaXZlbiBmb3JtcywgQW5ndWxhcidzIG5hdGl2ZSAncmVxdWlyZWQnIGF0dHJpYnV0ZSBkaXJlY3RpdmUgb25seSB3b3Jrc1xuICAgIC8vIG9uIGBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1gIHNlbGVjdG9ycywgc28gd2UgbmVlZCB0byB3cml0ZSB0aGUgdmFsaWRhdGlvbiBsb2dpYyBvdXJzZWx2ZXMuXG4gICAgLy8gQWxzbywgd2UncmUgdHJlYXRpbmcgVmFsaWRhdG9ycy5yZXF1aXJlZCB0aGUgc2FtZSBhcyBWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSBpbnRlcm5hbGx5LCBzb1xuICAgIC8vIHdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhhdCBkZWNpc2lvbiBpbiBvdXIgY3VzdG9tIHZhbGlkYXRvci5cbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrYm94UmVxdWlyZWQgJiYgY29udHJvbC52YWx1ZSAhPT0gdHJ1ZVxuICAgICAgPyB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2hlY2tib3ggaW5wdXQgZWxlbWVudC5cbiAgICogVG9nZ2xlcyBjaGVja2VkIHN0YXRlIGlmIGVsZW1lbnQgaXMgbm90IGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIG9uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gT3RoZXJ3aXNlIHRoZSBjaGFuZ2UgZXZlbnQsIGZyb20gdGhlIGlucHV0IGVsZW1lbnQsIHdpbGwgYnViYmxlIHVwIGFuZFxuICAgIC8vIGVtaXQgaXRzIGV2ZW50IG9iamVjdCB0byB0aGUgYGNoYW5nZWAgb3V0cHV0LlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuI3RvZ2dsZSgpO1xuICAgICAgdGhpcy4jY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLmNoZWNrZWQpO1xuICAgICAgdGhpcy4jZW1pdENoYW5nZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gdGhlIGNoZWNrYm94IGlzIGJsdXJyZWQuIE5lZWRlZCB0byBwcm9wZXJseSBpbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3IuICovXG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgcHVibGljIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAodmFsdWUpID0+IHt9O1xuXG4gICNlbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7IGNoZWNrZWQ6IHRoaXMuY2hlY2tlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBgY2hlY2tlZGAgdmFsdWUgYmV0d2VlbiB0cnVlIGFuZCBmYWxzZVxuICAgKi9cbiAgI3RvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInNreS1jaGVja2JveC1vdXRlci13cmFwcGVyXCI+XG4gIDxsYWJlbFxuICAgIGNsYXNzPVwic2t5LWNoZWNrYm94LXdyYXBwZXIgc2t5LXN3aXRjaFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogaXNDaGVja2JveFJlcXVpcmVkLFxuICAgICAgJ3NreS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRFbFxuICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaW5wdXQgc2t5LXN3aXRjaC1pbnB1dFwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwiaXNDaGVja2JveFJlcXVpcmVkXCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsVGV4dCB8fCBsYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxUZXh0ID8gdW5kZWZpbmVkIDogbGFiZWxsZWRCeVwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImlzQ2hlY2tib3hSZXF1aXJlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWNvbnRyb2w/LmVycm9yc1wiXG4gICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgbGFiZWxUZXh0ICYmIGNvbnRyb2w/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgIFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc3dpdGNoLWludmFsaWQnOlxuICAgICAgICAgIChjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LmRpcnR5KSAmJiBjb250cm9sPy5lcnJvcnNcbiAgICAgIH1cIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgICAoY2hhbmdlKT1cIm9uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInNreS1zd2l0Y2gtY29udHJvbCBza3ktcm91bmRlZC1jb3JuZXJzXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pY29uJzogaWNvbiB8fCBpY29uTmFtZSxcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pbmZvJzogY2hlY2tib3hUeXBlID09PSAnaW5mbycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtc3VjY2Vzcyc6IGNoZWNrYm94VHlwZSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLXdhcm5pbmcnOiBjaGVja2JveFR5cGUgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1kYW5nZXInOiBjaGVja2JveFR5cGUgPT09ICdkYW5nZXInXG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAaWYgKGljb24gfHwgaWNvbk5hbWUpIHtcbiAgICAgICAgQGlmIChpY29uTmFtZSkge1xuICAgICAgICAgIDxza3ktaWNvbiB2YXJpYW50PVwic29saWRcIiBbaWNvbk5hbWVdPVwiaWNvbk5hbWVcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c2t5LWljb24gW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiIFtpY29uXT1cImljb25cIiAvPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmIChpbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1jaGVja2JveC1pY29uLWluZGV0ZXJtaW5hdGUgc2t5LWNoZWNrYm94LWljb24tbW9kZXJuLWluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgaWNvbk5hbWU9XCJzcXVhcmVcIlxuICAgICAgICAgICAgdmFyaWFudD1cInNvbGlkXCJcbiAgICAgICAgICAgIGljb25TaXplPVwic1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1tb2Rlcm4tY2hlY2tlZFwiXG4gICAgICAgICAgICBpY29uTmFtZT1cImNoZWNrbWFya1wiXG4gICAgICAgICAgICBpY29uU2l6ZT1cInNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3NwYW4+XG5cbiAgICBAaWYgKGxhYmVsVGV4dCkge1xuICAgICAgPHNreS1jaGVja2JveC1sYWJlbC10ZXh0LWxhYmVsXG4gICAgICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICAgICAgW2xhYmVsSGlkZGVuXT1cImxhYmVsSGlkZGVuXCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktY2hlY2tib3gtbGFiZWxcIiAvPlxuICAgIH1cbiAgPC9sYWJlbD5cbiAgQGlmICgoaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXkpICYmIGxhYmVsVGV4dCkge1xuICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgIDxza3ktaGVscC1pbmxpbmVcbiAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaGVscC1pbmxpbmVcIlxuICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgIC8+XG4gICAgPC9zcGFuPlxuICB9XG48L3NwYW4+XG48c3BhbiAjaGludFRleHRFbD1cInNreUlkXCIgc2t5SWQ+XG4gIEBpZiAoaGludFRleHQpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1jaGVja2JveC1oaW50LXRleHQgc2t5LWNoZWNrYm94LWZvcm0tbWFyZ2luXCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1mb250LWhpbnQtdGV4dC1zJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IH19XG4gICAgPC9kaXY+XG4gIH1cbjwvc3Bhbj5cbjxza3ktZm9ybS1lcnJvcnNcbiAgW2NsYXNzLnNreS1jaGVja2JveC1mb3JtLW1hcmdpbl09XCJsYWJlbFRleHQgJiYgY29udHJvbD8uZXJyb3JzXCJcbiAgW2lkXT1cImVycm9ySWRcIlxuICBbZXJyb3JzXT1cImNvbnRyb2w/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgW3RvdWNoZWRdPVwiY29udHJvbD8udG91Y2hlZFwiXG4gIFtkaXJ0eV09XCJjb250cm9sPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport { SkyCheckboxGroupComponent } from './checkbox-group.component';\nimport { SkyCheckboxLabelTextLabelComponent } from './checkbox-label-text-label.component';\nimport { SkyCheckboxLabelComponent } from './checkbox-label.component';\nimport { SkyCheckboxComponent } from './checkbox.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyCheckboxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxModule, declarations: [SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxLabelTextLabelComponent], imports: [CommonModule,\n FormsModule,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyTrimModule,\n SkyThemeModule], exports: [SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxModule, imports: [CommonModule,\n FormsModule,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyTrimModule,\n SkyThemeModule, SkyFormErrorModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxLabelTextLabelComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyTrimModule,\n SkyThemeModule,\n ],\n exports: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxGroupComponent,\n SkyFormErrorModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUE0QjVELE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXhCMUIsb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QixrQ0FBa0MsYUFHbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCx5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixXQUFXO1lBQ1gsYUFBYTtZQUNiLGNBQWMsYUFHZCxvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLHlCQUF5QjtZQUN6QixrQkFBa0I7K0dBR1QsaUJBQWlCLFlBbkIxQixZQUFZO1lBQ1osV0FBVztZQUNYLHlCQUF5QjtZQUN6QixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsY0FBYyxFQU1kLGtCQUFrQjs7MkZBR1QsaUJBQWlCO2tCQTFCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLGtDQUFrQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCx5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5VHJpbU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9yLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hMYWJlbFRleHRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gtbGFiZWwtdGV4dC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lDaGVja2JveENvbXBvbmVudCxcbiAgICBTa3lDaGVja2JveExhYmVsQ29tcG9uZW50LFxuICAgIFNreUNoZWNrYm94TGFiZWxUZXh0TGFiZWxDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCxcbiAgICBTa3lGb3JtRXJyb3JNb2R1bGUsXG4gICAgU2t5Rm9ybUVycm9yc01vZHVsZSxcbiAgICBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5VHJpbU1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUNoZWNrYm94Q29tcG9uZW50LFxuICAgIFNreUNoZWNrYm94TGFiZWxDb21wb25lbnQsXG4gICAgU2t5Q2hlY2tib3hHcm91cENvbXBvbmVudCxcbiAgICBTa3lGb3JtRXJyb3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoZWNrYm94TW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Input, booleanAttribute, numberAttribute, } from '@angular/core';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeModule } from '@skyux/theme';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@skyux/help-inline\";\nimport * as i3 from \"@skyux/core\";\nimport * as i4 from \"@skyux/theme\";\nfunction numberAttribute3(value) {\n return numberAttribute(value, 3);\n}\n/**\n * Organizes form fields into a group.\n */\nexport class SkyFieldGroupComponent {\n constructor() {\n /**\n * Indicates whether to hide the `headingText`.\n */\n this.headingHidden = false;\n /**\n * Whether the field group is stacked on another field group. When specified, the appropriate\n * vertical spacing is automatically added to the field group.\n */\n this.stacked = false;\n /**\n * The semantic heading level in the document structure.\n * @default 3\n */\n this.headingLevel = 3;\n this.headingClass = 'sky-font-heading-3';\n }\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 3\n */\n set headingStyle(value) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFieldGroupComponent, isStandalone: true, selector: \"sky-field-group\", inputs: { headingText: \"headingText\", hintText: \"hintText\", headingHidden: [\"headingHidden\", \"headingHidden\", booleanAttribute], stacked: [\"stacked\", \"stacked\", booleanAttribute], headingLevel: [\"headingLevel\", \"headingLevel\", numberAttribute3], headingStyle: [\"headingStyle\", \"headingStyle\", numberAttribute3], helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", helpKey: \"helpKey\" }, host: { properties: { \"class.sky-field-group-stacked\": \"this.stacked\" } }, ngImport: i0, template: \"<fieldset\\n class=\\\"sky-field-group\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n>\\n <legend\\n class=\\\"sky-field-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span class=\\\"sky-field-group-heading\\\">\\n @switch (headingLevel) {\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @default {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n }\\n </span>\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-field-group-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n <div #hintTextEl=\\\"skyId\\\" skyId class=\\\"sky-field-group-hint-text-wrapper\\\">\\n @if (hintText) {\\n <div\\n class=\\\"sky-field-group-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-field-group-content\\\">\\n <ng-content />\\n </div>\\n</fieldset>\\n\", styles: [\".sky-field-group:not(.sky-theme-modern *){--sky-override-field-group-align-items: normal;--sky-override-field-group-content-space: 8px;--sky-override-field-group-content-with-hint-text-space: 10px;--sky-override-field-group-hint-text-space: 5px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-field-group{--sky-override-field-group-align-items: normal}:host{display:block}legend{display:flex;align-items:var(--sky-override-field-group-align-items, baseline)}legend h3,legend h4{margin:0}.sky-field-group-hint-text{margin-top:var(--sky-override-field-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-field-group-content{margin-top:var(--sky-override-field-group-content-space, var(--sky-space-gap-form-s))}.sky-field-group-hint-text-wrapper:has(.sky-field-group-hint-text)+.sky-field-group-content{margin-top:var(--sky-override-field-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i2.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i3.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i4.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-field-group', imports: [CommonModule, SkyHelpInlineModule, SkyIdModule, SkyThemeModule], template: \"<fieldset\\n class=\\\"sky-field-group\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n>\\n <legend\\n class=\\\"sky-field-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span class=\\\"sky-field-group-heading\\\">\\n @switch (headingLevel) {\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @default {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n }\\n </span>\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-field-group-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n <div #hintTextEl=\\\"skyId\\\" skyId class=\\\"sky-field-group-hint-text-wrapper\\\">\\n @if (hintText) {\\n <div\\n class=\\\"sky-field-group-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-field-group-content\\\">\\n <ng-content />\\n </div>\\n</fieldset>\\n\", styles: [\".sky-field-group:not(.sky-theme-modern *){--sky-override-field-group-align-items: normal;--sky-override-field-group-content-space: 8px;--sky-override-field-group-content-with-hint-text-space: 10px;--sky-override-field-group-hint-text-space: 5px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-field-group{--sky-override-field-group-align-items: normal}:host{display:block}legend{display:flex;align-items:var(--sky-override-field-group-align-items, baseline)}legend h3,legend h4{margin:0}.sky-field-group-hint-text{margin-top:var(--sky-override-field-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-field-group-content{margin-top:var(--sky-override-field-group-content-space, var(--sky-space-gap-form-s))}.sky-field-group-hint-text-wrapper:has(.sky-field-group-hint-text)+.sky-field-group-content{margin-top:var(--sky-override-field-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"] }]\n }], propDecorators: { headingText: [{\n type: Input,\n args: [{ required: true }]\n }], hintText: [{\n type: Input\n }], headingHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }, {\n type: HostBinding,\n args: ['class.sky-field-group-stacked']\n }], headingLevel: [{\n type: Input,\n args: [{ transform: numberAttribute3 }]\n }], headingStyle: [{\n type: Input,\n args: [{ transform: numberAttribute3 }]\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], helpKey: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFLOUMsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBb0JFOztXQUVHO1FBRUksa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFN0I7OztXQUdHO1FBR0ksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV2Qjs7O1dBR0c7UUFFSSxpQkFBWSxHQUE4QixDQUFDLENBQUM7UUFrQ3pDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7S0FDL0M7SUFqQ0M7OztPQUdHO0lBQ0gsSUFDVyxZQUFZLENBQUMsS0FBZ0M7UUFDdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxvQkFBb0IsS0FBSyxFQUFFLENBQUM7SUFDbEQsQ0FBQzs4R0ExQ1Usc0JBQXNCO2tHQUF0QixzQkFBc0IsaUtBaUJiLGdCQUFnQixtQ0FPaEIsZ0JBQWdCLGtEQXJDN0IsZ0JBQWdCLGtEQUFoQixnQkFBZ0IsNE1DaEJ6QixnMUNBaURBLHMrQkR0QlksWUFBWSw0SEFBRSxtQkFBbUIsd1BBQUUsV0FBVyw0R0FBRSxjQUFjOzsyRkFFN0Qsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGlCQUFpQixXQUdsQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDOzhCQU9sRSxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFRbEIsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUy9CLE9BQU87c0JBRmIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFyQyxZQUFZO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEzQixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVcvQixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBUUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVNDLE9BQU87c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lGaWVsZEdyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi9maWVsZC1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreUZpZWxkR3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL2ZpZWxkLWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG5mdW5jdGlvbiBudW1iZXJBdHRyaWJ1dGUzKHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHtcbiAgcmV0dXJuIG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMyk7XG59XG5cbi8qKlxuICogT3JnYW5pemVzIGZvcm0gZmllbGRzIGludG8gYSBncm91cC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWZpZWxkLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2t5SGVscElubGluZU1vZHVsZSwgU2t5SWRNb2R1bGUsIFNreVRoZW1lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmllbGRHcm91cENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBmaWVsZCBncm91cCdzIGhlYWRpbmcuXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgaGVhZGluZ1RleHQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgaGVhZGluZ1RleHRgLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGdyb3VwIGlzIHN0YWNrZWQgb24gYW5vdGhlciBmaWVsZCBncm91cC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGZpZWxkIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LWZpZWxkLWdyb3VwLXN0YWNrZWQnKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgaGVhZGluZyBsZXZlbCBpbiB0aGUgZG9jdW1lbnQgc3RydWN0dXJlLlxuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZTMgfSlcbiAgcHVibGljIGhlYWRpbmdMZXZlbDogU2t5RmllbGRHcm91cEhlYWRpbmdMZXZlbCA9IDM7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlMyB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdTdHlsZSh2YWx1ZTogU2t5RmllbGRHcm91cEhlYWRpbmdTdHlsZSkge1xuICAgIHRoaXMuaGVhZGluZ0NsYXNzID0gYHNreS1mb250LWhlYWRpbmctJHt2YWx1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGhlYWRpbmdUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBmaWVsZCBncm91cCBoZWFkaW5nLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVhZGluZ1RleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgaGVhZGluZ1RleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgZmllbGQgZ3JvdXAgaGVhZGluZy4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVhZGluZ1RleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgaGVhZGluZ0NsYXNzID0gJ3NreS1mb250LWhlYWRpbmctMyc7XG59XG4iLCI8ZmllbGRzZXRcbiAgY2xhc3M9XCJza3ktZmllbGQtZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4+XG4gIDxsZWdlbmRcbiAgICBjbGFzcz1cInNreS1maWVsZC1ncm91cC1sZWdlbmRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlblxuICAgIH1cIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktZmllbGQtZ3JvdXAtaGVhZGluZ1wiPlxuICAgICAgQHN3aXRjaCAoaGVhZGluZ0xldmVsKSB7XG4gICAgICAgIEBjYXNlICg0KSB7XG4gICAgICAgICAgPGg0IFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj57eyBoZWFkaW5nVGV4dCB9fTwvaDQ+XG4gICAgICAgIH1cbiAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgIDxoMyBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+e3sgaGVhZGluZ1RleHQgfX08L2gzPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICAgIEBpZiAoaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICAgIGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWhlbHAtaW5saW5lXCJcbiAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAvPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgPC9sZWdlbmQ+XG4gIDxkaXYgI2hpbnRUZXh0RWw9XCJza3lJZFwiIHNreUlkIGNsYXNzPVwic2t5LWZpZWxkLWdyb3VwLWhpbnQtdGV4dC13cmFwcGVyXCI+XG4gICAgQGlmIChoaW50VGV4dCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1maWVsZC1ncm91cC1oaW50LXRleHRcIlxuICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAnc2t5LWZvbnQtaGludC10ZXh0LXMnOiAnbW9kZXJuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAge3sgaGludFRleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJza3ktZmllbGQtZ3JvdXAtY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxuPC9maWVsZHNldD5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyFieldGroupComponent } from './field-group.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyFieldGroupModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupModule, imports: [SkyFieldGroupComponent], exports: [SkyFieldGroupComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupModule, imports: [SkyFieldGroupComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFieldGroupModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyFieldGroupComponent],\n exports: [SkyFieldGroupComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWVsZC1ncm91cC9maWVsZC1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNakUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFIcEIsc0JBQXNCLGFBQ3RCLHNCQUFzQjsrR0FFckIsbUJBQW1CLFlBSHBCLHNCQUFzQjs7MkZBR3JCLG1CQUFtQjtrQkFKL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RmllbGRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreUZpZWxkR3JvdXBDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5RmllbGRHcm91cENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpZWxkR3JvdXBNb2R1bGUge31cbiJdfQ==","import { ChangeDetectionStrategy, Component, ViewChild, inject, } from '@angular/core';\nimport { SkyIdModule, SkyLogService, SkyTrimModule } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Displays a label above the file attachment element. To display a help button\n * beside the label, include a help button element, such as `sky-help-inline`,\n * in the `sky-file-attachment-label` element and a `sky-control-help` CSS class\n * on that help button element.\n * @deprecated Use the `labelText` input on the single file attachment component\n * instead.\n */\nexport class SkyFileAttachmentLabelComponent {\n constructor() {\n inject(SkyLogService).deprecated('SkyFileAttachmentLabelComponent', {\n deprecationMajorVersion: 9,\n replacementRecommendation: 'To add a label to single file attachment, use the `labelText` input ' +\n 'on the `sky-file-attachment` component instead.',\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyFileAttachmentLabelComponent, isStandalone: true, selector: \"sky-file-attachment-label\", viewQueries: [{ propertyName: \"labelContentId\", first: true, predicate: [\"labelContentId\"], descendants: true }], ngImport: i0, template: \"<span class=\\\"sky-control-label\\\"\\n ><span #labelContentId=\\\"skyId\\\" skyId skyTrim><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\" /></span\\n></span>\\n\", styles: [\":host-context(.sky-theme-modern) .sky-control-label{color:#686c73;font-size:13px}.sky-theme-modern .sky-control-label{color:#686c73;font-size:13px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i1.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyTrimModule }, { kind: \"directive\", type: i1.λ4, selector: \"[skyTrim]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentLabelComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyIdModule, SkyTrimModule], selector: 'sky-file-attachment-label', template: \"<span class=\\\"sky-control-label\\\"\\n ><span #labelContentId=\\\"skyId\\\" skyId skyTrim><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\" /></span\\n></span>\\n\", styles: [\":host-context(.sky-theme-modern) .sky-control-label{color:#686c73;font-size:13px}.sky-theme-modern .sky-control-label{color:#686c73;font-size:13px}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { labelContentId: [{\n type: ViewChild,\n args: ['labelContentId']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC1sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBRXhFOzs7Ozs7O0dBT0c7QUFRSCxNQUFNLE9BQU8sK0JBQStCO0lBSTFDO1FBQ0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsRUFBRTtZQUNsRSx1QkFBdUIsRUFBRSxDQUFDO1lBQzFCLHlCQUF5QixFQUN2QixzRUFBc0U7Z0JBQ3RFLGlEQUFpRDtTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQVhVLCtCQUErQjtrR0FBL0IsK0JBQStCLHVNQ3ZCNUMsNk5BS0EsOE1EYVksV0FBVyw0R0FBRSxhQUFhOzsyRkFLekIsK0JBQStCO2tCQVAzQyxTQUFTO3NDQUNTLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLFlBQzNCLDJCQUEyQjt3REFNOUIsY0FBYztzQkFEcEIsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5TG9nU2VydmljZSwgU2t5VHJpbU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBEaXNwbGF5cyBhIGxhYmVsIGFib3ZlIHRoZSBmaWxlIGF0dGFjaG1lbnQgZWxlbWVudC4gVG8gZGlzcGxheSBhIGhlbHAgYnV0dG9uXG4gKiBiZXNpZGUgdGhlIGxhYmVsLCBpbmNsdWRlIGEgaGVscCBidXR0b24gZWxlbWVudCwgc3VjaCBhcyBgc2t5LWhlbHAtaW5saW5lYCxcbiAqIGluIHRoZSBgc2t5LWZpbGUtYXR0YWNobWVudC1sYWJlbGAgZWxlbWVudCBhbmQgYSBgc2t5LWNvbnRyb2wtaGVscGAgQ1NTIGNsYXNzXG4gKiBvbiB0aGF0IGhlbHAgYnV0dG9uIGVsZW1lbnQuXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGBsYWJlbFRleHRgIGlucHV0IG9uIHRoZSBzaW5nbGUgZmlsZSBhdHRhY2htZW50IGNvbXBvbmVudFxuICogaW5zdGVhZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5SWRNb2R1bGUsIFNreVRyaW1Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ3NreS1maWxlLWF0dGFjaG1lbnQtbGFiZWwnLFxuICBzdHlsZVVybDogJ2ZpbGUtYXR0YWNobWVudC1sYWJlbC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnbGFiZWxDb250ZW50SWQnKVxuICBwdWJsaWMgbGFiZWxDb250ZW50SWQ6IHsgaWQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGluamVjdChTa3lMb2dTZXJ2aWNlKS5kZXByZWNhdGVkKCdTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50Jywge1xuICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAnVG8gYWRkIGEgbGFiZWwgdG8gc2luZ2xlIGZpbGUgYXR0YWNobWVudCwgdXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCAnICtcbiAgICAgICAgJ29uIHRoZSBgc2t5LWZpbGUtYXR0YWNobWVudGAgY29tcG9uZW50IGluc3RlYWQuJyxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gID48c3BhbiAjbGFiZWxDb250ZW50SWQ9XCJza3lJZFwiIHNreUlkIHNreVRyaW0+PG5nLWNvbnRlbnQgLz48L3NwYW5cbiAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgID48bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+PC9zcGFuXG4+PC9zcGFuPlxuIl19","import { formatNumber } from '@angular/common';\nimport { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyFileSizePipe {\n #resourcesService;\n #defaultLocale = 'en-US';\n constructor(resourcesService) {\n this.#resourcesService = resourcesService;\n }\n transform(input) {\n let decimalPlaces = 0, dividend = 1, template;\n if (input === null || input === undefined) {\n return '';\n }\n if (typeof input === 'string') {\n input = Number.parseInt(input);\n }\n if (Math.abs(input) === 1) {\n template = 'skyux_file_attachment_file_size_b_singular';\n }\n else if (input < 1024) {\n template = 'skyux_file_attachment_file_size_b_plural';\n }\n else if (input < Math.pow(1024, 2)) {\n template = 'skyux_file_attachment_file_size_kb';\n dividend = 1024;\n }\n else if (input < Math.pow(1024, 3)) {\n template = 'skyux_file_attachment_file_size_mb';\n dividend = Math.pow(1024, 2);\n decimalPlaces = 1;\n }\n else {\n template = 'skyux_file_attachment_file_size_gb';\n dividend = Math.pow(1024, 3);\n decimalPlaces = 1;\n }\n const roundedSize = Math.floor(input / (dividend / Math.pow(10, decimalPlaces))) /\n Math.pow(10, decimalPlaces);\n const formattedSize = formatNumber(roundedSize, this.#defaultLocale, '.0-3');\n return this.#getString(template, formattedSize);\n }\n #getString(key, ...args) {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.#resourcesService.getStringForLocale({ locale: this.#defaultLocale }, key, ...args);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileSizePipe, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileSizePipe, isStandalone: true, name: \"skyFileSize\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileSizePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'skyFileSize',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i1.SkyLibResourcesService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9zaGFyZWQvZmlsZS1zaXplLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFHcEQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sZUFBZTtJQUNqQixpQkFBaUIsQ0FBeUI7SUFDMUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUVsQyxZQUFZLGdCQUF3QztRQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUE4QjtRQUM3QyxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQ25CLFFBQVEsR0FBRyxDQUFDLEVBQ1osUUFBZ0IsQ0FBQztRQUVuQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixRQUFRLEdBQUcsNENBQTRDLENBQUM7UUFDMUQsQ0FBQzthQUFNLElBQUksS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3hCLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxRQUFRLEdBQUcsb0NBQW9DLENBQUM7WUFDaEQsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO2FBQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxRQUFRLEdBQUcsb0NBQW9DLENBQUM7WUFDaEQsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLEdBQUcsb0NBQW9DLENBQUM7WUFDaEQsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUIsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUNoQyxXQUFXLEVBQ1gsSUFBSSxDQUFDLGNBQWMsRUFDbkIsTUFBTSxDQUNQLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBZTtRQUN4Qyw2RUFBNkU7UUFDN0UsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQzlDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFDL0IsR0FBRyxFQUNILEdBQUcsSUFBSSxDQUNSLENBQUM7SUFDSixDQUFDOzhHQTFEVSxlQUFlOzRHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdE51bWJlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lGaWxlU2l6ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpbGVTaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICByZWFkb25seSAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcbiAgcmVhZG9ubHkgI2RlZmF1bHRMb2NhbGUgPSAnZW4tVVMnO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UpIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0oaW5wdXQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICBsZXQgZGVjaW1hbFBsYWNlcyA9IDAsXG4gICAgICBkaXZpZGVuZCA9IDEsXG4gICAgICB0ZW1wbGF0ZTogc3RyaW5nO1xuXG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IGlucHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgaW5wdXQgPSBOdW1iZXIucGFyc2VJbnQoaW5wdXQpO1xuICAgIH1cblxuICAgIGlmIChNYXRoLmFicyhpbnB1dCkgPT09IDEpIHtcbiAgICAgIHRlbXBsYXRlID0gJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3NpemVfYl9zaW5ndWxhcic7XG4gICAgfSBlbHNlIGlmIChpbnB1dCA8IDEwMjQpIHtcbiAgICAgIHRlbXBsYXRlID0gJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3NpemVfYl9wbHVyYWwnO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQgPCBNYXRoLnBvdygxMDI0LCAyKSkge1xuICAgICAgdGVtcGxhdGUgPSAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9rYic7XG4gICAgICBkaXZpZGVuZCA9IDEwMjQ7XG4gICAgfSBlbHNlIGlmIChpbnB1dCA8IE1hdGgucG93KDEwMjQsIDMpKSB7XG4gICAgICB0ZW1wbGF0ZSA9ICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9zaXplX21iJztcbiAgICAgIGRpdmlkZW5kID0gTWF0aC5wb3coMTAyNCwgMik7XG4gICAgICBkZWNpbWFsUGxhY2VzID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGVtcGxhdGUgPSAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfc2l6ZV9nYic7XG4gICAgICBkaXZpZGVuZCA9IE1hdGgucG93KDEwMjQsIDMpO1xuICAgICAgZGVjaW1hbFBsYWNlcyA9IDE7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91bmRlZFNpemUgPVxuICAgICAgTWF0aC5mbG9vcihpbnB1dCAvIChkaXZpZGVuZCAvIE1hdGgucG93KDEwLCBkZWNpbWFsUGxhY2VzKSkpIC9cbiAgICAgIE1hdGgucG93KDEwLCBkZWNpbWFsUGxhY2VzKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZFNpemUgPSBmb3JtYXROdW1iZXIoXG4gICAgICByb3VuZGVkU2l6ZSxcbiAgICAgIHRoaXMuI2RlZmF1bHRMb2NhbGUsXG4gICAgICAnLjAtMycsXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLiNnZXRTdHJpbmcodGVtcGxhdGUsIGZvcm1hdHRlZFNpemUpO1xuICB9XG5cbiAgI2dldFN0cmluZyhrZXk6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZ0ZvckxvY2FsZShcbiAgICAgIHsgbG9jYWxlOiB0aGlzLiNkZWZhdWx0TG9jYWxlIH0sXG4gICAgICBrZXksXG4gICAgICAuLi5hcmdzLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Joins an array of IDs with a single space.\n * @internal\n */\nexport class SkyFileAttachmentJoinIdsPipe {\n transform(...ids) {\n // Remove undefined values and join with a \" \".\n return ids && ids.filter((id) => id).join(' ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentJoinIdsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentJoinIdsPipe, isStandalone: true, name: \"skyFileAttachmentJoinIds\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentJoinIdsPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'skyFileAttachmentJoinIds',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LWpvaW4taWRzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWpvaW4taWRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBEOzs7R0FHRztBQUtILE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMsU0FBUyxDQUFDLEdBQUcsR0FBa0M7UUFDcEQsK0NBQStDO1FBQy9DLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQUpVLDRCQUE0Qjs0R0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUp4QyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSwwQkFBMEI7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBKb2lucyBhbiBhcnJheSBvZiBJRHMgd2l0aCBhIHNpbmdsZSBzcGFjZS5cbiAqIEBpbnRlcm5hbFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lGaWxlQXR0YWNobWVudEpvaW5JZHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlQXR0YWNobWVudEpvaW5JZHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0oLi4uaWRzOiAoc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZClbXSk6IHN0cmluZyB8IG51bGwge1xuICAgIC8vIFJlbW92ZSB1bmRlZmluZWQgdmFsdWVzIGFuZCBqb2luIHdpdGggYSBcIiBcIi5cbiAgICByZXR1cm4gaWRzICYmIGlkcy5maWx0ZXIoKGlkKSA9PiBpZCkuam9pbignICcpO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyFileAttachmentService {\n checkFiles(files, minFileSize, maxFileSize, acceptedTypes, validateFn) {\n const fileResults = [];\n files.forEach((fileItem) => {\n if (fileItem.file.size < minFileSize) {\n fileItem.errorType = 'minFileSize';\n fileItem.errorParam = minFileSize.toString();\n fileResults.push(fileItem);\n }\n else if (fileItem.file.size > maxFileSize) {\n fileItem.errorType = 'maxFileSize';\n fileItem.errorParam = maxFileSize.toString();\n fileResults.push(fileItem);\n }\n else if (this.fileTypeRejected(fileItem.file.type, acceptedTypes)) {\n fileItem.errorType = 'fileType';\n fileItem.errorParam = this.#getAcceptedTypesList(acceptedTypes);\n fileResults.push(fileItem);\n }\n else if (validateFn) {\n const errorParam = validateFn(fileItem);\n if (errorParam) {\n fileItem.errorType = 'validate';\n fileItem.errorParam = errorParam;\n }\n fileResults.push(fileItem);\n }\n else {\n fileResults.push(fileItem);\n }\n });\n return fileResults;\n }\n /**\n * Returns `true` if a directory is found in the provided `files` parameter.\n */\n hasDirectory(files) {\n for (let index = 0; index < files.length; index++) {\n const file = files.item(index);\n if (file.webkitGetAsEntry &&\n file.webkitGetAsEntry() &&\n file.webkitGetAsEntry().isDirectory) {\n return true;\n }\n }\n return false;\n }\n fileTypeRejected(fileType, acceptedTypes) {\n if (!acceptedTypes) {\n return false;\n }\n if (!fileType) {\n return true;\n }\n const acceptedTypesUpper = acceptedTypes.toUpperCase();\n const typeArray = acceptedTypesUpper.split(',');\n return !this.#fileTypeInArray(typeArray, fileType.toUpperCase());\n }\n #fileTypeInArray(typeArray, fileType) {\n if (typeArray.indexOf(fileType) !== -1) {\n return true;\n }\n for (const type of typeArray) {\n const validSubtype = this.#getMimeSubtype(type);\n if (validSubtype === '*') {\n if (this.#getMimeMainType(type) === this.#getMimeMainType(fileType)) {\n return true;\n }\n }\n }\n return false;\n }\n #getAcceptedTypesList(rawTypes) {\n return rawTypes\n ?.toUpperCase()\n .split(',')\n .map((type) => {\n const subType = this.#getMimeSubtype(type);\n return subType.startsWith('X-') ? subType.substr(2) : subType;\n })\n .join(', ');\n }\n #getMimeSubtype(type) {\n return type.substr(type.indexOf('/') + 1, type.length);\n }\n #getMimeMainType(type) {\n return type.substr(0, type.indexOf('/'));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLFVBQVUsQ0FDZixLQUFvQixFQUNwQixXQUFtQixFQUNuQixXQUFtQixFQUNuQixhQUFzQixFQUN0QixVQUE4QjtRQUU5QixNQUFNLFdBQVcsR0FBa0IsRUFBRSxDQUFDO1FBRXRDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxRQUFRLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztnQkFDbkMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUM1QyxRQUFRLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztnQkFDbkMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElB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T0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDaEUsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBMUdVLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlSXRlbSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0nO1xuaW1wb3J0IHsgU2t5RmlsZVZhbGlkYXRlRm4gfSBmcm9tICcuLi9zaGFyZWQvZmlsZS12YWxpZGF0ZS1mdW5jdGlvbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lGaWxlQXR0YWNobWVudFNlcnZpY2Uge1xuICBwdWJsaWMgY2hlY2tGaWxlcyhcbiAgICBmaWxlczogU2t5RmlsZUl0ZW1bXSxcbiAgICBtaW5GaWxlU2l6ZTogbnVtYmVyLFxuICAgIG1heEZpbGVTaXplOiBudW1iZXIsXG4gICAgYWNjZXB0ZWRUeXBlcz86IHN0cmluZyxcbiAgICB2YWxpZGF0ZUZuPzogU2t5RmlsZVZhbGlkYXRlRm4sXG4gICk6IFNreUZpbGVJdGVtW10ge1xuICAgIGNvbnN0IGZpbGVSZXN1bHRzOiBTa3lGaWxlSXRlbVtdID0gW107XG5cbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlSXRlbSkgPT4ge1xuICAgICAgaWYgKGZpbGVJdGVtLmZpbGUuc2l6ZSA8IG1pbkZpbGVTaXplKSB7XG4gICAgICAgIGZpbGVJdGVtLmVycm9yVHlwZSA9ICdtaW5GaWxlU2l6ZSc7XG4gICAgICAgIGZpbGVJdGVtLmVycm9yUGFyYW0gPSBtaW5GaWxlU2l6ZS50b1N0cmluZygpO1xuICAgICAgICBmaWxlUmVzdWx0cy5wdXNoKGZpbGVJdGVtKTtcbiAgICAgIH0gZWxzZSBpZiAoZmlsZUl0ZW0uZmlsZS5zaXplID4gbWF4RmlsZVNpemUpIHtcbiAgICAgICAgZmlsZUl0ZW0uZXJyb3JUeXBlID0gJ21heEZpbGVTaXplJztcbiAgICAgICAgZmlsZUl0ZW0uZXJyb3JQYXJhbSA9IG1heEZpbGVTaXplLnRvU3RyaW5nKCk7XG4gICAgICAgIGZpbGVSZXN1bHRzLnB1c2goZmlsZUl0ZW0pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUeXBlUmVqZWN0ZWQoZmlsZUl0ZW0uZmlsZS50eXBlLCBhY2NlcHRlZFR5cGVzKSkge1xuICAgICAgICBmaWxlSXRlbS5lcnJvclR5cGUgPSAnZmlsZVR5cGUnO1xuICAgICAgICBmaWxlSXRlbS5lcnJvclBhcmFtID0gdGhpcy4jZ2V0QWNjZXB0ZWRUeXBlc0xpc3QoYWNjZXB0ZWRUeXBlcyk7XG4gICAgICAgIGZpbGVSZXN1bHRzLnB1c2goZmlsZUl0ZW0pO1xuICAgICAgfSBlbHNlIGlmICh2YWxpZGF0ZUZuKSB7XG4gICAgICAgIGNvbnN0IGVycm9yUGFyYW0gPSB2YWxpZGF0ZUZuKGZpbGVJdGVtKTtcblxuICAgICAgICBpZiAoZXJyb3JQYXJhbSkge1xuICAgICAgICAgIGZpbGVJdGVtLmVycm9yVHlwZSA9ICd2YWxpZGF0ZSc7XG4gICAgICAgICAgZmlsZUl0ZW0uZXJyb3JQYXJhbSA9IGVycm9yUGFyYW07XG4gICAgICAgIH1cbiAgICAgICAgZmlsZVJlc3VsdHMucHVzaChmaWxlSXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWxlUmVzdWx0cy5wdXNoKGZpbGVJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsZVJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgYSBkaXJlY3RvcnkgaXMgZm91bmQgaW4gdGhlIHByb3ZpZGVkIGBmaWxlc2AgcGFyYW1ldGVyLlxuICAgKi9cbiAgcHVibGljIGhhc0RpcmVjdG9yeShmaWxlczogRmlsZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlsZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBmaWxlOiBhbnkgPSBmaWxlcy5pdGVtKGluZGV4KTtcbiAgICAgIGlmIChcbiAgICAgICAgZmlsZS53ZWJraXRHZXRBc0VudHJ5ICYmXG4gICAgICAgIGZpbGUud2Via2l0R2V0QXNFbnRyeSgpICYmXG4gICAgICAgIGZpbGUud2Via2l0R2V0QXNFbnRyeSgpLmlzRGlyZWN0b3J5XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGZpbGVUeXBlUmVqZWN0ZWQoZmlsZVR5cGU6IHN0cmluZywgYWNjZXB0ZWRUeXBlcz86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghYWNjZXB0ZWRUeXBlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZmlsZVR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkVHlwZXNVcHBlciA9IGFjY2VwdGVkVHlwZXMudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCB0eXBlQXJyYXkgPSBhY2NlcHRlZFR5cGVzVXBwZXIuc3BsaXQoJywnKTtcblxuICAgIHJldHVybiAhdGhpcy4jZmlsZVR5cGVJbkFycmF5KHR5cGVBcnJheSwgZmlsZVR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICAjZmlsZVR5cGVJbkFycmF5KHR5cGVBcnJheTogc3RyaW5nW10sIGZpbGVUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZUFycmF5LmluZGV4T2YoZmlsZVR5cGUpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVBcnJheSkge1xuICAgICAgY29uc3QgdmFsaWRTdWJ0eXBlID0gdGhpcy4jZ2V0TWltZVN1YnR5cGUodHlwZSk7XG5cbiAgICAgIGlmICh2YWxpZFN1YnR5cGUgPT09ICcqJykge1xuICAgICAgICBpZiAodGhpcy4jZ2V0TWltZU1haW5UeXBlKHR5cGUpID09PSB0aGlzLiNnZXRNaW1lTWFpblR5cGUoZmlsZVR5cGUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAjZ2V0QWNjZXB0ZWRUeXBlc0xpc3QocmF3VHlwZXM6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHJhd1R5cGVzXG4gICAgICA/LnRvVXBwZXJDYXNlKClcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKCh0eXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YlR5cGUgPSB0aGlzLiNnZXRNaW1lU3VidHlwZSh0eXBlKTtcbiAgICAgICAgcmV0dXJuIHN1YlR5cGUuc3RhcnRzV2l0aCgnWC0nKSA/IHN1YlR5cGUuc3Vic3RyKDIpIDogc3ViVHlwZTtcbiAgICAgIH0pXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gICNnZXRNaW1lU3VidHlwZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlLnN1YnN0cih0eXBlLmluZGV4T2YoJy8nKSArIDEsIHR5cGUubGVuZ3RoKTtcbiAgfVxuXG4gICNnZXRNaW1lTWFpblR5cGUodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZS5zdWJzdHIoMCwgdHlwZS5pbmRleE9mKCcvJykpO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyFileItemService {\n isFile(fileItem) {\n const file = fileItem.file;\n return !!(file &&\n file !== undefined &&\n file !== null &&\n file.size !== undefined &&\n file.size !== null);\n }\n isImage(fileItem) {\n const fileTypeUpper = this.getFileTypeUpper(fileItem);\n const slashIndex = fileTypeUpper.indexOf('/');\n if (slashIndex >= 0) {\n switch (fileTypeUpper.substr(fileTypeUpper.indexOf('/') + 1)) {\n case 'BMP':\n case 'GIF':\n case 'JPEG':\n case 'PNG':\n return true;\n default:\n break;\n }\n }\n return false;\n }\n getFileExtensionUpper(fileItem) {\n let extension = '', name;\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n /* istanbul ignore next */\n name = file.name || '';\n /* istanbul ignore next */\n extension = name.substr(name.lastIndexOf('.')) || '';\n }\n else {\n extension = '';\n }\n }\n return extension.toUpperCase();\n }\n getFileTypeUpper(fileItem) {\n let fileType = '';\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n fileType = file.type || '';\n }\n else {\n fileType = '';\n }\n }\n return fileType.toUpperCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileItemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileItemService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileItemService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9zaGFyZWQvZmlsZS1pdGVtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLE1BQU0sQ0FBQyxRQUFxQjtRQUNqQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxDQUFDLENBQ1AsSUFBSTtZQUNKLElBQUksS0FBSyxTQUFTO1lBQ2xCLElBQUksS0FBSyxJQUFJO1lBQ2IsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVNLE9BQU8sQ0FBQyxRQUFxQjtRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QyxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixRQUFRLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxLQUFLLEtBQUssQ0FBQztnQkFDWCxLQUFLLEtBQUssQ0FBQztnQkFDWCxLQUFLLE1BQU0sQ0FBQztnQkFDWixLQUFLLEtBQUs7b0JBQ1IsT0FBTyxJQUFJLENBQUM7Z0JBQ2Q7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBcUI7UUFDaEQsSUFBSSxTQUFTLEdBQUcsRUFBRSxFQUNoQixJQUFZLENBQUM7UUFFZiwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsMEJBQTBCO2dCQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLDBCQUEwQjtnQkFDMUIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFxQjtRQUMzQyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsMEJBQTBCO1FBQzFCLGtCQUFrQjtRQUNsQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMzQixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBbkVVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUZpbGVJdGVtIH0gZnJvbSAnLi9maWxlLWl0ZW0nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNreUZpbGVJdGVtU2VydmljZSB7XG4gIHB1YmxpYyBpc0ZpbGUoZmlsZUl0ZW06IFNreUZpbGVJdGVtKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZSA9IGZpbGVJdGVtLmZpbGU7XG5cbiAgICByZXR1cm4gISEoXG4gICAgICBmaWxlICYmXG4gICAgICBmaWxlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGZpbGUgIT09IG51bGwgJiZcbiAgICAgIGZpbGUuc2l6ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBmaWxlLnNpemUgIT09IG51bGxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzSW1hZ2UoZmlsZUl0ZW06IFNreUZpbGVJdGVtKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZVR5cGVVcHBlciA9IHRoaXMuZ2V0RmlsZVR5cGVVcHBlcihmaWxlSXRlbSk7XG4gICAgY29uc3Qgc2xhc2hJbmRleCA9IGZpbGVUeXBlVXBwZXIuaW5kZXhPZignLycpO1xuXG4gICAgaWYgKHNsYXNoSW5kZXggPj0gMCkge1xuICAgICAgc3dpdGNoIChmaWxlVHlwZVVwcGVyLnN1YnN0cihmaWxlVHlwZVVwcGVyLmluZGV4T2YoJy8nKSArIDEpKSB7XG4gICAgICAgIGNhc2UgJ0JNUCc6XG4gICAgICAgIGNhc2UgJ0dJRic6XG4gICAgICAgIGNhc2UgJ0pQRUcnOlxuICAgICAgICBjYXNlICdQTkcnOlxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWxlRXh0ZW5zaW9uVXBwZXIoZmlsZUl0ZW06IFNreUZpbGVJdGVtKTogc3RyaW5nIHtcbiAgICBsZXQgZXh0ZW5zaW9uID0gJycsXG4gICAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChmaWxlSXRlbSkge1xuICAgICAgY29uc3QgZmlsZSA9IGZpbGVJdGVtLmZpbGU7XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBuYW1lID0gZmlsZS5uYW1lIHx8ICcnO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBleHRlbnNpb24gPSBuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ZW5zaW9uID0gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEZpbGVUeXBlVXBwZXIoZmlsZUl0ZW06IFNreUZpbGVJdGVtKTogc3RyaW5nIHtcbiAgICBsZXQgZmlsZVR5cGUgPSAnJztcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChmaWxlSXRlbSkge1xuICAgICAgY29uc3QgZmlsZSA9IGZpbGVJdGVtLmZpbGU7XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBmaWxlVHlwZSA9IGZpbGUudHlwZSB8fCAnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVUeXBlID0gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVUeXBlLnRvVXBwZXJDYXNlKCk7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostBinding, Input, Optional, Output, Self, ViewChild, booleanAttribute, inject, } from '@angular/core';\nimport { Validators, } from '@angular/forms';\nimport { SkyFileReaderService, SkyIdModule, SkyIdService, SkyLiveAnnouncerService, } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeComponentClassDirective, SkyThemeModule, } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { SkyFormErrorComponent } from '../../form-error/form-error.component';\nimport { SKY_FORM_ERRORS_ENABLED } from '../../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsComponent } from '../../form-error/form-errors.component';\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\nimport { SkyFileAttachmentJoinIdsPipe } from './file-attachment-join-ids.pipe';\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentService } from './file-attachment.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./file-attachment.service\";\nimport * as i2 from \"../shared/file-item.service\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@skyux/theme\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"@skyux/i18n\";\nimport * as i7 from \"@skyux/help-inline\";\nimport * as i8 from \"@skyux/icon\";\nimport * as i9 from \"@skyux/core\";\nconst MAX_FILE_SIZE_DEFAULT = 500000;\nconst MIN_FILE_SIZE_DEFAULT = 0;\n/**\n * Provides an element to attach a single local file.\n */\nexport class SkyFileAttachmentComponent {\n #fileReaderSvc;\n /**\n * The maximum size in bytes for valid files.\n * @default 500000\n */\n set maxFileSize(value) {\n this.#_maxFileSize = value ?? MAX_FILE_SIZE_DEFAULT;\n }\n get maxFileSize() {\n return this.#_maxFileSize;\n }\n /**\n * The minimum size in bytes for valid files.\n * @default 0\n */\n set minFileSize(value) {\n this.#_minFileSize = value ?? MIN_FILE_SIZE_DEFAULT;\n }\n get minFileSize() {\n return this.#_minFileSize;\n }\n set value(value) {\n // The null check is needed to address a bug in Angular 4.\n // writeValue is being called twice, first time with a phantom null value\n // See: https://github.com/angular/angular/issues/14988\n const isNewValue = value !== this.value && value !== null;\n if (isNewValue) {\n if (value) {\n this.isImage = this.#fileItemService.isImage(value);\n }\n else {\n this.isImage = false;\n }\n this.#setFileName(value);\n this.#_value = value;\n this.#onChange(value);\n this.#updateFileAttachmentButton();\n }\n }\n get value() {\n return this.#_value;\n }\n get isRequired() {\n return (this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false));\n }\n #enterEventTarget;\n #ngUnsubscribe;\n #_maxFileSize;\n #_minFileSize;\n #_value;\n #changeDetector;\n #fileAttachmentService;\n #fileItemService;\n #themeSvc;\n #idSvc;\n #liveAnnouncerSvc;\n #resourcesSvc;\n constructor(changeDetector, fileAttachmentService, fileItemService, ngControl, themeSvc) {\n this.#fileReaderSvc = inject(SkyFileReaderService);\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n */\n this.disabled = false;\n /**\n * Whether to hide `labelText` from view.\n */\n this.labelHidden = false;\n /**\n * Whether the single file attachment is stacked on another form component. When specified,\n * the appropriate vertical spacing is automatically added to the single file attachment.\n */\n this.stacked = false;\n /**\n * Fires when users add or remove files.\n * @deprecated Subscribe to the form control's `valueChanges` event instead.\n */\n this.fileChange = new EventEmitter();\n /**\n * Fires when users select the file name link. Make sure to bind the event.\n * If you do not, the file name link will be a dead link.\n */\n this.fileClick = new EventEmitter();\n this.acceptedOver = false;\n this.hasLabelComponent = false;\n this.rejectedOver = false;\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n */\n this.required = false;\n this.fileName = '';\n this.showFileAttachmentButton = true;\n this.truncatedFileName = '';\n this.isImage = false;\n this.#ngUnsubscribe = new Subject();\n this.#_maxFileSize = MAX_FILE_SIZE_DEFAULT;\n this.#_minFileSize = MIN_FILE_SIZE_DEFAULT;\n this.#idSvc = inject(SkyIdService);\n this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n this.#resourcesSvc = inject(SkyLibResourcesService);\n this.errorId = this.#idSvc.generateId();\n this.labelId = this.#idSvc.generateId();\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n this.#onChange = (_) => {\n return;\n };\n // istanbul ignore next\n this.#onTouched = () => {\n return;\n };\n this.#changeDetector = changeDetector;\n this.#fileAttachmentService = fileAttachmentService;\n this.#fileItemService = fileItemService;\n this.ngControl = ngControl;\n this.#themeSvc = themeSvc;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n ngOnInit() {\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.currentThemeName = themeSettings.currentSettings.theme.name;\n this.#updateFileAttachmentButton();\n });\n }\n }\n ngAfterViewInit() {\n // This is needed to address a bug in Angular 7.\n // When a control value is set initially, its value is not represented on the view.\n // See: https://github.com/angular/angular/issues/13792\n // Of note is the parent check which allows us to determine if the form is reactive.\n // Without this check there is a changed before checked error\n /* istanbul ignore else */\n if (this.ngControl) {\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.value, {\n emitEvent: false,\n });\n this.#changeDetector.markForCheck();\n });\n // There is some disconnect between the host control and the form control.\n // This handles that by running change detection whenever the host control\n // has any changes. This is a workaround for this existing bug and will be\n // addressed in a future story that refactors file attachment.\n this.ngControl.control?.events.subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n ngAfterContentInit() {\n if (this.labelComponents) {\n this.hasLabelComponent = this.labelComponents.length > 0;\n this.#changeDetector.detectChanges();\n // Handles updating classes when label changes\n this.labelComponents.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((newLabelComponents) => {\n this.hasLabelComponent = newLabelComponents.length > 0;\n this.#changeDetector.markForCheck();\n });\n }\n }\n onButtonBlur() {\n this.#onTouched();\n }\n onDropClicked() {\n this.#onTouched();\n /* istanbul ignore else */\n if (this.inputEl) {\n this.inputEl.nativeElement.click();\n }\n }\n fileChangeEvent(fileChangeEvent) {\n /** Set a timeout here to allow the browser to regain context from the system dialog. Without this, error messages do not read out correctly to screen readers. */\n setTimeout(() => {\n this.#handleFiles(fileChangeEvent.target?.files);\n }, 500);\n }\n fileDragEnter(dragEnterEvent) {\n // Save this target to know when the drag event leaves\n this.#enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n fileDragOver(dragOverEvent) {\n const transfer = dragOverEvent.dataTransfer;\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n if (transfer) {\n if (transfer.items) {\n const files = Array.from(transfer.items);\n for (const file of files) {\n if (file.type &&\n this.#fileAttachmentService.fileTypeRejected(file.type, this.acceptedTypes)) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n fileDrop(dropEvent) {\n this.#onTouched();\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n this.#enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n if (dropEvent.dataTransfer.files.length > 1) {\n return;\n }\n if (this.#fileAttachmentService.hasDirectory(dropEvent.dataTransfer.files)) {\n return;\n }\n this.#handleFiles(dropEvent.dataTransfer.files);\n }\n }\n fileDragLeave(dragLeaveEvent) {\n if (this.#enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n deleteFileAttachment() {\n const fileName = this.value?.file.name;\n this.value = undefined;\n this.#emitFileChangeEvent(this.value);\n /* istanbul ignore else: safety check */\n if (fileName) {\n this.#announceState('skyux_file_attachment_file_upload_file_removed', fileName);\n }\n this.#changeDetector.markForCheck();\n }\n ngOnDestroy() {\n this.fileChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n registerOnChange(fn) {\n this.#onChange = fn;\n }\n registerOnTouched(fn) {\n this.#onTouched = fn;\n }\n writeValue(value) {\n this.value = value;\n this.#changeDetector.markForCheck();\n }\n /**\n * @internal\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.#changeDetector.markForCheck();\n }\n emitClick() {\n /* istanbul ignore else */\n if (this.value) {\n this.fileClick.emit({\n file: this.value,\n });\n }\n }\n #announceState(resourceString, ...args) {\n this.#resourcesSvc\n .getString(resourceString, ...args)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncerSvc.announce(internationalizedString);\n });\n }\n #emitFileChangeEvent(currentFile) {\n if (currentFile && !currentFile.errorType) {\n this.writeValue(currentFile);\n this.fileErrorName = undefined;\n this.fileErrorParam = undefined;\n this.fileErrorValidation = undefined;\n }\n else {\n this.writeValue(undefined);\n // Makes sure value accessor is marked as dirty even if current file is undefined\n this.#onChange(undefined);\n this.fileErrorValidation = { fileError: true };\n this.fileErrorName = currentFile?.errorType;\n this.fileErrorParam = currentFile?.errorParam;\n }\n this.fileChange.emit({\n file: currentFile,\n });\n /* istanbul ignore else */\n if (this.inputEl) {\n this.inputEl.nativeElement.value = '';\n }\n }\n async #loadFile(file) {\n if (file.file) {\n try {\n const previousFileName = this.value?.file.name;\n if (previousFileName) {\n this.#announceState('skyux_file_attachment_file_upload_file_replaced', previousFileName, file.file.name);\n }\n else {\n this.#announceState('skyux_file_attachment_file_upload_file_added', file.file.name);\n }\n file.url = await this.#fileReaderSvc.readAsDataURL(file.file);\n this.#emitFileChangeEvent(file);\n }\n catch {\n this.#emitFileChangeEvent(file);\n }\n }\n }\n #handleFiles(fileList) {\n if (fileList) {\n const files = [];\n if ('item' in fileList) {\n for (let index = 0; index < fileList.length; index++) {\n files.push({\n file: fileList.item(index),\n });\n }\n }\n const processedFiles = this.#fileAttachmentService.checkFiles(files, this.minFileSize, this.maxFileSize, this.acceptedTypes, this.validateFn);\n for (const file of processedFiles) {\n if (file.errorType) {\n this.#emitFileChangeEvent(file);\n }\n else {\n void this.#loadFile(file);\n }\n }\n }\n }\n #setFileName(file) {\n if (file) {\n const dropName = this.#fileItemService.isFile(file) && file.file.name\n ? file.file.name\n : file.url;\n this.fileName = dropName;\n if (dropName.length > 26) {\n this.truncatedFileName = dropName.slice(0, 26) + '...';\n }\n else {\n this.truncatedFileName = dropName;\n }\n }\n else {\n this.fileName = '';\n this.truncatedFileName = '';\n }\n }\n #updateFileAttachmentButton() {\n this.showFileAttachmentButton = !(this.value && this.currentThemeName === 'modern');\n this.#changeDetector.markForCheck();\n }\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n #onChange;\n // istanbul ignore next\n #onTouched;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyFileAttachmentService }, { token: i2.SkyFileItemService }, { token: i3.NgControl, optional: true, self: true }, { token: i4.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFileAttachmentComponent, isStandalone: true, selector: \"sky-file-attachment\", inputs: { acceptedTypes: \"acceptedTypes\", acceptedTypesErrorMessage: \"acceptedTypesErrorMessage\", disabled: [\"disabled\", \"disabled\", booleanAttribute], helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", helpKey: \"helpKey\", labelText: \"labelText\", labelHidden: [\"labelHidden\", \"labelHidden\", booleanAttribute], hintText: \"hintText\", maxFileSize: \"maxFileSize\", minFileSize: \"minFileSize\", stacked: [\"stacked\", \"stacked\", booleanAttribute], validateFn: \"validateFn\", required: [\"required\", \"required\", booleanAttribute] }, outputs: { fileChange: \"fileChange\", fileClick: \"fileClick\" }, host: { properties: { \"class.sky-form-field-stacked\": \"this.stacked\" } }, providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], queries: [{ propertyName: \"labelComponents\", predicate: SkyFileAttachmentLabelComponent }], viewQueries: [{ propertyName: \"inputEl\", first: true, predicate: [\"fileInputRef\"], descendants: true }], hostDirectives: [{ directive: i4.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<div class=\\\"sky-file-attachment-wrapper\\\">\\n <div\\n class=\\\"sky-file-attachment-label-wrapper\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required':\\n !labelText && isRequired && hasLabelComponent\\n }\\\"\\n >\\n @if (labelText) {\\n @if (!labelHidden) {\\n <span\\n class=\\\"sky-control-label\\\"\\n [attr.id]=\\\"labelId\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isRequired\\n }\\\"\\n >{{ labelText }}</span\\n >\\n }\\n } @else {\\n <ng-content select=\\\"sky-file-attachment-label\\\" />\\n }\\n @if (isRequired && (hasLabelComponent || labelText)) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_file_attachment_required' | skyLibResources\\n }}</span>\\n }\\n @if (labelText && (helpPopoverContent || helpKey)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [labelText]=\\\"labelText\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </div>\\n <div\\n class=\\\"sky-file-attachment-upload sky-file-attachment sky-file-attachment-target\\\"\\n [ngClass]=\\\"{\\n 'sky-file-attachment-accept': acceptedOver,\\n 'sky-file-attachment-reject': rejectedOver\\n }\\\"\\n (dragenter)=\\\"fileDragEnter($event)\\\"\\n (dragover)=\\\"fileDragOver($event)\\\"\\n (dragleave)=\\\"fileDragLeave($event)\\\"\\n (drop)=\\\"fileDrop($event)\\\"\\n >\\n <div\\n #fileDropDescriptionRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n role=\\\"tooltip\\\"\\n skyId\\n >\\n {{ 'skyux_file_attachment_file_upload_drag_or_click' | skyLibResources }}\\n </div>\\n <input\\n #fileInputRef\\n hidden\\n tabindex=\\\"-1\\\"\\n type=\\\"file\\\"\\n [attr.accept]=\\\"acceptedTypes || null\\\"\\n [disabled]=\\\"disabled\\\"\\n [required]=\\\"isRequired\\\"\\n (change)=\\\"fileChangeEvent($event)\\\"\\n />\\n @if (showFileAttachmentButton) {\\n <button\\n class=\\\"sky-file-attachment-btn sky-btn sky-btn-default\\\"\\n type=\\\"button\\\"\\n [attr.aria-describedby]=\\\"\\n hintText && hintTextEl.id\\n | skyFileAttachmentJoinIds: fileDropDescriptionRef.id\\n \\\"\\n [attr.aria-labelledby]=\\\"\\n attachButtonLabelRef.id\\n | skyFileAttachmentJoinIds\\n : (labelText\\n ? labelId\\n : labelComponents?.get(0)?.labelContentId?.id)\\n \\\"\\n [attr.aria-invalid]=\\\"!!(ngControl?.errors ?? fileErrorValidation)\\\"\\n [attr.aria-errormessage]=\\\"\\n !!(ngControl?.errors ?? fileErrorValidation) ? errorId : undefined\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n (click)=\\\"onDropClicked()\\\"\\n (blur)=\\\"onButtonBlur()\\\"\\n >\\n <sky-icon iconName=\\\"folder-open\\\" />\\n {{\\n value\\n ? ('skyux_file_attachment_button_label_replace_file'\\n | skyLibResources)\\n : ('skyux_file_attachment_button_label_choose_file'\\n | skyLibResources)\\n }}\\n </button>\\n }\\n @if (value && !isImage && currentThemeName === 'modern') {\\n <sky-icon\\n class=\\\"sky-file-attachment-icon\\\"\\n iconName=\\\"document\\\"\\n iconSize=\\\"xl\\\"\\n />\\n }\\n @if (value || currentThemeName === 'default') {\\n <span class=\\\"sky-file-attachment-file-link\\\">\\n @if (value) {\\n <a [attr.title]=\\\"fileName\\\" (click)=\\\"emitClick()\\\">\\n {{ truncatedFileName }}\\n </a>\\n } @else {\\n <span class=\\\"sky-file-attachment-none sky-font-deemphasized\\\">\\n {{ 'skyux_file_attachment_label_no_file_chosen' | skyLibResources }}\\n </span>\\n }\\n </span>\\n }\\n\\n @if (value) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-file-attachment-delete\\\"\\n type=\\\"button\\\"\\n [attr.aria-labelledby]=\\\"\\n deleteButtonLabelRef.id\\n | skyFileAttachmentJoinIds\\n : (labelText\\n ? labelId\\n : labelComponents?.get(0)?.labelContentId?.id)\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n (click)=\\\"deleteFileAttachment()\\\"\\n >\\n <sky-icon iconName=\\\"delete\\\" />\\n </button>\\n }\\n </div>\\n\\n @if (value && isImage) {\\n <img\\n class=\\\"sky-file-attachment-preview-img\\\"\\n [alt]=\\\"\\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\\n | skyLibResources\\n \\\"\\n [src]=\\\"value.url\\\"\\n />\\n }\\n</div>\\n<div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-file-attachment-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</div>\\n\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"ngControl?.touched\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n @if (ngControl?.touched) {\\n @if (fileErrorName === 'fileType') {\\n <sky-form-error\\n errorName=\\\"fileType\\\"\\n [errorText]=\\\"\\n acceptedTypesErrorMessage ??\\n 'skyux_file_attachment_file_type_error_label_text'\\n | skyLibResources: fileErrorParam\\n \\\"\\n />\\n } @else if (fileErrorName === 'maxFileSize') {\\n <sky-form-error\\n errorName=\\\"maxFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_max_file_size_error_label_text'\\n | skyLibResources: (fileErrorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (fileErrorName === 'minFileSize') {\\n <sky-form-error\\n errorName=\\\"minFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_min_file_size_error_label_text'\\n | skyLibResources: (fileErrorParam | skyFileSize)\\n \\\"\\n />\\n }\\n }\\n</sky-form-errors>\\n\\n<span\\n #attachButtonLabelRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n skyId\\n>\\n {{\\n value\\n ? ('skyux_file_attachment_button_label_replace_file_label'\\n | skyLibResources: fileName)\\n : ('skyux_file_attachment_button_label_choose_file_label'\\n | skyLibResources)\\n }}\\n</span>\\n\\n<span\\n #deleteButtonLabelRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n skyId\\n>\\n {{ 'skyux_file_attachment_file_item_remove' | skyLibResources: fileName }}\\n</span>\\n\", styles: [\".sky-file-attachment-wrapper:not(.sky-theme-modern *){--sky-override-file-attachment-accept-border-color: #72bf44;--sky-override-file-attachment-accept-border-radius: 5px;--sky-override-file-attachment-accept-border-width: 1px;--sky-override-file-attachment-control-label-color: #212327;--sky-override-file-attachment-control-label-font-size: 15px;--sky-override-file-attachment-delete-margin-left: 0;--sky-override-file-attachment-drag-border-style: dashed;--sky-override-file-attachment-drag-box-shadow: none;--sky-override-file-attachment-file-link-padding: 0 5px;--sky-override-file-attachment-invalid-border: 1px solid #ef4044;--sky-override-file-attachment-invalid-box-shadow: 0 0 8px rgba(239, 64, 68, .6);--sky-override-file-attachment-invalid-label-color: #212327;--sky-override-file-attachment-preview-img-border: none;--sky-override-file-attachment-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-attachment-preview-img-margin: 10px;--sky-override-file-attachment-preview-img-width: auto;--sky-override-file-attachment-reject-border-color: #ef4044;--sky-override-file-attachment-reject-border-radius: 5px;--sky-override-file-attachment-reject-border-width: 1px;--sky-override-file-attachment-upload-border: 1px solid transparent;--sky-override-file-attachment-upload-display: block;--sky-override-file-attachment-upload-padding-right: 8px;--sky-override-file-attachment-wrapper-display: inline-block}.sky-file-attachment-wrapper:not(.sky-theme-modern *) .sky-file-attachment-delete{padding:0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-attachment-wrapper{--sky-override-file-attachment-accept-border: none;--sky-override-file-attachment-accept-border-color: #72bf44;--sky-override-file-attachment-accept-border-radius: 5px;--sky-override-file-attachment-accept-border-width: 1px;--sky-override-file-attachment-btn-non-stacked-margin: 0 10px 0 0;--sky-override-file-attachment-control-label-color: #686c73;--sky-override-file-attachment-control-label-font-size: 13px;--sky-override-file-attachment-delete-height: 40px;--sky-override-file-attachment-delete-width: 40px;--sky-override-file-attachment-drag-border-style: dashed;--sky-override-file-attachment-drag-box-shadow: none;--sky-override-file-attachment-file-icon-line-height: normal;--sky-override-file-attachment-file-icon-margin: 5px 10px 5px 5px;--sky-override-file-attachment-file-link-margin: 10px 0 0 0;--sky-override-file-attachment-file-link-padding: 0;--sky-override-file-attachment-invalid-border: 1px solid #ef4044;--sky-override-file-attachment-invalid-box-shadow: 0 0 8px rgba(239, 64, 68, .6);--sky-override-file-attachment-invalid-label-color: #686c73;--sky-override-file-attachment-preview-img-border: var( --sky-border-width-container-base ) solid var(--modern-color-gray-20);--sky-override-file-attachment-preview-img-box-shadow: none;--sky-override-file-attachment-preview-img-margin: 0 10px 0 0;--sky-override-file-attachment-reject-border-color: #ef4044;--sky-override-file-attachment-reject-border-radius: 5px;--sky-override-file-attachment-reject-border-width: 1px;--sky-override-file-attachment-upload-border: 1px solid transparent;--sky-override-file-attachment-upload-with-icon-align-items: flex-start}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-attachment-wrapper .sky-file-attachment-delete{padding:0}:host.sky-cmp-theme-default{--sky-override-file-attachment-hint-text-margin-top: var( --sky-margin-stacked-xs )}:host.sky-form-field-stacked{display:block}:host:not(.sky-form-field-stacked) .sky-file-attachment-wrapper .sky-file-attachment-btn{margin:var(--sky-override-file-attachment-btn-non-stacked-margin, 0)}.sky-file-attachment-wrapper{display:var(--sky-override-file-attachment-wrapper-display, flex);flex-wrap:wrap}.sky-file-attachment-label-wrapper{width:100%}.sky-file-attachment-upload{order:2;display:var(--sky-override-file-attachment-upload-display, flex);align-items:flex-start;padding-right:var(--sky-override-file-attachment-upload-padding-right, 0);border:var(--sky-override-file-attachment-upload-border, none)}.sky-file-attachment-upload:has(.sky-file-attachment-icon){align-items:var(--sky-override-file-attachment-upload-with-icon-align-items, center)}.sky-file-attachment-accept{border-color:var(--sky-override-file-attachment-accept-border-color, none);border-style:var(--sky-override-file-attachment-drag-border-style, none);border-width:var(--sky-override-file-attachment-accept-border-width, none);border-radius:var(--sky-override-file-attachment-accept-border-radius, none)}.sky-file-attachment-accept button{box-shadow:var(--sky-override-file-attachment-drag-box-shadow, inset 0 0 0 var(--sky-border-width-input-base) var(--sky-color-border-success))}.sky-file-attachment-reject{border-color:var(--sky-override-file-attachment-reject-border-color, none);border-style:var(--sky-override-file-attachment-drag-border-style, none);border-width:var(--sky-override-file-attachment-reject-border-width, none);border-radius:var(--sky-override-file-attachment-reject-border-radius, none)}.sky-file-attachment-reject button{box-shadow:var(--sky-override-file-attachment-drag-box-shadow, inset 0 0 0 var(--sky-border-width-input-error) var(--sky-color-border-danger))}.sky-file-attachment-btn,.sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}:host(.ng-invalid.ng-dirty) .sky-file-attachment-btn{box-shadow:var(--sky-override-file-attachment-invalid-box-shadow, inset 0 0 0 var(--sky-border-width-input-error) var(--sky-color-border-input-danger));border:var(--sky-override-file-attachment-invalid-border, none)}:host(.ng-invalid.ng-dirty) .sky-control-label{color:var(--sky-override-file-attachment-invalid-label-color, var(--sky-color-text-danger))}.sky-file-attachment-file-link{padding:var(--sky-override-file-attachment-file-link-padding, 0 0 0 var(--sky-space-gap-icon-m));margin:var(--sky-override-file-attachment-file-link-margin, 0)}.sky-file-attachment-delete{width:var(--sky-override-file-attachment-delete-width, auto);height:var(--sky-override-file-attachment-delete-height, auto);margin-left:var(--sky-override-file-attachment-delete-margin-left, var(--sky-space-gap-text_action-s))}.sky-file-attachment-preview-img{flex:0;order:1;max-width:25%;width:var(--sky-override-file-attachment-preview-img-width, var(--sky-size-thumbnail-l));height:auto;box-shadow:var(--sky-override-file-attachment-preview-img-box-shadow, var(--sky-elevation-raised-100));border:var(--sky-override-file-attachment-preview-img-border, none);margin:var(--sky-override-file-attachment-preview-img-margin, 0)}.sky-file-attachment-hint-text{margin-top:var(--sky-override-file-attachment-hint-text-margin-top, var(--sky-space-gap-stacked_supplemental-s))}.sky-control-label{color:var(--sky-override-file-attachment-control-label-color, var(--sky-color-text-default));font-size:var(--sky-override-file-attachment-control-label-font-size, var(--sky-font-size-input-label))}.sky-file-attachment-icon{color:var(--sky-color-icon-deemphasized);margin:var(--sky-override-file-attachment-file-icon-margin, 0 0 0 var(--sky-gap-icon-m));line-height:var(--sky-override-file-attachment-file-icon-line-height, 1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i5.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"pipe\", type: SkyFileAttachmentJoinIdsPipe, name: \"skyFileAttachmentJoinIds\" }, { kind: \"pipe\", type: SkyFileSizePipe, name: \"skyFileSize\" }, { kind: \"component\", type: SkyFormErrorComponent, selector: \"sky-form-error\", inputs: [\"errorName\", \"errorText\"] }, { kind: \"component\", type: SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"ngmodule\", type: SkyFormsResourcesModule }, { kind: \"pipe\", type: i6.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i7.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i8.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i9.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i4.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"directive\", type: SkyThemeComponentClassDirective, selector: \"[skyThemeClass]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n SkyFileAttachmentJoinIdsPipe,\n SkyFileSizePipe,\n SkyFormErrorComponent,\n SkyFormErrorsComponent,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyThemeComponentClassDirective,\n ], providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], hostDirectives: [SkyThemeComponentClassDirective], selector: 'sky-file-attachment', template: \"<div class=\\\"sky-file-attachment-wrapper\\\">\\n <div\\n class=\\\"sky-file-attachment-label-wrapper\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required':\\n !labelText && isRequired && hasLabelComponent\\n }\\\"\\n >\\n @if (labelText) {\\n @if (!labelHidden) {\\n <span\\n class=\\\"sky-control-label\\\"\\n [attr.id]=\\\"labelId\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isRequired\\n }\\\"\\n >{{ labelText }}</span\\n >\\n }\\n } @else {\\n <ng-content select=\\\"sky-file-attachment-label\\\" />\\n }\\n @if (isRequired && (hasLabelComponent || labelText)) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_file_attachment_required' | skyLibResources\\n }}</span>\\n }\\n @if (labelText && (helpPopoverContent || helpKey)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [labelText]=\\\"labelText\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </div>\\n <div\\n class=\\\"sky-file-attachment-upload sky-file-attachment sky-file-attachment-target\\\"\\n [ngClass]=\\\"{\\n 'sky-file-attachment-accept': acceptedOver,\\n 'sky-file-attachment-reject': rejectedOver\\n }\\\"\\n (dragenter)=\\\"fileDragEnter($event)\\\"\\n (dragover)=\\\"fileDragOver($event)\\\"\\n (dragleave)=\\\"fileDragLeave($event)\\\"\\n (drop)=\\\"fileDrop($event)\\\"\\n >\\n <div\\n #fileDropDescriptionRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n role=\\\"tooltip\\\"\\n skyId\\n >\\n {{ 'skyux_file_attachment_file_upload_drag_or_click' | skyLibResources }}\\n </div>\\n <input\\n #fileInputRef\\n hidden\\n tabindex=\\\"-1\\\"\\n type=\\\"file\\\"\\n [attr.accept]=\\\"acceptedTypes || null\\\"\\n [disabled]=\\\"disabled\\\"\\n [required]=\\\"isRequired\\\"\\n (change)=\\\"fileChangeEvent($event)\\\"\\n />\\n @if (showFileAttachmentButton) {\\n <button\\n class=\\\"sky-file-attachment-btn sky-btn sky-btn-default\\\"\\n type=\\\"button\\\"\\n [attr.aria-describedby]=\\\"\\n hintText && hintTextEl.id\\n | skyFileAttachmentJoinIds: fileDropDescriptionRef.id\\n \\\"\\n [attr.aria-labelledby]=\\\"\\n attachButtonLabelRef.id\\n | skyFileAttachmentJoinIds\\n : (labelText\\n ? labelId\\n : labelComponents?.get(0)?.labelContentId?.id)\\n \\\"\\n [attr.aria-invalid]=\\\"!!(ngControl?.errors ?? fileErrorValidation)\\\"\\n [attr.aria-errormessage]=\\\"\\n !!(ngControl?.errors ?? fileErrorValidation) ? errorId : undefined\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n (click)=\\\"onDropClicked()\\\"\\n (blur)=\\\"onButtonBlur()\\\"\\n >\\n <sky-icon iconName=\\\"folder-open\\\" />\\n {{\\n value\\n ? ('skyux_file_attachment_button_label_replace_file'\\n | skyLibResources)\\n : ('skyux_file_attachment_button_label_choose_file'\\n | skyLibResources)\\n }}\\n </button>\\n }\\n @if (value && !isImage && currentThemeName === 'modern') {\\n <sky-icon\\n class=\\\"sky-file-attachment-icon\\\"\\n iconName=\\\"document\\\"\\n iconSize=\\\"xl\\\"\\n />\\n }\\n @if (value || currentThemeName === 'default') {\\n <span class=\\\"sky-file-attachment-file-link\\\">\\n @if (value) {\\n <a [attr.title]=\\\"fileName\\\" (click)=\\\"emitClick()\\\">\\n {{ truncatedFileName }}\\n </a>\\n } @else {\\n <span class=\\\"sky-file-attachment-none sky-font-deemphasized\\\">\\n {{ 'skyux_file_attachment_label_no_file_chosen' | skyLibResources }}\\n </span>\\n }\\n </span>\\n }\\n\\n @if (value) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-file-attachment-delete\\\"\\n type=\\\"button\\\"\\n [attr.aria-labelledby]=\\\"\\n deleteButtonLabelRef.id\\n | skyFileAttachmentJoinIds\\n : (labelText\\n ? labelId\\n : labelComponents?.get(0)?.labelContentId?.id)\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n (click)=\\\"deleteFileAttachment()\\\"\\n >\\n <sky-icon iconName=\\\"delete\\\" />\\n </button>\\n }\\n </div>\\n\\n @if (value && isImage) {\\n <img\\n class=\\\"sky-file-attachment-preview-img\\\"\\n [alt]=\\\"\\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\\n | skyLibResources\\n \\\"\\n [src]=\\\"value.url\\\"\\n />\\n }\\n</div>\\n<div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-file-attachment-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</div>\\n\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"ngControl?.touched\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n @if (ngControl?.touched) {\\n @if (fileErrorName === 'fileType') {\\n <sky-form-error\\n errorName=\\\"fileType\\\"\\n [errorText]=\\\"\\n acceptedTypesErrorMessage ??\\n 'skyux_file_attachment_file_type_error_label_text'\\n | skyLibResources: fileErrorParam\\n \\\"\\n />\\n } @else if (fileErrorName === 'maxFileSize') {\\n <sky-form-error\\n errorName=\\\"maxFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_max_file_size_error_label_text'\\n | skyLibResources: (fileErrorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (fileErrorName === 'minFileSize') {\\n <sky-form-error\\n errorName=\\\"minFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_min_file_size_error_label_text'\\n | skyLibResources: (fileErrorParam | skyFileSize)\\n \\\"\\n />\\n }\\n }\\n</sky-form-errors>\\n\\n<span\\n #attachButtonLabelRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n skyId\\n>\\n {{\\n value\\n ? ('skyux_file_attachment_button_label_replace_file_label'\\n | skyLibResources: fileName)\\n : ('skyux_file_attachment_button_label_choose_file_label'\\n | skyLibResources)\\n }}\\n</span>\\n\\n<span\\n #deleteButtonLabelRef=\\\"skyId\\\"\\n aria-hidden=\\\"true\\\"\\n class=\\\"sky-screen-reader-only\\\"\\n skyId\\n>\\n {{ 'skyux_file_attachment_file_item_remove' | skyLibResources: fileName }}\\n</span>\\n\", styles: [\".sky-file-attachment-wrapper:not(.sky-theme-modern *){--sky-override-file-attachment-accept-border-color: #72bf44;--sky-override-file-attachment-accept-border-radius: 5px;--sky-override-file-attachment-accept-border-width: 1px;--sky-override-file-attachment-control-label-color: #212327;--sky-override-file-attachment-control-label-font-size: 15px;--sky-override-file-attachment-delete-margin-left: 0;--sky-override-file-attachment-drag-border-style: dashed;--sky-override-file-attachment-drag-box-shadow: none;--sky-override-file-attachment-file-link-padding: 0 5px;--sky-override-file-attachment-invalid-border: 1px solid #ef4044;--sky-override-file-attachment-invalid-box-shadow: 0 0 8px rgba(239, 64, 68, .6);--sky-override-file-attachment-invalid-label-color: #212327;--sky-override-file-attachment-preview-img-border: none;--sky-override-file-attachment-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-attachment-preview-img-margin: 10px;--sky-override-file-attachment-preview-img-width: auto;--sky-override-file-attachment-reject-border-color: #ef4044;--sky-override-file-attachment-reject-border-radius: 5px;--sky-override-file-attachment-reject-border-width: 1px;--sky-override-file-attachment-upload-border: 1px solid transparent;--sky-override-file-attachment-upload-display: block;--sky-override-file-attachment-upload-padding-right: 8px;--sky-override-file-attachment-wrapper-display: inline-block}.sky-file-attachment-wrapper:not(.sky-theme-modern *) .sky-file-attachment-delete{padding:0}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-attachment-wrapper{--sky-override-file-attachment-accept-border: none;--sky-override-file-attachment-accept-border-color: #72bf44;--sky-override-file-attachment-accept-border-radius: 5px;--sky-override-file-attachment-accept-border-width: 1px;--sky-override-file-attachment-btn-non-stacked-margin: 0 10px 0 0;--sky-override-file-attachment-control-label-color: #686c73;--sky-override-file-attachment-control-label-font-size: 13px;--sky-override-file-attachment-delete-height: 40px;--sky-override-file-attachment-delete-width: 40px;--sky-override-file-attachment-drag-border-style: dashed;--sky-override-file-attachment-drag-box-shadow: none;--sky-override-file-attachment-file-icon-line-height: normal;--sky-override-file-attachment-file-icon-margin: 5px 10px 5px 5px;--sky-override-file-attachment-file-link-margin: 10px 0 0 0;--sky-override-file-attachment-file-link-padding: 0;--sky-override-file-attachment-invalid-border: 1px solid #ef4044;--sky-override-file-attachment-invalid-box-shadow: 0 0 8px rgba(239, 64, 68, .6);--sky-override-file-attachment-invalid-label-color: #686c73;--sky-override-file-attachment-preview-img-border: var( --sky-border-width-container-base ) solid var(--modern-color-gray-20);--sky-override-file-attachment-preview-img-box-shadow: none;--sky-override-file-attachment-preview-img-margin: 0 10px 0 0;--sky-override-file-attachment-reject-border-color: #ef4044;--sky-override-file-attachment-reject-border-radius: 5px;--sky-override-file-attachment-reject-border-width: 1px;--sky-override-file-attachment-upload-border: 1px solid transparent;--sky-override-file-attachment-upload-with-icon-align-items: flex-start}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-attachment-wrapper .sky-file-attachment-delete{padding:0}:host.sky-cmp-theme-default{--sky-override-file-attachment-hint-text-margin-top: var( --sky-margin-stacked-xs )}:host.sky-form-field-stacked{display:block}:host:not(.sky-form-field-stacked) .sky-file-attachment-wrapper .sky-file-attachment-btn{margin:var(--sky-override-file-attachment-btn-non-stacked-margin, 0)}.sky-file-attachment-wrapper{display:var(--sky-override-file-attachment-wrapper-display, flex);flex-wrap:wrap}.sky-file-attachment-label-wrapper{width:100%}.sky-file-attachment-upload{order:2;display:var(--sky-override-file-attachment-upload-display, flex);align-items:flex-start;padding-right:var(--sky-override-file-attachment-upload-padding-right, 0);border:var(--sky-override-file-attachment-upload-border, none)}.sky-file-attachment-upload:has(.sky-file-attachment-icon){align-items:var(--sky-override-file-attachment-upload-with-icon-align-items, center)}.sky-file-attachment-accept{border-color:var(--sky-override-file-attachment-accept-border-color, none);border-style:var(--sky-override-file-attachment-drag-border-style, none);border-width:var(--sky-override-file-attachment-accept-border-width, none);border-radius:var(--sky-override-file-attachment-accept-border-radius, none)}.sky-file-attachment-accept button{box-shadow:var(--sky-override-file-attachment-drag-box-shadow, inset 0 0 0 var(--sky-border-width-input-base) var(--sky-color-border-success))}.sky-file-attachment-reject{border-color:var(--sky-override-file-attachment-reject-border-color, none);border-style:var(--sky-override-file-attachment-drag-border-style, none);border-width:var(--sky-override-file-attachment-reject-border-width, none);border-radius:var(--sky-override-file-attachment-reject-border-radius, none)}.sky-file-attachment-reject button{box-shadow:var(--sky-override-file-attachment-drag-box-shadow, inset 0 0 0 var(--sky-border-width-input-error) var(--sky-color-border-danger))}.sky-file-attachment-btn,.sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}:host(.ng-invalid.ng-dirty) .sky-file-attachment-btn{box-shadow:var(--sky-override-file-attachment-invalid-box-shadow, inset 0 0 0 var(--sky-border-width-input-error) var(--sky-color-border-input-danger));border:var(--sky-override-file-attachment-invalid-border, none)}:host(.ng-invalid.ng-dirty) .sky-control-label{color:var(--sky-override-file-attachment-invalid-label-color, var(--sky-color-text-danger))}.sky-file-attachment-file-link{padding:var(--sky-override-file-attachment-file-link-padding, 0 0 0 var(--sky-space-gap-icon-m));margin:var(--sky-override-file-attachment-file-link-margin, 0)}.sky-file-attachment-delete{width:var(--sky-override-file-attachment-delete-width, auto);height:var(--sky-override-file-attachment-delete-height, auto);margin-left:var(--sky-override-file-attachment-delete-margin-left, var(--sky-space-gap-text_action-s))}.sky-file-attachment-preview-img{flex:0;order:1;max-width:25%;width:var(--sky-override-file-attachment-preview-img-width, var(--sky-size-thumbnail-l));height:auto;box-shadow:var(--sky-override-file-attachment-preview-img-box-shadow, var(--sky-elevation-raised-100));border:var(--sky-override-file-attachment-preview-img-border, none);margin:var(--sky-override-file-attachment-preview-img-margin, 0)}.sky-file-attachment-hint-text{margin-top:var(--sky-override-file-attachment-hint-text-margin-top, var(--sky-space-gap-stacked_supplemental-s))}.sky-control-label{color:var(--sky-override-file-attachment-control-label-color, var(--sky-color-text-default));font-size:var(--sky-override-file-attachment-control-label-font-size, var(--sky-font-size-input-label))}.sky-file-attachment-icon{color:var(--sky-color-icon-deemphasized);margin:var(--sky-override-file-attachment-file-icon-margin, 0 0 0 var(--sky-gap-icon-m));line-height:var(--sky-override-file-attachment-file-icon-line-height, 1)}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyFileAttachmentService }, { type: i2.SkyFileItemService }, { type: i3.NgControl, decorators: [{\n type: Self\n }, {\n type: Optional\n }] }, { type: i4.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { acceptedTypes: [{\n type: Input\n }], acceptedTypesErrorMessage: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], helpKey: [{\n type: Input\n }], labelText: [{\n type: Input\n }], labelHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hintText: [{\n type: Input\n }], maxFileSize: [{\n type: Input\n }], minFileSize: [{\n type: Input\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }, {\n type: HostBinding,\n args: ['class.sky-form-field-stacked']\n }], validateFn: [{\n type: Input\n }], fileChange: [{\n type: Output\n }], fileClick: [{\n type: Output\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], inputEl: [{\n type: ViewChild,\n args: ['fileInputRef']\n }], labelComponents: [{\n type: ContentChildren,\n args: [SkyFileAttachmentLabelComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sSUFBSSxFQUVKLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFJTCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxZQUFZLEVBQ1osdUJBQXVCLEdBQ3hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsY0FBYyxHQUVmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENB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QkFEZixNQUFNO2dCQWlCQSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBb0MvQixPQUFPO3NCQURiLFNBQVM7dUJBQUMsY0FBYztnQkFJbEIsZUFBZTtzQkFEckIsZUFBZTt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBTa3lGaWxlUmVhZGVyU2VydmljZSxcbiAgU2t5SWRNb2R1bGUsXG4gIFNreUlkU2VydmljZSxcbiAgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQge1xuICBTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlLFxuICBTa3lUaGVtZU1vZHVsZSxcbiAgU2t5VGhlbWVTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWVuYWJsZWQtdG9rZW4nO1xuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS1mb3Jtcy1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreUZpbGVJdGVtIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtaXRlbSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbUVycm9yVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0tZXJyb3ItdHlwZSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RmlsZVNpemVQaXBlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtc2l6ZS5waXBlJztcbmltcG9ydCB7IFNreUZpbGVWYWxpZGF0ZUZuIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtdmFsaWRhdGUtZnVuY3Rpb24nO1xuXG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENoYW5nZSB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENsaWNrIH0gZnJvbSAnLi9maWxlLWF0dGFjaG1lbnQtY2xpY2snO1xuaW1wb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRKb2luSWRzUGlwZSB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LWpvaW4taWRzLnBpcGUnO1xuaW1wb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudFNlcnZpY2UgfSBmcm9tICcuL2ZpbGUtYXR0YWNobWVudC5zZXJ2aWNlJztcblxuY29uc3QgTUFYX0ZJTEVfU0laRV9ERUZBVUxUID0gNTAwMDAwO1xuY29uc3QgTUlOX0ZJTEVfU0laRV9ERUZBVUxUID0gMDtcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBlbGVtZW50IHRvIGF0dGFjaCBhIHNpbmdsZSBsb2NhbCBmaWxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5RmlsZUF0dGFjaG1lbnRKb2luSWRzUGlwZSxcbiAgICBTa3lGaWxlU2l6ZVBpcGUsXG4gICAgU2t5Rm9ybUVycm9yQ29tcG9uZW50LFxuICAgIFNreUZvcm1FcnJvcnNDb21wb25lbnQsXG4gICAgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICAgIFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZpbGVBdHRhY2htZW50U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1NreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmVdLFxuICBzZWxlY3RvcjogJ3NreS1maWxlLWF0dGFjaG1lbnQnLFxuICBzdHlsZVVybDogJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpbGVBdHRhY2htZW50Q29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveVxue1xuICByZWFkb25seSAjZmlsZVJlYWRlclN2YyA9IGluamVjdChTa3lGaWxlUmVhZGVyU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tYS1kZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWwgb2YgTUlNRSB0eXBlcyB0aGF0IHVzZXJzIGNhbiBhdHRhY2guXG4gICAqIEJ5IGRlZmF1bHQsIGFsbCBmaWxlIHR5cGVzIGFyZSBhbGxvd2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBjdXN0b20gZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gYSBmaWxlIGRvZXNuJ3QgbWF0Y2ggdGhlIGFjY2VwdGVkIHR5cGVzLlxuICAgKiBUaGlzIHJlcGxhY2VzIGEgZGVmYXVsdCBlcnJvciBtZXNzYWdlIHRoYXQgbGlzdHMgYWxsIGFjY2VwdGVkIHR5cGVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXNFcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGxhYmVsVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGZpbGUgYXR0YWNobWVudCdzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgYGxhYmVsVGV4dGAgZnJvbSB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDUwMDAwMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtYXhGaWxlU2l6ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21heEZpbGVTaXplID0gdmFsdWUgPz8gTUFYX0ZJTEVfU0laRV9ERUZBVUxUO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhGaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfbWF4RmlsZVNpemU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWluRmlsZVNpemUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19taW5GaWxlU2l6ZSA9IHZhbHVlID8/IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWluRmlsZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21pbkZpbGVTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpbmdsZSBmaWxlIGF0dGFjaG1lbnQgaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCxcbiAgICogdGhlIGFwcHJvcHJpYXRlIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgc2luZ2xlIGZpbGUgYXR0YWNobWVudC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1mb3JtLWZpZWxkLXN0YWNrZWQnKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb24uIFRoaXMgdmFsaWRhdGlvbiBydW5zIGFsb25nc2lkZSB0aGUgaW50ZXJuYWxcbiAgICogZmlsZSB2YWxpZGF0aW9uLiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgYFNreUZpbGVJdGVtYCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuXG4gICAqIEBkZXByZWNhdGVkIEFkZCBhIGN1c3RvbSBBbmd1bGFyIGBWYWxpZGF0b3JgIGZ1bmN0aW9uIHRvIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdmFsaWRhdGVGbjogU2t5RmlsZVZhbGlkYXRlRm4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgYWRkIG9yIHJlbW92ZSBmaWxlcy5cbiAgICogQGRlcHJlY2F0ZWQgU3Vic2NyaWJlIHRvIHRoZSBmb3JtIGNvbnRyb2wncyBgdmFsdWVDaGFuZ2VzYCBldmVudCBpbnN0ZWFkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lGaWxlQXR0YWNobWVudENoYW5nZT4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGZpbGUgbmFtZSBsaW5rLiBNYWtlIHN1cmUgdG8gYmluZCB0aGUgZXZlbnQuXG4gICAqIElmIHlvdSBkbyBub3QsIHRoZSBmaWxlIG5hbWUgbGluayB3aWxsIGJlIGEgZGVhZCBsaW5rLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmaWxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVBdHRhY2htZW50Q2xpY2s+KCk7XG5cbiAgcHVibGljIGFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuXG4gIHB1YmxpYyBoYXNMYWJlbENvbXBvbmVudCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWplY3RlZE92ZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gdmFsaWRhdGlvbi5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnQgc28gdGhhdCBmb3JtcyBkaXNwbGF5IGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1yZXF1aXJlZGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtcmVxdWlyZWQpLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFNreUZpbGVJdGVtIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIC8vIFRoZSBudWxsIGNoZWNrIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNC5cbiAgICAvLyB3cml0ZVZhbHVlIGlzIGJlaW5nIGNhbGxlZCB0d2ljZSwgZmlyc3QgdGltZSB3aXRoIGEgcGhhbnRvbSBudWxsIHZhbHVlXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNDk4OFxuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiB2YWx1ZSAhPT0gbnVsbDtcblxuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmlzSW1hZ2UodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLiNzZXRGaWxlTmFtZSh2YWx1ZSk7XG5cbiAgICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy4jdXBkYXRlRmlsZUF0dGFjaG1lbnRCdXR0b24oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFNreUZpbGVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRUaGVtZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZmlsZU5hbWUgPSAnJztcblxuICBwdWJsaWMgc2hvd0ZpbGVBdHRhY2htZW50QnV0dG9uID0gdHJ1ZTtcblxuICBwdWJsaWMgdHJ1bmNhdGVkRmlsZU5hbWUgPSAnJztcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXRSZWYnKVxuICBwdWJsaWMgaW5wdXRFbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUZpbGVBdHRhY2htZW50TGFiZWxDb21wb25lbnQpXG4gIHB1YmxpYyBsYWJlbENvbXBvbmVudHM6XG4gICAgfCBRdWVyeUxpc3Q8U2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudD5cbiAgICB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXF1aXJlZCB8fFxuICAgICAgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz8gZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gICNlbnRlckV2ZW50VGFyZ2V0OiBFdmVudFRhcmdldCB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfbWF4RmlsZVNpemUgPSBNQVhfRklMRV9TSVpFX0RFRkFVTFQ7XG5cbiAgI19taW5GaWxlU2l6ZSA9IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcblxuICAjX3ZhbHVlOiBTa3lGaWxlSXRlbSB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZmlsZUF0dGFjaG1lbnRTZXJ2aWNlOiBTa3lGaWxlQXR0YWNobWVudFNlcnZpY2U7XG4gICNmaWxlSXRlbVNlcnZpY2U6IFNreUZpbGVJdGVtU2VydmljZTtcbiAgI3RoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlc1N2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICBwcm90ZWN0ZWQgbGFiZWxJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcblxuICBwcm90ZWN0ZWQgZmlsZUVycm9yTmFtZTogU2t5RmlsZUl0ZW1FcnJvclR5cGUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBmaWxlRXJyb3JQYXJhbTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgZmlsZUVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGZpbGVBdHRhY2htZW50U2VydmljZTogU2t5RmlsZUF0dGFjaG1lbnRTZXJ2aWNlLFxuICAgIGZpbGVJdGVtU2VydmljZTogU2t5RmlsZUl0ZW1TZXJ2aWNlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sPzogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZSA9IGZpbGVBdHRhY2htZW50U2VydmljZTtcbiAgICB0aGlzLiNmaWxlSXRlbVNlcnZpY2UgPSBmaWxlSXRlbVNlcnZpY2U7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSBuZ0NvbnRyb2w7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiN0aGVtZVN2Yykge1xuICAgICAgdGhpcy4jdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50VGhlbWVOYW1lID0gdGhlbWVTZXR0aW5ncy5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZTtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVGaWxlQXR0YWNobWVudEJ1dHRvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA3LlxuICAgIC8vIFdoZW4gYSBjb250cm9sIHZhbHVlIGlzIHNldCBpbml0aWFsbHksIGl0cyB2YWx1ZSBpcyBub3QgcmVwcmVzZW50ZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8vIE9mIG5vdGUgaXMgdGhlIHBhcmVudCBjaGVjayB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmb3JtIGlzIHJlYWN0aXZlLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjayB0aGVyZSBpcyBhIGNoYW5nZWQgYmVmb3JlIGNoZWNrZWQgZXJyb3JcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB7XG4gICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFRoZXJlIGlzIHNvbWUgZGlzY29ubmVjdCBiZXR3ZWVuIHRoZSBob3N0IGNvbnRyb2wgYW5kIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAgICAvLyBUaGlzIGhhbmRsZXMgdGhhdCBieSBydW5uaW5nIGNoYW5nZSBkZXRlY3Rpb24gd2hlbmV2ZXIgdGhlIGhvc3QgY29udHJvbFxuICAgICAgLy8gaGFzIGFueSBjaGFuZ2VzLiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdGhpcyBleGlzdGluZyBidWcgYW5kIHdpbGwgYmVcbiAgICAgIC8vIGFkZHJlc3NlZCBpbiBhIGZ1dHVyZSBzdG9yeSB0aGF0IHJlZmFjdG9ycyBmaWxlIGF0dGFjaG1lbnQuXG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5ldmVudHMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsQ29tcG9uZW50cykge1xuICAgICAgdGhpcy5oYXNMYWJlbENvbXBvbmVudCA9IHRoaXMubGFiZWxDb21wb25lbnRzLmxlbmd0aCA+IDA7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgIC8vIEhhbmRsZXMgdXBkYXRpbmcgY2xhc3NlcyB3aGVuIGxhYmVsIGNoYW5nZXNcbiAgICAgIHRoaXMubGFiZWxDb21wb25lbnRzLmNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChuZXdMYWJlbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50PikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNMYWJlbENvbXBvbmVudCA9IG5ld0xhYmVsQ29tcG9uZW50cy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25CdXR0b25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIG9uRHJvcENsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlRXZlbnQoZmlsZUNoYW5nZUV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8qKiBTZXQgYSB0aW1lb3V0IGhlcmUgdG8gYWxsb3cgdGhlIGJyb3dzZXIgdG8gcmVnYWluIGNvbnRleHQgZnJvbSB0aGUgc3lzdGVtIGRpYWxvZy4gV2l0aG91dCB0aGlzLCBlcnJvciBtZXNzYWdlcyBkbyBub3QgcmVhZCBvdXQgY29ycmVjdGx5IHRvIHNjcmVlbiByZWFkZXJzLiAqL1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jaGFuZGxlRmlsZXMoXG4gICAgICAgIChmaWxlQ2hhbmdlRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQpPy5maWxlcyxcbiAgICAgICk7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ0VudGVyKGRyYWdFbnRlckV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBTYXZlIHRoaXMgdGFyZ2V0IHRvIGtub3cgd2hlbiB0aGUgZHJhZyBldmVudCBsZWF2ZXNcbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gZHJhZ0VudGVyRXZlbnQudGFyZ2V0O1xuICAgIGRyYWdFbnRlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdFbnRlckV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdPdmVyKGRyYWdPdmVyRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gZHJhZ092ZXJFdmVudC5kYXRhVHJhbnNmZXI7XG5cbiAgICBkcmFnT3ZlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdPdmVyRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgaWYgKHRyYW5zZmVyLml0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbSh0cmFuc2Zlci5pdGVtcyk7XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmlsZS50eXBlICYmXG4gICAgICAgICAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuZmlsZVR5cGVSZWplY3RlZChcbiAgICAgICAgICAgICAgZmlsZS50eXBlLFxuICAgICAgICAgICAgICB0aGlzLmFjY2VwdGVkVHlwZXMsXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwICYmICF0aGlzLmFjY2VwdGVkT3Zlcikge1xuICAgICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRyYW5zZmVyLmZpbGVzKSB7XG4gICAgICAgIC8vIElmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgRGF0YVRyYW5zZmVyLml0ZW1zLFxuICAgICAgICAvLyBkZWZlciBmaWxlLXR5cGUgY2hlY2tpbmcgdG8gZHJvcCBoYW5kbGVyLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRGF0YVRyYW5zZmVyL2l0ZW1zI0Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVEcm9wKGRyb3BFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gICAgZHJvcEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyb3BFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy4jZW50ZXJFdmVudFRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG5cbiAgICBpZiAoZHJvcEV2ZW50LmRhdGFUcmFuc2ZlciAmJiBkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKSB7XG4gICAgICBpZiAoZHJvcEV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuaGFzRGlyZWN0b3J5KGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNoYW5kbGVGaWxlcyhkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdMZWF2ZShkcmFnTGVhdmVFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPT09IGRyYWdMZWF2ZUV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUZpbGVBdHRhY2htZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVOYW1lID0gdGhpcy52YWx1ZT8uZmlsZS5uYW1lO1xuICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudCh0aGlzLnZhbHVlKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBzYWZldHkgY2hlY2sgKi9cbiAgICBpZiAoZmlsZU5hbWUpIHtcbiAgICAgIHRoaXMuI2Fubm91bmNlU3RhdGUoXG4gICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZW1vdmVkJyxcbiAgICAgICAgZmlsZU5hbWUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgV2hldGhlciB0aGUgY29udHJvbCBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuZmlsZUNsaWNrLmVtaXQoe1xuICAgICAgICBmaWxlOiB0aGlzLnZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2Fubm91bmNlU3RhdGUocmVzb3VyY2VTdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgIC5nZXRTdHJpbmcocmVzb3VyY2VTdHJpbmcsIC4uLmFyZ3MpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoaW50ZXJuYXRpb25hbGl6ZWRTdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShpbnRlcm5hdGlvbmFsaXplZFN0cmluZyk7XG4gICAgICB9KTtcbiAgfVxuXG4gICNlbWl0RmlsZUNoYW5nZUV2ZW50KGN1cnJlbnRGaWxlPzogU2t5RmlsZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoY3VycmVudEZpbGUgJiYgIWN1cnJlbnRGaWxlLmVycm9yVHlwZSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKGN1cnJlbnRGaWxlKTtcbiAgICAgIHRoaXMuZmlsZUVycm9yTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZmlsZUVycm9yUGFyYW0gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmZpbGVFcnJvclZhbGlkYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgLy8gTWFrZXMgc3VyZSB2YWx1ZSBhY2Nlc3NvciBpcyBtYXJrZWQgYXMgZGlydHkgZXZlbiBpZiBjdXJyZW50IGZpbGUgaXMgdW5kZWZpbmVkXG4gICAgICB0aGlzLiNvbkNoYW5nZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5maWxlRXJyb3JWYWxpZGF0aW9uID0geyBmaWxlRXJyb3I6IHRydWUgfTtcbiAgICAgIHRoaXMuZmlsZUVycm9yTmFtZSA9IGN1cnJlbnRGaWxlPy5lcnJvclR5cGU7XG4gICAgICB0aGlzLmZpbGVFcnJvclBhcmFtID0gY3VycmVudEZpbGU/LmVycm9yUGFyYW07XG4gICAgfVxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHtcbiAgICAgIGZpbGU6IGN1cnJlbnRGaWxlLFxuICAgIH0gYXMgU2t5RmlsZUF0dGFjaG1lbnRDaGFuZ2UpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jICNsb2FkRmlsZShmaWxlOiBTa3lGaWxlSXRlbSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChmaWxlLmZpbGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRmlsZU5hbWUgPSB0aGlzLnZhbHVlPy5maWxlLm5hbWU7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzRmlsZU5hbWUpIHtcbiAgICAgICAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9maWxlX3JlcGxhY2VkJyxcbiAgICAgICAgICAgIHByZXZpb3VzRmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlLmZpbGUubmFtZSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2Fubm91bmNlU3RhdGUoXG4gICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfYWRkZWQnLFxuICAgICAgICAgICAgZmlsZS5maWxlLm5hbWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbGUudXJsID0gYXdhaXQgdGhpcy4jZmlsZVJlYWRlclN2Yy5yZWFkQXNEYXRhVVJMKGZpbGUuZmlsZSk7XG5cbiAgICAgICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudChmaWxlKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aGlzLiNlbWl0RmlsZUNoYW5nZUV2ZW50KGZpbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVGaWxlcyhmaWxlTGlzdD86IEZpbGVMaXN0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChmaWxlTGlzdCkge1xuICAgICAgY29uc3QgZmlsZXM6IFNreUZpbGVJdGVtW10gPSBbXTtcblxuICAgICAgaWYgKCdpdGVtJyBpbiBmaWxlTGlzdCkge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlsZUxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgZmlsZXMucHVzaCh7XG4gICAgICAgICAgICBmaWxlOiBmaWxlTGlzdC5pdGVtKGluZGV4KSxcbiAgICAgICAgICB9IGFzIFNreUZpbGVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9jZXNzZWRGaWxlcyA9IHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5jaGVja0ZpbGVzKFxuICAgICAgICBmaWxlcyxcbiAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5hY2NlcHRlZFR5cGVzLFxuICAgICAgICB0aGlzLnZhbGlkYXRlRm4sXG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcHJvY2Vzc2VkRmlsZXMpIHtcbiAgICAgICAgaWYgKGZpbGUuZXJyb3JUeXBlKSB7XG4gICAgICAgICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2b2lkIHRoaXMuI2xvYWRGaWxlKGZpbGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3NldEZpbGVOYW1lKGZpbGU/OiBTa3lGaWxlSXRlbSk6IHZvaWQge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCBkcm9wTmFtZSA9XG4gICAgICAgIHRoaXMuI2ZpbGVJdGVtU2VydmljZS5pc0ZpbGUoZmlsZSkgJiYgZmlsZS5maWxlLm5hbWVcbiAgICAgICAgICA/IGZpbGUuZmlsZS5uYW1lXG4gICAgICAgICAgOiBmaWxlLnVybDtcblxuICAgICAgdGhpcy5maWxlTmFtZSA9IGRyb3BOYW1lO1xuXG4gICAgICBpZiAoZHJvcE5hbWUubGVuZ3RoID4gMjYpIHtcbiAgICAgICAgdGhpcy50cnVuY2F0ZWRGaWxlTmFtZSA9IGRyb3BOYW1lLnNsaWNlKDAsIDI2KSArICcuLi4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50cnVuY2F0ZWRGaWxlTmFtZSA9IGRyb3BOYW1lO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gJyc7XG4gICAgICB0aGlzLnRydW5jYXRlZEZpbGVOYW1lID0gJyc7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUZpbGVBdHRhY2htZW50QnV0dG9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0ZpbGVBdHRhY2htZW50QnV0dG9uID0gIShcbiAgICAgIHRoaXMudmFsdWUgJiYgdGhpcy5jdXJyZW50VGhlbWVOYW1lID09PSAnbW9kZXJuJ1xuICAgICk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNvbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHtcbiAgICByZXR1cm47XG4gIH07XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICNvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtd3JhcHBlclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LWxhYmVsLXdyYXBwZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6XG4gICAgICAgICFsYWJlbFRleHQgJiYgaXNSZXF1aXJlZCAmJiBoYXNMYWJlbENvbXBvbmVudFxuICAgIH1cIlxuICA+XG4gICAgQGlmIChsYWJlbFRleHQpIHtcbiAgICAgIEBpZiAoIWxhYmVsSGlkZGVuKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgW2F0dHIuaWRdPVwibGFiZWxJZFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogaXNSZXF1aXJlZFxuICAgICAgICAgIH1cIlxuICAgICAgICAgID57eyBsYWJlbFRleHQgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZpbGUtYXR0YWNobWVudC1sYWJlbFwiIC8+XG4gICAgfVxuICAgIEBpZiAoaXNSZXF1aXJlZCAmJiAoaGFzTGFiZWxDb21wb25lbnQgfHwgbGFiZWxUZXh0KSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgIH19PC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKGxhYmVsVGV4dCAmJiAoaGVscFBvcG92ZXJDb250ZW50IHx8IGhlbHBLZXkpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+XG4gICAgICAgIDxza3ktaGVscC1pbmxpbmVcbiAgICAgICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LXVwbG9hZCBza3ktZmlsZS1hdHRhY2htZW50IHNreS1maWxlLWF0dGFjaG1lbnQtdGFyZ2V0XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWZpbGUtYXR0YWNobWVudC1hY2NlcHQnOiBhY2NlcHRlZE92ZXIsXG4gICAgICAnc2t5LWZpbGUtYXR0YWNobWVudC1yZWplY3QnOiByZWplY3RlZE92ZXJcbiAgICB9XCJcbiAgICAoZHJhZ2VudGVyKT1cImZpbGVEcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgKGRyYWdvdmVyKT1cImZpbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cImZpbGVEcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwiZmlsZURyb3AoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjZmlsZURyb3BEZXNjcmlwdGlvblJlZj1cInNreUlkXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIlxuICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgc2t5SWRcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2RyYWdfb3JfY2xpY2snIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9kaXY+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0UmVmXG4gICAgICBoaWRkZW5cbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdGVkVHlwZXMgfHwgbnVsbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIlxuICAgICAgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICBAaWYgKHNob3dGaWxlQXR0YWNobWVudEJ1dHRvbikge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtYnRuIHNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiXG4gICAgICAgICAgaGludFRleHQgJiYgaGludFRleHRFbC5pZFxuICAgICAgICAgICAgfCBza3lGaWxlQXR0YWNobWVudEpvaW5JZHM6IGZpbGVEcm9wRGVzY3JpcHRpb25SZWYuaWRcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgIGF0dGFjaEJ1dHRvbkxhYmVsUmVmLmlkXG4gICAgICAgICAgICB8IHNreUZpbGVBdHRhY2htZW50Sm9pbklkc1xuICAgICAgICAgICAgICA6IChsYWJlbFRleHRcbiAgICAgICAgICAgICAgICAgID8gbGFiZWxJZFxuICAgICAgICAgICAgICAgICAgOiBsYWJlbENvbXBvbmVudHM/LmdldCgwKT8ubGFiZWxDb250ZW50SWQ/LmlkKVxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISEobmdDb250cm9sPy5lcnJvcnMgPz8gZmlsZUVycm9yVmFsaWRhdGlvbilcIlxuICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgICAhIShuZ0NvbnRyb2w/LmVycm9ycyA/PyBmaWxlRXJyb3JWYWxpZGF0aW9uKSA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgICAgXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRHJvcENsaWNrZWQoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQnV0dG9uQmx1cigpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiZm9sZGVyLW9wZW5cIiAvPlxuICAgICAgICB7e1xuICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICA/ICgnc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9yZXBsYWNlX2ZpbGUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgOiAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfY2hvb3NlX2ZpbGUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBpZiAodmFsdWUgJiYgIWlzSW1hZ2UgJiYgY3VycmVudFRoZW1lTmFtZSA9PT0gJ21vZGVybicpIHtcbiAgICAgIDxza3ktaWNvblxuICAgICAgICBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtaWNvblwiXG4gICAgICAgIGljb25OYW1lPVwiZG9jdW1lbnRcIlxuICAgICAgICBpY29uU2l6ZT1cInhsXCJcbiAgICAgIC8+XG4gICAgfVxuICAgIEBpZiAodmFsdWUgfHwgY3VycmVudFRoZW1lTmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNreS1maWxlLWF0dGFjaG1lbnQtZmlsZS1saW5rXCI+XG4gICAgICAgIEBpZiAodmFsdWUpIHtcbiAgICAgICAgICA8YSBbYXR0ci50aXRsZV09XCJmaWxlTmFtZVwiIChjbGljayk9XCJlbWl0Q2xpY2soKVwiPlxuICAgICAgICAgICAge3sgdHJ1bmNhdGVkRmlsZU5hbWUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWZpbGUtYXR0YWNobWVudC1ub25lIHNreS1mb250LWRlZW1waGFzaXplZFwiPlxuICAgICAgICAgICAge3sgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9sYWJlbF9ub19maWxlX2Nob3NlbicgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICBAaWYgKHZhbHVlKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktZmlsZS1hdHRhY2htZW50LWRlbGV0ZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgZGVsZXRlQnV0dG9uTGFiZWxSZWYuaWRcbiAgICAgICAgICAgIHwgc2t5RmlsZUF0dGFjaG1lbnRKb2luSWRzXG4gICAgICAgICAgICAgIDogKGxhYmVsVGV4dFxuICAgICAgICAgICAgICAgICAgPyBsYWJlbElkXG4gICAgICAgICAgICAgICAgICA6IGxhYmVsQ29tcG9uZW50cz8uZ2V0KDApPy5sYWJlbENvbnRlbnRJZD8uaWQpXG4gICAgICAgIFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlQXR0YWNobWVudCgpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiZGVsZXRlXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmICh2YWx1ZSAmJiBpc0ltYWdlKSB7XG4gICAgPGltZ1xuICAgICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LXByZXZpZXctaW1nXCJcbiAgICAgIFthbHRdPVwiXG4gICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW1hZ2VfcHJldmlld19hbHRfdGV4dCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgXCJcbiAgICAgIFtzcmNdPVwidmFsdWUudXJsXCJcbiAgICAvPlxuICB9XG48L2Rpdj5cbjxkaXYgI2hpbnRUZXh0RWw9XCJza3lJZFwiIHNreUlkPlxuICBAaWYgKGhpbnRUZXh0KSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktZmlsZS1hdHRhY2htZW50LWhpbnQtdGV4dFwiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktZm9udC1kZWVtcGhhc2l6ZWQnOiAnZGVmYXVsdCcsXG4gICAgICAgICdza3ktZm9udC1oaW50LXRleHQtcyc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICA+XG4gICAgICB7eyBoaW50VGV4dCB9fVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPHNreS1mb3JtLWVycm9yc1xuICBbaWRdPVwiZXJyb3JJZFwiXG4gIFtlcnJvcnNdPVwibmdDb250cm9sPy5lcnJvcnNcIlxuICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gIFt0b3VjaGVkXT1cIm5nQ29udHJvbD8udG91Y2hlZFwiXG4gIFtkaXJ0eV09XCJuZ0NvbnRyb2w/LmRpcnR5XCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZvcm0tZXJyb3JcIiAvPlxuICBAaWYgKG5nQ29udHJvbD8udG91Y2hlZCkge1xuICAgIEBpZiAoZmlsZUVycm9yTmFtZSA9PT0gJ2ZpbGVUeXBlJykge1xuICAgICAgPHNreS1mb3JtLWVycm9yXG4gICAgICAgIGVycm9yTmFtZT1cImZpbGVUeXBlXCJcbiAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICBhY2NlcHRlZFR5cGVzRXJyb3JNZXNzYWdlID8/XG4gICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdHlwZV9lcnJvcl9sYWJlbF90ZXh0J1xuICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGZpbGVFcnJvclBhcmFtXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH0gQGVsc2UgaWYgKGZpbGVFcnJvck5hbWUgPT09ICdtYXhGaWxlU2l6ZScpIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJtYXhGaWxlU2l6ZVwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9tYXhfZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogKGZpbGVFcnJvclBhcmFtIHwgc2t5RmlsZVNpemUpXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH0gQGVsc2UgaWYgKGZpbGVFcnJvck5hbWUgPT09ICdtaW5GaWxlU2l6ZScpIHtcbiAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICBlcnJvck5hbWU9XCJtaW5GaWxlU2l6ZVwiXG4gICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9taW5fZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogKGZpbGVFcnJvclBhcmFtIHwgc2t5RmlsZVNpemUpXG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIH1cbiAgfVxuPC9za3ktZm9ybS1lcnJvcnM+XG5cbjxzcGFuXG4gICNhdHRhY2hCdXR0b25MYWJlbFJlZj1cInNreUlkXCJcbiAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgc2t5SWRcbj5cbiAge3tcbiAgICB2YWx1ZVxuICAgICAgPyAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9idXR0b25fbGFiZWxfcmVwbGFjZV9maWxlX2xhYmVsJ1xuICAgICAgICB8IHNreUxpYlJlc291cmNlczogZmlsZU5hbWUpXG4gICAgICA6ICgnc2t5dXhfZmlsZV9hdHRhY2htZW50X2J1dHRvbl9sYWJlbF9jaG9vc2VfZmlsZV9sYWJlbCdcbiAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMpXG4gIH19XG48L3NwYW4+XG5cbjxzcGFuXG4gICNkZWxldGVCdXR0b25MYWJlbFJlZj1cInNreUlkXCJcbiAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgc2t5SWRcbj5cbiAge3sgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX2l0ZW1fcmVtb3ZlJyB8IHNreUxpYlJlc291cmNlczogZmlsZU5hbWUgfX1cbjwvc3Bhbj5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyFormErrorModule } from '../../form-error/form-error.module';\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentComponent } from './file-attachment.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyFileAttachmentModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentModule, imports: [SkyFileAttachmentComponent, SkyFileAttachmentLabelComponent], exports: [SkyFileAttachmentComponent,\n SkyFileAttachmentLabelComponent,\n SkyFormErrorModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentModule, imports: [SkyFileAttachmentComponent, SkyFileAttachmentLabelComponent, SkyFormErrorModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n SkyFileAttachmentComponent,\n SkyFileAttachmentLabelComponent,\n SkyFormErrorModule,\n ],\n imports: [SkyFileAttachmentComponent, SkyFileAttachmentLabelComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBVXpFLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLFlBRnhCLDBCQUEwQixFQUFFLCtCQUErQixhQUpuRSwwQkFBMEI7WUFDMUIsK0JBQStCO1lBQy9CLGtCQUFrQjsrR0FJVCx1QkFBdUIsWUFGeEIsMEJBQTBCLEVBQUUsK0JBQStCLEVBRm5FLGtCQUFrQjs7MkZBSVQsdUJBQXVCO2tCQVJuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLCtCQUErQjt3QkFDL0Isa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwrQkFBK0IsQ0FBQztpQkFDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtcbiAgICBTa3lGaWxlQXR0YWNobWVudENvbXBvbmVudCxcbiAgICBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50LFxuICAgIFNreUZvcm1FcnJvck1vZHVsZSxcbiAgXSxcbiAgaW1wb3J0czogW1NreUZpbGVBdHRhY2htZW50Q29tcG9uZW50LCBTa3lGaWxlQXR0YWNobWVudExhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmlsZUF0dGFjaG1lbnRNb2R1bGUge31cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyInputBoxHostService {\n constructor() {\n this.#requiredSubject = new BehaviorSubject(false);\n this.required = this.#requiredSubject.asObservable();\n }\n #host;\n #requiredSubject;\n get controlId() {\n return this.#host?.controlId ?? '';\n }\n get labelId() {\n return this.#host?.labelText ? this.#host.labelId : '';\n }\n get labelText() {\n return this.#host?.labelText ?? '';\n }\n get ariaDescribedBy() {\n return this.#ariaDescribedBy;\n }\n #ariaDescribedBy;\n init(host) {\n this.#host = host;\n this.#ariaDescribedBy = host.ariaDescribedBy.asObservable();\n }\n ngOnDestroy() {\n this.#requiredSubject.complete();\n }\n populate(args) {\n if (!this.#host) {\n throw new Error('Cannot populate the input box because `SkyInputBoxHostService` has not yet been initialized. Try running the `populate` method within an Angular lifecycle hook, such as `ngOnInit`.');\n }\n this.#host.populate(args);\n }\n setHintText(hintText) {\n if (!this.#host) {\n throw new Error('Cannot set hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.');\n }\n this.#host.setHostHintText(hintText);\n }\n setHintTextHidden(hide) {\n if (!this.#host) {\n throw new Error('Cannot hide hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.');\n }\n this.#host.setHintTextHidden(hide);\n }\n setHintTextScreenReaderOnly(hide) {\n if (!this.#host) {\n throw new Error('Cannot remove hint text on the input box because `SkyInputBoxHostService` has not yet been initialized.');\n }\n this.#host.setHintTextScreenReaderOnly(hide);\n }\n /**\n * Set required so that input box displays the label correctly. When the input is supplied by the consumer it is a content\n * child that input box can read required from and this is unnecessary. When the input is supplied internally by the\n * component the input box does not have a ref to it, so the component needs to inform the input box of its required state.\n */\n setRequired(required) {\n this.#requiredSubject.next(required);\n }\n /**\n * Whether the focused element is inside the input box.\n * @internal\n */\n focusIsInInput(el) {\n if (!this.#host) {\n throw new Error('Cannot get whether the focus is in the input box because `SkyInputBoxHostService` has not yet been initialized.');\n }\n return this.#host.containsElement(el);\n }\n /**\n * Returns an html element that is inside the input box.\n * @internal\n */\n queryHost(query) {\n if (!this.#host) {\n throw new Error('Cannot query input box host because `SkyInputBoxHostService` has not yet been initialized.');\n }\n return this.#host.queryPopulatedElement(query);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHostService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHostService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LWhvc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1ob3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUtuRDs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFHRSxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVoRCxhQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0tBdUd4RDtJQTFHQyxLQUFLLENBQW1DO0lBQ3hDLGdCQUFnQixDQUF1QztJQUl2RCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQTZDO0lBRXRELElBQUksQ0FBQyxJQUEwQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUE2QjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0xBQXNMLENBQ3ZMLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUE0QjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0dBQXNHLENBQ3ZHLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQWE7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLHVHQUF1RyxDQUN4RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLDJCQUEyQixDQUFDLElBQWE7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLHlHQUF5RyxDQUMxRyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsUUFBaUI7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUFDLEVBQWU7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLGlIQUFpSCxDQUNsSCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RkFBNEYsQ0FDN0YsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0ExR1Usc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzIH0gZnJvbSAnLi9pbnB1dC1ib3gtcG9wdWxhdGUtYXJncyc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYm94LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgI2hvc3Q6IFNreUlucHV0Qm94Q29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjcmVxdWlyZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlcXVpcmVkID0gdGhpcy4jcmVxdWlyZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHB1YmxpYyBnZXQgY29udHJvbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2hvc3Q/LmNvbnRyb2xJZCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWxJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNob3N0Py5sYWJlbFRleHQgPyB0aGlzLiNob3N0LmxhYmVsSWQgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2hvc3Q/LmxhYmVsVGV4dCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYURlc2NyaWJlZEJ5KCk6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2FyaWFEZXNjcmliZWRCeTtcbiAgfVxuXG4gICNhcmlhRGVzY3JpYmVkQnk6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaW5pdChob3N0OiBTa3lJbnB1dEJveENvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuI2hvc3QgPSBob3N0O1xuICAgIHRoaXMuI2FyaWFEZXNjcmliZWRCeSA9IGhvc3QuYXJpYURlc2NyaWJlZEJ5LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlcXVpcmVkU3ViamVjdC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlKGFyZ3M6IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNob3N0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgcG9wdWxhdGUgdGhlIGlucHV0IGJveCBiZWNhdXNlIGBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlYCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLiBUcnkgcnVubmluZyB0aGUgYHBvcHVsYXRlYCBtZXRob2Qgd2l0aGluIGFuIEFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2ssIHN1Y2ggYXMgYG5nT25Jbml0YC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNob3N0LnBvcHVsYXRlKGFyZ3MpO1xuICB9XG5cbiAgcHVibGljIHNldEhpbnRUZXh0KGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI2hvc3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBzZXQgaGludCB0ZXh0IG9uIHRoZSBpbnB1dCBib3ggYmVjYXVzZSBgU2t5SW5wdXRCb3hIb3N0U2VydmljZWAgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNob3N0LnNldEhvc3RIaW50VGV4dChoaW50VGV4dCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SGludFRleHRIaWRkZW4oaGlkZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy4jaG9zdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IGhpZGUgaGludCB0ZXh0IG9uIHRoZSBpbnB1dCBib3ggYmVjYXVzZSBgU2t5SW5wdXRCb3hIb3N0U2VydmljZWAgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNob3N0LnNldEhpbnRUZXh0SGlkZGVuKGhpZGUpO1xuICB9XG5cbiAgcHVibGljIHNldEhpbnRUZXh0U2NyZWVuUmVhZGVyT25seShoaWRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNob3N0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgcmVtb3ZlIGhpbnQgdGV4dCBvbiB0aGUgaW5wdXQgYm94IGJlY2F1c2UgYFNreUlucHV0Qm94SG9zdFNlcnZpY2VgIGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy4jaG9zdC5zZXRIaW50VGV4dFNjcmVlblJlYWRlck9ubHkoaGlkZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHJlcXVpcmVkIHNvIHRoYXQgaW5wdXQgYm94IGRpc3BsYXlzIHRoZSBsYWJlbCBjb3JyZWN0bHkuIFdoZW4gdGhlIGlucHV0IGlzIHN1cHBsaWVkIGJ5IHRoZSBjb25zdW1lciBpdCBpcyBhIGNvbnRlbnRcbiAgICogY2hpbGQgdGhhdCBpbnB1dCBib3ggY2FuIHJlYWQgcmVxdWlyZWQgZnJvbSBhbmQgdGhpcyBpcyB1bm5lY2Vzc2FyeS4gV2hlbiB0aGUgaW5wdXQgaXMgc3VwcGxpZWQgaW50ZXJuYWxseSBieSB0aGVcbiAgICogY29tcG9uZW50IHRoZSBpbnB1dCBib3ggZG9lcyBub3QgaGF2ZSBhIHJlZiB0byBpdCwgc28gdGhlIGNvbXBvbmVudCBuZWVkcyB0byBpbmZvcm0gdGhlIGlucHV0IGJveCBvZiBpdHMgcmVxdWlyZWQgc3RhdGUuXG4gICAqL1xuICBwdWJsaWMgc2V0UmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNyZXF1aXJlZFN1YmplY3QubmV4dChyZXF1aXJlZCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZm9jdXNlZCBlbGVtZW50IGlzIGluc2lkZSB0aGUgaW5wdXQgYm94LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb2N1c0lzSW5JbnB1dChlbDogRXZlbnRUYXJnZXQpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuI2hvc3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBnZXQgd2hldGhlciB0aGUgZm9jdXMgaXMgaW4gdGhlIGlucHV0IGJveCBiZWNhdXNlIGBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlYCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLicsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy4jaG9zdC5jb250YWluc0VsZW1lbnQoZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaHRtbCBlbGVtZW50IHRoYXQgaXMgaW5zaWRlIHRoZSBpbnB1dCBib3guXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHF1ZXJ5SG9zdChxdWVyeTogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy4jaG9zdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHF1ZXJ5IGlucHV0IGJveCBob3N0IGJlY2F1c2UgYFNreUlucHV0Qm94SG9zdFNlcnZpY2VgIGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLiNob3N0LnF1ZXJ5UG9wdWxhdGVkRWxlbWVudChxdWVyeSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, HostBinding, Input, inject } from '@angular/core';\nimport { SkyInputBoxHostService } from './input-box-host.service';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyInputBoxControlDirective {\n set autocomplete(value) {\n this.#_autocomplete = value;\n }\n get autocomplete() {\n return this.#_autocomplete || (this.#hostSvc ? 'off' : undefined);\n }\n #_autocomplete;\n #hostSvc = inject(SkyInputBoxHostService, { optional: true });\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyInputBoxControlDirective, isStandalone: true, selector: \"input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)\", inputs: { autocomplete: \"autocomplete\" }, host: { properties: { \"autocomplete\": \"this.autocomplete\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxControlDirective, decorators: [{\n type: Directive,\n args: [{\n selector: \n // eslint-disable-next-line @angular-eslint/directive-selector\n 'input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)',\n standalone: true,\n }]\n }], propDecorators: { autocomplete: [{\n type: HostBinding,\n args: ['autocomplete']\n }, {\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LWNvbnRyb2wuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRWxFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxJQUVXLFlBQVksQ0FBQyxLQUF5QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBcUI7SUFDbkMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDOzhHQVpuRCwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFOdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRO29CQUNOLDhEQUE4RDtvQkFDOUQsbUlBQW1JO29CQUNySSxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBSVksWUFBWTtzQkFGdEIsV0FBVzt1QkFBQyxjQUFjOztzQkFDMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJy4vaW5wdXQtYm94LWhvc3Quc2VydmljZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjpcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgICdpbnB1dDpub3QoW3NreUlkXSk6bm90KC5za3ktZm9ybS1jb250cm9sKSxzZWxlY3Q6bm90KFtza3lJZF0pOm5vdCguc2t5LWZvcm0tY29udHJvbCksdGV4dGFyZWE6bm90KFtza3lJZF0pOm5vdCguc2t5LWZvcm0tY29udHJvbCknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJbnB1dEJveENvbnRyb2xEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXV0b2NvbXBsZXRlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXV0b2NvbXBsZXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9jb21wbGV0ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXV0b2NvbXBsZXRlIHx8ICh0aGlzLiNob3N0U3ZjID8gJ29mZicgOiB1bmRlZmluZWQpO1xuICB9XG5cbiAgI19hdXRvY29tcGxldGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2hvc3RTdmMgPSBpbmplY3QoU2t5SW5wdXRCb3hIb3N0U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyInputBoxHintTextPipe {\n transform(hintText, hostHintText) {\n if (hintText && hostHintText) {\n return `${hintText} ${hostHintText}`;\n }\n return hintText || hostHintText;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHintTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHintTextPipe, isStandalone: true, name: \"skyInputBoxHintText\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxHintTextPipe, decorators: [{\n type: Pipe,\n args: [{\n standalone: true,\n name: 'skyInputBoxHintText',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LWhpbnQtdGV4dC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LWhpbnQtdGV4dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUVwRDs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsU0FBUyxDQUNkLFFBQWlCLEVBQ2pCLFlBQXFCO1FBRXJCLElBQUksUUFBUSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQzdCLE9BQU8sR0FBRyxRQUFRLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sUUFBUSxJQUFJLFlBQVksQ0FBQztJQUNsQyxDQUFDOzhHQVZVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxJQUFJO21CQUFDO29CQUNKLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBuYW1lOiAnc2t5SW5wdXRCb3hIaW50VGV4dCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUlucHV0Qm94SGludFRleHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgaGludFRleHQ/OiBzdHJpbmcsXG4gICAgaG9zdEhpbnRUZXh0Pzogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChoaW50VGV4dCAmJiBob3N0SGludFRleHQpIHtcbiAgICAgIHJldHVybiBgJHtoaW50VGV4dH0gJHtob3N0SGludFRleHR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gaGludFRleHQgfHwgaG9zdEhpbnRUZXh0O1xuICB9XG59XG4iXX0=","import { Injectable, RendererFactory2, inject, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst ARIA_DESCRIBEDBY_ATTR = 'aria-describedby';\n/**\n * @internal\n */\nexport class SkyInputBoxAdapterService {\n #renderer = inject(RendererFactory2).createRenderer(undefined, null);\n /**\n * Returns whether the provided input box contains the focus event target.\n */\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n containsElement(inputRef, el) {\n return inputRef.nativeElement.contains(el);\n }\n focusControl(elRef) {\n const control = elRef.nativeElement.querySelector('.sky-form-control');\n /* istanbul ignore else */\n if (control) {\n control.focus();\n }\n }\n /**\n * Returns the inline help element.\n */\n getInlineHelpElement(elRef) {\n return elRef.nativeElement.querySelector('.sky-control-help');\n }\n /**\n * Returns true if the provided element contains the focused element.\n */\n isFocusInElement(el) {\n if (el) {\n return (el === document.activeElement || el.contains(document.activeElement));\n }\n return false;\n }\n updateDescribedBy(inputRef, hintTextId, hintText) {\n const inputEl = inputRef.nativeElement;\n const describedByIds = inputEl\n .getAttribute(ARIA_DESCRIBEDBY_ATTR)\n ?.split(' ')\n .map((id) => id.trim()) ?? [];\n const hintTextIdIndex = describedByIds.indexOf(hintTextId);\n const previousCount = describedByIds.length;\n if (hintText && hintTextIdIndex < 0) {\n describedByIds.push(hintTextId);\n }\n else if (!hintText && hintTextIdIndex >= 0) {\n describedByIds.splice(hintTextIdIndex, 1);\n }\n if (describedByIds.length !== previousCount) {\n this.#setDescribedByIds(inputEl, describedByIds);\n }\n }\n /**\n * Queries the provided input box with the query string.\n */\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n queryElement(inputRef, query) {\n return inputRef.nativeElement.querySelector(query);\n }\n #setDescribedByIds(inputEl, describedByIds) {\n if (describedByIds.length === 0) {\n this.#renderer.removeAttribute(inputEl, ARIA_DESCRIBEDBY_ATTR);\n }\n else {\n this.#renderer.setAttribute(inputEl, ARIA_DESCRIBEDBY_ATTR, describedByIds.join(' '));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxAdapterService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxAdapterService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUV2QixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyRTs7T0FFRztJQUNILDhGQUE4RjtJQUN2RixlQUFlLENBQUMsUUFBb0IsRUFBRSxFQUFlO1FBQzFELE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFpQjtRQUNuQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZFLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0IsQ0FBQyxLQUFpQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBZTtRQUNyQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUNMLEVBQUUsS0FBSyxRQUFRLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGlCQUFpQixDQUN0QixRQUFvQixFQUNwQixVQUFrQixFQUNsQixRQUE0QjtRQUU1QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBNEIsQ0FBQztRQUV0RCxNQUFNLGNBQWMsR0FDbEIsT0FBTzthQUNKLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztZQUNwQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDWCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVsQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFFNUMsSUFBSSxRQUFRLElBQUksZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksQ0FBQyxRQUFRLElBQUksZUFBZSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLGNBQWMsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsOEZBQThGO0lBQ3ZGLFlBQVksQ0FBQyxRQUFvQixFQUFFLEtBQWE7UUFDckQsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBb0IsRUFBRSxjQUF3QjtRQUMvRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDekIsT0FBTyxFQUNQLHFCQUFxQixFQUNyQixjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUN6QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBbkZVLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgQVJJQV9ERVNDUklCRURCWV9BVFRSID0gJ2FyaWEtZGVzY3JpYmVkYnknO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5SW5wdXRCb3hBZGFwdGVyU2VydmljZSB7XG4gICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGlucHV0IGJveCBjb250YWlucyB0aGUgZm9jdXMgZXZlbnQgdGFyZ2V0LlxuICAgKi9cbiAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaWYgbm8gbG9uZ2VyIG5lZWRlZCBhZnRlciBhIHNjYWxhYmxlIGZvY3VzIG1vbml0b3Igc2VydmljZSBpcyBpbXBsZW1lbnRlZFxuICBwdWJsaWMgY29udGFpbnNFbGVtZW50KGlucHV0UmVmOiBFbGVtZW50UmVmLCBlbDogRXZlbnRUYXJnZXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaW5wdXRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhlbCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNDb250cm9sKGVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1mb3JtLWNvbnRyb2wnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb250cm9sLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGlubGluZSBoZWxwIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0SW5saW5lSGVscEVsZW1lbnQoZWxSZWY6IEVsZW1lbnRSZWYpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1jb250cm9sLWhlbHAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIGVsZW1lbnQgY29udGFpbnMgdGhlIGZvY3VzZWQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBpc0ZvY3VzSW5FbGVtZW50KGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmIChlbCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZWwgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgZWwuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEZXNjcmliZWRCeShcbiAgICBpbnB1dFJlZjogRWxlbWVudFJlZixcbiAgICBoaW50VGV4dElkOiBzdHJpbmcsXG4gICAgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbCA9IGlucHV0UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9XG4gICAgICBpbnB1dEVsXG4gICAgICAgIC5nZXRBdHRyaWJ1dGUoQVJJQV9ERVNDUklCRURCWV9BVFRSKVxuICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgLm1hcCgoaWQpID0+IGlkLnRyaW0oKSkgPz8gW107XG5cbiAgICBjb25zdCBoaW50VGV4dElkSW5kZXggPSBkZXNjcmliZWRCeUlkcy5pbmRleE9mKGhpbnRUZXh0SWQpO1xuICAgIGNvbnN0IHByZXZpb3VzQ291bnQgPSBkZXNjcmliZWRCeUlkcy5sZW5ndGg7XG5cbiAgICBpZiAoaGludFRleHQgJiYgaGludFRleHRJZEluZGV4IDwgMCkge1xuICAgICAgZGVzY3JpYmVkQnlJZHMucHVzaChoaW50VGV4dElkKTtcbiAgICB9IGVsc2UgaWYgKCFoaW50VGV4dCAmJiBoaW50VGV4dElkSW5kZXggPj0gMCkge1xuICAgICAgZGVzY3JpYmVkQnlJZHMuc3BsaWNlKGhpbnRUZXh0SWRJbmRleCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaWJlZEJ5SWRzLmxlbmd0aCAhPT0gcHJldmlvdXNDb3VudCkge1xuICAgICAgdGhpcy4jc2V0RGVzY3JpYmVkQnlJZHMoaW5wdXRFbCwgZGVzY3JpYmVkQnlJZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyaWVzIHRoZSBwcm92aWRlZCBpbnB1dCBib3ggd2l0aCB0aGUgcXVlcnkgc3RyaW5nLlxuICAgKi9cbiAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaWYgbm8gbG9uZ2VyIG5lZWRlZCBhZnRlciBhIHNjYWxhYmxlIGZvY3VzIG1vbml0b3Igc2VydmljZSBpcyBpbXBsZW1lbnRlZFxuICBwdWJsaWMgcXVlcnlFbGVtZW50KGlucHV0UmVmOiBFbGVtZW50UmVmLCBxdWVyeTogc3RyaW5nKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiBpbnB1dFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IocXVlcnkpO1xuICB9XG5cbiAgI3NldERlc2NyaWJlZEJ5SWRzKGlucHV0RWw6IEhUTUxFbGVtZW50LCBkZXNjcmliZWRCeUlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoZGVzY3JpYmVkQnlJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoaW5wdXRFbCwgQVJJQV9ERVNDUklCRURCWV9BVFRSKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICBpbnB1dEVsLFxuICAgICAgICBBUklBX0RFU0NSSUJFREJZX0FUVFIsXG4gICAgICAgIGRlc2NyaWJlZEJ5SWRzLmpvaW4oJyAnKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { coerceBooleanProperty, coerceNumberProperty, } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, Input, Renderer2, ViewEncapsulation, inject, } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgModel, Validators, } from '@angular/forms';\nimport { SkyContentInfoProvider, SkyIdService } from '@skyux/core';\nimport { ReplaySubject, Subject, takeUntil } from 'rxjs';\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\nimport { SkyInputBoxAdapterService } from './input-box-adapter.service';\nimport { SkyInputBoxControlDirective } from './input-box-control.directive';\nimport { SkyInputBoxHostService } from './input-box-host.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"../character-counter/character-counter-indicator.component\";\nimport * as i3 from \"../form-error/form-errors.component\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/theme\";\nimport * as i6 from \"@skyux/i18n\";\nimport * as i7 from \"./input-box-hint-text.pipe\";\n/**\n * A wrapper component that provides styling and accessibility to form elements.\n */\nexport class SkyInputBoxComponent {\n constructor() {\n this.#changeRef = inject(ChangeDetectorRef);\n this.#inputBoxHostSvc = inject(SkyInputBoxHostService);\n this.#adapterService = inject(SkyInputBoxAdapterService);\n this.#idSvc = inject(SkyIdService);\n this.#elementRef = inject(ElementRef);\n this.#renderer = inject(Renderer2);\n this.formControlHasFocus = false;\n this.hintTextHidden = false;\n this.hintTextScreenReaderOnly = false;\n this.controlId = this.#idSvc.generateId();\n this.labelId = this.#idSvc.generateId();\n this.errorId = this.#idSvc.generateId();\n this.hintTextId = this.#idSvc.generateId();\n this.ariaDescribedBy = new ReplaySubject(1);\n this.cssClass = '';\n this.characterCountScreenReader = 0;\n this.#_stacked = false;\n this.#ngUnsubscribe = new Subject();\n }\n #changeRef;\n #inputBoxHostSvc;\n #adapterService;\n #idSvc;\n #elementRef;\n #renderer;\n /**\n * The maximum number of characters allowed in the input. A [SKY UX character count](https://developer.blackbaud.com/skyux/components/character-count)\n * will be placed on the input element with the appropriate validator.\n */\n set characterLimit(value) {\n this.#_characterLimit =\n value === undefined ? undefined : coerceNumberProperty(value, undefined);\n this.#updateMaxLengthValidator();\n }\n get characterLimit() {\n return this.#_characterLimit;\n }\n /**\n * Whether the input box is stacked on another input box. When specified, the appropriate\n * vertical spacing is automatically added to the input box.\n */\n set stacked(value) {\n this.#_stacked = coerceBooleanProperty(value);\n this.cssClass = this.#_stacked ? 'sky-form-field-stacked' : '';\n }\n /**\n * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides\n * additional context to the user.\n */\n set hintText(value) {\n this.#_hintText = value;\n this.ariaDescribedBy.next(value ? this.hintTextId : undefined);\n }\n get hintText() {\n return this.#_hintText;\n }\n #requiredByFormField;\n get isDisabled() {\n return !!(this.disabled ||\n this.controlDir?.control?.disabled ||\n this.inputRef?.nativeElement?.disabled);\n }\n get hasErrorsComputed() {\n if (this.hasErrors === undefined) {\n return this.#controlHasErrors(this.controlDir);\n }\n return this.hasErrors;\n }\n get required() {\n return (this.#hasRequiredValidator() ||\n this.inputRef?.nativeElement.required ||\n this.#requiredByFormField);\n }\n #_stacked;\n #_characterLimit;\n #_hintText;\n #previousInputRef;\n #previousMaxLengthValidator;\n #ngUnsubscribe;\n ngOnInit() {\n this.#inputBoxHostSvc.init(this);\n this.#inputBoxHostSvc.required\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((required) => {\n this.#requiredByFormField = required;\n this.#changeRef.markForCheck();\n });\n }\n ngAfterContentChecked() {\n this.controlDir =\n this.formControl || this.formControlByName || this.ngModel;\n if (!this.formControlHasFocus) {\n this.characterCountScreenReader = this.controlDir?.value?.length || 0;\n }\n this.#updateInputRef();\n }\n ngOnDestroy() {\n this.ariaDescribedBy.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n /**\n * Whether the input box component contains the focused element.\n * @internal\n */\n containsElement(el) {\n return this.#adapterService.containsElement(this.#elementRef, el);\n }\n formControlFocusIn() {\n const inlineHelpEl = this.#adapterService.getInlineHelpElement(this.#elementRef);\n if (!this.#adapterService.isFocusInElement(inlineHelpEl)) {\n this.#updateHasFocus(true);\n }\n }\n formControlFocusOut() {\n this.characterCountScreenReader = this.controlDir?.value?.length || 0;\n this.#updateHasFocus(false);\n }\n onInsetIconClick() {\n if (!this.isDisabled) {\n this.#adapterService.focusControl(this.#elementRef);\n }\n }\n populate(args) {\n this.hostInputTemplate = args.inputTemplate;\n this.hostButtonsTemplate = args.buttonsTemplate;\n this.hostButtonsLeftTemplate = args.buttonsLeftTemplate;\n this.hostButtonsInsetTemplate = args.buttonsInsetTemplate;\n this.hostIconsInsetTemplate = args.iconsInsetTemplate;\n this.hostIconsInsetLeftTemplate = args.iconsInsetLeftTemplate;\n this.#changeRef.markForCheck();\n }\n /**\n * Returns an element inside the input box.\n * This can be used to query parts of a input box\n * that was populated through the `SkyInputBoxHostService`\n * @internal\n */\n queryPopulatedElement(query) {\n return this.#adapterService.queryElement(this.#elementRef, query);\n }\n setHintTextHidden(hide) {\n this.hintTextHidden = hide;\n this.#changeRef.markForCheck();\n }\n setHostHintText(value) {\n this.hostHintText = value;\n this.#changeRef.markForCheck();\n }\n setHintTextScreenReaderOnly(hide) {\n this.hintTextScreenReaderOnly = hide;\n this.#changeRef.markForCheck();\n }\n #hasRequiredValidator() {\n return !!this.controlDir?.control?.hasValidator(Validators.required);\n }\n #updateHasFocus(hasFocus) {\n // Some components manipulate the focus of elements inside an input box programmatically,\n // which can cause an `ExpressionChangedAfterItHasBeenCheckedError` if focus was set after\n // initial change detection. Using `setTimeout()` here fixes it.\n setTimeout(() => {\n this.formControlHasFocus = hasFocus;\n this.#changeRef.markForCheck();\n });\n }\n #controlHasErrors(control) {\n return !!(control && control.invalid && (control.dirty || control.touched));\n }\n #updateInputRef() {\n if (!this.inputRef) {\n return;\n }\n const inputEl = this.inputRef.nativeElement;\n // Check for the Angular required validator and add an aria-required attribute\n // to match. For template-driven forms, the input will have a `required` attribute\n // so the aria-required attribute is unnecessary.\n const hasRequiredValidator = this.#hasRequiredValidator();\n const ariaRequired = inputEl.ariaRequired;\n if (hasRequiredValidator && ariaRequired !== 'true') {\n inputEl.ariaRequired = 'true';\n }\n else if (!hasRequiredValidator && ariaRequired === 'true') {\n inputEl.ariaRequired = null;\n }\n if (this.hasErrorsComputed) {\n this.#renderer.setAttribute(inputEl, 'aria-invalid', 'true');\n this.#renderer.setAttribute(inputEl, 'aria-errormessage', this.errorId);\n }\n else {\n this.#renderer.removeAttribute(inputEl, 'aria-invalid');\n this.#renderer.removeAttribute(inputEl, 'aria-errormessage');\n }\n this.#adapterService.updateDescribedBy(this.inputRef, this.hintTextId, this.hintText ?? this.hostHintText);\n if (this.inputRef !== this.#previousInputRef) {\n this.#renderer.addClass(inputEl, 'sky-form-control');\n this.#renderer.setAttribute(inputEl, 'id', this.controlId);\n this.#updateMaxLengthValidator();\n this.#previousInputRef = this.inputRef;\n }\n }\n #updateMaxLengthValidator() {\n const control = this.controlDir?.control;\n if (this.#previousMaxLengthValidator) {\n control?.removeValidators(this.#previousMaxLengthValidator);\n this.#previousMaxLengthValidator = undefined;\n }\n if (control && this.characterLimit !== undefined) {\n this.#previousMaxLengthValidator = Validators.maxLength(this.characterLimit);\n control.addValidators([this.#previousMaxLengthValidator]);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyInputBoxComponent, isStandalone: false, selector: \"sky-input-box\", inputs: { hasErrors: \"hasErrors\", disabled: \"disabled\", labelText: \"labelText\", characterLimit: \"characterLimit\", stacked: \"stacked\", helpPopoverTitle: \"helpPopoverTitle\", helpPopoverContent: \"helpPopoverContent\", helpKey: \"helpKey\", hintText: \"hintText\" }, host: { properties: { \"class\": \"this.cssClass\" } }, providers: [\n SkyContentInfoProvider,\n SkyInputBoxAdapterService,\n SkyInputBoxHostService,\n {\n provide: SKY_FORM_ERRORS_ENABLED,\n useValue: true,\n },\n ], queries: [{ propertyName: \"formControl\", first: true, predicate: FormControlDirective, descendants: true }, { propertyName: \"formControlByName\", first: true, predicate: FormControlName, descendants: true }, { propertyName: \"ngModel\", first: true, predicate: NgModel, descendants: true }, { propertyName: \"inputRef\", first: true, predicate: SkyInputBoxControlDirective, descendants: true, read: ElementRef }], ngImport: i0, template: \"<div\\n *skyThemeIf=\\\"'default'\\\"\\n class=\\\"sky-input-box\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-disabled': isDisabled\\n }\\\"\\n>\\n <div class=\\\"sky-form-group\\\">\\n <div class=\\\"sky-input-box-label-wrapper\\\">\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\" /><ng-container\\n *ngTemplateOutlet=\\\"inlineHelpTemplate\\\"\\n />\\n <ng-container *ngTemplateOutlet=\\\"characterCountTemplate\\\" />\\n </div>\\n <div class=\\\"sky-input-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"buttonsLeftTemplate\\\" />\\n <div\\n class=\\\"sky-input-box-input-group-inner\\\"\\n [ngClass]=\\\"{\\n 'sky-field-status-active': formControlHasFocus,\\n 'sky-field-status-invalid': hasErrorsComputed\\n }\\\"\\n (focusin)=\\\"formControlFocusIn()\\\"\\n (focusout)=\\\"formControlFocusOut()\\\"\\n >\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetLeftTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"inputTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"buttonsInsetTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"hintTextTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"errorLabelTemplate\\\" />\\n </div>\\n</div>\\n\\n<div\\n *skyThemeIf=\\\"'modern'\\\"\\n class=\\\"sky-input-box\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-disabled': isDisabled\\n }\\\"\\n>\\n <div class=\\\"sky-input-box-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"buttonsLeftTemplate\\\" />\\n <div\\n class=\\\"sky-input-box-group-form-control\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\\n }\\\"\\n (focusin)=\\\"formControlFocusIn()\\\"\\n (focusout)=\\\"formControlFocusOut()\\\"\\n >\\n <div class=\\\"sky-form-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetLeftTemplate\\\" />\\n <div class=\\\"sky-input-box-form-group-inner\\\">\\n <div class=\\\"sky-input-box-label-wrapper\\\">\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\" /><ng-container\\n *ngTemplateOutlet=\\\"inlineHelpTemplate\\\"\\n />\\n <ng-container *ngTemplateOutlet=\\\"characterCountTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"inputTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsInsetTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetTemplate\\\" />\\n </div>\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"hintTextTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"errorLabelTemplate\\\" />\\n</div>\\n\\n<ng-template #labelTemplate>\\n <ng-content select=\\\".sky-control-label\\\" />\\n @if (labelText) {\\n <label\\n class=\\\"sky-control-label\\\"\\n [attr.aria-label]=\\\"\\n characterLimit !== undefined\\n ? labelText +\\n ' ' +\\n ('skyux_character_count_message'\\n | skyLibResources: characterCountScreenReader : characterLimit)\\n : null\\n \\\"\\n [for]=\\\"controlId\\\"\\n [id]=\\\"labelId\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >{{ labelText }}</label\\n >\\n }\\n</ng-template>\\n\\n<ng-template #inlineHelpTemplate>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <sky-help-inline\\n class=\\\"sky-control-help\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n }\\n <ng-content select=\\\".sky-control-help\\\" />\\n</ng-template>\\n\\n<ng-template #characterCountTemplate>\\n @if (characterLimit !== undefined) {\\n <sky-character-counter-indicator\\n [characterCount]=\\\"controlDir?.value?.length || 0\\\"\\n [characterCountLimit]=\\\"characterLimit\\\"\\n />\\n }\\n <ng-content select=\\\"sky-character-counter-indicator\\\" />\\n</ng-template>\\n\\n<ng-template #inputTemplate>\\n <ng-content\\n select=\\\"input,select,.sky-form-control:not(textarea),sky-autocomplete,sky-text-editor\\\"\\n />\\n @if (hostInputTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostInputTemplate\\\" />\\n }\\n <ng-content select=\\\"textarea\\\" />\\n</ng-template>\\n\\n<ng-template #buttonsLeftTemplate>\\n <ng-content select=\\\".sky-input-group-btn.sky-input-box-btn-left\\\" />\\n @if (hostButtonsLeftTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsLeftTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #buttonsTemplate>\\n <ng-content\\n select=\\\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\\\"\\n />\\n @if (hostButtonsTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #buttonsInsetTemplate>\\n <ng-content select=\\\".sky-input-group-btn.sky-input-box-btn-inset\\\" />\\n @if (hostButtonsInsetTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsInsetTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #iconsInsetTemplate>\\n <div class=\\\"sky-input-box-icon-inset-wrapper\\\" (click)=\\\"onInsetIconClick()\\\">\\n <ng-content select=\\\".sky-input-group-icon.sky-input-box-icon-inset\\\" />\\n @if (hostIconsInsetTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostIconsInsetTemplate\\\" />\\n }\\n </div>\\n</ng-template>\\n\\n<ng-template #iconsInsetLeftTemplate>\\n <div\\n class=\\\"sky-input-box-icon-inset-left-wrapper\\\"\\n (click)=\\\"onInsetIconClick()\\\"\\n >\\n <ng-content select=\\\".sky-input-group-icon.sky-input-box-icon-inset-left\\\" />\\n @if (hostIconsInsetLeftTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostIconsInsetLeftTemplate\\\" />\\n }\\n </div>\\n</ng-template>\\n\\n<ng-template #errorLabelTemplate>\\n <sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"controlDir?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"controlDir?.touched\\\"\\n [dirty]=\\\"controlDir?.dirty\\\"\\n >\\n <ng-content\\n select=\\\"sky-form-error,span.sky-input-box-descendent-form-error\\\"\\n />\\n </sky-form-errors>\\n <ng-content select=\\\".sky-error-label,.sky-error-indicator\\\" />\\n</ng-template>\\n\\n<ng-template #hintTextTemplate>\\n @if (hintText || hostHintText) {\\n <div\\n class=\\\"sky-input-box-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-hint-text-hidden': hintTextHidden,\\n 'sky-screen-reader-only': hintTextScreenReaderOnly\\n }\\\"\\n [id]=\\\"hintTextId\\\"\\n >\\n {{ hintText | skyInputBoxHintText: hostHintText }}\\n </div>\\n }\\n</ng-template>\\n\", styles: [\".sky-input-box:not(.sky-theme-modern *){--sky-override-button-width: 33px;--sky-override-input-box-error-margin-top: 5px;--sky-override-input-box-form-errors-margin-left: 0;--sky-override-input-box-hint-margin-left: 0;--sky-override-input-box-hint-margin-top: var(--sky-margin-stacked-xs);--sky-override-input-box-select-border-radius: 0}.sky-theme-modern:not(.sky-theme-brand-base) .sky-input-box{--sky-override-button-width: 55px;--sky-override-input-box-button-box-shadow-with-elevation: inset 0 0 0 var(--sky-border-width-input-focus) var(--sky-color-border-action-input-focus), var(--modern-shadow-size-1);--sky-override-input-box-character-count-font-size: var( --sky-font-size-body-m );--sky-override-input-box-character-count-padding: 3px 0 0;--sky-override-input-box-color-border-base: var(--modern-color-gray-15);--sky-override-input-box-form-errors-margin-left: 0;--sky-override-input-box-no-label-space-top: var(--modern-space-s);--sky-override-input-box-select-space: 10px;--sky-override-input-box-shadow-focus: inset 0 0 0 var(--sky-border-width-input-focus) var(--sky-color-border-action-input-focus), var(--modern-shadow-size-1);--sky-override-input-box-form-group-color: var(--sky-text-color-deemphasized);--sky-override-input-box-hint-margin-left: 0;--sky-override-input-margin-top: -23px;--sky-override-input-padding-top: 26px;--sky-override-label-padding-bottom: 1px;--sky-override-textarea-border-top: 29px;--sky-override-textarea-margin-top: -26px}.sky-theme-modern:not(.sky-theme-brand-base) sky-input-box{--sky-override-background-color-input-box: var(--modern-color-white)}sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-input-box{--sky-input-box-button-width: var( --sky-override-button-width, var(--sky-input-box-height) )}.sky-theme-modern sky-input-box{--sky-background-color-input-box-group: var( --sky-override-background-color-input-box, var(--sky-color-background-input-base) );--sky-background-color-input-box-group-focused: var( --sky-override-background-color-input-box, var(--sky-color-background-input-base) )}sky-input-box{display:block}sky-input-box .sky-error-indicator{margin-top:var(--sky-override-input-box-error-margin-top, var(--sky-space-gap-stacked_supplemental-s))}sky-input-box sky-form-error,sky-input-box .sky-error-label,sky-input-box .sky-error-indicator{margin-left:var(--sky-override-input-box-form-errors-margin-left, var(--sky-comp-input-label-space-inset-left));display:block}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-form-group select.sky-form-control{border-radius:var(--sky-override-input-box-select-border-radius, var(--sky-border-radius-s))}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-group-btn .sky-btn{padding:4.5px 12px}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:var(--sky-input-box-button-width);display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-left:var(--sky-override-input-box-hint-margin-left, var(--sky-comp-input-label-space-inset-left));margin-top:var(--sky-override-input-box-hint-margin-top, var(--sky-space-gap-stacked_supplemental-s));text-align:left}sky-input-box .sky-input-box-hint-text.sky-input-box-hint-text-hidden{visibility:hidden}.sky-theme-modern .sky-input-box{--sky-input-box-space-top: calc( calc( var(--sky-font-line_height-input-label) * var(--sky-font-size-input-label) ) + var(--sky-comp-input-label-space-inset-top) + var(--sky-comp-input-label-space-inset-bottom) );--sky-input-box-margin-top: calc(var(--sky-input-box-space-top) * -1);--sky-input-box-height: calc( var(--sky-comp-input-value-space-inset-bottom) + calc( var(--sky-font-size-input-val) * var(--sky-font-line_height-input-val) ) + var(--sky-input-box-space-top) )}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:var(--sky-border-radius-s);border-bottom-left-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:var(--sky-color-icon-input-action);margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:var(--sky-input-box-button-width)}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:var(--sky-border-radius-s);border-bottom-left-radius:var(--sky-border-radius-s);margin-right:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:var(--sky-color-icon-input-action);font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active)+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-focus) * -1)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:active+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-active) * -1)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-form-group{color:var(--sky-override-input-box-form-group-color, var(--sky-color-text-default));flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{padding:0 var(--sky-comp-input-value-space-inset-right) 0 var(--sky-comp-input-value-space-inset-left)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding-top:var(--sky-comp-input-label-space-inset-top);padding-bottom:var(--sky-override-label-padding-bottom, var(--sky-comp-input-label-space-inset-bottom));font-style:var(--sky-font-style-input-label);font-weight:var(--sky-font-weight-input-label)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label:has(+sky-character-counter-indicator){margin-right:var(--sky-comp-input-label-space-inset-right)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:var(--sky-font-size-input-label);letter-spacing:var(--sky-font-letter_spacing-input-label);line-height:var(--sky-font-line_height-input-label);display:inline-block}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px var(--sky-space-gap-text_action-xs)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:var(--sky-comp-input-value-space-inset-right)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:var(--sky-override-input-box-character-count-padding, var(--sky-comp-input-label-space-inset-top) 0 var(--sky-comp-input-label-space-inset-bottom));font-size:var(--sky-override-input-box-character-count-font-size, var(--sky-font-size-input-label))}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:var(--sky-override-input-margin-top, var(--sky-input-box-margin-top));padding-top:var(--sky-override-input-padding-top, var(--sky-input-box-space-top))}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:var(--sky-border-radius-s);font-size:var(--sky-font-size-input-val);height:auto;line-height:var(--sky-font-line_height-input-val);padding-right:var(--sky-comp-input-value-space-inset-right);padding-bottom:var(--sky-comp-input-value-space-inset-bottom);padding-left:var(--sky-comp-input-value-space-inset-left);position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-group-btn.sky-input-box-btn-inset .sky-btn{background-color:transparent;border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s);transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-group-btn.sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:var(--sky-override-input-box-no-label-space-top, var(--sky-comp-input-value-space-inset-top))}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:var(--sky-override-input-box-no-label-space-top, var(--sky-comp-input-value-space-inset-top)) solid transparent}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - var(--sky-override-input-box-select-space, 0%));z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:var(--sky-override-textarea-margin-top, var(--sky-input-box-margin-top));padding-top:0;resize:vertical;border-top:var(--sky-override-textarea-border-top, var(--sky-input-box-space-top)) solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:var(--sky-override-textarea-border-top, var(--sky-input-box-space-top)) solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 var(--sky-comp-input-value-space-inset-left);width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled){--sky-input-box-input-border-color: var( --sky-override-input-box-color-border-base, var(--sky-color-border-input-base) );--sky-input-box-input-border-width: var(--sky-border-width-input-base);--sky-input-box-input-elevation-shadow: var(--sky-elevation-input-base);--sky-input-box-button-border-color: var( --sky-override-input-box-color-border-base, var(--sky-color-border-action-input-base) );--sky-input-box-button-border-width: var(--sky-border-width-action-base);--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-base) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-base )}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control .sky-form-group{border:none;box-shadow:var(--sky-input-box-box-shadow-with-elevation, inset 0 0 0 var(--sky-input-box-input-border-width) var(--sky-input-box-input-border-color), var(--sky-input-box-input-elevation-shadow))}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:var(--sky-input-box-button-box-shadow-with-focus-elevation, inset 0 0 0 var(--sky-input-box-button-border-width) var(--sky-input-box-button-border-color), var(--sky-input-box-button-elevation-shadow));background-color:var(--sky-input-box-button-background-color)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{--sky-input-box-input-border-color: var(--sky-color-border-input-hover);--sky-input-box-input-border-width: var(--sky-border-width-input-hover);z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active{--sky-input-box-input-border-color: var( --sky-color-border-input-active );--sky-input-box-input-border-width: var( --sky-border-width-input-active )}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group{color:var(--sky-color-text-action)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{--sky-input-box-input-border-color: var(--sky-color-border-input-focus);--sky-input-box-input-border-width: var(--sky-border-width-input-focus);--sky-input-box-box-shadow-with-elevation: var( --sky-override-input-box-shadow-focus, inset 0 0 0 var(--sky-input-box-input-border-width) var(--sky-input-box-input-border-color), var(--sky-elevation-input-base) );z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{color:var(--sky-color-text-action)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid{--sky-input-box-input-border-color: var(--sky-color-border-input-error);--sky-input-box-input-border-width: var(--sky-border-width-input-error)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{color:var(--sky-color-text-danger)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{--sky-input-box-button-border-color: var( --sky-color-border-action-input-hover );--sky-input-box-button-border-width: var( --sky-border-width-action-hover );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-hover) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-hover );z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active{--sky-input-box-button-border-color: var( --sky-color-border-action-input-active );--sky-input-box-button-border-width: var( --sky-border-width-action-active );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-active) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-active );color:var(--sky-color-text-default);z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){--sky-input-box-button-border-color: var( --sky-color-border-action-input-focus );--sky-input-box-button-border-width: var( --sky-border-width-action-focus );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-focus) );--sky-input-box-button-box-shadow-with-focus-elevation: var( --sky-override-input-box-button-box-shadow-with-elevation, inset 0 0 0 var(--sky-input-box-button-border-width) var(--sky-input-box-button-border-color), var(--sky-elevation-action-input-focus) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-focus );color:var(--sky-color-text-default);outline:none;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{border:none;box-shadow:inset 0 0 0 var(--sky-border-width-input-disabled) var(--sky-override-input-box-color-border-base, var(--sky-color-border-input-disabled)),var(--sky-elevation-input-disabled)}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-override-input-box-color-border-base, var(--sky-color-border-action-input-disabled)),var(--sky-elevation-action-input-disabled);background-color:var(--sky-color-background-action-input-disabled)}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:var(--sky-color-background-input-disabled)}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i2.SkyCharacterCounterIndicatorComponent, selector: \"sky-character-counter-indicator\", inputs: [\"characterCount\", \"characterCountLimit\"] }, { kind: \"component\", type: i3.SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"directive\", type: i5.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"directive\", type: i5.λ3, selector: \"[skyThemeIf]\", inputs: [\"skyThemeIf\"] }, { kind: \"pipe\", type: i6.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"pipe\", type: i7.SkyInputBoxHintTextPipe, name: \"skyInputBoxHintText\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-input-box', providers: [\n SkyContentInfoProvider,\n SkyInputBoxAdapterService,\n SkyInputBoxHostService,\n {\n provide: SKY_FORM_ERRORS_ENABLED,\n useValue: true,\n },\n ], encapsulation: ViewEncapsulation.None, standalone: false, template: \"<div\\n *skyThemeIf=\\\"'default'\\\"\\n class=\\\"sky-input-box\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-disabled': isDisabled\\n }\\\"\\n>\\n <div class=\\\"sky-form-group\\\">\\n <div class=\\\"sky-input-box-label-wrapper\\\">\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\" /><ng-container\\n *ngTemplateOutlet=\\\"inlineHelpTemplate\\\"\\n />\\n <ng-container *ngTemplateOutlet=\\\"characterCountTemplate\\\" />\\n </div>\\n <div class=\\\"sky-input-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"buttonsLeftTemplate\\\" />\\n <div\\n class=\\\"sky-input-box-input-group-inner\\\"\\n [ngClass]=\\\"{\\n 'sky-field-status-active': formControlHasFocus,\\n 'sky-field-status-invalid': hasErrorsComputed\\n }\\\"\\n (focusin)=\\\"formControlFocusIn()\\\"\\n (focusout)=\\\"formControlFocusOut()\\\"\\n >\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetLeftTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"inputTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"buttonsInsetTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"hintTextTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"errorLabelTemplate\\\" />\\n </div>\\n</div>\\n\\n<div\\n *skyThemeIf=\\\"'modern'\\\"\\n class=\\\"sky-input-box\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-disabled': isDisabled\\n }\\\"\\n>\\n <div class=\\\"sky-input-box-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"buttonsLeftTemplate\\\" />\\n <div\\n class=\\\"sky-input-box-group-form-control\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\\n }\\\"\\n (focusin)=\\\"formControlFocusIn()\\\"\\n (focusout)=\\\"formControlFocusOut()\\\"\\n >\\n <div class=\\\"sky-form-group\\\">\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetLeftTemplate\\\" />\\n <div class=\\\"sky-input-box-form-group-inner\\\">\\n <div class=\\\"sky-input-box-label-wrapper\\\">\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\" /><ng-container\\n *ngTemplateOutlet=\\\"inlineHelpTemplate\\\"\\n />\\n <ng-container *ngTemplateOutlet=\\\"characterCountTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"inputTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsInsetTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"iconsInsetTemplate\\\" />\\n </div>\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"buttonsTemplate\\\" />\\n </div>\\n <ng-container *ngTemplateOutlet=\\\"hintTextTemplate\\\" />\\n <ng-container *ngTemplateOutlet=\\\"errorLabelTemplate\\\" />\\n</div>\\n\\n<ng-template #labelTemplate>\\n <ng-content select=\\\".sky-control-label\\\" />\\n @if (labelText) {\\n <label\\n class=\\\"sky-control-label\\\"\\n [attr.aria-label]=\\\"\\n characterLimit !== undefined\\n ? labelText +\\n ' ' +\\n ('skyux_character_count_message'\\n | skyLibResources: characterCountScreenReader : characterLimit)\\n : null\\n \\\"\\n [for]=\\\"controlId\\\"\\n [id]=\\\"labelId\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >{{ labelText }}</label\\n >\\n }\\n</ng-template>\\n\\n<ng-template #inlineHelpTemplate>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <sky-help-inline\\n class=\\\"sky-control-help\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n }\\n <ng-content select=\\\".sky-control-help\\\" />\\n</ng-template>\\n\\n<ng-template #characterCountTemplate>\\n @if (characterLimit !== undefined) {\\n <sky-character-counter-indicator\\n [characterCount]=\\\"controlDir?.value?.length || 0\\\"\\n [characterCountLimit]=\\\"characterLimit\\\"\\n />\\n }\\n <ng-content select=\\\"sky-character-counter-indicator\\\" />\\n</ng-template>\\n\\n<ng-template #inputTemplate>\\n <ng-content\\n select=\\\"input,select,.sky-form-control:not(textarea),sky-autocomplete,sky-text-editor\\\"\\n />\\n @if (hostInputTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostInputTemplate\\\" />\\n }\\n <ng-content select=\\\"textarea\\\" />\\n</ng-template>\\n\\n<ng-template #buttonsLeftTemplate>\\n <ng-content select=\\\".sky-input-group-btn.sky-input-box-btn-left\\\" />\\n @if (hostButtonsLeftTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsLeftTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #buttonsTemplate>\\n <ng-content\\n select=\\\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\\\"\\n />\\n @if (hostButtonsTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #buttonsInsetTemplate>\\n <ng-content select=\\\".sky-input-group-btn.sky-input-box-btn-inset\\\" />\\n @if (hostButtonsInsetTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostButtonsInsetTemplate\\\" />\\n }\\n</ng-template>\\n\\n<ng-template #iconsInsetTemplate>\\n <div class=\\\"sky-input-box-icon-inset-wrapper\\\" (click)=\\\"onInsetIconClick()\\\">\\n <ng-content select=\\\".sky-input-group-icon.sky-input-box-icon-inset\\\" />\\n @if (hostIconsInsetTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostIconsInsetTemplate\\\" />\\n }\\n </div>\\n</ng-template>\\n\\n<ng-template #iconsInsetLeftTemplate>\\n <div\\n class=\\\"sky-input-box-icon-inset-left-wrapper\\\"\\n (click)=\\\"onInsetIconClick()\\\"\\n >\\n <ng-content select=\\\".sky-input-group-icon.sky-input-box-icon-inset-left\\\" />\\n @if (hostIconsInsetLeftTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"hostIconsInsetLeftTemplate\\\" />\\n }\\n </div>\\n</ng-template>\\n\\n<ng-template #errorLabelTemplate>\\n <sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"controlDir?.errors\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"controlDir?.touched\\\"\\n [dirty]=\\\"controlDir?.dirty\\\"\\n >\\n <ng-content\\n select=\\\"sky-form-error,span.sky-input-box-descendent-form-error\\\"\\n />\\n </sky-form-errors>\\n <ng-content select=\\\".sky-error-label,.sky-error-indicator\\\" />\\n</ng-template>\\n\\n<ng-template #hintTextTemplate>\\n @if (hintText || hostHintText) {\\n <div\\n class=\\\"sky-input-box-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n [ngClass]=\\\"{\\n 'sky-input-box-hint-text-hidden': hintTextHidden,\\n 'sky-screen-reader-only': hintTextScreenReaderOnly\\n }\\\"\\n [id]=\\\"hintTextId\\\"\\n >\\n {{ hintText | skyInputBoxHintText: hostHintText }}\\n </div>\\n }\\n</ng-template>\\n\", styles: [\".sky-input-box:not(.sky-theme-modern *){--sky-override-button-width: 33px;--sky-override-input-box-error-margin-top: 5px;--sky-override-input-box-form-errors-margin-left: 0;--sky-override-input-box-hint-margin-left: 0;--sky-override-input-box-hint-margin-top: var(--sky-margin-stacked-xs);--sky-override-input-box-select-border-radius: 0}.sky-theme-modern:not(.sky-theme-brand-base) .sky-input-box{--sky-override-button-width: 55px;--sky-override-input-box-button-box-shadow-with-elevation: inset 0 0 0 var(--sky-border-width-input-focus) var(--sky-color-border-action-input-focus), var(--modern-shadow-size-1);--sky-override-input-box-character-count-font-size: var( --sky-font-size-body-m );--sky-override-input-box-character-count-padding: 3px 0 0;--sky-override-input-box-color-border-base: var(--modern-color-gray-15);--sky-override-input-box-form-errors-margin-left: 0;--sky-override-input-box-no-label-space-top: var(--modern-space-s);--sky-override-input-box-select-space: 10px;--sky-override-input-box-shadow-focus: inset 0 0 0 var(--sky-border-width-input-focus) var(--sky-color-border-action-input-focus), var(--modern-shadow-size-1);--sky-override-input-box-form-group-color: var(--sky-text-color-deemphasized);--sky-override-input-box-hint-margin-left: 0;--sky-override-input-margin-top: -23px;--sky-override-input-padding-top: 26px;--sky-override-label-padding-bottom: 1px;--sky-override-textarea-border-top: 29px;--sky-override-textarea-margin-top: -26px}.sky-theme-modern:not(.sky-theme-brand-base) sky-input-box{--sky-override-background-color-input-box: var(--modern-color-white)}sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-input-box{--sky-input-box-button-width: var( --sky-override-button-width, var(--sky-input-box-height) )}.sky-theme-modern sky-input-box{--sky-background-color-input-box-group: var( --sky-override-background-color-input-box, var(--sky-color-background-input-base) );--sky-background-color-input-box-group-focused: var( --sky-override-background-color-input-box, var(--sky-color-background-input-base) )}sky-input-box{display:block}sky-input-box .sky-error-indicator{margin-top:var(--sky-override-input-box-error-margin-top, var(--sky-space-gap-stacked_supplemental-s))}sky-input-box sky-form-error,sky-input-box .sky-error-label,sky-input-box .sky-error-indicator{margin-left:var(--sky-override-input-box-form-errors-margin-left, var(--sky-comp-input-label-space-inset-left));display:block}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-form-group select.sky-form-control{border-radius:var(--sky-override-input-box-select-border-radius, var(--sky-border-radius-s))}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-group-btn .sky-btn{padding:4.5px 12px}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:var(--sky-input-box-button-width);display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-left:var(--sky-override-input-box-hint-margin-left, var(--sky-comp-input-label-space-inset-left));margin-top:var(--sky-override-input-box-hint-margin-top, var(--sky-space-gap-stacked_supplemental-s));text-align:left}sky-input-box .sky-input-box-hint-text.sky-input-box-hint-text-hidden{visibility:hidden}.sky-theme-modern .sky-input-box{--sky-input-box-space-top: calc( calc( var(--sky-font-line_height-input-label) * var(--sky-font-size-input-label) ) + var(--sky-comp-input-label-space-inset-top) + var(--sky-comp-input-label-space-inset-bottom) );--sky-input-box-margin-top: calc(var(--sky-input-box-space-top) * -1);--sky-input-box-height: calc( var(--sky-comp-input-value-space-inset-bottom) + calc( var(--sky-font-size-input-val) * var(--sky-font-line_height-input-val) ) + var(--sky-input-box-space-top) )}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:var(--sky-border-radius-s);border-bottom-left-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:var(--sky-color-icon-input-action);margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:var(--sky-input-box-button-width)}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:var(--sky-border-radius-s);border-bottom-left-radius:var(--sky-border-radius-s);margin-right:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s)}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:var(--sky-color-icon-input-action);font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active)+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-focus) * -1)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:active+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-active) * -1)}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:calc(var(--sky-border-width-input-base) * -1)}.sky-theme-modern .sky-input-box .sky-form-group{color:var(--sky-override-input-box-form-group-color, var(--sky-color-text-default));flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{padding:0 var(--sky-comp-input-value-space-inset-right) 0 var(--sky-comp-input-value-space-inset-left)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding-top:var(--sky-comp-input-label-space-inset-top);padding-bottom:var(--sky-override-label-padding-bottom, var(--sky-comp-input-label-space-inset-bottom));font-style:var(--sky-font-style-input-label);font-weight:var(--sky-font-weight-input-label)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label:has(+sky-character-counter-indicator){margin-right:var(--sky-comp-input-label-space-inset-right)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:var(--sky-font-size-input-label);letter-spacing:var(--sky-font-letter_spacing-input-label);line-height:var(--sky-font-line_height-input-label);display:inline-block}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px var(--sky-space-gap-text_action-xs)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:var(--sky-comp-input-value-space-inset-right)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:var(--sky-override-input-box-character-count-padding, var(--sky-comp-input-label-space-inset-top) 0 var(--sky-comp-input-label-space-inset-bottom));font-size:var(--sky-override-input-box-character-count-font-size, var(--sky-font-size-input-label))}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:var(--sky-override-input-margin-top, var(--sky-input-box-margin-top));padding-top:var(--sky-override-input-padding-top, var(--sky-input-box-space-top))}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:var(--sky-border-radius-s);font-size:var(--sky-font-size-input-val);height:auto;line-height:var(--sky-font-line_height-input-val);padding-right:var(--sky-comp-input-value-space-inset-right);padding-bottom:var(--sky-comp-input-value-space-inset-bottom);padding-left:var(--sky-comp-input-value-space-inset-left);position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:var(--sky-font-size-input-val)}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(var(--sky-input-box-input-border-width) round var(--sky-border-radius-s))!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-group-btn.sky-input-box-btn-inset .sky-btn{background-color:transparent;border-top-right-radius:var(--sky-border-radius-s);border-bottom-right-radius:var(--sky-border-radius-s);transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-group-btn.sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:var(--sky-override-input-box-no-label-space-top, var(--sky-comp-input-value-space-inset-top))}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:var(--sky-override-input-box-no-label-space-top, var(--sky-comp-input-value-space-inset-top)) solid transparent}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - var(--sky-override-input-box-select-space, 0%));z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:var(--sky-override-textarea-margin-top, var(--sky-input-box-margin-top));padding-top:0;resize:vertical;border-top:var(--sky-override-textarea-border-top, var(--sky-input-box-space-top)) solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:var(--sky-override-textarea-border-top, var(--sky-input-box-space-top)) solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 var(--sky-comp-input-value-space-inset-left);width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled){--sky-input-box-input-border-color: var( --sky-override-input-box-color-border-base, var(--sky-color-border-input-base) );--sky-input-box-input-border-width: var(--sky-border-width-input-base);--sky-input-box-input-elevation-shadow: var(--sky-elevation-input-base);--sky-input-box-button-border-color: var( --sky-override-input-box-color-border-base, var(--sky-color-border-action-input-base) );--sky-input-box-button-border-width: var(--sky-border-width-action-base);--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-base) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-base )}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control .sky-form-group{border:none;box-shadow:var(--sky-input-box-box-shadow-with-elevation, inset 0 0 0 var(--sky-input-box-input-border-width) var(--sky-input-box-input-border-color), var(--sky-input-box-input-elevation-shadow))}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:var(--sky-input-box-button-box-shadow-with-focus-elevation, inset 0 0 0 var(--sky-input-box-button-border-width) var(--sky-input-box-button-border-color), var(--sky-input-box-button-elevation-shadow));background-color:var(--sky-input-box-button-background-color)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{--sky-input-box-input-border-color: var(--sky-color-border-input-hover);--sky-input-box-input-border-width: var(--sky-border-width-input-hover);z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active{--sky-input-box-input-border-color: var( --sky-color-border-input-active );--sky-input-box-input-border-width: var( --sky-border-width-input-active )}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group{color:var(--sky-color-text-action)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{--sky-input-box-input-border-color: var(--sky-color-border-input-focus);--sky-input-box-input-border-width: var(--sky-border-width-input-focus);--sky-input-box-box-shadow-with-elevation: var( --sky-override-input-box-shadow-focus, inset 0 0 0 var(--sky-input-box-input-border-width) var(--sky-input-box-input-border-color), var(--sky-elevation-input-base) );z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{color:var(--sky-color-text-action)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid{--sky-input-box-input-border-color: var(--sky-color-border-input-error);--sky-input-box-input-border-width: var(--sky-border-width-input-error)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{color:var(--sky-color-text-danger)}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{--sky-input-box-button-border-color: var( --sky-color-border-action-input-hover );--sky-input-box-button-border-width: var( --sky-border-width-action-hover );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-hover) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-hover );z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active{--sky-input-box-button-border-color: var( --sky-color-border-action-input-active );--sky-input-box-button-border-width: var( --sky-border-width-action-active );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-active) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-active );color:var(--sky-color-text-default);z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){--sky-input-box-button-border-color: var( --sky-color-border-action-input-focus );--sky-input-box-button-border-width: var( --sky-border-width-action-focus );--sky-input-box-button-background-color: var( --sky-override-background-color-input-box, var(--sky-color-background-action-input-focus) );--sky-input-box-button-box-shadow-with-focus-elevation: var( --sky-override-input-box-button-box-shadow-with-elevation, inset 0 0 0 var(--sky-input-box-button-border-width) var(--sky-input-box-button-border-color), var(--sky-elevation-action-input-focus) );--sky-input-box-button-elevation-shadow: var( --sky-elevation-action-input-focus );color:var(--sky-color-text-default);outline:none;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{border:none;box-shadow:inset 0 0 0 var(--sky-border-width-input-disabled) var(--sky-override-input-box-color-border-base, var(--sky-color-border-input-disabled)),var(--sky-elevation-input-disabled)}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-override-input-box-color-border-base, var(--sky-color-border-action-input-disabled)),var(--sky-elevation-action-input-disabled);background-color:var(--sky-color-background-action-input-disabled)}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:var(--sky-color-background-input-disabled)}\\n\"] }]\n }], propDecorators: { hasErrors: [{\n type: Input\n }], disabled: [{\n type: Input\n }], labelText: [{\n type: Input\n }], characterLimit: [{\n type: Input\n }], stacked: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpKey: [{\n type: Input\n }], hintText: [{\n type: Input\n }], cssClass: [{\n type: HostBinding,\n args: ['class']\n }], formControl: [{\n type: ContentChild,\n args: [FormControlDirective]\n }], formControlByName: [{\n type: ContentChild,\n args: [FormControlName]\n }], ngModel: [{\n type: ContentChild,\n args: [NgModel]\n }], inputRef: [{\n type: ContentChild,\n args: [SkyInputBoxControlDirective, {\n read: ElementRef,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsT0FBTyxFQUVQLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFHbEU7O0dBRUc7QUFtQkgsTUFBTSxPQUFPLG9CQUFvQjtJQWxCakM7UUFx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LFxuICBOdW1iZXJJbnB1dCxcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5LFxuICBjb2VyY2VOdW1iZXJQcm9wZXJ0eSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1Db250cm9sRGlyZWN0aXZlLFxuICBGb3JtQ29udHJvbE5hbWUsXG4gIE5nTW9kZWwsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lDb250ZW50SW5mb1Byb3ZpZGVyLCBTa3lJZFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2lucHV0LWJveC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC1ib3gtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJy4vaW5wdXQtYm94LWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveFBvcHVsYXRlQXJncyB9IGZyb20gJy4vaW5wdXQtYm94LXBvcHVsYXRlLWFyZ3MnO1xuXG4vKipcbiAqIEEgd3JhcHBlciBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBzdHlsaW5nIGFuZCBhY2Nlc3NpYmlsaXR5IHRvIGZvcm0gZWxlbWVudHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1pbnB1dC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUNvbnRlbnRJbmZvUHJvdmlkZXIsXG4gICAgU2t5SW5wdXRCb3hBZGFwdGVyU2VydmljZSxcbiAgICBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELFxuICAgICAgdXNlVmFsdWU6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgLy8gTm90ZSB0aGF0IGNoYW5nZSBkZXRlY3Rpb24gaXMgbm90IHNldCB0byBPblB1c2g7IGRlZmF1bHQgY2hhbmdlIGRldGVjdGlvbiBhbGxvd3MgdGhlXG4gIC8vIGludmFsaWQgQ1NTIGNsYXNzIHRvIGJlIGFkZGVkIHdoZW4gdGhlIGNvbnRlbnQgY29udHJvbCdzIGludmFsaWQvZGlydHkgc3RhdGUgY2hhbmdlcy5cbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreUlucHV0Qm94Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkRlc3Ryb3lcbntcbiAgI2NoYW5nZVJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNpbnB1dEJveEhvc3RTdmMgPSBpbmplY3QoU2t5SW5wdXRCb3hIb3N0U2VydmljZSk7XG4gICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lJbnB1dEJveEFkYXB0ZXJTZXJ2aWNlKTtcbiAgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAjcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2aXN1YWxseSBoaWdobGlnaHQgdGhlIGlucHV0IGJveCBpbiBhbiBlcnJvciBzdGF0ZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGlucHV0IGJveFxuICAgKiBkaXNwbGF5cyBpbiBhbiBlcnJvciBzdGF0ZSB3aGVuIGVpdGhlciB0aGUgYG5nTW9kZWxgIG9yIHRoZSBBbmd1bGFyIGBGb3JtQ29udHJvbGAgY29udGFpbnMgYW4gZXJyb3IuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhhc0Vycm9yczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2aXN1YWxseSBoaWdobGlnaHQgdGhlIGlucHV0IGJveCBhcyBkaXNhYmxlZC4gVG8gZGlzYWJsZSB0aGUgaW5wdXQgYm94J3NcbiAgICogaW5wdXQgZWxlbWVudCwgdXNlIHRoZSBIVE1MIGBkaXNhYmxlZGAgYXR0cmlidXRlIG9yIHRoZSBBbmd1bGFyIGBGb3JtQ29udHJvbC5kaXNhYmxlZGBcbiAgICogcHJvcGVydHkuIElmIHRoZSBpbnB1dCBlbGVtZW50IGlzIG1hcHBlZCB0byBhbiBBbmd1bGFyIGZvcm0gY29udHJvbFxuICAgKiAoZS5nLiBgZm9ybUNvbnRyb2xOYW1lYCwgYG5nTW9kZWxgLCBldGMuKSwgXCJkaXNhYmxlZFwiIHN0eWxlcyBhcmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5O1xuICAgKiBpZiB0aGUgaW5wdXQgZWxlbWVudCBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFuIEFuZ3VsYXIgZm9ybSBjb250cm9sLCB0aGUgYGRpc2FibGVkYFxuICAgKiBwcm9wZXJ0eSBvbiB0aGUgaW5wdXQgYm94IG11c3QgYmUgc2V0IHRvIGB0cnVlYCB0byB2aXN1YWxseSBpbmRpY2F0ZVxuICAgKiB0aGUgZGlzYWJsZWQgc3RhdGUgb24gdGhlIGlucHV0IGJveC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgaW5wdXQncyBsYWJlbCBhbmQgaW4ga25vd24gdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcy4gVGhlIGxhYmVsXG4gICAqIHdpbGwgYXV0b21hdGljYWxseSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBpbnB1dGAsIGBzZWxlY3RgLCBgdGV4dGFyZWFgLCBvciBjb21wYXRpYmxlIFNLWSBVWFxuICAgKiBjb21wb25lbnQgaW5jbHVkZWQgaW4gdGhlIGlucHV0IGJveC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCBpbiB0aGUgaW5wdXQuIEEgW1NLWSBVWCBjaGFyYWN0ZXIgY291bnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGFyYWN0ZXItY291bnQpXG4gICAqIHdpbGwgYmUgcGxhY2VkIG9uIHRoZSBpbnB1dCBlbGVtZW50IHdpdGggdGhlIGFwcHJvcHJpYXRlIHZhbGlkYXRvci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hhcmFjdGVyTGltaXQodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgdGhpcy4jX2NoYXJhY3RlckxpbWl0ID1cbiAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgdW5kZWZpbmVkKTtcblxuICAgIHRoaXMuI3VwZGF0ZU1heExlbmd0aFZhbGlkYXRvcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyYWN0ZXJMaW1pdCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY2hhcmFjdGVyTGltaXQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgYm94IGlzIHN0YWNrZWQgb24gYW5vdGhlciBpbnB1dCBib3guIFdoZW4gc3BlY2lmaWVkLCB0aGUgYXBwcm9wcmlhdGVcbiAgICogdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBpbnB1dCBib3guXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuI19zdGFja2VkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLmNzc0NsYXNzID0gdGhpcy4jX3N0YWNrZWQgPyAnc2t5LWZvcm0tZmllbGQtc3RhY2tlZCcgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgaW5wdXQgYm94IGxhYmVsLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgaW5wdXQgYm94IGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBsYWJlbFRleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoaW50VGV4dCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2hpbnRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLmFyaWFEZXNjcmliZWRCeS5uZXh0KHZhbHVlID8gdGhpcy5oaW50VGV4dElkIDogdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGludFRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2hpbnRUZXh0O1xuICB9XG5cbiAgcHVibGljIGhvc3RJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaG9zdEJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RCdXR0b25zTGVmdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2xIYXNGb2N1cyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBob3N0SWNvbnNJbnNldFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaG9zdEljb25zSW5zZXRMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBoaW50VGV4dEhpZGRlbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBoaW50VGV4dFNjcmVlblJlYWRlck9ubHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaG9zdEhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2xJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsSWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIHB1YmxpYyByZWFkb25seSBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGludFRleHRJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGFyaWFEZXNjcmliZWRCeSA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4oMSk7XG5cbiAgI3JlcXVpcmVkQnlGb3JtRmllbGQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHB1YmxpYyBjc3NDbGFzcyA9ICcnO1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUNvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChGb3JtQ29udHJvbE5hbWUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbEJ5TmFtZTogRm9ybUNvbnRyb2xOYW1lIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoTmdNb2RlbClcbiAgcHVibGljIG5nTW9kZWw6IE5nTW9kZWwgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChTa3lJbnB1dEJveENvbnRyb2xEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwdWJsaWMgaW5wdXRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2xEaXI6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgdGhpcy5jb250cm9sRGlyPy5jb250cm9sPy5kaXNhYmxlZCB8fFxuICAgICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZGlzYWJsZWRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBoYXNFcnJvcnNDb21wdXRlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NvbnRyb2xIYXNFcnJvcnModGhpcy5jb250cm9sRGlyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLiNoYXNSZXF1aXJlZFZhbGlkYXRvcigpIHx8XG4gICAgICB0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LnJlcXVpcmVkIHx8XG4gICAgICB0aGlzLiNyZXF1aXJlZEJ5Rm9ybUZpZWxkXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFyYWN0ZXJDb3VudFNjcmVlblJlYWRlciA9IDA7XG5cbiAgI19zdGFja2VkID0gZmFsc2U7XG4gICNfY2hhcmFjdGVyTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgI19oaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNwcmV2aW91c0lucHV0UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICAjcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3I6IFZhbGlkYXRvckZuIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2lucHV0Qm94SG9zdFN2Yy5pbml0KHRoaXMpO1xuXG4gICAgdGhpcy4jaW5wdXRCb3hIb3N0U3ZjLnJlcXVpcmVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXF1aXJlZCkgPT4ge1xuICAgICAgICB0aGlzLiNyZXF1aXJlZEJ5Rm9ybUZpZWxkID0gcmVxdWlyZWQ7XG4gICAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xEaXIgPVxuICAgICAgdGhpcy5mb3JtQ29udHJvbCB8fCB0aGlzLmZvcm1Db250cm9sQnlOYW1lIHx8IHRoaXMubmdNb2RlbDtcblxuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbEhhc0ZvY3VzKSB7XG4gICAgICB0aGlzLmNoYXJhY3RlckNvdW50U2NyZWVuUmVhZGVyID0gdGhpcy5jb250cm9sRGlyPy52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gICAgfVxuXG4gICAgdGhpcy4jdXBkYXRlSW5wdXRSZWYoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFEZXNjcmliZWRCeS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBib3ggY29tcG9uZW50IGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGNvbnRhaW5zRWxlbWVudChlbDogRXZlbnRUYXJnZXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jYWRhcHRlclNlcnZpY2UuY29udGFpbnNFbGVtZW50KHRoaXMuI2VsZW1lbnRSZWYsIGVsKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtQ29udHJvbEZvY3VzSW4oKTogdm9pZCB7XG4gICAgY29uc3QgaW5saW5lSGVscEVsID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0SW5saW5lSGVscEVsZW1lbnQoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICk7XG4gICAgaWYgKCF0aGlzLiNhZGFwdGVyU2VydmljZS5pc0ZvY3VzSW5FbGVtZW50KGlubGluZUhlbHBFbCkpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUhhc0ZvY3VzKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtQ29udHJvbEZvY3VzT3V0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcmFjdGVyQ291bnRTY3JlZW5SZWFkZXIgPSB0aGlzLmNvbnRyb2xEaXI/LnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICB0aGlzLiN1cGRhdGVIYXNGb2N1cyhmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25JbnNldEljb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNDb250cm9sKHRoaXMuI2VsZW1lbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3B1bGF0ZShhcmdzOiBTa3lJbnB1dEJveFBvcHVsYXRlQXJncyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdElucHV0VGVtcGxhdGUgPSBhcmdzLmlucHV0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc1RlbXBsYXRlID0gYXJncy5idXR0b25zVGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc0xlZnRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0xlZnRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldFRlbXBsYXRlID0gYXJncy5pY29uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldExlZnRUZW1wbGF0ZSA9IGFyZ3MuaWNvbnNJbnNldExlZnRUZW1wbGF0ZTtcbiAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBlbGVtZW50IGluc2lkZSB0aGUgaW5wdXQgYm94LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IHBhcnRzIG9mIGEgaW5wdXQgYm94XG4gICAqIHRoYXQgd2FzIHBvcHVsYXRlZCB0aHJvdWdoIHRoZSBgU2t5SW5wdXRCb3hIb3N0U2VydmljZWBcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcXVlcnlQb3B1bGF0ZWRFbGVtZW50KHF1ZXJ5OiBzdHJpbmcpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnF1ZXJ5RWxlbWVudCh0aGlzLiNlbGVtZW50UmVmLCBxdWVyeSk7XG4gIH1cblxuICBwdWJsaWMgc2V0SGludFRleHRIaWRkZW4oaGlkZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaGludFRleHRIaWRkZW4gPSBoaWRlO1xuICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRIb3N0SGludFRleHQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEhpbnRUZXh0ID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldEhpbnRUZXh0U2NyZWVuUmVhZGVyT25seShoaWRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5oaW50VGV4dFNjcmVlblJlYWRlck9ubHkgPSBoaWRlO1xuICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNoYXNSZXF1aXJlZFZhbGlkYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNvbnRyb2xEaXI/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gICN1cGRhdGVIYXNGb2N1cyhoYXNGb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIFNvbWUgY29tcG9uZW50cyBtYW5pcHVsYXRlIHRoZSBmb2N1cyBvZiBlbGVtZW50cyBpbnNpZGUgYW4gaW5wdXQgYm94IHByb2dyYW1tYXRpY2FsbHksXG4gICAgLy8gd2hpY2ggY2FuIGNhdXNlIGFuIGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYCBpZiBmb2N1cyB3YXMgc2V0IGFmdGVyXG4gICAgLy8gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uLiBVc2luZyBgc2V0VGltZW91dCgpYCBoZXJlIGZpeGVzIGl0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbEhhc0ZvY3VzID0gaGFzRm9jdXM7XG4gICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAjY29udHJvbEhhc0Vycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSk7XG4gIH1cblxuICAjdXBkYXRlSW5wdXRSZWYoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlucHV0UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIENoZWNrIGZvciB0aGUgQW5ndWxhciByZXF1aXJlZCB2YWxpZGF0b3IgYW5kIGFkZCBhbiBhcmlhLXJlcXVpcmVkIGF0dHJpYnV0ZVxuICAgIC8vIHRvIG1hdGNoLiBGb3IgdGVtcGxhdGUtZHJpdmVuIGZvcm1zLCB0aGUgaW5wdXQgd2lsbCBoYXZlIGEgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAgICAvLyBzbyB0aGUgYXJpYS1yZXF1aXJlZCBhdHRyaWJ1dGUgaXMgdW5uZWNlc3NhcnkuXG4gICAgY29uc3QgaGFzUmVxdWlyZWRWYWxpZGF0b3IgPSB0aGlzLiNoYXNSZXF1aXJlZFZhbGlkYXRvcigpO1xuICAgIGNvbnN0IGFyaWFSZXF1aXJlZCA9IGlucHV0RWwuYXJpYVJlcXVpcmVkO1xuXG4gICAgaWYgKGhhc1JlcXVpcmVkVmFsaWRhdG9yICYmIGFyaWFSZXF1aXJlZCAhPT0gJ3RydWUnKSB7XG4gICAgICBpbnB1dEVsLmFyaWFSZXF1aXJlZCA9ICd0cnVlJztcbiAgICB9IGVsc2UgaWYgKCFoYXNSZXF1aXJlZFZhbGlkYXRvciAmJiBhcmlhUmVxdWlyZWQgPT09ICd0cnVlJykge1xuICAgICAgaW5wdXRFbC5hcmlhUmVxdWlyZWQgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0Vycm9yc0NvbXB1dGVkKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbCwgJ2FyaWEtaW52YWxpZCcsICd0cnVlJyk7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbCwgJ2FyaWEtZXJyb3JtZXNzYWdlJywgdGhpcy5lcnJvcklkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGlucHV0RWwsICdhcmlhLWludmFsaWQnKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShpbnB1dEVsLCAnYXJpYS1lcnJvcm1lc3NhZ2UnKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS51cGRhdGVEZXNjcmliZWRCeShcbiAgICAgIHRoaXMuaW5wdXRSZWYsXG4gICAgICB0aGlzLmhpbnRUZXh0SWQsXG4gICAgICB0aGlzLmhpbnRUZXh0ID8/IHRoaXMuaG9zdEhpbnRUZXh0LFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5pbnB1dFJlZiAhPT0gdGhpcy4jcHJldmlvdXNJbnB1dFJlZikge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoaW5wdXRFbCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsLCAnaWQnLCB0aGlzLmNvbnRyb2xJZCk7XG5cbiAgICAgIHRoaXMuI3VwZGF0ZU1heExlbmd0aFZhbGlkYXRvcigpO1xuXG4gICAgICB0aGlzLiNwcmV2aW91c0lucHV0UmVmID0gdGhpcy5pbnB1dFJlZjtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlTWF4TGVuZ3RoVmFsaWRhdG9yKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xEaXI/LmNvbnRyb2w7XG5cbiAgICBpZiAodGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IpIHtcbiAgICAgIGNvbnRyb2w/LnJlbW92ZVZhbGlkYXRvcnModGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IpO1xuICAgICAgdGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgJiYgdGhpcy5jaGFyYWN0ZXJMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvciA9IFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxuICAgICAgICB0aGlzLmNoYXJhY3RlckxpbWl0LFxuICAgICAgKTtcblxuICAgICAgY29udHJvbC5hZGRWYWxpZGF0b3JzKFt0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvcl0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gIGNsYXNzPVwic2t5LWlucHV0LWJveFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWlucHV0LWJveC1kaXNhYmxlZCc6IGlzRGlzYWJsZWRcbiAgfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCIgLz48bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5saW5lSGVscFRlbXBsYXRlXCJcbiAgICAgIC8+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hhcmFjdGVyQ291bnRUZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNMZWZ0VGVtcGxhdGVcIiAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaW5wdXQtZ3JvdXAtaW5uZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1maWVsZC1zdGF0dXMtYWN0aXZlJzogZm9ybUNvbnRyb2xIYXNGb2N1cyxcbiAgICAgICAgICAnc2t5LWZpZWxkLXN0YXR1cy1pbnZhbGlkJzogaGFzRXJyb3JzQ29tcHV0ZWRcbiAgICAgICAgfVwiXG4gICAgICAgIChmb2N1c2luKT1cImZvcm1Db250cm9sRm9jdXNJbigpXCJcbiAgICAgICAgKGZvY3Vzb3V0KT1cImZvcm1Db250cm9sRm9jdXNPdXQoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uc0luc2V0TGVmdFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0luc2V0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldFRlbXBsYXRlXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNUZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpbnRUZXh0VGVtcGxhdGVcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvckxhYmVsVGVtcGxhdGVcIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICBjbGFzcz1cInNreS1pbnB1dC1ib3hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1pbnB1dC1ib3gtZGlzYWJsZWQnOiBpc0Rpc2FibGVkXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1ncm91cFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zTGVmdFRlbXBsYXRlXCIgLz5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtZ3JvdXAtZm9ybS1jb250cm9sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1pbnB1dC1ib3gtZ3JvdXAtZm9ybS1jb250cm9sLWZvY3VzJzogZm9ybUNvbnRyb2xIYXNGb2N1cyxcbiAgICAgICAgJ3NreS1pbnB1dC1ib3gtZ3JvdXAtZm9ybS1jb250cm9sLWludmFsaWQnOiBoYXNFcnJvcnNDb21wdXRlZFxuICAgICAgfVwiXG4gICAgICAoZm9jdXNpbik9XCJmb3JtQ29udHJvbEZvY3VzSW4oKVwiXG4gICAgICAoZm9jdXNvdXQpPVwiZm9ybUNvbnRyb2xGb2N1c091dCgpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zSW5zZXRMZWZ0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1mb3JtLWdyb3VwLWlubmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIiAvPjxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbmxpbmVIZWxwVGVtcGxhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGFyYWN0ZXJDb3VudFRlbXBsYXRlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0luc2V0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldFRlbXBsYXRlXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIiAvPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpbnRUZXh0VGVtcGxhdGVcIiAvPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JMYWJlbFRlbXBsYXRlXCIgLz5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktY29udHJvbC1sYWJlbFwiIC8+XG4gIEBpZiAobGFiZWxUZXh0KSB7XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgIGNoYXJhY3RlckxpbWl0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGxhYmVsVGV4dCArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgKCdza3l1eF9jaGFyYWN0ZXJfY291bnRfbWVzc2FnZSdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNoYXJhY3RlckNvdW50U2NyZWVuUmVhZGVyIDogY2hhcmFjdGVyTGltaXQpXG4gICAgICAgICAgOiBudWxsXG4gICAgICBcIlxuICAgICAgW2Zvcl09XCJjb250cm9sSWRcIlxuICAgICAgW2lkXT1cImxhYmVsSWRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZFxuICAgICAgfVwiXG4gICAgICA+e3sgbGFiZWxUZXh0IH19PC9sYWJlbFxuICAgID5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbmxpbmVIZWxwVGVtcGxhdGU+XG4gIEBpZiAoKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSAmJiBsYWJlbFRleHQpIHtcbiAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICBjbGFzcz1cInNreS1jb250cm9sLWhlbHBcIlxuICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgLz5cbiAgfVxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NoYXJhY3RlckNvdW50VGVtcGxhdGU+XG4gIEBpZiAoY2hhcmFjdGVyTGltaXQgIT09IHVuZGVmaW5lZCkge1xuICAgIDxza3ktY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yXG4gICAgICBbY2hhcmFjdGVyQ291bnRdPVwiY29udHJvbERpcj8udmFsdWU/Lmxlbmd0aCB8fCAwXCJcbiAgICAgIFtjaGFyYWN0ZXJDb3VudExpbWl0XT1cImNoYXJhY3RlckxpbWl0XCJcbiAgICAvPlxuICB9XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3JcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlPlxuICA8bmctY29udGVudFxuICAgIHNlbGVjdD1cImlucHV0LHNlbGVjdCwuc2t5LWZvcm0tY29udHJvbDpub3QodGV4dGFyZWEpLHNreS1hdXRvY29tcGxldGUsc2t5LXRleHQtZWRpdG9yXCJcbiAgLz5cbiAgQGlmIChob3N0SW5wdXRUZW1wbGF0ZSkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdElucHV0VGVtcGxhdGVcIiAvPlxuICB9XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInRleHRhcmVhXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0xlZnRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1idG4uc2t5LWlucHV0LWJveC1idG4tbGVmdFwiIC8+XG4gIEBpZiAoaG9zdEJ1dHRvbnNMZWZ0VGVtcGxhdGUpIHtcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RCdXR0b25zTGVmdFRlbXBsYXRlXCIgLz5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50XG4gICAgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1idG46bm90KC5za3ktaW5wdXQtYm94LWJ0bi1sZWZ0KTpub3QoLnNreS1pbnB1dC1ib3gtYnRuLWluc2V0KVwiXG4gIC8+XG4gIEBpZiAoaG9zdEJ1dHRvbnNUZW1wbGF0ZSkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdEJ1dHRvbnNUZW1wbGF0ZVwiIC8+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtYnRuLnNreS1pbnB1dC1ib3gtYnRuLWluc2V0XCIgLz5cbiAgQGlmIChob3N0QnV0dG9uc0luc2V0VGVtcGxhdGUpIHtcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZVwiIC8+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnNJbnNldFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1pY29uLWluc2V0LXdyYXBwZXJcIiAoY2xpY2spPVwib25JbnNldEljb25DbGljaygpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1pY29uLnNreS1pbnB1dC1ib3gtaWNvbi1pbnNldFwiIC8+XG4gICAgQGlmIChob3N0SWNvbnNJbnNldFRlbXBsYXRlKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RJY29uc0luc2V0VGVtcGxhdGVcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ljb25zSW5zZXRMZWZ0VGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC1sZWZ0LXdyYXBwZXJcIlxuICAgIChjbGljayk9XCJvbkluc2V0SWNvbkNsaWNrKClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1pY29uLnNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC1sZWZ0XCIgLz5cbiAgICBAaWYgKGhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlXCIgLz5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlcnJvckxhYmVsVGVtcGxhdGU+XG4gIDxza3ktZm9ybS1lcnJvcnNcbiAgICBbaWRdPVwiZXJyb3JJZFwiXG4gICAgW2Vycm9yc109XCJjb250cm9sRGlyPy5lcnJvcnNcIlxuICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICBbdG91Y2hlZF09XCJjb250cm9sRGlyPy50b3VjaGVkXCJcbiAgICBbZGlydHldPVwiY29udHJvbERpcj8uZGlydHlcIlxuICA+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cInNreS1mb3JtLWVycm9yLHNwYW4uc2t5LWlucHV0LWJveC1kZXNjZW5kZW50LWZvcm0tZXJyb3JcIlxuICAgIC8+XG4gIDwvc2t5LWZvcm0tZXJyb3JzPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWVycm9yLWxhYmVsLC5za3ktZXJyb3ItaW5kaWNhdG9yXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGludFRleHRUZW1wbGF0ZT5cbiAgQGlmIChoaW50VGV4dCB8fCBob3N0SGludFRleHQpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaGludC10ZXh0XCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1mb250LWhpbnQtdGV4dC1zJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWlucHV0LWJveC1oaW50LXRleHQtaGlkZGVuJzogaGludFRleHRIaWRkZW4sXG4gICAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGludFRleHRTY3JlZW5SZWFkZXJPbmx5XG4gICAgICB9XCJcbiAgICAgIFtpZF09XCJoaW50VGV4dElkXCJcbiAgICA+XG4gICAgICB7eyBoaW50VGV4dCB8IHNreUlucHV0Qm94SGludFRleHQ6IGhvc3RIaW50VGV4dCB9fVxuICAgIDwvZGl2PlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { SkyCharacterCounterModule } from '../character-counter/character-counter.module';\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport { SkyInputBoxControlDirective } from './input-box-control.directive';\nimport { SkyInputBoxHintTextPipe } from './input-box-hint-text.pipe';\nimport { SkyInputBoxComponent } from './input-box.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyInputBoxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxModule, declarations: [SkyInputBoxComponent], imports: [CommonModule,\n SkyCharacterCounterModule,\n SkyFormErrorsModule,\n SkyFormErrorModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyInputBoxControlDirective,\n SkyInputBoxHintTextPipe,\n SkyThemeModule], exports: [SkyInputBoxHintTextPipe,\n SkyInputBoxComponent,\n SkyInputBoxControlDirective,\n SkyFormErrorModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxModule, imports: [CommonModule,\n SkyCharacterCounterModule,\n SkyFormErrorsModule,\n SkyFormErrorModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyThemeModule, SkyFormErrorModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyInputBoxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SkyInputBoxComponent],\n imports: [\n CommonModule,\n SkyCharacterCounterModule,\n SkyFormErrorsModule,\n SkyFormErrorModule,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyInputBoxControlDirective,\n SkyInputBoxHintTextPipe,\n SkyThemeModule,\n ],\n exports: [\n SkyInputBoxHintTextPipe,\n SkyInputBoxComponent,\n SkyInputBoxControlDirective,\n SkyFormErrorModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFzQjdELE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQW5CYixvQkFBb0IsYUFFakMsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QixjQUFjLGFBR2QsdUJBQXVCO1lBQ3ZCLG9CQUFvQjtZQUNwQiwyQkFBMkI7WUFDM0Isa0JBQWtCOytHQUdULGlCQUFpQixZQWpCMUIsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFHbkIsY0FBYyxFQU1kLGtCQUFrQjs7MkZBR1QsaUJBQWlCO2tCQXBCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlck1vZHVsZSB9IGZyb20gJy4uL2NoYXJhY3Rlci1jb3VudGVyL2NoYXJhY3Rlci1jb3VudGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IubW9kdWxlJztcbmltcG9ydCB7IFNreUZvcm1FcnJvcnNNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktZm9ybXMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQtYm94LWNvbnRyb2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUlucHV0Qm94SGludFRleHRQaXBlIH0gZnJvbSAnLi9pbnB1dC1ib3gtaGludC10ZXh0LnBpcGUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWJveC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lJbnB1dEJveENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlck1vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICAgIFNreUZvcm1FcnJvck1vZHVsZSxcbiAgICBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUlucHV0Qm94Q29udHJvbERpcmVjdGl2ZSxcbiAgICBTa3lJbnB1dEJveEhpbnRUZXh0UGlwZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUlucHV0Qm94SGludFRleHRQaXBlLFxuICAgIFNreUlucHV0Qm94Q29tcG9uZW50LFxuICAgIFNreUlucHV0Qm94Q29udHJvbERpcmVjdGl2ZSxcbiAgICBTa3lGb3JtRXJyb3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUlucHV0Qm94TW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, Input, Output, ViewChild, booleanAttribute, inject, } from '@angular/core';\nimport { FormsModule, NgControl, Validators, } from '@angular/forms';\nimport { SkyFileReaderService, SkyIdModule, SkyLiveAnnouncerService, } from '@skyux/core';\nimport { SkyIdService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { take } from 'rxjs/operators';\nimport { SkyFormErrorComponent } from '../../form-error/form-error.component';\nimport { SKY_FORM_ERRORS_ENABLED } from '../../form-error/form-errors-enabled-token';\nimport { SkyFormErrorsComponent } from '../../form-error/form-errors.component';\nimport { SkyInputBoxModule } from '../../input-box/input-box.module';\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileAttachmentService } from '../file-attachment/file-attachment.service';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@skyux/i18n\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/icon\";\nimport * as i6 from \"@skyux/core\";\nimport * as i7 from \"../../input-box/input-box.component\";\nimport * as i8 from \"../../input-box/input-box-control.directive\";\nimport * as i9 from \"@skyux/theme\";\nconst MAX_FILE_SIZE_DEFAULT = 500000;\nconst MIN_FILE_SIZE_DEFAULT = 0;\n/**\n * Provides an element to attach multiple files where users can browse or drag and drop local files\n * or provide hyperlinks to external files. You can leave the contents of the component\n * blank to display the drop zone's default UI, or you can specify custom content to\n * display instead. When the module initializes, it disables the ability to drag and\n * drop files for the entire window to prevent the browser from opening files that are\n * accidentally dropped outside the target zone. If you implement your own file drop functionality\n * outside of the file drop component, you can place the `sky-file-drop-target` CSS class\n * on the element that receives drop events to exempt it from the drop exclusion rule.\n */\nexport class SkyFileDropComponent {\n /**\n * The minimum size in bytes for valid files.\n * @default 0\n */\n set minFileSize(value) {\n this.#_minFileSize = value ?? MIN_FILE_SIZE_DEFAULT;\n }\n get minFileSize() {\n return this.#_minFileSize;\n }\n /**\n * The maximum size in bytes for valid files.\n * @default 500000\n */\n set maxFileSize(value) {\n this.#_maxFileSize = value ?? MAX_FILE_SIZE_DEFAULT;\n }\n get maxFileSize() {\n return this.#_maxFileSize;\n }\n #enterEventTarget;\n #_maxFileSize;\n #_minFileSize;\n #notifyTouched;\n #notifyChange;\n #_uploadedFiles;\n #fileAttachmentService;\n #fileReaderSvc;\n #liveAnnouncerSvc;\n #resourcesSvc;\n #idSvc;\n constructor() {\n /**\n * Fires when users add or remove files.\n */\n this.filesChanged = new EventEmitter();\n /**\n * Fires when the link input box triggers a blur event.\n */\n this.linkInputBlur = new EventEmitter();\n /**\n * Fires when users add or remove links.\n */\n this.linkChanged = new EventEmitter();\n /**\n * Whether users can drag and drop multiple files at the same time.\n */\n this.multiple = true;\n /**\n * Whether to disable the option to browse for files to attach.\n */\n this.noClick = false;\n /**\n * Whether to display the option to attach files from URLs rather than from local devices.\n */\n this.allowLinks = false;\n /**\n * Whether to hide `labelText` from view.\n */\n this.labelHidden = false;\n /**\n * Whether uploading a file or link is required.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input elements so that screen readers announce an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n */\n this.required = false;\n /**\n * Whether the file attachment is stacked on another form component. When specified, the appropriate\n * vertical spacing is automatically added to the file attachment.\n */\n this.stacked = false;\n this.rejectedOver = false;\n this.acceptedOver = false;\n this.#_maxFileSize = MAX_FILE_SIZE_DEFAULT;\n this.#_minFileSize = MIN_FILE_SIZE_DEFAULT;\n this.#_uploadedFiles = [];\n this.#fileAttachmentService = inject(SkyFileAttachmentService);\n this.#fileReaderSvc = inject(SkyFileReaderService);\n this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n this.#resourcesSvc = inject(SkyLibResourcesService);\n this.#idSvc = inject(SkyIdService);\n this.errorId = this.#idSvc.generateId();\n this.ngControl = inject(NgControl, { optional: true });\n this.rejectedFiles = [];\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n ngOnDestroy() {\n this.filesChanged.complete();\n this.linkChanged.complete();\n this.linkInputBlur.complete();\n }\n writeValue(value) {\n if (Array.isArray(value)) {\n const linkUploads = [];\n const fileUploads = [];\n value.forEach((file) => {\n if ('url' in file && file.url !== undefined) {\n if (!('file' in file)) {\n linkUploads.push(file);\n }\n else if ('file' in file && file.file !== undefined) {\n fileUploads.push(file);\n }\n }\n });\n if (!(linkUploads.length > 0) && !(fileUploads.length > 0)) {\n this.#notifyChange?.(null);\n }\n else {\n this.#_uploadedFiles = [];\n if (linkUploads.length > 0) {\n linkUploads.forEach((file) => {\n this.uploadLink(file);\n });\n }\n if (fileUploads.length > 0) {\n // this prevents FormControl from setting an invalid value before the async\n // processes in #handleFile is complete\n this.#notifyChange?.(null);\n this.#handleFiles(fileUploads);\n }\n }\n }\n else {\n this.#notifyChange?.(null);\n }\n }\n registerOnChange(fn) {\n this.#notifyChange = fn;\n }\n registerOnTouched(fn) {\n this.#notifyTouched = fn;\n }\n dropClicked() {\n if (!this.noClick && this.inputEl) {\n this.#notifyTouched?.();\n this.inputEl.nativeElement.click();\n }\n }\n fileChangeEvent(fileChangeEvent) {\n /** Set a timeout here to allow the browser to regain context from the system dialog. Without this, error messages do not read out correctly to screen readers. */\n setTimeout(() => {\n this.#handleFiles(fileChangeEvent.target?.files);\n }, 500);\n }\n fileDragEnter(dragEnterEvent) {\n // Save this target to know when the drag event leaves\n this.#enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n fileDragOver(dragOverEvent) {\n const transfer = dragOverEvent.dataTransfer;\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n if (transfer) {\n if (transfer.items) {\n const files = Array.from(transfer.items);\n for (const file of files) {\n if (file.type &&\n this.#fileAttachmentService.fileTypeRejected(file.type, this.acceptedTypes)) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n } /* istanbul ignore next: untestable */\n else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n fileDrop(dropEvent) {\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n this.#notifyTouched?.();\n this.#enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n const hasDirectory = this.#fileAttachmentService.hasDirectory(dropEvent.dataTransfer.files);\n const invalidNumberOfFiles = !this.multiple && dropEvent.dataTransfer.files.length > 1;\n if (hasDirectory || invalidNumberOfFiles) {\n return;\n }\n this.#handleFiles(dropEvent.dataTransfer.files);\n }\n }\n fileDragLeave(dragLeaveEvent) {\n if (this.#enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n addLinkEnter(event) {\n if (event.which === 13) {\n this.addLink(event);\n }\n }\n addLink(event) {\n event.preventDefault();\n this.uploadLink({ url: this.linkUrl });\n this.linkUrl = undefined;\n this.#notifyTouched?.();\n }\n uploadLink(file) {\n this.linkChanged.emit(file);\n this.#_uploadedFiles?.push(file);\n this.#notifyChange?.(this.#_uploadedFiles);\n this.#announceState('skyux_file_attachment_file_upload_link_added', file.url);\n }\n onLinkBlur() {\n this.#notifyTouched?.();\n this.linkInputBlur.emit();\n }\n get isRequired() {\n return (this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false));\n }\n #announceState(resourceString, ...args) {\n this.#resourcesSvc\n .getString(resourceString, ...args)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncerSvc.announce(internationalizedString);\n });\n }\n #emitFileChangeEvent(totalFiles, rejectedFileArray, validFileArray) {\n if (totalFiles === rejectedFileArray.length + validFileArray.length) {\n this.filesChanged.emit({\n files: validFileArray,\n rejectedFiles: rejectedFileArray,\n });\n if (this.inputEl) {\n this.inputEl.nativeElement.value = '';\n }\n }\n }\n #filesRejected(file, validFileArray, rejectedFileArray, totalFiles) {\n rejectedFileArray.push(file);\n this.#notifyChange?.(this.#_uploadedFiles.length > 0 ? this.#_uploadedFiles : null);\n this.#emitFileChangeEvent(totalFiles, rejectedFileArray, validFileArray);\n }\n async #loadFile(fileDrop, file, validFileArray, rejectedFileArray, totalFiles) {\n try {\n file.url = await this.#fileReaderSvc.readAsDataURL(file.file);\n validFileArray.push(file);\n fileDrop.#emitFileChangeEvent(totalFiles, rejectedFileArray, validFileArray);\n this.#announceState('skyux_file_attachment_file_upload_file_added', file.file.name);\n this.#_uploadedFiles?.push(file);\n this.#notifyChange?.(this.#_uploadedFiles);\n }\n catch {\n fileDrop.#filesRejected(file, validFileArray, rejectedFileArray, totalFiles);\n }\n }\n #handleFiles(fileList) {\n if (fileList) {\n const validFileArray = [];\n const rejectedFileArray = [];\n const totalFiles = fileList.length;\n let files = [];\n if ('item' in fileList) {\n for (let index = 0; index < fileList.length; index++) {\n files.push({\n file: fileList.item(index),\n });\n }\n }\n else {\n files = fileList;\n }\n const processedFiles = this.#fileAttachmentService.checkFiles(files, this.minFileSize, this.maxFileSize, this.acceptedTypes, this.validateFn);\n for (const file of processedFiles) {\n if (file.errorType) {\n this.#filesRejected(file, validFileArray, rejectedFileArray, totalFiles);\n }\n else {\n void this.#loadFile(this, file, validFileArray, rejectedFileArray, totalFiles);\n }\n }\n this.rejectedFiles = rejectedFileArray;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFileDropComponent, isStandalone: true, selector: \"sky-file-drop\", inputs: { fileUploadAriaLabel: \"fileUploadAriaLabel\", linkUploadAriaLabel: \"linkUploadAriaLabel\", linkUploadHintText: \"linkUploadHintText\", minFileSize: \"minFileSize\", maxFileSize: \"maxFileSize\", multiple: \"multiple\", validateFn: \"validateFn\", acceptedTypes: \"acceptedTypes\", acceptedTypesErrorMessage: \"acceptedTypesErrorMessage\", noClick: \"noClick\", allowLinks: \"allowLinks\", labelText: \"labelText\", labelHidden: [\"labelHidden\", \"labelHidden\", booleanAttribute], hintText: \"hintText\", required: [\"required\", \"required\", booleanAttribute], helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", stacked: [\"stacked\", \"stacked\", booleanAttribute], helpKey: \"helpKey\" }, outputs: { filesChanged: \"filesChanged\", linkInputBlur: \"linkInputBlur\", linkChanged: \"linkChanged\" }, host: { properties: { \"class.sky-form-field-stacked\": \"this.stacked\" } }, providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], viewQueries: [{ propertyName: \"inputEl\", first: true, predicate: [\"fileInput\"], descendants: true }], ngImport: i0, template: \"<fieldset class=\\\"sky-file-drop-wrapper\\\">\\n @if (labelText) {\\n <legend\\n class=\\\"sky-control-label sky-font-body-default\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': labelHidden\\n }\\\"\\n >\\n <span\\n class=\\\"sky-file-drop-label-text\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isRequired\\n }\\\"\\n >{{ labelText }}</span\\n >\\n @if (isRequired) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_file_attachment_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n }\\n <div\\n class=\\\"sky-file-drop-row\\\"\\n [ngClass]=\\\"{ 'sky-file-drop-allow-links': allowLinks }\\\"\\n >\\n <div\\n class=\\\"sky-file-drop-col\\\"\\n [ngClass]=\\\"{\\n 'sky-file-drop-accept': acceptedOver,\\n 'sky-file-drop-reject': rejectedOver\\n }\\\"\\n >\\n <button\\n class=\\\"sky-file-drop sky-file-drop-target\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n fileUploadAriaLabel ||\\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-invalid]=\\\"!!rejectedFiles.length\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && rejectedFiles.length ? errorId : undefined\\n \\\"\\n (click)=\\\"dropClicked()\\\"\\n (dragover)=\\\"fileDragOver($event)\\\"\\n (dragenter)=\\\"fileDragEnter($event)\\\"\\n (dragleave)=\\\"fileDragLeave($event)\\\"\\n (drop)=\\\"fileDrop($event)\\\"\\n ></button>\\n\\n <input\\n #fileInput\\n tabindex=\\\"-1\\\"\\n aria-hidden=\\\"true\\\"\\n type=\\\"file\\\"\\n class=\\\"sky-file-input-hidden\\\"\\n [attr.multiple]=\\\"multiple ? multiple : null\\\"\\n [attr.accept]=\\\"acceptedTypes ? acceptedTypes : null\\\"\\n (change)=\\\"fileChangeEvent($event)\\\"\\n />\\n\\n @if (customEl.children.length === 0) {\\n <div class=\\\"sky-file-drop-contents sky-file-drop-upload-contents\\\">\\n <div class=\\\"sky-file-drop-contents-not-over\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_drag_file_here'\\n | skyLibResources\\n }}\\n </div>\\n <div class=\\\"sky-file-drop-text\\\">\\n {{\\n 'skyux_file_attachment_file_upload_or_click_to_browse'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon\\\"\\n iconName=\\\"arrow-upload\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n\\n <!-- This will appear when file is dragged over and is valid -->\\n <div class=\\\"sky-file-drop-contents-accept\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_drop_files_here'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon sky-file-upload-icon-target\\\"\\n iconName=\\\"target\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n\\n <!-- This will appear when file is dragged over and is invalid -->\\n <div class=\\\"sky-file-drop-contents-reject\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_invalid_file'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon sky-file-upload-icon-close\\\"\\n iconName=\\\"prohibited\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n </div>\\n }\\n\\n <div #customEl class=\\\"sky-file-drop-contents-custom\\\">\\n <ng-content />\\n </div>\\n </div>\\n @if (allowLinks) {\\n <div class=\\\"sky-file-drop-col\\\">\\n <div class=\\\"sky-file-drop-contents\\\">\\n <div class=\\\"sky-file-drop-link\\\">\\n <div class=\\\"sky-file-drop-link-header\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_link_label'\\n | skyLibResources\\n }}\\n </div>\\n </div>\\n <sky-input-box [hintText]=\\\"linkUploadHintText\\\">\\n <input\\n type=\\\"text\\\"\\n [attr.aria-label]=\\\"\\n linkUploadAriaLabel ||\\n ('skyux_file_attachment_file_upload_link_label'\\n | skyLibResources)\\n \\\"\\n [attr.aria-invalid]=\\\"!!rejectedFiles.length\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && rejectedFiles.length ? errorId : undefined\\n \\\"\\n [(ngModel)]=\\\"linkUrl\\\"\\n (blur)=\\\"onLinkBlur()\\\"\\n (keyup)=\\\"addLinkEnter($event)\\\"\\n />\\n </sky-input-box>\\n <button\\n type=\\\"button\\\"\\n class=\\\"sky-btn sky-btn-primary\\\"\\n [disabled]=\\\"!linkUrl\\\"\\n (click)=\\\"addLink($event)\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\\n }}\\n </button>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n <div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-font-deemphasized sky-file-drop-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"ngControl ? ngControl.touched : rejectedFiles.length > 0\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n @for (rejectedFile of rejectedFiles; track rejectedFile.url) {\\n <div>\\n @if (rejectedFile.errorType === 'fileType') {\\n <sky-form-error\\n errorName=\\\"fileType\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_file_type_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : rejectedFile.errorParam\\n \\\"\\n />\\n } @else if (rejectedFile.errorType === 'maxFileSize') {\\n <sky-form-error\\n errorName=\\\"maxFileSize\\\"\\n [errorText]=\\\"\\n acceptedTypesErrorMessage ??\\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : (rejectedFile.errorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (rejectedFile.errorType === 'minFileSize') {\\n <sky-form-error\\n errorName=\\\"minFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : (rejectedFile.errorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (\\n rejectedFile.errorType === 'validate' && rejectedFile.errorParam\\n ) {\\n <sky-form-error\\n errorName=\\\"validate\\\"\\n [errorText]=\\\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\\\"\\n />\\n }\\n </div>\\n }\\n</sky-form-errors>\\n\", styles: [\".sky-file-drop-wrapper:not(.sky-theme-modern *){--sky-override-file-drop-accept-border-color: #72bf44;--sky-override-file-drop-col-padding: 0 5px;--sky-override-file-drop-col-responsive-margin-bottom: 10px;--sky-override-file-drop-col-responsive-margin-right: 0;--sky-override-file-drop-contents-background-color: #eeeeef;--sky-override-file-drop-contents-border-color: #cdcfd2;--sky-override-file-drop-contents-border-radius: 0;--sky-override-file-drop-contents-border-width: 1px;--sky-override-file-drop-contents-padding: 10px;--sky-override-file-drop-drag-border-width: 1px;--sky-override-file-drop-drag-contents-border-style: dashed;--sky-override-file-drop-hint-text-margin-top: var(--sky-margin-stacked-xs);--sky-override-file-drop-label-color: #212327;--sky-override-file-drop-label-font-size: 15px;--sky-override-file-drop-link-header-margin-bottom: 5px;--sky-override-file-drop-link-input-background-color: transparent;--sky-override-file-drop-link-input-margin-bottom: 10px;--sky-override-file-drop-non-stacked-with-item-margin-bottom: 0;--sky-override-file-drop-outline-focus: auto;--sky-override-file-drop-reject-border-color: #ef4044;--sky-override-file-drop-text-font-size: 15px;--sky-override-file-drop-text-font-weight: 400;--sky-override-file-drop-text-header-font-size: 22px;--sky-override-file-drop-text-header-font-weight: 600;--sky-override-file-drop-text-header-line-height: 1.1;--sky-override-file-drop-text-line-height: 1.1;--sky-override-file-drop-text-margin-bottom: 20px;--sky-override-file-drop-text-margin-top: 5px;--sky-override-file-drop-upload-contents-active-border: #cdcfd2 solid 1px;--sky-override-file-drop-upload-contents-focus-border: #cdcfd2 solid 1px;--sky-override-file-drop-upload-contents-hover-border: #cdcfd2 solid 1px;--sky-override-file-upload-icon-color: #686c73;--sky-override-file-drop-upload-icon-margin-top: 10px;--sky-override-file-upload-icon-close-color: none}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-drop-wrapper{--sky-override-file-drop-col-padding: 0 var(--modern-space-xs);--sky-override-file-drop-col-responsive-margin-right: 0;--sky-override-file-drop-contents-border-color: var(--modern-color-gray-20);--sky-override-file-drop-contents-border-radius: var( --modern-border-radius-0 );--sky-override-file-drop-contents-padding: var(--modern-size-10);--sky-override-file-drop-drag-border-width: var( --sky-border-width-input-hover );--sky-override-file-drop-drag-contents-border-style: dashed;--sky-override-file-drop-icon-font-size: var(--modern-size-40);--sky-override-file-drop-label-color: var(--sky-text-color-deemphasized);--sky-override-file-drop-label-font-size: 13px;--sky-override-file-drop-link-input-background-color: var( --modern-color-white );--sky-override-file-drop-link-input-margin-bottom: var( --sky-space-gap-form-l );--sky-override-file-drop-non-stacked-with-item-margin-bottom: 0;--sky-override-file-drop-outline-focus: auto;--sky-override-file-drop-reject-border-color: #ef4044;--sky-override-file-drop-text-header-font-size: var( --sky-font-size-display-3 );--sky-override-file-drop-text-header-font-weight: var( --sky-font-weight-display-3 );--sky-override-file-drop-text-font-size: 15px;--sky-override-file-drop-text-font-weight: var(--sky-font-weight-body-m);--sky-override-file-drop-text-header-line-height: var( --modern-line_height-110 );--sky-override-file-drop-text-line-height: var(--modern-line_height-110);--sky-override-file-drop-text-margin-bottom: var(--modern-size-20);--sky-override-file-drop-upload-contents-active-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-contents-focus-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-contents-hover-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-icon-margin-top: var(--modern-size-10);--sky-override-file-upload-icon-color: var(--sky-color-icon-deemphasized)}:host.sky-form-field-stacked{display:block}:host-context(:has(+ sky-file-item):not(.sky-form-field-stacked)) .sky-file-drop-wrapper{margin-bottom:var(--sky-override-file-drop-non-stacked-with-item-margin-bottom, var(--sky-space-gap-form-l))}.sky-file-drop-col{padding:var(--sky-override-file-drop-col-padding, 0);position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:var(--sky-override-file-drop-col-responsive-margin-bottom, var(--sky-space-gap-form-s))}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:var(--sky-override-file-drop-col-responsive-margin-bottom, var(--sky-space-gap-form-s))}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-right:var(--sky-override-file-drop-col-responsive-margin-right, var(--sky-space-gap-action_group-m));margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-right:var(--sky-override-file-drop-col-responsive-margin-right, var(--sky-space-gap-action_group-m));margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border:var(--sky-override-file-drop-contents-border-width, var(--sky-border-width-input-base)) solid var(--sky-override-file-drop-contents-border-color, var(--sky-color-border-input-base));background-color:var(--sky-override-file-drop-contents-background-color, var(--sky-color-background-file_drop));border-radius:var(--sky-override-file-drop-contents-border-radius, var(--sky-border-radius-s));padding:var(--sky-override-file-drop-contents-padding, var(--sky-comp-file_drop-content-space-inset-top) var(--sky-comp-file_drop-content-space-inset-right) var(--sky-comp-file_drop-content-space-inset-bottom) var(--sky-comp-file_drop-content-space-inset-left));cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:var(--sky-override-file-drop-link-header-margin-bottom, var(--sky-space-gap-stacked_supplemental-s))}.sky-file-drop:active~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-active-border, var(--sky-border-width-input-active) solid var(--sky-color-border-input-active))}.sky-file-drop:focus-visible:not(:active){outline:var(--sky-override-file-drop-outline-focus, none)}.sky-file-drop:focus-visible:not(:active)~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-focus-border, var(--sky-border-width-input-focus) solid var(--sky-color-border-input-focus))}.sky-file-drop:hover:not(:active)~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-hover-border, var(--sky-border-width-input-hover) solid var(--sky-color-border-input-hover))}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-override-file-drop-hint-text-margin-top, var(--sky-space-gap-stacked_supplemental-s))}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:var(--sky-override-file-drop-drag-contents-border-style, solid);border-width:var(--sky-override-file-drop-drag-border-width, var(--sky-border-width-input-hover))}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:var(--sky-override-file-drop-accept-border-color, var(--sky-color-border-success))}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:var(--sky-override-file-drop-reject-border-color, var(--sky-color-border-danger));border-width:var(--sky-override-file-drop-drag-border-width, var(--sky-border-width-input-error))}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;max-height:var(--sky-override-file-drop-icon-font-size, auto);color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-deemphasized));margin-top:var(--sky-override-file-drop-upload-icon-margin-top, var(--sky-space-gap-stacked_supplemental-l))}.sky-file-upload-icon-close{color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-danger))}.sky-file-upload-icon-target{color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-success))}.sky-file-drop-link{cursor:default}.sky-file-drop-link sky-input-box{--sky-background-color-input-box-group: var( --sky-override-file-drop-link-input-background-color, var(--bb-color-white) );--sky-background-color-input-box-group-focused: var( --sky-override-file-drop-link-input-background-color, var(--bb-color-white) );margin-bottom:var(--sky-override-file-drop-link-input-margin-bottom, var(--sky-space-gap-form-s))}.sky-file-drop-text-header{margin:0;font-size:var(--sky-override-file-drop-text-header-font-size, var(--sky-font-size-body-m));font-style:var(--sky-font-style-body-m);font-weight:var(--sky-override-file-drop-text-header-font-weight, var(--sky-font-weight-body-m));line-height:var(--sky-override-file-drop-text-header-line-height, var(--sky-font-line_height-body-m))}.sky-file-drop-text{margin-top:var(--sky-override-file-drop-text-margin-top, var(--sky-space-gap-stacked_supplemental-s));margin-bottom:var(--sky-override-file-drop-text-margin-bottom, 0);font-size:var(--sky-override-file-drop-text-font-size, var(--sky-font-size-body-s));font-style:var(--sky-font-style-body-s);font-weight:var(--sky-override-file-drop-text-font-weight, var(--sky-font-weight-body-s));line-height:var(--sky-override-file-drop-text-line-height, var(--sky-font-line_height-body-s))}.sky-file-drop-text,.sky-file-drop-text-header{display:block}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-control-label{color:var(--sky-override-file-drop-label-color, var(--sky-color-text-default));font-size:var(--sky-override-file-drop-label-font-size, var(--sky-font-size-input-label));font-style:var(--sky-font-style-input-label);font-weight:var(--sky-font-weight-input-label);letter-spacing:var(--sky-font-letter_spacing-input-label);line-height:var(--sky-font-line_height-input-label)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: SkyFileSizePipe, name: \"skyFileSize\" }, { kind: \"component\", type: SkyFormErrorComponent, selector: \"sky-form-error\", inputs: [\"errorName\", \"errorText\"] }, { kind: \"component\", type: SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"ngmodule\", type: SkyFormsResourcesModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyInputBoxModule }, { kind: \"component\", type: i7.SkyInputBoxComponent, selector: \"sky-input-box\", inputs: [\"hasErrors\", \"disabled\", \"labelText\", \"characterLimit\", \"stacked\", \"helpPopoverTitle\", \"helpPopoverContent\", \"helpKey\", \"hintText\"] }, { kind: \"directive\", type: i8.SkyInputBoxControlDirective, selector: \"input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)\", inputs: [\"autocomplete\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i9.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-file-drop', providers: [\n SkyFileAttachmentService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], imports: [\n CommonModule,\n FormsModule,\n SkyFileSizePipe,\n SkyFormErrorComponent,\n SkyFormErrorsComponent,\n SkyFormsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyInputBoxModule,\n SkyThemeModule,\n ], template: \"<fieldset class=\\\"sky-file-drop-wrapper\\\">\\n @if (labelText) {\\n <legend\\n class=\\\"sky-control-label sky-font-body-default\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': labelHidden\\n }\\\"\\n >\\n <span\\n class=\\\"sky-file-drop-label-text\\\"\\n [ngClass]=\\\"{\\n 'sky-control-label-required': isRequired\\n }\\\"\\n >{{ labelText }}</span\\n >\\n @if (isRequired) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_file_attachment_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n }\\n <div\\n class=\\\"sky-file-drop-row\\\"\\n [ngClass]=\\\"{ 'sky-file-drop-allow-links': allowLinks }\\\"\\n >\\n <div\\n class=\\\"sky-file-drop-col\\\"\\n [ngClass]=\\\"{\\n 'sky-file-drop-accept': acceptedOver,\\n 'sky-file-drop-reject': rejectedOver\\n }\\\"\\n >\\n <button\\n class=\\\"sky-file-drop sky-file-drop-target\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n fileUploadAriaLabel ||\\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-invalid]=\\\"!!rejectedFiles.length\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && rejectedFiles.length ? errorId : undefined\\n \\\"\\n (click)=\\\"dropClicked()\\\"\\n (dragover)=\\\"fileDragOver($event)\\\"\\n (dragenter)=\\\"fileDragEnter($event)\\\"\\n (dragleave)=\\\"fileDragLeave($event)\\\"\\n (drop)=\\\"fileDrop($event)\\\"\\n ></button>\\n\\n <input\\n #fileInput\\n tabindex=\\\"-1\\\"\\n aria-hidden=\\\"true\\\"\\n type=\\\"file\\\"\\n class=\\\"sky-file-input-hidden\\\"\\n [attr.multiple]=\\\"multiple ? multiple : null\\\"\\n [attr.accept]=\\\"acceptedTypes ? acceptedTypes : null\\\"\\n (change)=\\\"fileChangeEvent($event)\\\"\\n />\\n\\n @if (customEl.children.length === 0) {\\n <div class=\\\"sky-file-drop-contents sky-file-drop-upload-contents\\\">\\n <div class=\\\"sky-file-drop-contents-not-over\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_drag_file_here'\\n | skyLibResources\\n }}\\n </div>\\n <div class=\\\"sky-file-drop-text\\\">\\n {{\\n 'skyux_file_attachment_file_upload_or_click_to_browse'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon\\\"\\n iconName=\\\"arrow-upload\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n\\n <!-- This will appear when file is dragged over and is valid -->\\n <div class=\\\"sky-file-drop-contents-accept\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_drop_files_here'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon sky-file-upload-icon-target\\\"\\n iconName=\\\"target\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n\\n <!-- This will appear when file is dragged over and is invalid -->\\n <div class=\\\"sky-file-drop-contents-reject\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_invalid_file'\\n | skyLibResources\\n }}\\n </div>\\n <sky-icon\\n class=\\\"sky-file-upload-icon sky-file-upload-icon-close\\\"\\n iconName=\\\"prohibited\\\"\\n iconSize=\\\"xl\\\"\\n />\\n </div>\\n </div>\\n }\\n\\n <div #customEl class=\\\"sky-file-drop-contents-custom\\\">\\n <ng-content />\\n </div>\\n </div>\\n @if (allowLinks) {\\n <div class=\\\"sky-file-drop-col\\\">\\n <div class=\\\"sky-file-drop-contents\\\">\\n <div class=\\\"sky-file-drop-link\\\">\\n <div class=\\\"sky-file-drop-link-header\\\">\\n <div\\n class=\\\"sky-file-drop-text-header\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-display-3': 'default'\\n }\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_link_label'\\n | skyLibResources\\n }}\\n </div>\\n </div>\\n <sky-input-box [hintText]=\\\"linkUploadHintText\\\">\\n <input\\n type=\\\"text\\\"\\n [attr.aria-label]=\\\"\\n linkUploadAriaLabel ||\\n ('skyux_file_attachment_file_upload_link_label'\\n | skyLibResources)\\n \\\"\\n [attr.aria-invalid]=\\\"!!rejectedFiles.length\\\"\\n [attr.aria-errormessage]=\\\"\\n labelText && rejectedFiles.length ? errorId : undefined\\n \\\"\\n [(ngModel)]=\\\"linkUrl\\\"\\n (blur)=\\\"onLinkBlur()\\\"\\n (keyup)=\\\"addLinkEnter($event)\\\"\\n />\\n </sky-input-box>\\n <button\\n type=\\\"button\\\"\\n class=\\\"sky-btn sky-btn-primary\\\"\\n [disabled]=\\\"!linkUrl\\\"\\n (click)=\\\"addLink($event)\\\"\\n >\\n {{\\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\\n }}\\n </button>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n <div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-font-deemphasized sky-file-drop-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [labelText]=\\\"labelText\\\"\\n [touched]=\\\"ngControl ? ngControl.touched : rejectedFiles.length > 0\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n @for (rejectedFile of rejectedFiles; track rejectedFile.url) {\\n <div>\\n @if (rejectedFile.errorType === 'fileType') {\\n <sky-form-error\\n errorName=\\\"fileType\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_file_type_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : rejectedFile.errorParam\\n \\\"\\n />\\n } @else if (rejectedFile.errorType === 'maxFileSize') {\\n <sky-form-error\\n errorName=\\\"maxFileSize\\\"\\n [errorText]=\\\"\\n acceptedTypesErrorMessage ??\\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : (rejectedFile.errorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (rejectedFile.errorType === 'minFileSize') {\\n <sky-form-error\\n errorName=\\\"minFileSize\\\"\\n [errorText]=\\\"\\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\\n | skyLibResources\\n : rejectedFile.file.name\\n : (rejectedFile.errorParam | skyFileSize)\\n \\\"\\n />\\n } @else if (\\n rejectedFile.errorType === 'validate' && rejectedFile.errorParam\\n ) {\\n <sky-form-error\\n errorName=\\\"validate\\\"\\n [errorText]=\\\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\\\"\\n />\\n }\\n </div>\\n }\\n</sky-form-errors>\\n\", styles: [\".sky-file-drop-wrapper:not(.sky-theme-modern *){--sky-override-file-drop-accept-border-color: #72bf44;--sky-override-file-drop-col-padding: 0 5px;--sky-override-file-drop-col-responsive-margin-bottom: 10px;--sky-override-file-drop-col-responsive-margin-right: 0;--sky-override-file-drop-contents-background-color: #eeeeef;--sky-override-file-drop-contents-border-color: #cdcfd2;--sky-override-file-drop-contents-border-radius: 0;--sky-override-file-drop-contents-border-width: 1px;--sky-override-file-drop-contents-padding: 10px;--sky-override-file-drop-drag-border-width: 1px;--sky-override-file-drop-drag-contents-border-style: dashed;--sky-override-file-drop-hint-text-margin-top: var(--sky-margin-stacked-xs);--sky-override-file-drop-label-color: #212327;--sky-override-file-drop-label-font-size: 15px;--sky-override-file-drop-link-header-margin-bottom: 5px;--sky-override-file-drop-link-input-background-color: transparent;--sky-override-file-drop-link-input-margin-bottom: 10px;--sky-override-file-drop-non-stacked-with-item-margin-bottom: 0;--sky-override-file-drop-outline-focus: auto;--sky-override-file-drop-reject-border-color: #ef4044;--sky-override-file-drop-text-font-size: 15px;--sky-override-file-drop-text-font-weight: 400;--sky-override-file-drop-text-header-font-size: 22px;--sky-override-file-drop-text-header-font-weight: 600;--sky-override-file-drop-text-header-line-height: 1.1;--sky-override-file-drop-text-line-height: 1.1;--sky-override-file-drop-text-margin-bottom: 20px;--sky-override-file-drop-text-margin-top: 5px;--sky-override-file-drop-upload-contents-active-border: #cdcfd2 solid 1px;--sky-override-file-drop-upload-contents-focus-border: #cdcfd2 solid 1px;--sky-override-file-drop-upload-contents-hover-border: #cdcfd2 solid 1px;--sky-override-file-upload-icon-color: #686c73;--sky-override-file-drop-upload-icon-margin-top: 10px;--sky-override-file-upload-icon-close-color: none}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-drop-wrapper{--sky-override-file-drop-col-padding: 0 var(--modern-space-xs);--sky-override-file-drop-col-responsive-margin-right: 0;--sky-override-file-drop-contents-border-color: var(--modern-color-gray-20);--sky-override-file-drop-contents-border-radius: var( --modern-border-radius-0 );--sky-override-file-drop-contents-padding: var(--modern-size-10);--sky-override-file-drop-drag-border-width: var( --sky-border-width-input-hover );--sky-override-file-drop-drag-contents-border-style: dashed;--sky-override-file-drop-icon-font-size: var(--modern-size-40);--sky-override-file-drop-label-color: var(--sky-text-color-deemphasized);--sky-override-file-drop-label-font-size: 13px;--sky-override-file-drop-link-input-background-color: var( --modern-color-white );--sky-override-file-drop-link-input-margin-bottom: var( --sky-space-gap-form-l );--sky-override-file-drop-non-stacked-with-item-margin-bottom: 0;--sky-override-file-drop-outline-focus: auto;--sky-override-file-drop-reject-border-color: #ef4044;--sky-override-file-drop-text-header-font-size: var( --sky-font-size-display-3 );--sky-override-file-drop-text-header-font-weight: var( --sky-font-weight-display-3 );--sky-override-file-drop-text-font-size: 15px;--sky-override-file-drop-text-font-weight: var(--sky-font-weight-body-m);--sky-override-file-drop-text-header-line-height: var( --modern-line_height-110 );--sky-override-file-drop-text-line-height: var(--modern-line_height-110);--sky-override-file-drop-text-margin-bottom: var(--modern-size-20);--sky-override-file-drop-upload-contents-active-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-contents-focus-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-contents-hover-border: var( --modern-color-gray-20 ) solid var(--modern-size-1);--sky-override-file-drop-upload-icon-margin-top: var(--modern-size-10);--sky-override-file-upload-icon-color: var(--sky-color-icon-deemphasized)}:host.sky-form-field-stacked{display:block}:host-context(:has(+ sky-file-item):not(.sky-form-field-stacked)) .sky-file-drop-wrapper{margin-bottom:var(--sky-override-file-drop-non-stacked-with-item-margin-bottom, var(--sky-space-gap-form-l))}.sky-file-drop-col{padding:var(--sky-override-file-drop-col-padding, 0);position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:var(--sky-override-file-drop-col-responsive-margin-bottom, var(--sky-space-gap-form-s))}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:var(--sky-override-file-drop-col-responsive-margin-bottom, var(--sky-space-gap-form-s))}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-right:var(--sky-override-file-drop-col-responsive-margin-right, var(--sky-space-gap-action_group-m));margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-right:var(--sky-override-file-drop-col-responsive-margin-right, var(--sky-space-gap-action_group-m));margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border:var(--sky-override-file-drop-contents-border-width, var(--sky-border-width-input-base)) solid var(--sky-override-file-drop-contents-border-color, var(--sky-color-border-input-base));background-color:var(--sky-override-file-drop-contents-background-color, var(--sky-color-background-file_drop));border-radius:var(--sky-override-file-drop-contents-border-radius, var(--sky-border-radius-s));padding:var(--sky-override-file-drop-contents-padding, var(--sky-comp-file_drop-content-space-inset-top) var(--sky-comp-file_drop-content-space-inset-right) var(--sky-comp-file_drop-content-space-inset-bottom) var(--sky-comp-file_drop-content-space-inset-left));cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:var(--sky-override-file-drop-link-header-margin-bottom, var(--sky-space-gap-stacked_supplemental-s))}.sky-file-drop:active~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-active-border, var(--sky-border-width-input-active) solid var(--sky-color-border-input-active))}.sky-file-drop:focus-visible:not(:active){outline:var(--sky-override-file-drop-outline-focus, none)}.sky-file-drop:focus-visible:not(:active)~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-focus-border, var(--sky-border-width-input-focus) solid var(--sky-color-border-input-focus))}.sky-file-drop:hover:not(:active)~.sky-file-drop-contents{border:var(--sky-override-file-drop-upload-contents-hover-border, var(--sky-border-width-input-hover) solid var(--sky-color-border-input-hover))}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-override-file-drop-hint-text-margin-top, var(--sky-space-gap-stacked_supplemental-s))}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:var(--sky-override-file-drop-drag-contents-border-style, solid);border-width:var(--sky-override-file-drop-drag-border-width, var(--sky-border-width-input-hover))}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:var(--sky-override-file-drop-accept-border-color, var(--sky-color-border-success))}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:var(--sky-override-file-drop-reject-border-color, var(--sky-color-border-danger));border-width:var(--sky-override-file-drop-drag-border-width, var(--sky-border-width-input-error))}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;max-height:var(--sky-override-file-drop-icon-font-size, auto);color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-deemphasized));margin-top:var(--sky-override-file-drop-upload-icon-margin-top, var(--sky-space-gap-stacked_supplemental-l))}.sky-file-upload-icon-close{color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-danger))}.sky-file-upload-icon-target{color:var(--sky-override-file-upload-icon-color, var(--sky-color-icon-success))}.sky-file-drop-link{cursor:default}.sky-file-drop-link sky-input-box{--sky-background-color-input-box-group: var( --sky-override-file-drop-link-input-background-color, var(--bb-color-white) );--sky-background-color-input-box-group-focused: var( --sky-override-file-drop-link-input-background-color, var(--bb-color-white) );margin-bottom:var(--sky-override-file-drop-link-input-margin-bottom, var(--sky-space-gap-form-s))}.sky-file-drop-text-header{margin:0;font-size:var(--sky-override-file-drop-text-header-font-size, var(--sky-font-size-body-m));font-style:var(--sky-font-style-body-m);font-weight:var(--sky-override-file-drop-text-header-font-weight, var(--sky-font-weight-body-m));line-height:var(--sky-override-file-drop-text-header-line-height, var(--sky-font-line_height-body-m))}.sky-file-drop-text{margin-top:var(--sky-override-file-drop-text-margin-top, var(--sky-space-gap-stacked_supplemental-s));margin-bottom:var(--sky-override-file-drop-text-margin-bottom, 0);font-size:var(--sky-override-file-drop-text-font-size, var(--sky-font-size-body-s));font-style:var(--sky-font-style-body-s);font-weight:var(--sky-override-file-drop-text-font-weight, var(--sky-font-weight-body-s));line-height:var(--sky-override-file-drop-text-line-height, var(--sky-font-line_height-body-s))}.sky-file-drop-text,.sky-file-drop-text-header{display:block}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-control-label{color:var(--sky-override-file-drop-label-color, var(--sky-color-text-default));font-size:var(--sky-override-file-drop-label-font-size, var(--sky-font-size-input-label));font-style:var(--sky-font-style-input-label);font-weight:var(--sky-font-weight-input-label);letter-spacing:var(--sky-font-letter_spacing-input-label);line-height:var(--sky-font-line_height-input-label)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { filesChanged: [{\n type: Output\n }], linkInputBlur: [{\n type: Output\n }], linkChanged: [{\n type: Output\n }], fileUploadAriaLabel: [{\n type: Input\n }], linkUploadAriaLabel: [{\n type: Input\n }], linkUploadHintText: [{\n type: Input\n }], minFileSize: [{\n type: Input\n }], maxFileSize: [{\n type: Input\n }], multiple: [{\n type: Input\n }], validateFn: [{\n type: Input\n }], acceptedTypes: [{\n type: Input\n }], acceptedTypesErrorMessage: [{\n type: Input\n }], noClick: [{\n type: Input\n }], allowLinks: [{\n type: Input\n }], labelText: [{\n type: Input\n }], labelHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hintText: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }, {\n type: HostBinding,\n args: ['class.sky-form-field-stacked']\n }], helpKey: [{\n type: Input\n }], inputEl: [{\n type: ViewChild,\n args: ['fileInput']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsdUJBQXVCLEdBQ3hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1B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LEtBQUs7Z0JBU0MsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBU3BDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3Jtc01vZHVsZSxcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBTa3lGaWxlUmVhZGVyU2VydmljZSxcbiAgU2t5SWRNb2R1bGUsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1FcnJvcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveE1vZHVsZSB9IGZyb20gJy4uLy4uL2lucHV0LWJveC9pbnB1dC1ib3gubW9kdWxlJztcbmltcG9ydCB7IFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS1mb3Jtcy1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreUZpbGVBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4uL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0nO1xuaW1wb3J0IHsgU2t5RmlsZVNpemVQaXBlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtc2l6ZS5waXBlJztcbmltcG9ydCB7IFNreUZpbGVWYWxpZGF0ZUZuIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtdmFsaWRhdGUtZnVuY3Rpb24nO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcENoYW5nZSB9IGZyb20gJy4vZmlsZS1kcm9wLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lGaWxlTGluayB9IGZyb20gJy4vZmlsZS1saW5rJztcblxuY29uc3QgTUFYX0ZJTEVfU0laRV9ERUZBVUxUID0gNTAwMDAwO1xuY29uc3QgTUlOX0ZJTEVfU0laRV9ERUZBVUxUID0gMDtcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBlbGVtZW50IHRvIGF0dGFjaCBtdWx0aXBsZSBmaWxlcyB3aGVyZSB1c2VycyBjYW4gYnJvd3NlIG9yIGRyYWcgYW5kIGRyb3AgbG9jYWwgZmlsZXNcbiAqIG9yIHByb3ZpZGUgaHlwZXJsaW5rcyB0byBleHRlcm5hbCBmaWxlcy4gWW91IGNhbiBsZWF2ZSB0aGUgY29udGVudHMgb2YgdGhlIGNvbXBvbmVudFxuICogYmxhbmsgdG8gZGlzcGxheSB0aGUgZHJvcCB6b25lJ3MgZGVmYXVsdCBVSSwgb3IgeW91IGNhbiBzcGVjaWZ5IGN1c3RvbSBjb250ZW50IHRvXG4gKiBkaXNwbGF5IGluc3RlYWQuIFdoZW4gdGhlIG1vZHVsZSBpbml0aWFsaXplcywgaXQgZGlzYWJsZXMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhbmRcbiAqIGRyb3AgZmlsZXMgZm9yIHRoZSBlbnRpcmUgd2luZG93IHRvIHByZXZlbnQgdGhlIGJyb3dzZXIgZnJvbSBvcGVuaW5nIGZpbGVzIHRoYXQgYXJlXG4gKiBhY2NpZGVudGFsbHkgZHJvcHBlZCBvdXRzaWRlIHRoZSB0YXJnZXQgem9uZS4gSWYgeW91IGltcGxlbWVudCB5b3VyIG93biBmaWxlIGRyb3AgZnVuY3Rpb25hbGl0eVxuICogb3V0c2lkZSBvZiB0aGUgZmlsZSBkcm9wIGNvbXBvbmVudCwgeW91IGNhbiBwbGFjZSB0aGUgYHNreS1maWxlLWRyb3AtdGFyZ2V0YCBDU1MgY2xhc3NcbiAqIG9uIHRoZSBlbGVtZW50IHRoYXQgcmVjZWl2ZXMgZHJvcCBldmVudHMgdG8gZXhlbXB0IGl0IGZyb20gdGhlIGRyb3AgZXhjbHVzaW9uIHJ1bGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1maWxlLWRyb3AnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1kcm9wLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1kcm9wLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUZpbGVBdHRhY2htZW50U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNreUZpbGVTaXplUGlwZSxcbiAgICBTa3lGb3JtRXJyb3JDb21wb25lbnQsXG4gICAgU2t5Rm9ybUVycm9yc0NvbXBvbmVudCxcbiAgICBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5SW5wdXRCb3hNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUZpbGVEcm9wQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGFkZCBvciByZW1vdmUgZmlsZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZURyb3BDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGxpbmsgaW5wdXQgYm94IHRyaWdnZXJzIGEgYmx1ciBldmVudC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua0lucHV0Qmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBhZGQgb3IgcmVtb3ZlIGxpbmtzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZUxpbms+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgZmlsZSB1cGxvYWQgYnV0dG9uLiBUaGlzIHByb3ZpZGVzIGEgdGV4dCBlcXVpdmFsZW50IGZvclxuICAgKiBzY3JlZW4gcmVhZGVycyBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICogQGRlZmF1bHQgXCJEcmFnIGEgZmlsZSBoZXJlIG9yIGNsaWNrIHRvIGJyb3dzZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsZVVwbG9hZEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGxpbmsgdXBsb2FkIGlucHV0LiBUaGlzIHNldHMgdGhlIGJ1dHRvbidzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3JcbiAgICogc2NyZWVuIHJlYWRlcnMgW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZWZhdWx0IFwiTGluayB0byBhIGZpbGVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxpbmtVcGxvYWRBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGhpbnQgdGV4dCBmb3IgdGhlIGxpbmsgdXBsb2FkIGlucHV0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxpbmtVcGxvYWRIaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBzaXplIGluIGJ5dGVzIGZvciB2YWxpZCBmaWxlcy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW5GaWxlU2l6ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21pbkZpbGVTaXplID0gdmFsdWUgPz8gTUlOX0ZJTEVfU0laRV9ERUZBVUxUO1xuICB9XG5cbiAgcHVibGljIGdldCBtaW5GaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfbWluRmlsZVNpemU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDUwMDAwMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtYXhGaWxlU2l6ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21heEZpbGVTaXplID0gdmFsdWUgPz8gTUFYX0ZJTEVfU0laRV9ERUZBVUxUO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhGaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfbWF4RmlsZVNpemU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB1c2VycyBjYW4gZHJhZyBhbmQgZHJvcCBtdWx0aXBsZSBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG11bHRpcGxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGN1c3RvbSB2YWxpZGF0aW9uIGZ1bmN0aW9uLiBUaGlzIHZhbGlkYXRpb24gcnVucyBhbG9uZ3NpZGUgdGhlIGludGVybmFsXG4gICAqIGZpbGUgdmFsaWRhdGlvbi4gVGhpcyBmdW5jdGlvbiB0YWtlcyBhIGBTa3lGaWxlSXRlbWAgb2JqZWN0IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgc3RyaW5nIHJldHVybmVkIGlzIHVzZWQgYXMgdGhlIGVycm9yIG1lc3NhZ2UgaW4gbXVsdGktZmlsZSBhdHRhY2htZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlRm46IFNreUZpbGVWYWxpZGF0ZUZuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWEtZGVsaW1pdGVkIHN0cmluZyBsaXRlcmFsIG9mIE1JTUUgdHlwZXMgdGhhdCB1c2VycyBjYW4gYXR0YWNoLlxuICAgKiBCeSBkZWZhdWx0LCBhbGwgZmlsZSB0eXBlcyBhcmUgYWxsb3dlZC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXB0ZWRUeXBlczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBhIGZpbGUgZG9lc24ndCBtYXRjaCB0aGUgYWNjZXB0ZWQgdHlwZXMuXG4gICAqIFRoaXMgcmVwbGFjZXMgYSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgdGhhdCBsaXN0cyBhbGwgYWNjZXB0ZWQgdHlwZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXB0ZWRUeXBlc0Vycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIG9wdGlvbiB0byBicm93c2UgZm9yIGZpbGVzIHRvIGF0dGFjaC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBub0NsaWNrOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgb3B0aW9uIHRvIGF0dGFjaCBmaWxlcyBmcm9tIFVSTHMgcmF0aGVyIHRoYW4gZnJvbSBsb2NhbCBkZXZpY2VzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93TGlua3M6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgZmlsZSBhdHRhY2htZW50J3MgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaGlkZSBgbGFiZWxUZXh0YCBmcm9tIHZpZXcuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGxhYmVsSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHVwbG9hZGluZyBhIGZpbGUgb3IgbGluayBpcyByZXF1aXJlZC5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnRzIHNvIHRoYXQgc2NyZWVuIHJlYWRlcnMgYW5ub3VuY2UgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLXJlcXVpcmVkYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1yZXF1aXJlZCkuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgZmlsZSBhdHRhY2htZW50IGxhYmVsLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpbGUgYXR0YWNobWVudCBpcyBzdGFja2VkIG9uIGFub3RoZXIgZm9ybSBjb21wb25lbnQuIFdoZW4gc3BlY2lmaWVkLCB0aGUgYXBwcm9wcmlhdGVcbiAgICogdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBmaWxlIGF0dGFjaG1lbnQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktZm9ybS1maWVsZC1zdGFja2VkJylcbiAgcHVibGljIHN0YWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JylcbiAgcHVibGljIGlucHV0RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICBwdWJsaWMgYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gIHB1YmxpYyBsaW5rVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI2VudGVyRXZlbnRUYXJnZXQ6IGFueTtcblxuICAjX21heEZpbGVTaXplID0gTUFYX0ZJTEVfU0laRV9ERUZBVUxUO1xuXG4gICNfbWluRmlsZVNpemUgPSBNSU5fRklMRV9TSVpFX0RFRkFVTFQ7XG5cbiAgI25vdGlmeVRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgI25vdGlmeUNoYW5nZTpcbiAgICB8ICgoXzogKFNreUZpbGVJdGVtIHwgU2t5RmlsZUxpbmspW10gfCB1bmRlZmluZWQgfCBudWxsKSA9PiB2b2lkKVxuICAgIHwgdW5kZWZpbmVkO1xuICAjX3VwbG9hZGVkRmlsZXM6IChTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rKVtdID0gW107XG5cbiAgcmVhZG9ubHkgI2ZpbGVBdHRhY2htZW50U2VydmljZSA9IGluamVjdChTa3lGaWxlQXR0YWNobWVudFNlcnZpY2UpO1xuICByZWFkb25seSAjZmlsZVJlYWRlclN2YyA9IGluamVjdChTa3lGaWxlUmVhZGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlc1N2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGVycm9ySWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG5cbiAgcHJvdGVjdGVkIG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlamVjdGVkRmlsZXM6IFNreUZpbGVJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzQ2hhbmdlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMubGlua0NoYW5nZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLmxpbmtJbnB1dEJsdXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBjb25zdCBsaW5rVXBsb2FkczogU2t5RmlsZUxpbmtbXSA9IFtdO1xuICAgICAgY29uc3QgZmlsZVVwbG9hZHM6IFNreUZpbGVJdGVtW10gPSBbXTtcblxuICAgICAgdmFsdWUuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICBpZiAoJ3VybCcgaW4gZmlsZSAmJiBmaWxlLnVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKCEoJ2ZpbGUnIGluIGZpbGUpKSB7XG4gICAgICAgICAgICBsaW5rVXBsb2Fkcy5wdXNoKGZpbGUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZpbGUnIGluIGZpbGUgJiYgZmlsZS5maWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZpbGVVcGxvYWRzLnB1c2goZmlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKCEobGlua1VwbG9hZHMubGVuZ3RoID4gMCkgJiYgIShmaWxlVXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgICAgICB0aGlzLiNub3RpZnlDaGFuZ2U/LihudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI191cGxvYWRlZEZpbGVzID0gW107XG5cbiAgICAgICAgaWYgKGxpbmtVcGxvYWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBsaW5rVXBsb2Fkcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZExpbmsoZmlsZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbGVVcGxvYWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIEZvcm1Db250cm9sIGZyb20gc2V0dGluZyBhbiBpbnZhbGlkIHZhbHVlIGJlZm9yZSB0aGUgYXN5bmNcbiAgICAgICAgICAvLyBwcm9jZXNzZXMgaW4gI2hhbmRsZUZpbGUgaXMgY29tcGxldGVcbiAgICAgICAgICB0aGlzLiNub3RpZnlDaGFuZ2U/LihudWxsKTtcbiAgICAgICAgICB0aGlzLiNoYW5kbGVGaWxlcyhmaWxlVXBsb2Fkcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jbm90aWZ5Q2hhbmdlPy4obnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI25vdGlmeUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIGRyb3BDbGlja2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ub0NsaWNrICYmIHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy4jbm90aWZ5VG91Y2hlZD8uKCk7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlRXZlbnQoZmlsZUNoYW5nZUV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8qKiBTZXQgYSB0aW1lb3V0IGhlcmUgdG8gYWxsb3cgdGhlIGJyb3dzZXIgdG8gcmVnYWluIGNvbnRleHQgZnJvbSB0aGUgc3lzdGVtIGRpYWxvZy4gV2l0aG91dCB0aGlzLCBlcnJvciBtZXNzYWdlcyBkbyBub3QgcmVhZCBvdXQgY29ycmVjdGx5IHRvIHNjcmVlbiByZWFkZXJzLiAqL1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jaGFuZGxlRmlsZXMoXG4gICAgICAgIChmaWxlQ2hhbmdlRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQpPy5maWxlcyxcbiAgICAgICk7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ0VudGVyKGRyYWdFbnRlckV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBTYXZlIHRoaXMgdGFyZ2V0IHRvIGtub3cgd2hlbiB0aGUgZHJhZyBldmVudCBsZWF2ZXNcbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gZHJhZ0VudGVyRXZlbnQudGFyZ2V0O1xuICAgIGRyYWdFbnRlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdFbnRlckV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdPdmVyKGRyYWdPdmVyRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gZHJhZ092ZXJFdmVudC5kYXRhVHJhbnNmZXI7XG5cbiAgICBkcmFnT3ZlckV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyYWdPdmVyRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgaWYgKHRyYW5zZmVyLml0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbSh0cmFuc2Zlci5pdGVtcyk7XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmlsZS50eXBlICYmXG4gICAgICAgICAgICB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuZmlsZVR5cGVSZWplY3RlZChcbiAgICAgICAgICAgICAgZmlsZS50eXBlLFxuICAgICAgICAgICAgICB0aGlzLmFjY2VwdGVkVHlwZXMsXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwICYmICF0aGlzLmFjY2VwdGVkT3Zlcikge1xuICAgICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiB1bnRlc3RhYmxlICovIGVsc2UgaWYgKHRyYW5zZmVyLmZpbGVzKSB7XG4gICAgICAgIC8vIElmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgRGF0YVRyYW5zZmVyLml0ZW1zLFxuICAgICAgICAvLyBkZWZlciBmaWxlLXR5cGUgY2hlY2tpbmcgdG8gZHJvcCBoYW5kbGVyLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRGF0YVRyYW5zZmVyL2l0ZW1zI0Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVEcm9wKGRyb3BFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZHJvcEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRyb3BFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZD8uKCk7XG5cbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcblxuICAgIGlmIChkcm9wRXZlbnQuZGF0YVRyYW5zZmVyICYmIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgIGNvbnN0IGhhc0RpcmVjdG9yeSA9IHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5oYXNEaXJlY3RvcnkoXG4gICAgICAgIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMsXG4gICAgICApO1xuICAgICAgY29uc3QgaW52YWxpZE51bWJlck9mRmlsZXMgPVxuICAgICAgICAhdGhpcy5tdWx0aXBsZSAmJiBkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDE7XG5cbiAgICAgIGlmIChoYXNEaXJlY3RvcnkgfHwgaW52YWxpZE51bWJlck9mRmlsZXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNoYW5kbGVGaWxlcyhkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdMZWF2ZShkcmFnTGVhdmVFdmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPT09IGRyYWdMZWF2ZUV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExpbmtFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMTMpIHtcbiAgICAgIHRoaXMuYWRkTGluayhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExpbmsoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnVwbG9hZExpbmsoeyB1cmw6IHRoaXMubGlua1VybCB9IGFzIFNreUZpbGVMaW5rKTtcbiAgICB0aGlzLmxpbmtVcmwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZD8uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBsb2FkTGluayhmaWxlOiBTa3lGaWxlTGluayk6IHZvaWQge1xuICAgIHRoaXMubGlua0NoYW5nZWQuZW1pdChmaWxlKTtcbiAgICB0aGlzLiNfdXBsb2FkZWRGaWxlcz8ucHVzaChmaWxlKTtcbiAgICB0aGlzLiNub3RpZnlDaGFuZ2U/Lih0aGlzLiNfdXBsb2FkZWRGaWxlcyk7XG4gICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19hZGRlZCcsXG4gICAgICBmaWxlLnVybCxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uTGlua0JsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZD8uKCk7XG4gICAgdGhpcy5saW5rSW5wdXRCbHVyLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXF1aXJlZCB8fFxuICAgICAgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz8gZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gICNhbm5vdW5jZVN0YXRlKHJlc291cmNlU3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAuZ2V0U3RyaW5nKHJlc291cmNlU3RyaW5nLCAuLi5hcmdzKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGludGVybmF0aW9uYWxpemVkU3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuI2xpdmVBbm5vdW5jZXJTdmMuYW5ub3VuY2UoaW50ZXJuYXRpb25hbGl6ZWRTdHJpbmcpO1xuICAgICAgfSk7XG4gIH1cblxuICAjZW1pdEZpbGVDaGFuZ2VFdmVudChcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICAgcmVqZWN0ZWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgdmFsaWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICk6IHZvaWQge1xuICAgIGlmICh0b3RhbEZpbGVzID09PSByZWplY3RlZEZpbGVBcnJheS5sZW5ndGggKyB2YWxpZEZpbGVBcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBmaWxlczogdmFsaWRGaWxlQXJyYXksXG4gICAgICAgIHJlamVjdGVkRmlsZXM6IHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgfSBhcyBTa3lGaWxlRHJvcENoYW5nZSk7XG5cbiAgICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZmlsZXNSZWplY3RlZChcbiAgICBmaWxlOiBTa3lGaWxlSXRlbSxcbiAgICB2YWxpZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIHJlamVjdGVkRmlsZUFycmF5LnB1c2goZmlsZSk7XG4gICAgdGhpcy4jbm90aWZ5Q2hhbmdlPy4oXG4gICAgICB0aGlzLiNfdXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwID8gdGhpcy4jX3VwbG9hZGVkRmlsZXMgOiBudWxsLFxuICAgICk7XG4gICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudCh0b3RhbEZpbGVzLCByZWplY3RlZEZpbGVBcnJheSwgdmFsaWRGaWxlQXJyYXkpO1xuICB9XG5cbiAgYXN5bmMgI2xvYWRGaWxlKFxuICAgIGZpbGVEcm9wOiBTa3lGaWxlRHJvcENvbXBvbmVudCxcbiAgICBmaWxlOiBTa3lGaWxlSXRlbSxcbiAgICB2YWxpZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBmaWxlLnVybCA9IGF3YWl0IHRoaXMuI2ZpbGVSZWFkZXJTdmMucmVhZEFzRGF0YVVSTChmaWxlLmZpbGUpO1xuXG4gICAgICB2YWxpZEZpbGVBcnJheS5wdXNoKGZpbGUpO1xuICAgICAgZmlsZURyb3AuI2VtaXRGaWxlQ2hhbmdlRXZlbnQoXG4gICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICk7XG4gICAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfYWRkZWQnLFxuICAgICAgICBmaWxlLmZpbGUubmFtZSxcbiAgICAgICk7XG4gICAgICB0aGlzLiNfdXBsb2FkZWRGaWxlcz8ucHVzaChmaWxlKTtcbiAgICAgIHRoaXMuI25vdGlmeUNoYW5nZT8uKHRoaXMuI191cGxvYWRlZEZpbGVzKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGZpbGVEcm9wLiNmaWxlc1JlamVjdGVkKFxuICAgICAgICBmaWxlLFxuICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICAgcmVqZWN0ZWRGaWxlQXJyYXksXG4gICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVGaWxlcyhmaWxlTGlzdD86IEZpbGVMaXN0IHwgbnVsbCB8IFNreUZpbGVJdGVtW10pOiB2b2lkIHtcbiAgICBpZiAoZmlsZUxpc3QpIHtcbiAgICAgIGNvbnN0IHZhbGlkRmlsZUFycmF5OiBTa3lGaWxlSXRlbVtdID0gW107XG4gICAgICBjb25zdCByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSA9IFtdO1xuICAgICAgY29uc3QgdG90YWxGaWxlcyA9IGZpbGVMaXN0Lmxlbmd0aDtcblxuICAgICAgbGV0IGZpbGVzOiBTa3lGaWxlSXRlbVtdID0gW107XG5cbiAgICAgIGlmICgnaXRlbScgaW4gZmlsZUxpc3QpIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbGVMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgIGZpbGVzLnB1c2goe1xuICAgICAgICAgICAgZmlsZTogZmlsZUxpc3QuaXRlbShpbmRleCksXG4gICAgICAgICAgfSBhcyBTa3lGaWxlSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVzID0gZmlsZUxpc3Q7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGVzID0gdGhpcy4jZmlsZUF0dGFjaG1lbnRTZXJ2aWNlLmNoZWNrRmlsZXMoXG4gICAgICAgIGZpbGVzLFxuICAgICAgICB0aGlzLm1pbkZpbGVTaXplLFxuICAgICAgICB0aGlzLm1heEZpbGVTaXplLFxuICAgICAgICB0aGlzLmFjY2VwdGVkVHlwZXMsXG4gICAgICAgIHRoaXMudmFsaWRhdGVGbixcbiAgICAgICk7XG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBwcm9jZXNzZWRGaWxlcykge1xuICAgICAgICBpZiAoZmlsZS5lcnJvclR5cGUpIHtcbiAgICAgICAgICB0aGlzLiNmaWxlc1JlamVjdGVkKFxuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIHZhbGlkRmlsZUFycmF5LFxuICAgICAgICAgICAgcmVqZWN0ZWRGaWxlQXJyYXksXG4gICAgICAgICAgICB0b3RhbEZpbGVzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdm9pZCB0aGlzLiNsb2FkRmlsZShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICAgICAgICByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnJlamVjdGVkRmlsZXMgPSByZWplY3RlZEZpbGVBcnJheTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmaWVsZHNldCBjbGFzcz1cInNreS1maWxlLWRyb3Atd3JhcHBlclwiPlxuICBAaWYgKGxhYmVsVGV4dCkge1xuICAgIDxsZWdlbmRcbiAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWwgc2t5LWZvbnQtYm9keS1kZWZhdWx0XCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknOiBsYWJlbEhpZGRlblxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWxhYmVsLXRleHRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogaXNSZXF1aXJlZFxuICAgICAgICB9XCJcbiAgICAgICAgPnt7IGxhYmVsVGV4dCB9fTwvc3BhblxuICAgICAgPlxuICAgICAgQGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgPC9sZWdlbmQ+XG4gIH1cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWZpbGUtZHJvcC1yb3dcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NreS1maWxlLWRyb3AtYWxsb3ctbGlua3MnOiBhbGxvd0xpbmtzIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktZmlsZS1kcm9wLWFjY2VwdCc6IGFjY2VwdGVkT3ZlcixcbiAgICAgICAgJ3NreS1maWxlLWRyb3AtcmVqZWN0JzogcmVqZWN0ZWRPdmVyXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWZpbGUtZHJvcCBza3ktZmlsZS1kcm9wLXRhcmdldFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGZpbGVVcGxvYWRBcmlhTGFiZWwgfHxcbiAgICAgICAgICAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX29yX2NsaWNrJyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFyZWplY3RlZEZpbGVzLmxlbmd0aFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIlxuICAgICAgICAgIGxhYmVsVGV4dCAmJiByZWplY3RlZEZpbGVzLmxlbmd0aCA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImRyb3BDbGlja2VkKClcIlxuICAgICAgICAoZHJhZ292ZXIpPVwiZmlsZURyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAoZHJhZ2VudGVyKT1cImZpbGVEcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgIChkcmFnbGVhdmUpPVwiZmlsZURyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAgICAgKGRyb3ApPVwiZmlsZURyb3AoJGV2ZW50KVwiXG4gICAgICA+PC9idXR0b24+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGNsYXNzPVwic2t5LWZpbGUtaW5wdXQtaGlkZGVuXCJcbiAgICAgICAgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGUgPyBtdWx0aXBsZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0ZWRUeXBlcyA/IGFjY2VwdGVkVHlwZXMgOiBudWxsXCJcbiAgICAgICAgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAvPlxuXG4gICAgICBAaWYgKGN1c3RvbUVsLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1jb250ZW50cyBza3ktZmlsZS1kcm9wLXVwbG9hZC1jb250ZW50c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzLW5vdC1vdmVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlclwiXG4gICAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnc2t5LWZvbnQtZGlzcGxheS0zJzogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJhZ19maWxlX2hlcmUnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9vcl9jbGlja190b19icm93c2UnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZmlsZS11cGxvYWQtaWNvblwiXG4gICAgICAgICAgICAgIGljb25OYW1lPVwiYXJyb3ctdXBsb2FkXCJcbiAgICAgICAgICAgICAgaWNvblNpemU9XCJ4bFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBUaGlzIHdpbGwgYXBwZWFyIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIG92ZXIgYW5kIGlzIHZhbGlkIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzLWFjY2VwdFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1maWxlLWRyb3AtdGV4dC1oZWFkZXJcIlxuICAgICAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3NreS1mb250LWRpc3BsYXktMyc6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2Ryb3BfZmlsZXNfaGVyZSdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1maWxlLXVwbG9hZC1pY29uIHNreS1maWxlLXVwbG9hZC1pY29uLXRhcmdldFwiXG4gICAgICAgICAgICAgIGljb25OYW1lPVwidGFyZ2V0XCJcbiAgICAgICAgICAgICAgaWNvblNpemU9XCJ4bFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBUaGlzIHdpbGwgYXBwZWFyIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIG92ZXIgYW5kIGlzIGludmFsaWQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMtcmVqZWN0XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlclwiXG4gICAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnc2t5LWZvbnQtZGlzcGxheS0zJzogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZpbGUtdXBsb2FkLWljb24gc2t5LWZpbGUtdXBsb2FkLWljb24tY2xvc2VcIlxuICAgICAgICAgICAgICBpY29uTmFtZT1cInByb2hpYml0ZWRcIlxuICAgICAgICAgICAgICBpY29uU2l6ZT1cInhsXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2ICNjdXN0b21FbCBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMtY3VzdG9tXCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGFsbG93TGlua3MpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1jb250ZW50c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWxpbmtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWxpbmstaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1maWxlLWRyb3AtdGV4dC1oZWFkZXJcIlxuICAgICAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdza3ktZm9udC1kaXNwbGF5LTMnOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxza3ktaW5wdXQtYm94IFtoaW50VGV4dF09XCJsaW5rVXBsb2FkSGludFRleHRcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICBsaW5rVXBsb2FkQXJpYUxhYmVsIHx8XG4gICAgICAgICAgICAgICAgICAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIXJlamVjdGVkRmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCAmJiByZWplY3RlZEZpbGVzLmxlbmd0aCA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGlua1VybFwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25MaW5rQmx1cigpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiYWRkTGlua0VudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhbGlua1VybFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRMaW5rKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19kb25lJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiAjaGludFRleHRFbD1cInNreUlkXCIgc2t5SWQ+XG4gICAgQGlmIChoaW50VGV4dCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktZmlsZS1kcm9wLWhpbnQtdGV4dFwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWZvbnQtZGVlbXBoYXNpemVkJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktZm9udC1oaW50LXRleHQtcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBoaW50VGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG48c2t5LWZvcm0tZXJyb3JzXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICBbdG91Y2hlZF09XCJuZ0NvbnRyb2wgPyBuZ0NvbnRyb2wudG91Y2hlZCA6IHJlamVjdGVkRmlsZXMubGVuZ3RoID4gMFwiXG4gIFtkaXJ0eV09XCJuZ0NvbnRyb2w/LmRpcnR5XCJcbiAgW2Vycm9yc109XCJuZ0NvbnRyb2w/LmVycm9yc1wiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbiAgQGZvciAocmVqZWN0ZWRGaWxlIG9mIHJlamVjdGVkRmlsZXM7IHRyYWNrIHJlamVjdGVkRmlsZS51cmwpIHtcbiAgICA8ZGl2PlxuICAgICAgQGlmIChyZWplY3RlZEZpbGUuZXJyb3JUeXBlID09PSAnZmlsZVR5cGUnKSB7XG4gICAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICAgIGVycm9yTmFtZT1cImZpbGVUeXBlXCJcbiAgICAgICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3R5cGVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgOiByZWplY3RlZEZpbGUuZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgOiByZWplY3RlZEZpbGUuZXJyb3JQYXJhbVxuICAgICAgICAgIFwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIGlmIChyZWplY3RlZEZpbGUuZXJyb3JUeXBlID09PSAnbWF4RmlsZVNpemUnKSB7XG4gICAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICAgIGVycm9yTmFtZT1cIm1heEZpbGVTaXplXCJcbiAgICAgICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0Vycm9yTWVzc2FnZSA/P1xuICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21heF9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgOiByZWplY3RlZEZpbGUuZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgOiAocmVqZWN0ZWRGaWxlLmVycm9yUGFyYW0gfCBza3lGaWxlU2l6ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ21pbkZpbGVTaXplJykge1xuICAgICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgICBlcnJvck5hbWU9XCJtaW5GaWxlU2l6ZVwiXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfbWluX2ZpbGVfc2l6ZV9lcnJvcl9sYWJlbF90ZXh0X3dpdGhfbmFtZSdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICA6IHJlamVjdGVkRmlsZS5maWxlLm5hbWVcbiAgICAgICAgICAgICAgICA6IChyZWplY3RlZEZpbGUuZXJyb3JQYXJhbSB8IHNreUZpbGVTaXplKVxuICAgICAgICAgIFwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIGlmIChcbiAgICAgICAgcmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ3ZhbGlkYXRlJyAmJiByZWplY3RlZEZpbGUuZXJyb3JQYXJhbVxuICAgICAgKSB7XG4gICAgICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgICAgIGVycm9yTmFtZT1cInZhbGlkYXRlXCJcbiAgICAgICAgICBbZXJyb3JUZXh0XT1cInJlamVjdGVkRmlsZS5maWxlLm5hbWUgKyAnOiAnICsgcmVqZWN0ZWRGaWxlLmVycm9yUGFyYW1cIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L3NreS1mb3JtLWVycm9ycz5cbiJdfQ==","import { Component, EventEmitter, Input, Output, inject, } from '@angular/core';\nimport { SkyLiveAnnouncerService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { take } from 'rxjs/operators';\nimport { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';\nimport { SkyFileSizePipe } from '../shared/file-size.pipe';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../shared/file-item.service\";\nimport * as i2 from \"@skyux/i18n\";\nimport * as i3 from \"@skyux/icon\";\nexport class SkyFileItemComponent {\n /**\n * The summary information to display about file attachments. For local files,\n * the default summary includes the file name, file size, file preview, and a delete button.\n * For external files, the default summary includes the URL and a delete button.\n * You can include additional inputs to display user-entered metadata.\n * @required\n */\n set fileItem(value) {\n this.#_fileItem = value;\n if (value && 'file' in value) {\n this.isFile = this.#fileItemService.isFile(value);\n this.isImage = this.#fileItemService.isImage(value);\n this.fileName = value.file.name;\n this.fileSize = value.file.size;\n }\n else {\n this.isFile = this.isImage = false;\n this.fileName = '';\n this.fileSize = undefined;\n }\n this.url = value?.url ?? '';\n }\n get fileItem() {\n return this.#_fileItem;\n }\n #_fileItem;\n #differ;\n #fileItemService;\n #liveAnnouncerSvc;\n #resourcesSvc;\n constructor(differs, fileItemService) {\n /**\n * Fires when users select the delete button for an item. The deleted item is passed to the\n * function.\n */\n this.deleteFile = new EventEmitter();\n this.fileName = '';\n this.url = '';\n this.isFile = false;\n this.isImage = false;\n this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n this.#resourcesSvc = inject(SkyLibResourcesService);\n this.#differ = differs.find({}).create();\n this.#fileItemService = fileItemService;\n }\n ngDoCheck() {\n if (this.fileItem) {\n const changes = this.#differ.diff(this.fileItem);\n if (changes) {\n let cls;\n const extensionUpper = this.#fileItemService.getFileExtensionUpper(this.fileItem);\n let fileTypeUpper;\n switch (extensionUpper) {\n case '.PDF':\n cls = 'pdf';\n break;\n case '.GZ':\n case '.RAR':\n case '.TGZ':\n case '.ZIP':\n cls = 'archive';\n break;\n case '.PPT':\n case '.PPTX':\n cls = 'ppt';\n break;\n case '.DOC':\n case '.DOCX':\n cls = 'doc';\n break;\n case '.XLS':\n case '.XLSX':\n cls = 'xls';\n break;\n case '.TXT':\n cls = 'text';\n break;\n case '.HTM':\n case '.HTML':\n cls = 'chevron-double';\n break;\n default:\n break;\n }\n if (!cls) {\n fileTypeUpper = this.#fileItemService.getFileTypeUpper(this.fileItem);\n switch (fileTypeUpper.substr(0, fileTypeUpper.indexOf('/'))) {\n case 'AUDIO':\n cls = 'audio';\n break;\n case 'IMAGE':\n // Normally images are displayed as thumbnails, but if an image type is not recognized\n // as being widely supported by modern browsers (e.g. TIFF files) then an icon should\n // be displayed instead.\n cls = 'image';\n break;\n case 'TEXT':\n cls = 'text';\n break;\n case 'VIDEO':\n cls = 'video';\n break;\n default:\n break;\n }\n }\n this.icon = 'document' + (cls ? '-' + cls : '');\n }\n }\n else {\n this.icon = undefined;\n }\n }\n itemDelete() {\n this.deleteFile.emit(this.fileItem);\n if (!this.isFile) {\n this.#resourcesSvc\n .getString('skyux_file_attachment_file_upload_link_removed', this.url)\n .pipe(take(1))\n .subscribe((resourceString) => {\n this.#liveAnnouncerSvc.announce(resourceString);\n });\n }\n else {\n this.#resourcesSvc\n .getString('skyux_file_attachment_file_upload_file_removed', this.fileName)\n .pipe(take(1))\n .subscribe((resourceString) => {\n this.#liveAnnouncerSvc.announce(resourceString);\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileItemComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.SkyFileItemService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyFileItemComponent, isStandalone: true, selector: \"sky-file-item\", inputs: { fileItem: \"fileItem\" }, outputs: { deleteFile: \"deleteFile\" }, ngImport: i0, template: \"@if (fileItem) {\\n <div class=\\\"sky-file-item\\\">\\n <div class=\\\"sky-file-item-title\\\">\\n <div class=\\\"sky-file-item-name-container\\\">\\n <div class=\\\"sky-file-item-name\\\">\\n @if (isFile) {\\n {{ fileName }}\\n } @else {\\n {{ url }}\\n }\\n </div>\\n @if (isFile) {\\n <div class=\\\"sky-file-item-size\\\">({{ fileSize | skyFileSize }})</div>\\n }\\n </div>\\n <div class=\\\"sky-file-item-controls\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"sky-btn sky-btn-default sky-file-item-btn-delete\\\"\\n [attr.aria-label]=\\\"\\n 'skyux_file_attachment_file_item_delete'\\n | skyLibResources: (isFile ? fileName : url)\\n \\\"\\n (click)=\\\"itemDelete()\\\"\\n >\\n <sky-icon iconName=\\\"delete\\\" />\\n </button>\\n </div>\\n </div>\\n <div class=\\\"sky-file-item-content\\\">\\n <div class=\\\"sky-file-item-preview\\\">\\n @if (isImage) {\\n <div class=\\\"sky-file-item-preview-img-container\\\">\\n <img\\n class=\\\"sky-file-item-preview-img\\\"\\n [src]=\\\"url\\\"\\n [alt]=\\\"\\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\\n | skyLibResources\\n \\\"\\n />\\n </div>\\n } @else {\\n <div class=\\\"sky-file-item-preview-other\\\">\\n <sky-icon iconSize=\\\"xxxl\\\" [iconName]=\\\"icon\\\" />\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-file-item-content-custom\\\">\\n <ng-content />\\n </div>\\n </div>\\n </div>\\n}\\n\", styles: [\".sky-file-item:not(.sky-theme-modern *){--sky-override-file-item-background-color: #eeeeef;--sky-override-file-item-border: 1px solid #e2e3e4;--sky-override-file-item-border-radius: 0;--sky-override-file-item-controls-padding-left: 15px;--sky-override-file-item-gap: 10px;--sky-override-file-item-margin-bottom: 10px;--sky-override-file-item-name-line-height: normal;--sky-override-file-item-name-font-size: 15px;--sky-override-file-item-name-font-weight: bolder;--sky-override-file-item-padding: 10px 10px 10px 10px;--sky-override-file-item-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-item-preview-other-color: #686c73;--sky-override-file-item-preview-other-font-size: 100px;--sky-override-file-item-size-line-height: normal;--sky-override-file-item-size-font-size: 15px;--sky-override-file-item-size-font-weight: 400;--sky-override-file-item-title-bottom-margin: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-item{--sky-override-file-item-background-color: #eeeeef;--sky-override-file-item-border: var(--modern-size-1) solid #e2e3e4;--sky-override-file-item-border-radius: var(--modern-border-radius-0);--sky-override-file-item-gap: 10px;--sky-override-file-item-margin-bottom: 10px;--sky-override-file-item-name-line-height: normal;--sky-override-file-item-name-font-weight: bolder;--sky-override-file-item-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-item-preview-other-font-size: 100px;--sky-override-file-item-size-line-height: normal;--sky-override-file-item-size-font-size: var(--sky-font-size-body-m);--sky-override-file-item-size-font-weight: var(--sky-font-weight-body-m)}:host:not(:last-of-type) .sky-file-item{margin-bottom:var(--sky-override-file-item-gap, var(--sky-space-gap-form-s))}:host-context(sky-file-drop.sky-form-field-stacked ~ sky-file-item:last-of-type) .sky-file-item{margin-bottom:var(--sky-override-file-item-margin-bottom, var(--sky-space-gap-form-l))}.sky-file-item{border:var(--sky-override-file-item-border, var(--sky-border-width-input-base) solid var(--sky-color-border-input-base));border-radius:var(--sky-override-file-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-file-item-background-color, var(--sky-color-background-file_drop));margin-bottom:var(--sky-override-file-item-margin-bottom, 0);padding:var(--sky-override-file-item-padding, var(--sky-comp-file_drop-content-space-inset-top) var(--sky-comp-file_drop-content-space-inset-right) var(--sky-comp-file_drop-content-space-inset-bottom) var(--sky-comp-file_drop-content-space-inset-left))}.sky-file-item-name-container{flex:1 1 auto;overflow:hidden}.sky-file-item-controls{flex:0 1 auto;padding-left:var(--sky-override-file-item-controls-padding-left, var(--sky-space-gap-text_action-m))}.sky-file-item-name{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:var(--sky-override-file-item-name-font-weight, var(--sky-font-weight-body-m));font-size:var(--sky-override-file-item-name-font-size, var(--sky-font-size-body-m));font-style:var(--sky-font-style-body-m);line-height:var(--sky-override-file-item-name-line-height, var(--sky-font-line_height-body-m))}.sky-file-item-size{font-weight:var(--sky-override-file-item-size-font-weight, var(--sky-font-weight-body-s));font-size:var(--sky-override-file-item-size-font-size, var(--sky-font-size-body-s));font-style:var(--sky-font-style-body-s);line-height:var(--sky-override-file-item-size-line-height, var(--sky-font-line_height-body-s))}.sky-file-item-title{margin-bottom:var(--sky-override-file-item-title-bottom-margin, var(--sky-space-gap-stacked_supplemental-m));display:flex}.sky-file-item-content{display:flex}.sky-file-item-preview{flex-basis:25%}.sky-file-item-content-custom{flex-basis:75%}.sky-file-item-preview-img-container{text-align:center}.sky-file-item-preview-img{max-width:100%;height:auto;box-shadow:var(--sky-override-file-item-preview-img-box-shadow, var(--sky-elevation-raised-100))}.sky-file-item-preview-other{color:var(--sky-override-file-item-preview-other-color, var(--sky-color-icon-deemphasized));font-size:var(--sky-override-file-item-preview-other-font-size, var(--sky-size-illustration-l));line-height:1;text-align:center;width:100%}\\n\"], dependencies: [{ kind: \"pipe\", type: SkyFileSizePipe, name: \"skyFileSize\" }, { kind: \"ngmodule\", type: SkyFormsResourcesModule }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i3.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileItemComponent, decorators: [{\n type: Component,\n args: [{ imports: [SkyFileSizePipe, SkyFormsResourcesModule, SkyIconModule], selector: 'sky-file-item', template: \"@if (fileItem) {\\n <div class=\\\"sky-file-item\\\">\\n <div class=\\\"sky-file-item-title\\\">\\n <div class=\\\"sky-file-item-name-container\\\">\\n <div class=\\\"sky-file-item-name\\\">\\n @if (isFile) {\\n {{ fileName }}\\n } @else {\\n {{ url }}\\n }\\n </div>\\n @if (isFile) {\\n <div class=\\\"sky-file-item-size\\\">({{ fileSize | skyFileSize }})</div>\\n }\\n </div>\\n <div class=\\\"sky-file-item-controls\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"sky-btn sky-btn-default sky-file-item-btn-delete\\\"\\n [attr.aria-label]=\\\"\\n 'skyux_file_attachment_file_item_delete'\\n | skyLibResources: (isFile ? fileName : url)\\n \\\"\\n (click)=\\\"itemDelete()\\\"\\n >\\n <sky-icon iconName=\\\"delete\\\" />\\n </button>\\n </div>\\n </div>\\n <div class=\\\"sky-file-item-content\\\">\\n <div class=\\\"sky-file-item-preview\\\">\\n @if (isImage) {\\n <div class=\\\"sky-file-item-preview-img-container\\\">\\n <img\\n class=\\\"sky-file-item-preview-img\\\"\\n [src]=\\\"url\\\"\\n [alt]=\\\"\\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\\n | skyLibResources\\n \\\"\\n />\\n </div>\\n } @else {\\n <div class=\\\"sky-file-item-preview-other\\\">\\n <sky-icon iconSize=\\\"xxxl\\\" [iconName]=\\\"icon\\\" />\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-file-item-content-custom\\\">\\n <ng-content />\\n </div>\\n </div>\\n </div>\\n}\\n\", styles: [\".sky-file-item:not(.sky-theme-modern *){--sky-override-file-item-background-color: #eeeeef;--sky-override-file-item-border: 1px solid #e2e3e4;--sky-override-file-item-border-radius: 0;--sky-override-file-item-controls-padding-left: 15px;--sky-override-file-item-gap: 10px;--sky-override-file-item-margin-bottom: 10px;--sky-override-file-item-name-line-height: normal;--sky-override-file-item-name-font-size: 15px;--sky-override-file-item-name-font-weight: bolder;--sky-override-file-item-padding: 10px 10px 10px 10px;--sky-override-file-item-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-item-preview-other-color: #686c73;--sky-override-file-item-preview-other-font-size: 100px;--sky-override-file-item-size-line-height: normal;--sky-override-file-item-size-font-size: 15px;--sky-override-file-item-size-font-weight: 400;--sky-override-file-item-title-bottom-margin: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-file-item{--sky-override-file-item-background-color: #eeeeef;--sky-override-file-item-border: var(--modern-size-1) solid #e2e3e4;--sky-override-file-item-border-radius: var(--modern-border-radius-0);--sky-override-file-item-gap: 10px;--sky-override-file-item-margin-bottom: 10px;--sky-override-file-item-name-line-height: normal;--sky-override-file-item-name-font-weight: bolder;--sky-override-file-item-preview-img-box-shadow: 0 0 5px #666;--sky-override-file-item-preview-other-font-size: 100px;--sky-override-file-item-size-line-height: normal;--sky-override-file-item-size-font-size: var(--sky-font-size-body-m);--sky-override-file-item-size-font-weight: var(--sky-font-weight-body-m)}:host:not(:last-of-type) .sky-file-item{margin-bottom:var(--sky-override-file-item-gap, var(--sky-space-gap-form-s))}:host-context(sky-file-drop.sky-form-field-stacked ~ sky-file-item:last-of-type) .sky-file-item{margin-bottom:var(--sky-override-file-item-margin-bottom, var(--sky-space-gap-form-l))}.sky-file-item{border:var(--sky-override-file-item-border, var(--sky-border-width-input-base) solid var(--sky-color-border-input-base));border-radius:var(--sky-override-file-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-file-item-background-color, var(--sky-color-background-file_drop));margin-bottom:var(--sky-override-file-item-margin-bottom, 0);padding:var(--sky-override-file-item-padding, var(--sky-comp-file_drop-content-space-inset-top) var(--sky-comp-file_drop-content-space-inset-right) var(--sky-comp-file_drop-content-space-inset-bottom) var(--sky-comp-file_drop-content-space-inset-left))}.sky-file-item-name-container{flex:1 1 auto;overflow:hidden}.sky-file-item-controls{flex:0 1 auto;padding-left:var(--sky-override-file-item-controls-padding-left, var(--sky-space-gap-text_action-m))}.sky-file-item-name{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:var(--sky-override-file-item-name-font-weight, var(--sky-font-weight-body-m));font-size:var(--sky-override-file-item-name-font-size, var(--sky-font-size-body-m));font-style:var(--sky-font-style-body-m);line-height:var(--sky-override-file-item-name-line-height, var(--sky-font-line_height-body-m))}.sky-file-item-size{font-weight:var(--sky-override-file-item-size-font-weight, var(--sky-font-weight-body-s));font-size:var(--sky-override-file-item-size-font-size, var(--sky-font-size-body-s));font-style:var(--sky-font-style-body-s);line-height:var(--sky-override-file-item-size-line-height, var(--sky-font-line_height-body-s))}.sky-file-item-title{margin-bottom:var(--sky-override-file-item-title-bottom-margin, var(--sky-space-gap-stacked_supplemental-m));display:flex}.sky-file-item-content{display:flex}.sky-file-item-preview{flex-basis:25%}.sky-file-item-content-custom{flex-basis:75%}.sky-file-item-preview-img-container{text-align:center}.sky-file-item-preview-img{max-width:100%;height:auto;box-shadow:var(--sky-override-file-item-preview-img-box-shadow, var(--sky-elevation-raised-100))}.sky-file-item-preview-other{color:var(--sky-override-file-item-preview-other-color, var(--sky-color-icon-deemphasized));font-size:var(--sky-override-file-item-preview-other-font-size, var(--sky-size-illustration-l));line-height:1;text-align:center;width:100%}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.SkyFileItemService }], propDecorators: { fileItem: [{\n type: Input\n }], deleteFile: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFVM0QsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7Ozs7O09BTUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUE0QztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElB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Q2IsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhO2lCQUNmLFNBQVMsQ0FDUixnREFBZ0QsRUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FDZDtpQkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7OEdBNUpVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGtKQzdCakMsK25EQXNEQSx1dUlEOUJZLGVBQWUsbURBQUUsdUJBQXVCLHVHQUFFLGFBQWE7OzJGQUt0RCxvQkFBb0I7a0JBTmhDLFNBQVM7OEJBQ0MsQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxDQUFDLFlBQ3hELGVBQWU7cUhBYWQsUUFBUTtzQkFEbEIsS0FBSztnQkF5QkMsVUFBVTtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycyxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcblxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1pdGVtJztcbmltcG9ydCB7IFNreUZpbGVJdGVtU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1zaXplLnBpcGUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlTGluayB9IGZyb20gJy4vZmlsZS1saW5rJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtTa3lGaWxlU2l6ZVBpcGUsIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLCBTa3lJY29uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdza3ktZmlsZS1pdGVtJyxcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtaXRlbS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICAvKipcbiAgICogVGhlIHN1bW1hcnkgaW5mb3JtYXRpb24gdG8gZGlzcGxheSBhYm91dCBmaWxlIGF0dGFjaG1lbnRzLiBGb3IgbG9jYWwgZmlsZXMsXG4gICAqIHRoZSBkZWZhdWx0IHN1bW1hcnkgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZSwgZmlsZSBzaXplLCBmaWxlIHByZXZpZXcsIGFuZCBhIGRlbGV0ZSBidXR0b24uXG4gICAqIEZvciBleHRlcm5hbCBmaWxlcywgdGhlIGRlZmF1bHQgc3VtbWFyeSBpbmNsdWRlcyB0aGUgVVJMIGFuZCBhIGRlbGV0ZSBidXR0b24uXG4gICAqIFlvdSBjYW4gaW5jbHVkZSBhZGRpdGlvbmFsIGlucHV0cyB0byBkaXNwbGF5IHVzZXItZW50ZXJlZCBtZXRhZGF0YS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpbGVJdGVtKHZhbHVlOiBTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2ZpbGVJdGVtID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlICYmICdmaWxlJyBpbiB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0ZpbGUgPSB0aGlzLiNmaWxlSXRlbVNlcnZpY2UuaXNGaWxlKHZhbHVlKTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5pc0ltYWdlKHZhbHVlKTtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSB2YWx1ZS5maWxlLm5hbWU7XG4gICAgICB0aGlzLmZpbGVTaXplID0gdmFsdWUuZmlsZS5zaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRmlsZSA9IHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5maWxlTmFtZSA9ICcnO1xuICAgICAgdGhpcy5maWxlU2l6ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy51cmwgPSB2YWx1ZT8udXJsID8/ICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWxlSXRlbSgpOiBTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZpbGVJdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBkZWxldGUgYnV0dG9uIGZvciBhbiBpdGVtLiBUaGUgZGVsZXRlZCBpdGVtIGlzIHBhc3NlZCB0byB0aGVcbiAgICogZnVuY3Rpb24uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGV0ZUZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVMaW5rIHwgU2t5RmlsZUl0ZW0+KCk7XG5cbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG5cbiAgcHVibGljIGZpbGVTaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHVybCA9ICcnO1xuXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzRmlsZSA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuXG4gICNfZmlsZUl0ZW06IFNreUZpbGVJdGVtIHwgU2t5RmlsZUxpbmsgfCB1bmRlZmluZWQ7XG5cbiAgI2RpZmZlcjogS2V5VmFsdWVEaWZmZXI8YW55LCBhbnk+O1xuICAjZmlsZUl0ZW1TZXJ2aWNlOiBTa3lGaWxlSXRlbVNlcnZpY2U7XG5cbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNyZXNvdXJjZXNTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLCBmaWxlSXRlbVNlcnZpY2U6IFNreUZpbGVJdGVtU2VydmljZSkge1xuICAgIHRoaXMuI2RpZmZlciA9IGRpZmZlcnMuZmluZCh7fSkuY3JlYXRlKCk7XG4gICAgdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlID0gZmlsZUl0ZW1TZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlSXRlbSkge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuI2RpZmZlci5kaWZmKHRoaXMuZmlsZUl0ZW0pO1xuXG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICBsZXQgY2xzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvblVwcGVyID0gdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmdldEZpbGVFeHRlbnNpb25VcHBlcihcbiAgICAgICAgICB0aGlzLmZpbGVJdGVtIGFzIFNreUZpbGVJdGVtLFxuICAgICAgICApO1xuICAgICAgICBsZXQgZmlsZVR5cGVVcHBlcjogc3RyaW5nO1xuXG4gICAgICAgIHN3aXRjaCAoZXh0ZW5zaW9uVXBwZXIpIHtcbiAgICAgICAgICBjYXNlICcuUERGJzpcbiAgICAgICAgICAgIGNscyA9ICdwZGYnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLkdaJzpcbiAgICAgICAgICBjYXNlICcuUkFSJzpcbiAgICAgICAgICBjYXNlICcuVEdaJzpcbiAgICAgICAgICBjYXNlICcuWklQJzpcbiAgICAgICAgICAgIGNscyA9ICdhcmNoaXZlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5QUFQnOlxuICAgICAgICAgIGNhc2UgJy5QUFRYJzpcbiAgICAgICAgICAgIGNscyA9ICdwcHQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLkRPQyc6XG4gICAgICAgICAgY2FzZSAnLkRPQ1gnOlxuICAgICAgICAgICAgY2xzID0gJ2RvYyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuWExTJzpcbiAgICAgICAgICBjYXNlICcuWExTWCc6XG4gICAgICAgICAgICBjbHMgPSAneGxzJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5UWFQnOlxuICAgICAgICAgICAgY2xzID0gJ3RleHQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLkhUTSc6XG4gICAgICAgICAgY2FzZSAnLkhUTUwnOlxuICAgICAgICAgICAgY2xzID0gJ2NoZXZyb24tZG91YmxlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2xzKSB7XG4gICAgICAgICAgZmlsZVR5cGVVcHBlciA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5nZXRGaWxlVHlwZVVwcGVyKFxuICAgICAgICAgICAgdGhpcy5maWxlSXRlbSBhcyBTa3lGaWxlSXRlbSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgc3dpdGNoIChmaWxlVHlwZVVwcGVyLnN1YnN0cigwLCBmaWxlVHlwZVVwcGVyLmluZGV4T2YoJy8nKSkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0FVRElPJzpcbiAgICAgICAgICAgICAgY2xzID0gJ2F1ZGlvJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJTUFHRSc6XG4gICAgICAgICAgICAgIC8vIE5vcm1hbGx5IGltYWdlcyBhcmUgZGlzcGxheWVkIGFzIHRodW1ibmFpbHMsIGJ1dCBpZiBhbiBpbWFnZSB0eXBlIGlzIG5vdCByZWNvZ25pemVkXG4gICAgICAgICAgICAgIC8vIGFzIGJlaW5nIHdpZGVseSBzdXBwb3J0ZWQgYnkgbW9kZXJuIGJyb3dzZXJzIChlLmcuIFRJRkYgZmlsZXMpIHRoZW4gYW4gaWNvbiBzaG91bGRcbiAgICAgICAgICAgICAgLy8gYmUgZGlzcGxheWVkIGluc3RlYWQuXG4gICAgICAgICAgICAgIGNscyA9ICdpbWFnZSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVEVYVCc6XG4gICAgICAgICAgICAgIGNscyA9ICd0ZXh0JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdWSURFTyc6XG4gICAgICAgICAgICAgIGNscyA9ICd2aWRlbyc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWNvbiA9ICdkb2N1bWVudCcgKyAoY2xzID8gJy0nICsgY2xzIDogJycpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmljb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGl0ZW1EZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVGaWxlLmVtaXQodGhpcy5maWxlSXRlbSk7XG4gICAgaWYgKCF0aGlzLmlzRmlsZSkge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX3JlbW92ZWQnLCB0aGlzLnVybClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VTdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKHJlc291cmNlU3RyaW5nKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgICAuZ2V0U3RyaW5nKFxuICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZW1vdmVkJyxcbiAgICAgICAgICB0aGlzLmZpbGVOYW1lLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlU3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZVN0cmluZyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChmaWxlSXRlbSkge1xuICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLXRpdGxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1uYW1lLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1uYW1lXCI+XG4gICAgICAgICAgQGlmIChpc0ZpbGUpIHtcbiAgICAgICAgICAgIHt7IGZpbGVOYW1lIH19XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB7eyB1cmwgfX1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGlzRmlsZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLXNpemVcIj4oe3sgZmlsZVNpemUgfCBza3lGaWxlU2l6ZSB9fSk8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1jb250cm9sc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktZmlsZS1pdGVtLWJ0bi1kZWxldGVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfaXRlbV9kZWxldGUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiAoaXNGaWxlID8gZmlsZU5hbWUgOiB1cmwpXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2xpY2spPVwiaXRlbURlbGV0ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cImRlbGV0ZVwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tcHJldmlld1wiPlxuICAgICAgICBAaWYgKGlzSW1hZ2UpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1wcmV2aWV3LWltZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1pdGVtLXByZXZpZXctaW1nXCJcbiAgICAgICAgICAgICAgW3NyY109XCJ1cmxcIlxuICAgICAgICAgICAgICBbYWx0XT1cIlxuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfaW1hZ2VfcHJldmlld19hbHRfdGV4dCdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1wcmV2aWV3LW90aGVyXCI+XG4gICAgICAgICAgICA8c2t5LWljb24gaWNvblNpemU9XCJ4eHhsXCIgW2ljb25OYW1lXT1cImljb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLWNvbnRlbnQtY3VzdG9tXCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyFormErrorModule } from '../../form-error/form-error.module';\nimport { SkyFileDropComponent } from './file-drop.component';\nimport { SkyFileItemComponent } from './file-item.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyFileDropModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropModule, imports: [SkyFileDropComponent, SkyFileItemComponent], exports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropModule, imports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileDropModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule],\n imports: [SkyFileDropComponent, SkyFileItemComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTTdELE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLFlBRmxCLG9CQUFvQixFQUFFLG9CQUFvQixhQUQxQyxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0I7K0dBRzdELGlCQUFpQixZQUZsQixvQkFBb0IsRUFBRSxvQkFBb0IsRUFERSxrQkFBa0I7OzJGQUc3RCxpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDO2lCQUN0RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUZvcm1FcnJvck1vZHVsZSB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1kcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1pdGVtLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lGaWxlRHJvcENvbXBvbmVudCwgU2t5RmlsZUl0ZW1Db21wb25lbnQsIFNreUZvcm1FcnJvck1vZHVsZV0sXG4gIGltcG9ydHM6IFtTa3lGaWxlRHJvcENvbXBvbmVudCwgU2t5RmlsZUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlRHJvcE1vZHVsZSB7fVxuIl19","import { NgModule } from '@angular/core';\nimport { SkyFileAttachmentModule } from './file-attachment/file-attachment.module';\nimport { SkyFileDropModule } from './file-drop/file-drop.module';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated Import either `SkyFileAttachmentModule` or `SkyFileDropModule`.\n */\nexport class SkyFileAttachmentsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentsModule, imports: [SkyFileAttachmentModule, SkyFileDropModule], exports: [SkyFileAttachmentModule, SkyFileDropModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentsModule, imports: [SkyFileAttachmentModule, SkyFileDropModule, SkyFileAttachmentModule, SkyFileDropModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyFileAttachmentsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyFileAttachmentModule, SkyFileDropModule],\n imports: [SkyFileAttachmentModule, SkyFileDropModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRTs7R0FFRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLFlBRnpCLHVCQUF1QixFQUFFLGlCQUFpQixhQUQxQyx1QkFBdUIsRUFBRSxpQkFBaUI7K0dBR3pDLHdCQUF3QixZQUZ6Qix1QkFBdUIsRUFBRSxpQkFBaUIsRUFEMUMsdUJBQXVCLEVBQUUsaUJBQWlCOzsyRkFHekMsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudE1vZHVsZSB9IGZyb20gJy4vZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RmlsZURyb3BNb2R1bGUgfSBmcm9tICcuL2ZpbGUtZHJvcC9maWxlLWRyb3AubW9kdWxlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBJbXBvcnQgZWl0aGVyIGBTa3lGaWxlQXR0YWNobWVudE1vZHVsZWAgb3IgYFNreUZpbGVEcm9wTW9kdWxlYC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUZpbGVBdHRhY2htZW50TW9kdWxlLCBTa3lGaWxlRHJvcE1vZHVsZV0sXG4gIGltcG9ydHM6IFtTa3lGaWxlQXR0YWNobWVudE1vZHVsZSwgU2t5RmlsZURyb3BNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUge31cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * Tracks the element IDs for all radios within a radio group.\n * @internal\n */\nexport class SkyRadioGroupIdService {\n get radioIds() {\n return this.#radioIdsObs;\n }\n #radioIds;\n #radioIds$;\n #radioIdsObs;\n constructor() {\n this.#radioIds = new Map();\n this.#radioIds$ = new BehaviorSubject([]);\n this.#radioIdsObs = this.#radioIds$.asObservable();\n }\n /**\n * Associates a radio input's ID with its parent radio group.\n * @param {string} id A unique ID for the radio component.\n * @param {string} inputElementId The ID applied to the radio input element.\n */\n register(id, inputElementId) {\n if (!this.#radioIds.has(id) || this.#radioIds.get(id) !== inputElementId) {\n this.#radioIds.set(id, inputElementId);\n this.#emitRadioIds();\n }\n }\n /**\n * Disassociates a radio input's ID with its parent radio group.\n * @param {string} id The ID used to register the radio component.\n */\n unregister(id) {\n if (this.#radioIds.has(id)) {\n this.#radioIds.delete(id);\n this.#emitRadioIds();\n }\n }\n #emitRadioIds() {\n this.#radioIds$.next(Array.from(this.#radioIds.values()));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioGroupIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioGroupIdService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioGroupIdService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBRW5EOzs7R0FHRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFzQjtJQUMvQixVQUFVLENBQTRCO0lBQ3RDLFlBQVksQ0FBdUI7SUFFbkM7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsRUFBVSxFQUFFLGNBQXNCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBeENVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUcmFja3MgdGhlIGVsZW1lbnQgSURzIGZvciBhbGwgcmFkaW9zIHdpdGhpbiBhIHJhZGlvIGdyb3VwLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIHtcbiAgcHVibGljIGdldCByYWRpb0lkcygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuI3JhZGlvSWRzT2JzO1xuICB9XG5cbiAgI3JhZGlvSWRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAjcmFkaW9JZHMkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+O1xuICAjcmFkaW9JZHNPYnM6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3JhZGlvSWRzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuI3JhZGlvSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcbiAgICB0aGlzLiNyYWRpb0lkc09icyA9IHRoaXMuI3JhZGlvSWRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVzIGEgcmFkaW8gaW5wdXQncyBJRCB3aXRoIGl0cyBwYXJlbnQgcmFkaW8gZ3JvdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBBIHVuaXF1ZSBJRCBmb3IgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0RWxlbWVudElkIFRoZSBJRCBhcHBsaWVkIHRvIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGlucHV0RWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3JhZGlvSWRzLmhhcyhpZCkgfHwgdGhpcy4jcmFkaW9JZHMuZ2V0KGlkKSAhPT0gaW5wdXRFbGVtZW50SWQpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLnNldChpZCwgaW5wdXRFbGVtZW50SWQpO1xuICAgICAgdGhpcy4jZW1pdFJhZGlvSWRzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc2Fzc29jaWF0ZXMgYSByYWRpbyBpbnB1dCdzIElEIHdpdGggaXRzIHBhcmVudCByYWRpbyBncm91cC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIFRoZSBJRCB1c2VkIHRvIHJlZ2lzdGVyIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3JhZGlvSWRzLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLmRlbGV0ZShpZCk7XG4gICAgICB0aGlzLiNlbWl0UmFkaW9JZHMoKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFJhZGlvSWRzKCk6IHZvaWQge1xuICAgIHRoaXMuI3JhZGlvSWRzJC5uZXh0KEFycmF5LmZyb20odGhpcy4jcmFkaW9JZHMudmFsdWVzKCkpKTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, booleanAttribute, forwardRef, inject, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { SkyRadioGroupIdService } from './radio-group-id.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/theme\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@skyux/help-inline\";\nimport * as i4 from \"@skyux/icon\";\nimport * as i5 from \"@skyux/core\";\n/**\n * Provider Expression that allows sky-radio to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n */\nconst SKY_RADIO_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyRadioComponent),\n multi: true,\n};\n/**\n * Renders a SKY UX-themed replacement for an HTML `input` element\n * with `type=\"radio\"`. When users select a radio button, its value is driven through an\n * `ngModel` attribute that you specify on the `sky-radio` element or the parent `sky-radio-group` element.\n */\nexport class SkyRadioComponent {\n /**\n * Whether the radio button is selected.\n * @default false\n */\n set checked(value) {\n const newCheckedState = !!value;\n if (this.#_checked !== newCheckedState) {\n this.#_checked = newCheckedState;\n this.checkedChange.next(newCheckedState);\n if (newCheckedState) {\n this.selectedValue = this.value;\n }\n }\n this.#changeDetector.markForCheck();\n }\n get checked() {\n return this.#_checked;\n }\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n set disabled(value) {\n if (value !== this.disabled) {\n this.#_disabled = value;\n this.disabledChange.next(value);\n this.#changeDetector.markForCheck();\n }\n }\n get disabled() {\n return this.#_disabled;\n }\n /**\n * The ID for the radio button.\n * If a value is not provided, an autogenerated ID is used.\n */\n set id(value) {\n if (value) {\n this.inputId = `sky-radio-${value}-input`;\n }\n else {\n this.inputId = `sky-radio-${this.#defaultId}-input`;\n }\n this.#radioGroupIdSvc?.register(this.#defaultId, this.inputId);\n }\n /**\n * The ARIA label for the radio button. This sets the radio button's `aria-label`\n * attribute to provide a text equivalent for screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * when the radio button does not include a visible label. You must set this property for icon\n * radio buttons. If the radio button includes a visible label, use `labelledBy` instead.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use `labelText` instead.\n */\n set label(value) {\n this.#_label = value;\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.label', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Use the `labelText` input instead.',\n });\n }\n }\n get label() {\n return this.#_label;\n }\n /**\n * The HTML element ID of the element that labels\n * the radio button. This sets the radio button's `aria-labelledby` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button does not include a visible label, use `label` instead.\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n * @deprecated Use `labelText` instead.\n */\n set labelledBy(value) {\n this.#_labelledBy = value;\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.labelledBy', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Use the `labelText` input instead.',\n });\n }\n }\n get labelledBy() {\n return this.#_labelledBy;\n }\n /**\n * This property is deprecated in favor of the `name` property on the `sky-radio-group element`.\n * We recommend using the `sky-radio-group` element with all radio buttons, but if you opt not to,\n * then this property specifies a name for a group of radio buttons.\n * @deprecated\n */\n set name(value) {\n this.#_name = value;\n this.#changeDetector.markForCheck();\n }\n get name() {\n return this.#_name;\n }\n /**\n * This property is deprecated in favor of\n * the `tabIndex` property on the `sky-radio-group` element. It specifies an index for the radio\n * button. If the index is not defined, it is set to the position of the radio button on load.\n * @deprecated\n */\n set tabindex(value) {\n console.warn('The sky-radio `tabindex` property is deprecated. Please use the `tabindex` property on the sky-radio-group component.');\n if (value) {\n this.#_tabindex = value;\n }\n else {\n this.#_tabindex = 0;\n }\n this.#changeDetector.markForCheck();\n }\n get tabindex() {\n return this.#_tabindex;\n }\n // For setting the tabindex from the radio group\n set groupTabIndex(value) {\n if (value) {\n this.#_tabindex = value;\n }\n else {\n this.#_tabindex = 0;\n }\n this.#changeDetector.markForCheck();\n }\n /**\n * The value bound to the radio button's `value` property. The value usually\n * corresponds to the radio button's label, which you specify with the `sky-radio-label`\n * component.\n * @required\n */\n set value(value) {\n /* istanbul ignore else */\n if (this.#_value !== value) {\n if (this.selectedValue && this.selectedValue === this.#_value) {\n this.selectedValue = value;\n this.#onChangeCallback(this.selectedValue);\n this.#onTouchedCallback();\n }\n this.#_value = value;\n }\n this.#changeDetector.markForCheck();\n }\n get value() {\n return this.#_value;\n }\n /**\n * The background color type after users select an icon radio button.\n * The valid options correspond\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `danger` creates a red background, `info` creates a blue background,\n * `success` creates a green background, and `warning` creates an orange background.\n * @default \"info\"\n * @deprecated radioType is no longer supported\n */\n get radioType() {\n return this.#_radioType;\n }\n set radioType(value) {\n if (value) {\n this.#logger.deprecated('SkyRadioComponent.radioType', {\n deprecationMajorVersion: 7,\n });\n }\n this.#_radioType = value ?? 'info';\n }\n set selectedValue(value) {\n if (value !== this.#_selectedValue) {\n this.#_selectedValue = value;\n }\n }\n get selectedValue() {\n return this.#_selectedValue;\n }\n #_checked;\n #_disabled;\n #_name;\n #_radioType;\n #_selectedValue;\n #_tabindex;\n #_value;\n #_label;\n #_labelledBy;\n #changeDetector;\n #defaultId;\n #radioGroupIdSvc;\n #logger;\n constructor() {\n /**\n * Fires when users focus off a radio button.\n */\n this.blur = new Subject();\n /**\n * Indicates whether to hide the `labelText`.\n */\n this.labelHidden = false;\n /**\n * Fires when users select a radio button.\n */\n this.change = new EventEmitter();\n /**\n * Fires when the selected value changes.\n */\n this.checkedChange = new EventEmitter();\n /**\n * Fires when the selected value changes.\n */\n this.disabledChange = new EventEmitter();\n this.radioGroupDisabled = false;\n this.inputId = '';\n this.#_checked = false;\n this.#_disabled = false;\n this.#_radioType = 'info';\n this.#_tabindex = 0;\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#defaultId = inject(SkyIdService).generateId();\n this.#radioGroupIdSvc = inject(SkyRadioGroupIdService, { optional: true });\n this.#logger = inject(SkyLogService);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#removeUniqueSelectionListener = () => { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#onChangeCallback = (value) => { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#onTouchedCallback = () => { };\n this.id = this.#defaultId;\n }\n ngOnDestroy() {\n this.#radioGroupIdSvc?.unregister(this.#defaultId);\n this.#removeUniqueSelectionListener();\n this.change.complete();\n this.checkedChange.complete();\n this.disabledChange.complete();\n }\n writeValue(value) {\n if (value === undefined) {\n return;\n }\n this.selectedValue = value;\n this.checked = this.value === this.selectedValue;\n this.#changeDetector.markForCheck();\n }\n /**\n * @internal\n * Whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n setGroupDisabledState(isDisabled) {\n this.radioGroupDisabled = isDisabled;\n this.#changeDetector.markForCheck();\n }\n registerOnChange(fn) {\n this.#onChangeCallback = fn;\n }\n registerOnTouched(fn) {\n this.#onTouchedCallback = fn;\n }\n onInputChange(event) {\n event.stopPropagation();\n if (!this.disabled) {\n this.checked = true;\n this.change.next({\n value: this.value,\n });\n this.onInputFocusChange();\n this.#onChangeCallback(this.value);\n }\n }\n onInputFocusChange() {\n this.#onTouchedCallback();\n this.blur.next();\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #removeUniqueSelectionListener;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onChangeCallback;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouchedCallback;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyRadioComponent, isStandalone: false, selector: \"sky-radio\", inputs: { checked: \"checked\", disabled: [\"disabled\", \"disabled\", booleanAttribute], id: \"id\", label: \"label\", labelledBy: \"labelledBy\", name: \"name\", tabindex: \"tabindex\", value: \"value\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", icon: \"icon\", iconName: \"iconName\", radioType: \"radioType\", labelText: \"labelText\", labelHidden: [\"labelHidden\", \"labelHidden\", booleanAttribute], hintText: \"hintText\", helpKey: \"helpKey\" }, outputs: { change: \"change\", checkedChange: \"checkedChange\", disabledChange: \"disabledChange\" }, providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<span class=\\\"sky-radio-outer-wrapper\\\">\\n <label\\n class=\\\"sky-radio-wrapper sky-switch\\\"\\n [ngClass]=\\\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\\\"\\n >\\n <input\\n class=\\\"sky-radio-input sky-switch-input\\\"\\n type=\\\"radio\\\"\\n [attr.aria-label]=\\\"labelText || label\\\"\\n [attr.aria-labelledby]=\\\"labelText ? undefined : labelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [checked]=\\\"checked\\\"\\n [disabled]=\\\"disabled || radioGroupDisabled\\\"\\n [id]=\\\"inputId\\\"\\n [name]=\\\"name\\\"\\n [tabIndex]=\\\"tabindex\\\"\\n [value]=\\\"value\\\"\\n (blur)=\\\"onInputFocusChange()\\\"\\n (change)=\\\"onInputChange($event)\\\"\\n />\\n <span\\n class=\\\"sky-switch-control\\\"\\n [ngClass]=\\\"{\\n 'sky-switch-control-icon': icon || iconName,\\n 'sky-rounded-corners': icon || iconName,\\n 'sky-rounded-circle': !(icon || iconName),\\n 'sky-switch-control-info': (icon || iconName) && radioType === 'info',\\n 'sky-switch-control-success':\\n (icon || iconName) && radioType === 'success',\\n 'sky-switch-control-warning':\\n (icon || iconName) && radioType === 'warning',\\n 'sky-switch-control-danger':\\n (icon || iconName) && radioType === 'danger'\\n }\\\"\\n >\\n @if (iconName) {\\n <sky-icon [iconName]=\\\"iconName\\\" />\\n } @else if (icon) {\\n <sky-icon [fixedWidth]=\\\"true\\\" [icon]=\\\"icon\\\" />\\n }\\n </span>\\n @if (labelText) {\\n <span\\n class=\\\"sky-switch-label sky-radio-label-text\\\"\\n [class.sky-screen-reader-only]=\\\"labelHidden\\\"\\n >{{ labelText }}</span\\n >\\n } @else {\\n <ng-content select=\\\"sky-radio-label\\\" />\\n }\\n </label>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-radio-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n</span>\\n<div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-radio-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</div>\\n\", styles: [\".sky-radio-outer-wrapper:not(.sky-theme-modern *){--sky-override-radio-icon-border-radius: 50%;--sky-override-radio-icon-color-disabled: #000000;--sky-override-radio-icon-color-selected: #000000;--sky-override-radio-icon-size: 10px;--sky-override-radio-label-margin-right: var(--sky-margin-inline-xs)}:host.sky-cmp-theme-default{--sky-override-radio-group-radio-bottom-margin: var(--sky-margin-stacked-sm);--sky-override-radio-hint-text-inset: var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-radio-outer-wrapper{--sky-override-radio-icon-color-selected: var(--sky-color-icon-selected);--sky-override-radio-label-margin-right: var(--sky-margin-inline-xs)}:host:has(.sky-switch-control-icon){display:inline-block}:host-context(sky-radio-group):not(:has(li)) :host:not(:has(.sky-switch-control-icon)){display:block}:host-context(sky-radio-group):not(:has(li)) :host:not(:has(.sky-switch-control-icon)):not(:last-child){margin-bottom:var(--sky-override-radio-group-radio-bottom-margin, var(--sky-space-gap-form-s))}.sky-radio-outer-wrapper{display:flex}.sky-radio-help-inline{display:inline-flex}.sky-switch:not(:has(~.sky-control-help-container)) .sky-switch-label{margin-right:var(--sky-override-radio-label-margin-right, 0)}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\\\"\\\";display:inline-block;width:var(--sky-override-radio-icon-size, var(--sky-size-icon-xxs));height:var(--sky-override-radio-icon-size, var(--sky-size-icon-xxs));background:var(--sky-override-radio-icon-color-selected, var(--sky-color-icon-inverse));border-radius:var(--sky-override-radio-icon-border-radius, var(--sky-border-radius-round))}.sky-radio-input:disabled+.sky-switch-control:not(.sky-switch-control-icon):after{background-color:var(--sky-override-radio-icon-color-disabled, var(--sky-color-text-deemphasized))}.sky-radio-hint-text{margin:var(--sky-override-radio-hint-text-inset, var(--sky-space-gap-stacked_supplemental-xs) 0 0 var(--sky-space-inset-switch))}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: i3.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"component\", type: i4.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"directive\", type: i5.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"directive\", type: i1.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-radio', providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyThemeComponentClassDirective], standalone: false, template: \"<span class=\\\"sky-radio-outer-wrapper\\\">\\n <label\\n class=\\\"sky-radio-wrapper sky-switch\\\"\\n [ngClass]=\\\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\\\"\\n >\\n <input\\n class=\\\"sky-radio-input sky-switch-input\\\"\\n type=\\\"radio\\\"\\n [attr.aria-label]=\\\"labelText || label\\\"\\n [attr.aria-labelledby]=\\\"labelText ? undefined : labelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [checked]=\\\"checked\\\"\\n [disabled]=\\\"disabled || radioGroupDisabled\\\"\\n [id]=\\\"inputId\\\"\\n [name]=\\\"name\\\"\\n [tabIndex]=\\\"tabindex\\\"\\n [value]=\\\"value\\\"\\n (blur)=\\\"onInputFocusChange()\\\"\\n (change)=\\\"onInputChange($event)\\\"\\n />\\n <span\\n class=\\\"sky-switch-control\\\"\\n [ngClass]=\\\"{\\n 'sky-switch-control-icon': icon || iconName,\\n 'sky-rounded-corners': icon || iconName,\\n 'sky-rounded-circle': !(icon || iconName),\\n 'sky-switch-control-info': (icon || iconName) && radioType === 'info',\\n 'sky-switch-control-success':\\n (icon || iconName) && radioType === 'success',\\n 'sky-switch-control-warning':\\n (icon || iconName) && radioType === 'warning',\\n 'sky-switch-control-danger':\\n (icon || iconName) && radioType === 'danger'\\n }\\\"\\n >\\n @if (iconName) {\\n <sky-icon [iconName]=\\\"iconName\\\" />\\n } @else if (icon) {\\n <sky-icon [fixedWidth]=\\\"true\\\" [icon]=\\\"icon\\\" />\\n }\\n </span>\\n @if (labelText) {\\n <span\\n class=\\\"sky-switch-label sky-radio-label-text\\\"\\n [class.sky-screen-reader-only]=\\\"labelHidden\\\"\\n >{{ labelText }}</span\\n >\\n } @else {\\n <ng-content select=\\\"sky-radio-label\\\" />\\n }\\n </label>\\n @if ((helpPopoverContent || helpKey) && labelText) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n class=\\\"sky-radio-help-inline\\\"\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n</span>\\n<div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-radio-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n</div>\\n\", styles: [\".sky-radio-outer-wrapper:not(.sky-theme-modern *){--sky-override-radio-icon-border-radius: 50%;--sky-override-radio-icon-color-disabled: #000000;--sky-override-radio-icon-color-selected: #000000;--sky-override-radio-icon-size: 10px;--sky-override-radio-label-margin-right: var(--sky-margin-inline-xs)}:host.sky-cmp-theme-default{--sky-override-radio-group-radio-bottom-margin: var(--sky-margin-stacked-sm);--sky-override-radio-hint-text-inset: var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-radio-outer-wrapper{--sky-override-radio-icon-color-selected: var(--sky-color-icon-selected);--sky-override-radio-label-margin-right: var(--sky-margin-inline-xs)}:host:has(.sky-switch-control-icon){display:inline-block}:host-context(sky-radio-group):not(:has(li)) :host:not(:has(.sky-switch-control-icon)){display:block}:host-context(sky-radio-group):not(:has(li)) :host:not(:has(.sky-switch-control-icon)):not(:last-child){margin-bottom:var(--sky-override-radio-group-radio-bottom-margin, var(--sky-space-gap-form-s))}.sky-radio-outer-wrapper{display:flex}.sky-radio-help-inline{display:inline-flex}.sky-switch:not(:has(~.sky-control-help-container)) .sky-switch-label{margin-right:var(--sky-override-radio-label-margin-right, 0)}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\\\"\\\";display:inline-block;width:var(--sky-override-radio-icon-size, var(--sky-size-icon-xxs));height:var(--sky-override-radio-icon-size, var(--sky-size-icon-xxs));background:var(--sky-override-radio-icon-color-selected, var(--sky-color-icon-inverse));border-radius:var(--sky-override-radio-icon-border-radius, var(--sky-border-radius-round))}.sky-radio-input:disabled+.sky-switch-control:not(.sky-switch-control-icon):after{background-color:var(--sky-override-radio-icon-color-disabled, var(--sky-color-text-deemphasized))}.sky-radio-hint-text{margin:var(--sky-override-radio-hint-text-inset, var(--sky-space-gap-stacked_supplemental-xs) 0 0 var(--sky-space-inset-switch))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { checked: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], id: [{\n type: Input\n }], label: [{\n type: Input\n }], labelledBy: [{\n type: Input\n }], name: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], value: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconName: [{\n type: Input\n }], radioType: [{\n type: Input\n }], labelText: [{\n type: Input\n }], labelHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hintText: [{\n type: Input\n }], helpKey: [{\n type: Input\n }], change: [{\n type: Output\n }], checkedChange: [{\n type: Output\n }], disabledChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFJbEU7OztHQUdHO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBYTtJQUNqRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxpQkFBaUI7SUFNNUI7OztPQUdHO0lBQ0gsSUFDVyxPQUFPLENBQUMsS0FBMEI7UUFDM0MsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFekMsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLEVBQUUsQ0FBQyxLQUF5QjtRQUNyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLEtBQUssUUFBUSxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsRUFBRTtnQkFDakQsdUJBQXVCLEVBQUUsRUFBRTtnQkFDM0IseUJBQXlCLEVBQUUsb0NBQW9DO2FBQ2hFLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxVQUFVLENBQUMsS0FBeUI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDhCQUE4QixFQUFFO2dCQUN0RCx1QkFBdUIsRUFBRSxFQUFFO2dCQUMzQix5QkFBeUIsRUFBRSxvQ0FBb0M7YUFDaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csSUFBSSxDQUFDLEtBQXlCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUF5QjtRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUNWLHVIQUF1SCxDQUN4SCxDQUFDO1FBQ0YsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxJQUFXLGFBQWEsQ0FBQyxLQUF5QjtRQUNoRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUNXLEtBQUssQ0FBQyxLQUFVO1FBQ3pCLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQztZQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQWtDRDs7Ozs7Ozs7T0FRRztJQUNILElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQStCO1FBQ2xELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsRUFBRTtnQkFDckQsdUJBQXVCLEVBQUUsQ0FBQzthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFnREQsSUFBVyxhQUFhLENBQUMsS0FBVTtRQUNqQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFNRCxTQUFTLENBQVM7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLE1BQU0sQ0FBcUI7SUFDM0IsV0FBVyxDQUF3QjtJQUNuQyxlQUFlLENBQVU7SUFDekIsVUFBVSxDQUFLO0lBQ2YsT0FBTyxDQUFNO0lBQ2IsT0FBTyxDQUFxQjtJQUM1QixZQUFZLENBQXFCO0lBRWpDLGVBQWUsQ0FBNkI7SUFDNUMsVUFBVSxDQUFxQztJQUMvQyxnQkFBZ0IsQ0FBc0Q7SUFDdEUsT0FBTyxDQUF5QjtJQUVoQztRQXpUQTs7V0FFRztRQUNJLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBa1BsQzs7V0FFRztRQUVJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBaUIzQjs7V0FFRztRQUdJLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUVuRDs7V0FFRztRQUVJLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRDs7V0FFRztRQUVJLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVc3Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsZ0JBQVcsR0FBaUIsTUFBTSxDQUFDO1FBRW5DLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFLZixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MscUJBQWdCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQWlFaEMsZ0VBQWdFO1FBQ2hFLG1DQUE4QixHQUFHLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNoRCxnRUFBZ0U7UUFDaEUsc0JBQWlCLEdBQUcsQ0FBQyxLQUFVLEVBQVEsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QyxnRUFBZ0U7UUFDaEUsdUJBQWtCLEdBQUcsR0FBUyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBbkVsQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFjO1FBQzlCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsVUFBbUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFVBQW1CO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFZO1FBQy9CLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSw4QkFBOEIsQ0FBa0I7SUFDaEQsZ0VBQWdFO0lBQ2hFLGlCQUFpQixDQUE0QjtJQUM3QyxnRUFBZ0U7SUFDaEUsa0JBQWtCLENBQWtCOzhHQTlYekIsaUJBQWlCO2tHQUFqQixpQkFBaUIsK0dBbUNSLGdCQUFnQiwyVEFzTmhCLGdCQUFnQiwySkE5UHpCLENBQUMsZ0NBQWdDLENBQUMsK0ZDM0MvQyxxNEVBNEVBOzsyRkQ1QmEsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLFdBQVcsYUFHVixDQUFDLGdDQUFnQyxDQUFDLG1CQUM1Qix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLCtCQUErQixDQUFDLGNBQ3JDLEtBQUs7d0RBYU4sT0FBTztzQkFEakIsS0FBSztnQkEwQkssUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFrQjNCLEVBQUU7c0JBRFosS0FBSztnQkFtQkssS0FBSztzQkFEZixLQUFLO2dCQXlCSyxVQUFVO3NCQURwQixLQUFLO2dCQXVCSyxJQUFJO3NCQURkLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0NLLEtBQUs7c0JBRGYsS0FBSztnQkEwQkMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFVQyxJQUFJO3NCQURWLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQWFLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBa0JDLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEvQixRQUFRO3NCQURkLEtBQUs7Z0JBU0MsT0FBTztzQkFEYixLQUFLO2dCQVFDLE1BQU07c0JBRlosTUFBTTtnQkFRQSxhQUFhO3NCQURuQixNQUFNO2dCQU9BLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkU2VydmljZSwgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UgfSBmcm9tICcuL3JhZGlvLWdyb3VwLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lSYWRpb1R5cGUgfSBmcm9tICcuL3R5cGVzL3JhZGlvLXR5cGUnO1xuXG4vKipcbiAqIFByb3ZpZGVyIEV4cHJlc3Npb24gdGhhdCBhbGxvd3Mgc2t5LXJhZGlvIHRvIHJlZ2lzdGVyIGFzIGEgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKiBUaGlzIGFsbG93cyBpdCB0byBzdXBwb3J0IFsobmdNb2RlbCldLlxuICovXG5jb25zdCBTS1lfUkFESU9fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lSYWRpb0NvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBSZW5kZXJzIGEgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgYW4gSFRNTCBgaW5wdXRgIGVsZW1lbnRcbiAqIHdpdGggYHR5cGU9XCJyYWRpb1wiYC4gV2hlbiB1c2VycyBzZWxlY3QgYSByYWRpbyBidXR0b24sIGl0cyB2YWx1ZSBpcyBkcml2ZW4gdGhyb3VnaCBhblxuICogYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvYCBlbGVtZW50IG9yIHRoZSBwYXJlbnQgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU0tZX1JBRElPX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGZvY3VzIG9mZiBhIHJhZGlvIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBibHVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3Q2hlY2tlZFN0YXRlID0gISF2YWx1ZTtcblxuICAgIGlmICh0aGlzLiNfY2hlY2tlZCAhPT0gbmV3Q2hlY2tlZFN0YXRlKSB7XG4gICAgICB0aGlzLiNfY2hlY2tlZCA9IG5ld0NoZWNrZWRTdGF0ZTtcbiAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5uZXh0KG5ld0NoZWNrZWRTdGF0ZSk7XG5cbiAgICAgIGlmIChuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICB0aGlzLmRpc2FibGVkQ2hhbmdlLm5leHQodmFsdWUpO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIHJhZGlvIGJ1dHRvbi5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1yYWRpby0ke3ZhbHVlfS1pbnB1dGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRJZCA9IGBza3ktcmFkaW8tJHt0aGlzLiNkZWZhdWx0SWR9LWlucHV0YDtcbiAgICB9XG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjPy5yZWdpc3Rlcih0aGlzLiNkZWZhdWx0SWQsIHRoaXMuaW5wdXRJZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxgXG4gICAqIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVycyBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIHJhZGlvIGJ1dHRvbiBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbC4gWW91IG11c3Qgc2V0IHRoaXMgcHJvcGVydHkgZm9yIGljb25cbiAgICogcmFkaW8gYnV0dG9ucy4gSWYgdGhlIHJhZGlvIGJ1dHRvbiBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgbGFiZWxUZXh0YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0NvbXBvbmVudC5sYWJlbCcsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDEwLFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiAnVXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCBpbnN0ZWFkLicsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSFRNTCBlbGVtZW50IElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzXG4gICAqIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbGxlZGJ5KS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsbGVkQnkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19sYWJlbGxlZEJ5ID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0NvbXBvbmVudC5sYWJlbGxlZEJ5Jywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogMTAsXG4gICAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgdGhlIGBsYWJlbFRleHRgIGlucHV0IGluc3RlYWQuJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbGFiZWxsZWRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIGBuYW1lYCBwcm9wZXJ0eSBvbiB0aGUgYHNreS1yYWRpby1ncm91cCBlbGVtZW50YC5cbiAgICogV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50IHdpdGggYWxsIHJhZGlvIGJ1dHRvbnMsIGJ1dCBpZiB5b3Ugb3B0IG5vdCB0byxcbiAgICogdGhlbiB0aGlzIHByb3BlcnR5IHNwZWNpZmllcyBhIG5hbWUgZm9yIGEgZ3JvdXAgb2YgcmFkaW8gYnV0dG9ucy5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2ZcbiAgICogdGhlIGB0YWJJbmRleGAgcHJvcGVydHkgb24gdGhlIGBza3ktcmFkaW8tZ3JvdXBgIGVsZW1lbnQuIEl0IHNwZWNpZmllcyBhbiBpbmRleCBmb3IgdGhlIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgdGhlIGluZGV4IGlzIG5vdCBkZWZpbmVkLCBpdCBpcyBzZXQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSByYWRpbyBidXR0b24gb24gbG9hZC5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiaW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdUaGUgc2t5LXJhZGlvIGB0YWJpbmRleGAgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0aGUgYHRhYmluZGV4YCBwcm9wZXJ0eSBvbiB0aGUgc2t5LXJhZGlvLWdyb3VwIGNvbXBvbmVudC4nLFxuICAgICk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiaW5kZXggPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX3RhYmluZGV4ID0gMDtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHVibGljIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfdGFiaW5kZXg7XG4gIH1cblxuICAvLyBGb3Igc2V0dGluZyB0aGUgdGFiaW5kZXggZnJvbSB0aGUgcmFkaW8gZ3JvdXBcbiAgcHVibGljIHNldCBncm91cFRhYkluZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI190YWJpbmRleCA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfdGFiaW5kZXggPSAwO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBib3VuZCB0byB0aGUgcmFkaW8gYnV0dG9uJ3MgYHZhbHVlYCBwcm9wZXJ0eS4gVGhlIHZhbHVlIHVzdWFsbHlcbiAgICogY29ycmVzcG9uZHMgdG8gdGhlIHJhZGlvIGJ1dHRvbidzIGxhYmVsLCB3aGljaCB5b3Ugc3BlY2lmeSB3aXRoIHRoZSBgc2t5LXJhZGlvLWxhYmVsYFxuICAgKiBjb21wb25lbnQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgPT09IHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy4jb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgICAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjaygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNfdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byByYWRpbyBidXR0b24uIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBsYWJlbFRleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGljb24gdG8gZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcmFkaW8gYnV0dG9uLiBUbyBncm91cCByYWRpbyBidXR0b25zIGxpa2UgaW5cbiAgICogdGhlIGRlbW8gYWJvdmUsIHBsYWNlIHRoZSBgc2t5LXN3aXRjaC1pY29uLWdyb3VwYCBjbGFzcyBvbiB0aGUgZGlyZWN0IHBhcmVudCBlbGVtZW50IG9mIHRoZVxuICAgKiByYWRpbyBidXR0b25zLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGljb25OYW1lYCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIFNWRyBpY29uIHRvIGRpc3BsYXkgaW4gcGxhY2Ugb2YgdGhlIHJhZGlvIGJ1dHRvbi4gVG8gZ3JvdXAgcmFkaW8gYnV0dG9ucyBsaWtlIGluXG4gICAqIHRoZSBkZW1vIGFib3ZlLCBwbGFjZSB0aGUgYHNreS1zd2l0Y2gtaWNvbi1ncm91cGAgY2xhc3Mgb24gdGhlIGRpcmVjdCBwYXJlbnQgZWxlbWVudCBvZiB0aGVcbiAgICogcmFkaW8gYnV0dG9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpY29uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFja2dyb3VuZCBjb2xvciB0eXBlIGFmdGVyIHVzZXJzIHNlbGVjdCBhbiBpY29uIHJhZGlvIGJ1dHRvbi5cbiAgICogVGhlIHZhbGlkIG9wdGlvbnMgY29ycmVzcG9uZFxuICAgKiBbdGhlIGxhYmVsIGNvbXBvbmVudCdzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvbGFiZWwpXG4gICAqIGxhYmVsIHR5cGVzLiBgZGFuZ2VyYCBjcmVhdGVzIGEgcmVkIGJhY2tncm91bmQsIGBpbmZvYCBjcmVhdGVzIGEgYmx1ZSBiYWNrZ3JvdW5kLFxuICAgKiBgc3VjY2Vzc2AgY3JlYXRlcyBhIGdyZWVuIGJhY2tncm91bmQsIGFuZCBgd2FybmluZ2AgY3JlYXRlcyBhbiBvcmFuZ2UgYmFja2dyb3VuZC5cbiAgICogQGRlZmF1bHQgXCJpbmZvXCJcbiAgICogQGRlcHJlY2F0ZWQgcmFkaW9UeXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmFkaW9UeXBlKCk6IFNreVJhZGlvVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI19yYWRpb1R5cGU7XG4gIH1cbiAgcHVibGljIHNldCByYWRpb1R5cGUodmFsdWU6IFNreVJhZGlvVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreVJhZGlvQ29tcG9uZW50LnJhZGlvVHlwZScsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNfcmFkaW9UeXBlID0gdmFsdWUgPz8gJ2luZm8nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIHJhZGlvIGJ1dHRvbidzIGxhYmVsLiBVc2UgdGhpcyBpbnN0ZWFkIG9mIHRoZSBgc2t5LXJhZGlvLWxhYmVsYCB3aGVuIHRoZSBsYWJlbCBpcyB0ZXh0LW9ubHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZGUgdGhlIGBsYWJlbFRleHRgLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIHJhZGlvIGJ1dHRvbiBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBwdWJsaWMgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lSYWRpb0NoYW5nZT4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZGlzYWJsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19zZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmFkaW9Hcm91cERpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGlucHV0SWQgPSAnJztcblxuICAjX2NoZWNrZWQgPSBmYWxzZTtcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19yYWRpb1R5cGU6IFNreVJhZGlvVHlwZSA9ICdpbmZvJztcbiAgI19zZWxlY3RlZFZhbHVlOiB1bmtub3duO1xuICAjX3RhYmluZGV4ID0gMDtcbiAgI192YWx1ZTogYW55O1xuICAjX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfbGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNkZWZhdWx0SWQgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKS5nZW5lcmF0ZUlkKCk7XG4gICNyYWRpb0dyb3VwSWRTdmMgPSBpbmplY3QoU2t5UmFkaW9Hcm91cElkU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgI2xvZ2dlciA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gdGhpcy4jZGVmYXVsdElkO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2Yz8udW5yZWdpc3Rlcih0aGlzLiNkZWZhdWx0SWQpO1xuICAgIHRoaXMuI3JlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gICAgdGhpcy5jaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLmNoZWNrZWRDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLmRpc2FibGVkQ2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jaGVja2VkID0gdGhpcy52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgY29udHJvbC4gSW1wbGVtZW50ZWQgYXMgYSBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHNldEdyb3VwRGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yYWRpb0dyb3VwRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jaGFuZ2UubmV4dCh7XG4gICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMub25JbnB1dEZvY3VzQ2hhbmdlKCk7XG4gICAgICB0aGlzLiNvbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Rm9jdXNDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmJsdXIubmV4dCgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIgPSAoKTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25DaGFuZ2VDYWxsYmFjayA9ICh2YWx1ZTogYW55KTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkQ2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7fTtcbn1cbiIsIjxzcGFuIGNsYXNzPVwic2t5LXJhZGlvLW91dGVyLXdyYXBwZXJcIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJza3ktcmFkaW8td3JhcHBlciBza3ktc3dpdGNoXCJcbiAgICBbbmdDbGFzc109XCJ7ICdza3ktc3dpdGNoLWRpc2FibGVkJzogZGlzYWJsZWQgfHwgcmFkaW9Hcm91cERpc2FibGVkIH1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cInNreS1yYWRpby1pbnB1dCBza3ktc3dpdGNoLWlucHV0XCJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsVGV4dCB8fCBsYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxUZXh0ID8gdW5kZWZpbmVkIDogbGFiZWxsZWRCeVwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByYWRpb0dyb3VwRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbdGFiSW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRGb2N1c0NoYW5nZSgpXCJcbiAgICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInNreS1zd2l0Y2gtY29udHJvbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaWNvbic6IGljb24gfHwgaWNvbk5hbWUsXG4gICAgICAgICdza3ktcm91bmRlZC1jb3JuZXJzJzogaWNvbiB8fCBpY29uTmFtZSxcbiAgICAgICAgJ3NreS1yb3VuZGVkLWNpcmNsZSc6ICEoaWNvbiB8fCBpY29uTmFtZSksXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IChpY29uIHx8IGljb25OYW1lKSAmJiByYWRpb1R5cGUgPT09ICdpbmZvJyxcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1zdWNjZXNzJzpcbiAgICAgICAgICAoaWNvbiB8fCBpY29uTmFtZSkgJiYgcmFkaW9UeXBlID09PSAnc3VjY2VzcycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtd2FybmluZyc6XG4gICAgICAgICAgKGljb24gfHwgaWNvbk5hbWUpICYmIHJhZGlvVHlwZSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAnc2t5LXN3aXRjaC1jb250cm9sLWRhbmdlcic6XG4gICAgICAgICAgKGljb24gfHwgaWNvbk5hbWUpICYmIHJhZGlvVHlwZSA9PT0gJ2RhbmdlcidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIEBpZiAoaWNvbk5hbWUpIHtcbiAgICAgICAgPHNreS1pY29uIFtpY29uTmFtZV09XCJpY29uTmFtZVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChpY29uKSB7XG4gICAgICAgIDxza3ktaWNvbiBbZml4ZWRXaWR0aF09XCJ0cnVlXCIgW2ljb25dPVwiaWNvblwiIC8+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICAgIEBpZiAobGFiZWxUZXh0KSB7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNreS1zd2l0Y2gtbGFiZWwgc2t5LXJhZGlvLWxhYmVsLXRleHRcIlxuICAgICAgICBbY2xhc3Muc2t5LXNjcmVlbi1yZWFkZXItb25seV09XCJsYWJlbEhpZGRlblwiXG4gICAgICAgID57eyBsYWJlbFRleHQgfX08L3NwYW5cbiAgICAgID5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1yYWRpby1sYWJlbFwiIC8+XG4gICAgfVxuICA8L2xhYmVsPlxuICBAaWYgKChoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkgJiYgbGFiZWxUZXh0KSB7XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICBjbGFzcz1cInNreS1yYWRpby1oZWxwLWlubGluZVwiXG4gICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gIH1cbjwvc3Bhbj5cbjxkaXYgI2hpbnRUZXh0RWw9XCJza3lJZFwiIHNreUlkPlxuICBAaWYgKGhpbnRUZXh0KSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktcmFkaW8taGludC10ZXh0XCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1mb250LWRlZW1waGFzaXplZCc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1mb250LWhpbnQtdGV4dC1zJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IH19XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19","import { Component, ContentChildren, HostBinding, Input, Optional, Self, booleanAttribute, inject, numberAttribute, } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';\nimport { SkyRadioGroupIdService } from './radio-group-id.service';\nimport { SkyRadioComponent } from './radio.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./radio-group-id.service\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@skyux/theme\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"../form-error/form-errors.component\";\nimport * as i6 from \"@skyux/help-inline\";\nimport * as i7 from \"@skyux/core\";\nimport * as i8 from \"@skyux/i18n\";\nlet nextUniqueId = 0;\nfunction numberAttribute4(value) {\n return numberAttribute(value, 4);\n}\n/**\n * Organizes radio buttons into a group. It is required for radio\n * buttons on Angular reactive forms, and we recommend using it with all radio buttons.\n * On Angular forms, the component manages the selected values and keeps the forms up-to-date.\n * When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.\n */\nexport class SkyRadioGroupComponent {\n /**\n * The HTML element ID of the element that labels\n * the radio button group. This sets the radio button group's `aria-labelledby` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group does not include a visible label, use `ariaLabel` instead.\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n * @deprecated Use `headingText` instead.\n */\n set ariaLabelledBy(value) {\n this.#_ariaLabelledBy = value;\n if (value) {\n this.#logger.deprecated('SkyRadioGroupComponent.ariaLabelledBy', {\n deprecationMajorVersion: 9,\n });\n }\n }\n get ariaLabelledBy() {\n return this.#_ariaLabelledBy;\n }\n /**\n * The ARIA label for the radio button group. This sets the\n * radio button group's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group includes a visible label, use `ariaLabelledBy` instead.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use `headingText` instead.\n */\n set ariaLabel(value) {\n this.#_ariaLabel = value;\n if (value) {\n this.#logger.deprecated('SkyRadioGroupComponent.ariaLabel', {\n deprecationMajorVersion: 9,\n });\n }\n }\n get ariaLabel() {\n return this.#_ariaLabel;\n }\n /**\n * Whether to disable the input on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n set disabled(value) {\n if (this.#_disabled !== value) {\n this.#_disabled = value;\n this.#updateRadioButtonDisabled();\n }\n }\n get disabled() {\n return this.#_disabled;\n }\n /**\n * The semantic heading level in the document structure. By default, the heading text is not wrapped in a heading element.\n */\n set headingLevel(value) {\n this.#_headingLevel = value && !isNaN(value) ? value : undefined;\n this.#updateStackedClasses();\n }\n get headingLevel() {\n return this.#_headingLevel;\n }\n /**\n * The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).\n * @default 4\n */\n set headingStyle(value) {\n this.headingClass = `sky-font-heading-${value}`;\n }\n /**\n * The name for the collection of radio buttons that the component groups together.\n * This property overwrites the deprecated `name` property on individual `sky-radio` elements,\n * and it is required unless the `name` property is set on individual `sky-radio` elements.\n * @required\n */\n set name(value) {\n if (value) {\n this.#_name = value;\n }\n else {\n this.#_name = this.#defaultName;\n }\n this.#updateRadioButtonNames();\n }\n get name() {\n return this.#_name;\n }\n /**\n * Whether the radio button group is stacked on another form component. When specified,\n * the appropriate vertical spacing is automatically added to the radio button group.\n */\n set stacked(value) {\n this.#_stacked = value;\n this.#updateStackedClasses();\n }\n get stacked() {\n return this.#_stacked;\n }\n /**\n * The value of the radio button to select by default when the group loads.\n * The value corresponds to the `value` property of an individual `sky-radio` element within the\n * group.\n */\n // TODO: Look into more strongly typing in a breaking change\n set value(value) {\n const isNewValue = value !== this.#controlValue;\n /* istanbul ignore else */\n if (isNewValue) {\n this.#controlValue = value;\n this.#onChange(value);\n this.#updateCheckedRadioFromValue();\n }\n }\n /**\n * The index for all the radio buttons in the group. If the index is not defined,\n * the indices for individual radio buttons are set to their positions on load.\n * This property supports accessibility by placing focus on the currently selected radio\n * button. If no radio button is selected, it places focus on the first or last button\n * depending on how users navigate to the radio button group.\n */\n set tabIndex(value) {\n if (this.#_tabIndex !== value) {\n this.#_tabIndex = value;\n this.#updateRadioButtonTabIndexes();\n }\n }\n get tabIndex() {\n return this.#_tabIndex;\n }\n get isRequired() {\n return (this.required ||\n (this.ngControl?.control?.hasValidator(Validators.required) ?? false));\n }\n #controlValue;\n #defaultName;\n #ngUnsubscribe;\n #_disabled;\n #_name;\n #_tabIndex;\n #_ariaLabel;\n #_ariaLabelledBy;\n #_headingLevel;\n #_stacked;\n #changeDetector;\n #radioGroupIdSvc;\n #logger;\n #idService;\n constructor(changeDetector, radioGroupIdSvc, ngControl) {\n /**\n * Whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).\n * @default false\n */\n this.required = false;\n /**\n * Indicates whether to hide the `headingText`.\n */\n this.headingHidden = false;\n this.stackedLg = false;\n this.stackedXL = false;\n this.headingClass = 'sky-font-heading-4';\n this.#defaultName = `sky-radio-group-${nextUniqueId++}`;\n this.#ngUnsubscribe = new Subject();\n this.#_disabled = false;\n this.#_name = '';\n this.#_stacked = false;\n this.#logger = inject(SkyLogService);\n this.#idService = inject(SkyIdService);\n this.errorId = this.#idService.generateId();\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#onChange = () => { };\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.#onTouched = () => { };\n if (ngControl) {\n ngControl.valueAccessor = this;\n }\n this.#changeDetector = changeDetector;\n this.#radioGroupIdSvc = radioGroupIdSvc;\n this.ngControl = ngControl;\n this.name = this.#defaultName;\n this.#radioGroupIdSvc.radioIds\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((ids) => {\n this.ariaOwns = ids.join(' ') || undefined;\n this.#changeDetector.markForCheck();\n });\n }\n ngAfterContentInit() {\n // Let child radio components render before updating.\n setTimeout(() => {\n this.#resetRadioButtons();\n });\n // Watch for radio selections.\n this.watchForSelections();\n /* istanbul ignore else */\n if (this.radios) {\n this.radios.changes.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n // Wait for child radio components to finish any rendering updates.\n setTimeout(() => {\n this.#resetRadioButtons();\n });\n // Subscribe to the new radio buttons\n this.watchForSelections();\n });\n }\n }\n watchForSelections() {\n /* istanbul ignore else */\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.change\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.#onTouched();\n this.value = change.value;\n });\n radio.blur.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.#onTouched();\n this.#changeDetector.markForCheck();\n });\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n writeValue(value) {\n const isNewValue = value !== this.#controlValue;\n /* istanbul ignore else */\n if (isNewValue) {\n this.#controlValue = value;\n this.#updateCheckedRadioFromValue();\n }\n }\n /**\n * @internal\n * Whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n registerOnChange(fn) {\n this.#onChange = fn;\n }\n registerOnTouched(fn) {\n this.#onTouched = fn;\n }\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onChange;\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched;\n #updateRadioButtonDisabled() {\n if (this.radios) {\n this.radios.forEach((radio) => radio.setGroupDisabledState(this.disabled));\n }\n }\n #updateRadioButtonNames() {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n #updateRadioButtonTabIndexes() {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.groupTabIndex = this.tabIndex;\n });\n }\n }\n #updateCheckedRadioFromValue() {\n if (!this.radios) {\n return;\n }\n this.radios.forEach((radio) => {\n radio.checked = this.#controlValue === radio.value;\n });\n }\n #resetRadioButtons() {\n this.#updateCheckedRadioFromValue();\n this.#updateRadioButtonNames();\n this.#updateRadioButtonTabIndexes();\n this.#updateRadioButtonDisabled();\n }\n #updateStackedClasses() {\n this.stackedLg = !this.headingLevel && this.stacked;\n this.stackedXL = !!this.headingLevel && this.stacked;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyRadioGroupIdService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyRadioGroupComponent, isStandalone: false, selector: \"sky-radio-group\", inputs: { ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", disabled: [\"disabled\", \"disabled\", booleanAttribute], headingLevel: [\"headingLevel\", \"headingLevel\", numberAttribute], headingStyle: [\"headingStyle\", \"headingStyle\", numberAttribute4], name: \"name\", required: [\"required\", \"required\", booleanAttribute], stacked: [\"stacked\", \"stacked\", booleanAttribute], value: \"value\", tabIndex: \"tabIndex\", headingText: \"headingText\", headingHidden: [\"headingHidden\", \"headingHidden\", booleanAttribute], hintText: \"hintText\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", helpKey: \"helpKey\" }, host: { properties: { \"class.sky-form-field-stacked\": \"this.stackedLg\", \"class.sky-field-group-stacked\": \"this.stackedXL\" } }, providers: [\n SkyRadioGroupIdService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], queries: [{ propertyName: \"radios\", predicate: SkyRadioComponent, descendants: true }], hostDirectives: [{ directive: i3.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<fieldset\\n class=\\\"sky-radio-group\\\"\\n role=\\\"radiogroup\\\"\\n [attr.aria-label]=\\\"headingText ? undefined : ariaLabel\\\"\\n [attr.aria-labelledby]=\\\"headingText ? undefined : ariaLabelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-owns]=\\\"ariaOwns\\\"\\n [attr.aria-required]=\\\"isRequired ? true : null\\\"\\n [attr.required]=\\\"isRequired ? '' : null\\\"\\n [attr.aria-invalid]=\\\"!!ngControl?.errors\\\"\\n [attr.aria-errormessage]=\\\"\\n headingText && ngControl?.errors ? errorId : undefined\\n \\\"\\n>\\n @if (headingText) {\\n <legend\\n class=\\\"sky-radio-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >\\n @switch (headingLevel) {\\n @case (3) {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @case (5) {\\n <h5 [class]=\\\"headingClass\\\">{{ headingText }}</h5>\\n }\\n @default {\\n <span [class]=\\\"'sky-radio-group-heading-text ' + headingClass\\\">{{\\n headingText\\n }}</span>\\n }\\n }\\n </span>\\n @if (required) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_form_group_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n }\\n <div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-radio-group-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-radio-group-content\\\">\\n <ng-content />\\n </div>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n [labelText]=\\\"headingText\\\"\\n [touched]=\\\"ngControl?.touched\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\".sky-radio-group:not(.sky-theme-modern *){--sky-override-radio-group-content-space: 8px;--sky-override-radio-group-content-with-hint-text-space: 10px;--sky-override-radio-group-hint-text-space: 5px}.sky-radio-group:not(.sky-theme-modern *) .sky-radio-group-legend .sky-radio-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-radio-group .sky-radio-group-legend .sky-radio-group-heading-text{line-height:1.1}:host.sky-field-group-stacked,:host.sky-form-field-stacked{display:block}.sky-radio-group-legend h3,.sky-radio-group-legend h4,.sky-radio-group-legend h5{margin:0;display:inline-block}.sky-radio-group:has(.sky-radio-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-radio-group-hint-text)) .sky-radio-group-content{margin-top:var(--sky-override-radio-group-content-space, var(--sky-space-gap-form-s))}.sky-radio-group:has(.sky-radio-group-legend:not(.sky-screen-reader-only)) .sky-radio-group-hint-text{margin-top:var(--sky-override-radio-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-radio-group:has(.sky-radio-group-hint-text) .sky-radio-group-content{margin-top:var(--sky-override-radio-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: i5.SkyFormErrorsComponent, selector: \"sky-form-errors\", inputs: [\"errors\", \"labelText\", \"touched\", \"dirty\"] }, { kind: \"component\", type: i6.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"directive\", type: i7.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"directive\", type: i3.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"pipe\", type: i8.SkyLibResourcesPipe, name: \"skyLibResources\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-radio-group', providers: [\n SkyRadioGroupIdService,\n { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },\n ], hostDirectives: [SkyThemeComponentClassDirective], standalone: false, template: \"<fieldset\\n class=\\\"sky-radio-group\\\"\\n role=\\\"radiogroup\\\"\\n [attr.aria-label]=\\\"headingText ? undefined : ariaLabel\\\"\\n [attr.aria-labelledby]=\\\"headingText ? undefined : ariaLabelledBy\\\"\\n [attr.aria-describedby]=\\\"hintText ? hintTextEl.id : undefined\\\"\\n [attr.aria-owns]=\\\"ariaOwns\\\"\\n [attr.aria-required]=\\\"isRequired ? true : null\\\"\\n [attr.required]=\\\"isRequired ? '' : null\\\"\\n [attr.aria-invalid]=\\\"!!ngControl?.errors\\\"\\n [attr.aria-errormessage]=\\\"\\n headingText && ngControl?.errors ? errorId : undefined\\n \\\"\\n>\\n @if (headingText) {\\n <legend\\n class=\\\"sky-radio-group-legend\\\"\\n [ngClass]=\\\"{\\n 'sky-screen-reader-only': headingHidden\\n }\\\"\\n >\\n <span\\n [ngClass]=\\\"{\\n 'sky-control-label-required': required\\n }\\\"\\n >\\n @switch (headingLevel) {\\n @case (3) {\\n <h3 [class]=\\\"headingClass\\\">{{ headingText }}</h3>\\n }\\n @case (4) {\\n <h4 [class]=\\\"headingClass\\\">{{ headingText }}</h4>\\n }\\n @case (5) {\\n <h5 [class]=\\\"headingClass\\\">{{ headingText }}</h5>\\n }\\n @default {\\n <span [class]=\\\"'sky-radio-group-heading-text ' + headingClass\\\">{{\\n headingText\\n }}</span>\\n }\\n }\\n </span>\\n @if (required) {\\n <span class=\\\"sky-screen-reader-only\\\">{{\\n 'skyux_form_group_required' | skyLibResources\\n }}</span>\\n }\\n @if (helpPopoverContent || helpKey) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"headingText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n </span>\\n }\\n </legend>\\n }\\n <div #hintTextEl=\\\"skyId\\\" skyId>\\n @if (hintText) {\\n <div\\n class=\\\"sky-radio-group-hint-text\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-font-deemphasized': 'default',\\n 'sky-font-hint-text-s': 'modern'\\n }\\\"\\n >\\n {{ hintText }}\\n </div>\\n }\\n </div>\\n <div class=\\\"sky-radio-group-content\\\">\\n <ng-content />\\n </div>\\n</fieldset>\\n<sky-form-errors\\n [id]=\\\"errorId\\\"\\n [errors]=\\\"ngControl?.errors\\\"\\n [labelText]=\\\"headingText\\\"\\n [touched]=\\\"ngControl?.touched\\\"\\n [dirty]=\\\"ngControl?.dirty\\\"\\n>\\n <ng-content select=\\\"sky-form-error\\\" />\\n</sky-form-errors>\\n\", styles: [\".sky-radio-group:not(.sky-theme-modern *){--sky-override-radio-group-content-space: 8px;--sky-override-radio-group-content-with-hint-text-space: 10px;--sky-override-radio-group-hint-text-space: 5px}.sky-radio-group:not(.sky-theme-modern *) .sky-radio-group-legend .sky-radio-group-heading-text{line-height:1.1}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-radio-group .sky-radio-group-legend .sky-radio-group-heading-text{line-height:1.1}:host.sky-field-group-stacked,:host.sky-form-field-stacked{display:block}.sky-radio-group-legend h3,.sky-radio-group-legend h4,.sky-radio-group-legend h5{margin:0;display:inline-block}.sky-radio-group:has(.sky-radio-group-legend:not(.sky-screen-reader-only)):not(:has(.sky-radio-group-hint-text)) .sky-radio-group-content{margin-top:var(--sky-override-radio-group-content-space, var(--sky-space-gap-form-s))}.sky-radio-group:has(.sky-radio-group-legend:not(.sky-screen-reader-only)) .sky-radio-group-hint-text{margin-top:var(--sky-override-radio-group-hint-text-space, var(--sky-space-gap-stacked_supplemental-s))}.sky-radio-group:has(.sky-radio-group-hint-text) .sky-radio-group-content{margin-top:var(--sky-override-radio-group-content-with-hint-text-space, var(--sky-space-gap-form-l))}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRadioGroupIdService }, { type: i2.NgControl, decorators: [{\n type: Self\n }, {\n type: Optional\n }] }], propDecorators: { ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], headingLevel: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], headingStyle: [{\n type: Input,\n args: [{ transform: numberAttribute4 }]\n }], name: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stacked: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], headingText: [{\n type: Input\n }], headingHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hintText: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], helpKey: [{\n type: Input\n }], radios: [{\n type: ContentChildren,\n args: [SkyRadioComponent, { descendants: true }]\n }], stackedLg: [{\n type: HostBinding,\n args: ['class.sky-form-field-stacked']\n }], stackedXL: [{\n type: HostBinding,\n args: ['class.sky-field-group-stacked']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUVSLElBQUksRUFFSixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQUt0RCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFckIsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7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c0JBRGpCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFRQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsT0FBTztzQkFEYixLQUFLO2dCQWFDLE1BQU07c0JBRFosZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSWxELFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBSXBDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWVuYWJsZWQtdG9rZW4nO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIH0gZnJvbSAnLi9yYWRpby1ncm91cC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi90eXBlcy9yYWRpby1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreVJhZGlvR3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuZnVuY3Rpb24gbnVtYmVyQXR0cmlidXRlNCh2YWx1ZTogdW5rbm93bik6IG51bWJlciB7XG4gIHJldHVybiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDQpO1xufVxuXG4vKipcbiAqIE9yZ2FuaXplcyByYWRpbyBidXR0b25zIGludG8gYSBncm91cC4gSXQgaXMgcmVxdWlyZWQgZm9yIHJhZGlvXG4gKiBidXR0b25zIG9uIEFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMsIGFuZCB3ZSByZWNvbW1lbmQgdXNpbmcgaXQgd2l0aCBhbGwgcmFkaW8gYnV0dG9ucy5cbiAqIE9uIEFuZ3VsYXIgZm9ybXMsIHRoZSBjb21wb25lbnQgbWFuYWdlcyB0aGUgc2VsZWN0ZWQgdmFsdWVzIGFuZCBrZWVwcyB0aGUgZm9ybXMgdXAtdG8tZGF0ZS5cbiAqIFdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLCBpdHMgdmFsdWUgaXMgZHJpdmVuIHRocm91Z2ggYW4gYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQsIHVzZVZhbHVlOiB0cnVlIH0sXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZV0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0dyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHNcbiAgICogdGhlIHJhZGlvIGJ1dHRvbiBncm91cC4gVGhpcyBzZXRzIHRoZSByYWRpbyBidXR0b24gZ3JvdXAncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbGxlZGJ5KS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBoZWFkaW5nVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYUxhYmVsbGVkQnkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhTGFiZWxsZWRCeSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5UmFkaW9Hcm91cENvbXBvbmVudC5hcmlhTGFiZWxsZWRCeScsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19hcmlhTGFiZWxsZWRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIHJhZGlvIGJ1dHRvbiBncm91cC4gVGhpcyBzZXRzIHRoZVxuICAgKiByYWRpbyBidXR0b24gZ3JvdXAncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGxlZEJ5YCBpbnN0ZWFkLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBoZWFkaW5nVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYUxhYmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXJpYUxhYmVsID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0dyb3VwQ29tcG9uZW50LmFyaWFMYWJlbCcsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYUxhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgaW5wdXQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4jX2Rpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEJ5IGRlZmF1bHQsIHRoZSBoZWFkaW5nIHRleHQgaXMgbm90IHdyYXBwZWQgaW4gYSBoZWFkaW5nIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogU2t5UmFkaW9Hcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oZWFkaW5nTGV2ZWwgPSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0xldmVsKCk6IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaGVhZGluZ0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlNCB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdTdHlsZSh2YWx1ZTogU2t5UmFkaW9Hcm91cEhlYWRpbmdTdHlsZSkge1xuICAgIHRoaXMuaGVhZGluZ0NsYXNzID0gYHNreS1mb250LWhlYWRpbmctJHt2YWx1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zIHRoYXQgdGhlIGNvbXBvbmVudCBncm91cHMgdG9nZXRoZXIuXG4gICAqIFRoaXMgcHJvcGVydHkgb3ZlcndyaXRlcyB0aGUgZGVwcmVjYXRlZCBgbmFtZWAgcHJvcGVydHkgb24gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50cyxcbiAgICogYW5kIGl0IGlzIHJlcXVpcmVkIHVubGVzcyB0aGUgYG5hbWVgIHByb3BlcnR5IGlzIHNldCBvbiBpbmRpdmlkdWFsIGBza3ktcmFkaW9gIGVsZW1lbnRzLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHRoaXMuI2RlZmF1bHROYW1lO1xuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk7XG4gIH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIHJlcXVpcmVkIGZvciBmb3JtIHZhbGlkYXRpb24uXG4gICAqIFdoZW4geW91IHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYCwgdGhlIGNvbXBvbmVudCBhZGRzIGBhcmlhLXJlcXVpcmVkYCBhbmQgYHJlcXVpcmVkYFxuICAgKiBhdHRyaWJ1dGVzIHRvIHRoZSBpbnB1dCBlbGVtZW50IHNvIHRoYXQgZm9ybXMgZGlzcGxheSBhbiBpbnZhbGlkIHN0YXRlIHVudGlsIHRoZSBpbnB1dCBlbGVtZW50XG4gICAqIGlzIGNvbXBsZXRlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtcmVxdWlyZWRgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLXJlcXVpcmVkKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsXG4gICAqIHRoZSBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHN0YWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfc3RhY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gYnV0dG9uIHRvIHNlbGVjdCBieSBkZWZhdWx0IHdoZW4gdGhlIGdyb3VwIGxvYWRzLlxuICAgKiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGB2YWx1ZWAgcHJvcGVydHkgb2YgYW4gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50IHdpdGhpbiB0aGVcbiAgICogZ3JvdXAuXG4gICAqL1xuICAvLyBUT0RPOiBMb29rIGludG8gbW9yZSBzdHJvbmdseSB0eXBpbmcgaW4gYSBicmVha2luZyBjaGFuZ2VcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9IHZhbHVlICE9PSB0aGlzLiNjb250cm9sVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggZm9yIGFsbCB0aGUgcmFkaW8gYnV0dG9ucyBpbiB0aGUgZ3JvdXAuIElmIHRoZSBpbmRleCBpcyBub3QgZGVmaW5lZCxcbiAgICogdGhlIGluZGljZXMgZm9yIGluZGl2aWR1YWwgcmFkaW8gYnV0dG9ucyBhcmUgc2V0IHRvIHRoZWlyIHBvc2l0aW9ucyBvbiBsb2FkLlxuICAgKiBUaGlzIHByb3BlcnR5IHN1cHBvcnRzIGFjY2Vzc2liaWxpdHkgYnkgcGxhY2luZyBmb2N1cyBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgbm8gcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLCBpdCBwbGFjZXMgZm9jdXMgb24gdGhlIGZpcnN0IG9yIGxhc3QgYnV0dG9uXG4gICAqIGRlcGVuZGluZyBvbiBob3cgdXNlcnMgbmF2aWdhdGUgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLiNfdGFiSW5kZXggIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSByYWRpbyBncm91cCdzIGhlYWRpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGluZ1RleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlkZSB0aGUgYGhlYWRpbmdUZXh0YC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaGVhZGluZ0hpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgaGVhZGluZ1RleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gcmFkaW8gZ3JvdXAuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWFkaW5nVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBoZWFkaW5nVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSByYWRpbyBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWFkaW5nVGV4dGAgaXMgYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdXIgcmFkaW8gY29tcG9uZW50cyBhcmUgdXN1YWxseSBpbXBsZW1lbnRlZCB1c2luZyBhbiB1bm9yZGVyZWQgbGlzdC4gVGhpcyBpcyBhblxuICAgKiBhY2Nlc3NpYmlsaXR5IHZpb2xhdGlvbiBiZWNhdXNlIHRoZSB1bm9yZGVyZWQgbGlzdCBoYXMgYW4gaW1wbGljaXQgcm9sZSB3aGljaFxuICAgKiBpbnRlcnJ1cHRzIHRoZSAncmFkaW9ncm91cCcgYW5kICdyYWRpbycgcmVsYXRpb25zaGlwLiBUbyBjb3JyZWN0IHRoaXMsIHdlIGNhbiBzZXQgdGhlXG4gICAqIHJhZGlvIGdyb3VwJ3MgJ2FyaWEtb3ducycgYXR0cmlidXRlIHRvIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgcmFkaW8gSURzLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtb3duc2AgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtb3ducyksIGFuZCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYHJhZGlvYCByb2xlLCBzZWUgW2l0cyBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI3JhZGlvKS5cbiAgICovXG4gIHB1YmxpYyBhcmlhT3duczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5UmFkaW9Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIHJhZGlvczogUXVlcnlMaXN0PFNreVJhZGlvQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1mb3JtLWZpZWxkLXN0YWNrZWQnKVxuICBwdWJsaWMgc3RhY2tlZExnID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktZmllbGQtZ3JvdXAtc3RhY2tlZCcpXG4gIHB1YmxpYyBzdGFja2VkWEwgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZ2V0IGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVxdWlyZWQgfHxcbiAgICAgICh0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpID8/IGZhbHNlKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGVhZGluZ0NsYXNzID0gJ3NreS1mb250LWhlYWRpbmctNCc7XG5cbiAgI2NvbnRyb2xWYWx1ZTogYW55O1xuXG4gICNkZWZhdWx0TmFtZSA9IGBza3ktcmFkaW8tZ3JvdXAtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19uYW1lID0gJyc7XG5cbiAgI190YWJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNfYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19hcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNfaGVhZGluZ0xldmVsOiBTa3lSYWRpb0dyb3VwSGVhZGluZ0xldmVsIHwgdW5kZWZpbmVkO1xuXG4gICNfc3RhY2tlZCA9IGZhbHNlO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNyYWRpb0dyb3VwSWRTdmM6IFNreVJhZGlvR3JvdXBJZFNlcnZpY2U7XG5cbiAgcmVhZG9ubHkgI2xvZ2dlciA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lkU2VydmljZSA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBlcnJvcklkID0gdGhpcy4jaWRTZXJ2aWNlLmdlbmVyYXRlSWQoKTtcbiAgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICByYWRpb0dyb3VwSWRTdmM6IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2YyA9IHJhZGlvR3JvdXBJZFN2YztcbiAgICB0aGlzLm5nQ29udHJvbCA9IG5nQ29udHJvbDtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLiNkZWZhdWx0TmFtZTtcblxuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2Yy5yYWRpb0lkc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaWRzKSA9PiB7XG4gICAgICAgIHRoaXMuYXJpYU93bnMgPSBpZHMuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gTGV0IGNoaWxkIHJhZGlvIGNvbXBvbmVudHMgcmVuZGVyIGJlZm9yZSB1cGRhdGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI3Jlc2V0UmFkaW9CdXR0b25zKCk7XG4gICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3IgcmFkaW8gc2VsZWN0aW9ucy5cbiAgICB0aGlzLndhdGNoRm9yU2VsZWN0aW9ucygpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFdhaXQgZm9yIGNoaWxkIHJhZGlvIGNvbXBvbmVudHMgdG8gZmluaXNoIGFueSByZW5kZXJpbmcgdXBkYXRlcy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcmVzZXRSYWRpb0J1dHRvbnMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBuZXcgcmFkaW8gYnV0dG9uc1xuICAgICAgICB0aGlzLndhdGNoRm9yU2VsZWN0aW9ucygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdhdGNoRm9yU2VsZWN0aW9ucygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uY2hhbmdlXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZTogU2t5UmFkaW9DaGFuZ2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNoYW5nZS52YWx1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmFkaW8uYmx1ci5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBpc05ld1ZhbHVlID0gdmFsdWUgIT09IHRoaXMuI2NvbnRyb2xWYWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGlzTmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2xWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy4jdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcblxuICAjdXBkYXRlUmFkaW9CdXR0b25EaXNhYmxlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PlxuICAgICAgICByYWRpby5zZXRHcm91cERpc2FibGVkU3RhdGUodGhpcy5kaXNhYmxlZCksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICByYWRpby5ncm91cFRhYkluZGV4ID0gdGhpcy50YWJJbmRleDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJhZGlvcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICByYWRpby5jaGVja2VkID0gdGhpcy4jY29udHJvbFZhbHVlID09PSByYWRpby52YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gICNyZXNldFJhZGlvQnV0dG9ucygpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25EaXNhYmxlZCgpO1xuICB9XG5cbiAgI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhY2tlZExnID0gIXRoaXMuaGVhZGluZ0xldmVsICYmIHRoaXMuc3RhY2tlZDtcbiAgICB0aGlzLnN0YWNrZWRYTCA9ICEhdGhpcy5oZWFkaW5nTGV2ZWwgJiYgdGhpcy5zdGFja2VkO1xuICB9XG59XG4iLCI8ZmllbGRzZXRcbiAgY2xhc3M9XCJza3ktcmFkaW8tZ3JvdXBcIlxuICByb2xlPVwicmFkaW9ncm91cFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiaGVhZGluZ1RleHQgPyB1bmRlZmluZWQgOiBhcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaGVhZGluZ1RleHQgPyB1bmRlZmluZWQgOiBhcmlhTGFiZWxsZWRCeVwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludFRleHQgPyBoaW50VGV4dEVsLmlkIDogdW5kZWZpbmVkXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cImFyaWFPd25zXCJcbiAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJpc1JlcXVpcmVkID8gdHJ1ZSA6IG51bGxcIlxuICBbYXR0ci5yZXF1aXJlZF09XCJpc1JlcXVpcmVkID8gJycgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhbmdDb250cm9sPy5lcnJvcnNcIlxuICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICBoZWFkaW5nVGV4dCAmJiBuZ0NvbnRyb2w/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgXCJcbj5cbiAgQGlmIChoZWFkaW5nVGV4dCkge1xuICAgIDxsZWdlbmRcbiAgICAgIGNsYXNzPVwic2t5LXJhZGlvLWdyb3VwLWxlZ2VuZFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlblxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICBAc3dpdGNoIChoZWFkaW5nTGV2ZWwpIHtcbiAgICAgICAgICBAY2FzZSAoMykge1xuICAgICAgICAgICAgPGgzIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj57eyBoZWFkaW5nVGV4dCB9fTwvaDM+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICg0KSB7XG4gICAgICAgICAgICA8aDQgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPnt7IGhlYWRpbmdUZXh0IH19PC9oND5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKDUpIHtcbiAgICAgICAgICAgIDxoNSBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+e3sgaGVhZGluZ1RleHQgfX08L2g1PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3NreS1yYWRpby1ncm91cC1oZWFkaW5nLXRleHQgJyArIGhlYWRpbmdDbGFzc1wiPnt7XG4gICAgICAgICAgICAgIGhlYWRpbmdUZXh0XG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAnc2t5dXhfZm9ybV9ncm91cF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2xlZ2VuZD5cbiAgfVxuICA8ZGl2ICNoaW50VGV4dEVsPVwic2t5SWRcIiBza3lJZD5cbiAgICBAaWYgKGhpbnRUZXh0KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LXJhZGlvLWdyb3VwLWhpbnQtdGV4dFwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWZvbnQtZGVlbXBoYXNpemVkJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktZm9udC1oaW50LXRleHQtcyc6ICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBoaW50VGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNreS1yYWRpby1ncm91cC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9kaXY+XG48L2ZpZWxkc2V0PlxuPHNreS1mb3JtLWVycm9yc1xuICBbaWRdPVwiZXJyb3JJZFwiXG4gIFtlcnJvcnNdPVwibmdDb250cm9sPy5lcnJvcnNcIlxuICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgW3RvdWNoZWRdPVwibmdDb250cm9sPy50b3VjaGVkXCJcbiAgW2RpcnR5XT1cIm5nQ29udHJvbD8uZGlydHlcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZm9ybS1lcnJvclwiIC8+XG48L3NreS1mb3JtLWVycm9ycz5cbiJdfQ==","import { Component, HostListener, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies a label for the radio button. To display a help button beside the label, include a help button element,\n * such as `sky-help-inline`, in the `sky-radio-label` element and a `sky-control-help` CSS class on that help button\n * element.\n * @deprecated Use `labelText` input on `sky-radio-component` instead.\n */\nexport class SkyRadioLabelComponent {\n // When clicking on a checkbox label, Angular registers two click events.\n // This handler ignores all events except for those that deal\n // with the checkbox input explicitly.\n onClick(event) {\n event.stopPropagation();\n }\n constructor() {\n inject(SkyLogService).deprecated('SkyToggleSwitchLabelComponent', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'To add a label to radio button, use the `labelText` input on the radio button component instead.',\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyRadioLabelComponent, isStandalone: false, selector: \"sky-radio-label\", host: { listeners: { \"click\": \"onClick($event)\" } }, 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]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-radio-label', standalone: false, 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\" }]\n }], ctorParameters: () => [], propDecorators: { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFNUM7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLHlFQUF5RTtJQUN6RSw2REFBNkQ7SUFDN0Qsc0NBQXNDO0lBRS9CLE9BQU8sQ0FBQyxLQUFpQjtRQUM5QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEO1FBQ0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSx1QkFBdUIsRUFBRSxFQUFFO1lBQzNCLHlCQUF5QixFQUN2QixrR0FBa0c7U0FDckcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FmVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpSUNkbkMsNExBS0E7OzJGRFNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FFZixLQUFLO3dEQU9WLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBhIGxhYmVsIGZvciB0aGUgcmFkaW8gYnV0dG9uLiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBsYWJlbCwgaW5jbHVkZSBhIGhlbHAgYnV0dG9uIGVsZW1lbnQsXG4gKiBzdWNoIGFzIGBza3ktaGVscC1pbmxpbmVgLCBpbiB0aGUgYHNreS1yYWRpby1sYWJlbGAgZWxlbWVudCBhbmQgYSBgc2t5LWNvbnRyb2wtaGVscGAgQ1NTIGNsYXNzIG9uIHRoYXQgaGVscCBidXR0b25cbiAqIGVsZW1lbnQuXG4gKiBAZGVwcmVjYXRlZCBVc2UgYGxhYmVsVGV4dGAgaW5wdXQgb24gYHNreS1yYWRpby1jb21wb25lbnRgIGluc3RlYWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1yYWRpby1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0xhYmVsQ29tcG9uZW50IHtcbiAgLy8gV2hlbiBjbGlja2luZyBvbiBhIGNoZWNrYm94IGxhYmVsLCBBbmd1bGFyIHJlZ2lzdGVycyB0d28gY2xpY2sgZXZlbnRzLlxuICAvLyBUaGlzIGhhbmRsZXIgaWdub3JlcyBhbGwgZXZlbnRzIGV4Y2VwdCBmb3IgdGhvc2UgdGhhdCBkZWFsXG4gIC8vIHdpdGggdGhlIGNoZWNrYm94IGlucHV0IGV4cGxpY2l0bHkuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGluamVjdChTa3lMb2dTZXJ2aWNlKS5kZXByZWNhdGVkKCdTa3lUb2dnbGVTd2l0Y2hMYWJlbENvbXBvbmVudCcsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246XG4gICAgICAgICdUbyBhZGQgYSBsYWJlbCB0byByYWRpbyBidXR0b24sIHVzZSB0aGUgYGxhYmVsVGV4dGAgaW5wdXQgb24gdGhlIHJhZGlvIGJ1dHRvbiBjb21wb25lbnQgaW5zdGVhZC4nLFxuICAgIH0pO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInNreS1zd2l0Y2gtbGFiZWxcIlxuICA+PHNwYW4gc2t5VHJpbT48bmctY29udGVudCAvPjwvc3BhblxuICA+PHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiXG4gICAgPjxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktY29udHJvbC1oZWxwXCIgLz48L3NwYW5cbj48L3NwYW4+XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { SkyFormErrorModule } from '../form-error/form-error.module';\nimport { SkyFormErrorsModule } from '../form-error/form-errors.module';\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\nimport { SkyRadioGroupComponent } from './radio-group.component';\nimport { SkyRadioLabelComponent } from './radio-label.component';\nimport { SkyRadioComponent } from './radio.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyRadioModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioModule, declarations: [SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent], imports: [CommonModule,\n FormsModule,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyFormsResourcesModule,\n SkyTrimModule,\n SkyThemeModule], exports: [SkyFormErrorModule,\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioModule, imports: [CommonModule,\n FormsModule,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyFormsResourcesModule,\n SkyTrimModule,\n SkyThemeModule, SkyFormErrorModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRadioModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyFormErrorModule,\n SkyFormErrorsModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyFormsResourcesModule,\n SkyTrimModule,\n SkyThemeModule,\n ],\n exports: [\n SkyFormErrorModule,\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUEyQnRELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkF2QnZCLGlCQUFpQjtZQUNqQixzQkFBc0I7WUFDdEIsc0JBQXNCLGFBR3RCLFlBQVk7WUFDWixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLFdBQVc7WUFDWCx1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGNBQWMsYUFHZCxrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLHNCQUFzQjtZQUN0QixzQkFBc0I7K0dBR2IsY0FBYyxZQWxCdkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsV0FBVztZQUNYLHVCQUF1QjtZQUN2QixhQUFhO1lBQ2IsY0FBYyxFQUdkLGtCQUFrQjs7MkZBTVQsY0FBYztrQkF6QjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixXQUFXO3dCQUNYLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lUcmltTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZSc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IubW9kdWxlJztcbmltcG9ydCB7IFNreUZvcm1FcnJvcnNNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktZm9ybXMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreVJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSYWRpb0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmFkaW9Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVJhZGlvQ29tcG9uZW50LFxuICAgIFNreVJhZGlvR3JvdXBDb21wb25lbnQsXG4gICAgU2t5UmFkaW9MYWJlbENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JNb2R1bGUsXG4gICAgU2t5Rm9ybUVycm9yc01vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5VHJpbU1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUZvcm1FcnJvck1vZHVsZSxcbiAgICBTa3lSYWRpb0NvbXBvbmVudCxcbiAgICBTa3lSYWRpb0dyb3VwQ29tcG9uZW50LFxuICAgIFNreVJhZGlvTGFiZWxDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvTW9kdWxlIHt9XG4iXX0=","import { Directive, Input, booleanAttribute, inject } from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\n/**\n * A host directive used to capture the \"required\" state of the host's form control.\n * @internal\n */\nexport class SkyRequiredStateDirective {\n constructor() {\n this.required = false;\n this.#ngControl = inject(NgControl, { optional: true, self: true });\n }\n /**\n * Whether the `required` attribute is set to `true`, or the control includes\n * the `Validators.required` validator.\n */\n isRequired() {\n return (this.required ||\n !!this.#ngControl?.control?.hasValidator(Validators.required));\n }\n #ngControl;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRequiredStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"20.0.5\", type: SkyRequiredStateDirective, isStandalone: true, inputs: { required: [\"required\", \"required\", booleanAttribute] }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyRequiredStateDirective, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n }]\n }], propDecorators: { required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtc3RhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yZXF1aXJlZC1zdGF0ZS9yZXF1aXJlZC1zdGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXZEOzs7R0FHRztBQUlILE1BQU0sT0FBTyx5QkFBeUI7SUFIdEM7UUFLUyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBYWYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3pFO0lBWkM7OztPQUdHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVRLFVBQVUsQ0FBcUQ7OEdBZjdELHlCQUF5QjtrR0FBekIseUJBQXlCLG1FQUNoQixnQkFBZ0I7OzJGQUR6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUdRLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEEgaG9zdCBkaXJlY3RpdmUgdXNlZCB0byBjYXB0dXJlIHRoZSBcInJlcXVpcmVkXCIgc3RhdGUgb2YgdGhlIGhvc3QncyBmb3JtIGNvbnRyb2wuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlcXVpcmVkU3RhdGVEaXJlY3RpdmUge1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGByZXF1aXJlZGAgYXR0cmlidXRlIGlzIHNldCB0byBgdHJ1ZWAsIG9yIHRoZSBjb250cm9sIGluY2x1ZGVzXG4gICAqIHRoZSBgVmFsaWRhdG9ycy5yZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKi9cbiAgcHVibGljIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVxdWlyZWQgfHxcbiAgICAgICEhdGhpcy4jbmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICApO1xuICB9XG5cbiAgcmVhZG9ubHkgI25nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG59XG4iXX0=","import { Injectable, } from '@angular/core';\nimport { SkyMediaBreakpoints } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nconst RESPONSIVE_CLASS_XS = 'sky-selection-box-container-xs';\nconst RESPONSIVE_CLASS_SM = 'sky-selection-box-container-sm';\nconst RESPONSIVE_CLASS_MD = 'sky-selection-box-container-md';\nconst RESPONSIVE_CLASS_LG = 'sky-selection-box-container-lg';\nconst BREAKPOINT_XS_MAX_PIXELS = 767;\nconst BREAKPOINT_SM_MIN_PIXELS = 768;\nconst BREAKPOINT_SM_MAX_PIXELS = 991;\nconst BREAKPOINT_MD_MIN_PIXELS = 992;\nconst BREAKPOINT_MD_MAX_PIXELS = 1439;\n/**\n * @internal\n */\nexport class SkySelectionBoxAdapterService {\n #coreAdapterService;\n #renderer;\n constructor(coreAdapterService, rendererFactory) {\n this.#coreAdapterService = coreAdapterService;\n this.#renderer = rendererFactory.createRenderer(undefined, null);\n }\n /**\n * Sets focus on the specified element.\n */\n focus(el) {\n el.nativeElement.focus();\n }\n /**\n * Returns a child element with the `.sky-switch` class.\n * Useful for getting SKY UX-themed radio buttons or checkboxes.\n */\n getControl(el) {\n return el.nativeElement.querySelector('.sky-switch');\n }\n /**\n * Returns a breakpoint based on the width.\n * @param width Width of the element in pixels.\n */\n getBreakpointForWidth(width) {\n if (!width) {\n return SkyMediaBreakpoints.lg;\n }\n if (width <= BREAKPOINT_XS_MAX_PIXELS) {\n return SkyMediaBreakpoints.xs;\n }\n else if (width >= BREAKPOINT_SM_MIN_PIXELS &&\n width <= BREAKPOINT_SM_MAX_PIXELS) {\n return SkyMediaBreakpoints.sm;\n }\n else if (width >= BREAKPOINT_MD_MIN_PIXELS &&\n width <= BREAKPOINT_MD_MAX_PIXELS) {\n return SkyMediaBreakpoints.md;\n }\n else {\n return SkyMediaBreakpoints.lg;\n }\n }\n /**\n * Returns the width of the `parentNode` of the provided `element`.\n */\n getParentWidth(element) {\n return element.nativeElement?.parentElement?.getBoundingClientRect()?.width;\n }\n /**\n * Returns `true` if the `childEl` is a descendant of the `parentEl`.\n */\n isDescendant(parentEl, childEl) {\n return parentEl.nativeElement.contains(childEl);\n }\n /**\n * Sets the `tabIndex` of all focusable children of the `element` to the provided `tabIndex`.\n */\n setChildrenTabIndex(element, tabIndex) {\n const el = element.nativeElement;\n const focusableEls = this.#coreAdapterService.getFocusableChildren(el, {\n ignoreVisibility: true,\n });\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n /**\n * Adds a responsive CSS class on the provided element based on its current width.\n */\n setResponsiveClass(element, breakpoint) {\n const nativeEl = element.nativeElement;\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_XS);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_SM);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_MD);\n this.#renderer.removeClass(nativeEl, RESPONSIVE_CLASS_LG);\n let newClass;\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = RESPONSIVE_CLASS_XS;\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = RESPONSIVE_CLASS_SM;\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = RESPONSIVE_CLASS_MD;\n break;\n }\n case SkyMediaBreakpoints.lg: {\n newClass = RESPONSIVE_CLASS_LG;\n break;\n }\n }\n this.#renderer.addClass(nativeEl, newClass);\n }\n /**\n * Sets the `tabIndex` of the `element` to the provided `tabIndex`.\n */\n setTabIndex(element, tabIndex) {\n const el = element.nativeElement;\n el.tabIndex = tabIndex;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxAdapterService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxAdapterService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFekUsTUFBTSxtQkFBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RCxNQUFNLG1CQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQzdELE1BQU0sbUJBQW1CLEdBQUcsZ0NBQWdDLENBQUM7QUFDN0QsTUFBTSxtQkFBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUU3RCxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQztBQUV0Qzs7R0FFRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsbUJBQW1CLENBQXdCO0lBQzNDLFNBQVMsQ0FBWTtJQUVyQixZQUNFLGtCQUF5QyxFQUN6QyxlQUFpQztRQUVqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsRUFBYztRQUN6QixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFD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QUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFtQixFQUFFLFFBQWdCO1FBQ3RELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFFakMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsQ0FBQzs4R0FoSVUsNkJBQTZCO2tIQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLCBTa3lNZWRpYUJyZWFrcG9pbnRzIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX1hTID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci14cyc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX1NNID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1zbSc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX01EID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1tZCc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX0xHID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1sZyc7XG5cbmNvbnN0IEJSRUFLUE9JTlRfWFNfTUFYX1BJWEVMUyA9IDc2NztcbmNvbnN0IEJSRUFLUE9JTlRfU01fTUlOX1BJWEVMUyA9IDc2ODtcbmNvbnN0IEJSRUFLUE9JTlRfU01fTUFYX1BJWEVMUyA9IDk5MTtcbmNvbnN0IEJSRUFLUE9JTlRfTURfTUlOX1BJWEVMUyA9IDk5MjtcbmNvbnN0IEJSRUFLUE9JTlRfTURfTUFYX1BJWEVMUyA9IDE0Mzk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hBZGFwdGVyU2VydmljZSB7XG4gICNjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UgPSBjb3JlQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBzcGVjaWZpZWQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cyhlbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIGVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgZWxlbWVudCB3aXRoIHRoZSBgLnNreS1zd2l0Y2hgIGNsYXNzLlxuICAgKiBVc2VmdWwgZm9yIGdldHRpbmcgU0tZIFVYLXRoZW1lZCByYWRpbyBidXR0b25zIG9yIGNoZWNrYm94ZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udHJvbChlbDogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LXN3aXRjaCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBicmVha3BvaW50IGJhc2VkIG9uIHRoZSB3aWR0aC5cbiAgICogQHBhcmFtIHdpZHRoIFdpZHRoIG9mIHRoZSBlbGVtZW50IGluIHBpeGVscy5cbiAgICovXG4gIHB1YmxpYyBnZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCk6IFNreU1lZGlhQnJlYWtwb2ludHMge1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybiBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnO1xuICAgIH1cblxuICAgIGlmICh3aWR0aCA8PSBCUkVBS1BPSU5UX1hTX01BWF9QSVhFTFMpIHtcbiAgICAgIHJldHVybiBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB3aWR0aCA+PSBCUkVBS1BPSU5UX1NNX01JTl9QSVhFTFMgJiZcbiAgICAgIHdpZHRoIDw9IEJSRUFLUE9JTlRfU01fTUFYX1BJWEVMU1xuICAgICkge1xuICAgICAgcmV0dXJuIFNreU1lZGlhQnJlYWtwb2ludHMuc207XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHdpZHRoID49IEJSRUFLUE9JTlRfTURfTUlOX1BJWEVMUyAmJlxuICAgICAgd2lkdGggPD0gQlJFQUtQT0lOVF9NRF9NQVhfUElYRUxTXG4gICAgKSB7XG4gICAgICByZXR1cm4gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFNreU1lZGlhQnJlYWtwb2ludHMubGc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSBgcGFyZW50Tm9kZWAgb2YgdGhlIHByb3ZpZGVkIGBlbGVtZW50YC5cbiAgICovXG4gIHB1YmxpYyBnZXRQYXJlbnRXaWR0aChlbGVtZW50OiBFbGVtZW50UmVmKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG4gICAgKT8ucGFyZW50RWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LndpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBgY2hpbGRFbGAgaXMgYSBkZXNjZW5kYW50IG9mIHRoZSBgcGFyZW50RWxgLlxuICAgKi9cbiAgcHVibGljIGlzRGVzY2VuZGFudChwYXJlbnRFbDogRWxlbWVudFJlZiwgY2hpbGRFbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFyZW50RWwubmF0aXZlRWxlbWVudC5jb250YWlucyhjaGlsZEVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgdGFiSW5kZXhgIG9mIGFsbCBmb2N1c2FibGUgY2hpbGRyZW4gb2YgdGhlIGBlbGVtZW50YCB0byB0aGUgcHJvdmlkZWQgYHRhYkluZGV4YC5cbiAgICovXG4gIHB1YmxpYyBzZXRDaGlsZHJlblRhYkluZGV4KGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBmb2N1c2FibGVFbHMgPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWwsIHtcbiAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWUsXG4gICAgfSk7XG4gICAgbGV0IGluZGV4ID0gZm9jdXNhYmxlRWxzLmxlbmd0aDtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgZm9jdXNhYmxlRWxzW2luZGV4XS50YWJJbmRleCA9IHRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzcG9uc2l2ZSBDU1MgY2xhc3Mgb24gdGhlIHByb3ZpZGVkIGVsZW1lbnQgYmFzZWQgb24gaXRzIGN1cnJlbnQgd2lkdGguXG4gICAqL1xuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNsYXNzKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWw6IEhUTUxFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsIFJFU1BPTlNJVkVfQ0xBU1NfWFMpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCBSRVNQT05TSVZFX0NMQVNTX1NNKTtcbiAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgUkVTUE9OU0lWRV9DTEFTU19NRCk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsIFJFU1BPTlNJVkVfQ0xBU1NfTEcpO1xuXG4gICAgbGV0IG5ld0NsYXNzOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy54czoge1xuICAgICAgICBuZXdDbGFzcyA9IFJFU1BPTlNJVkVfQ0xBU1NfWFM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gUkVTUE9OU0lWRV9DTEFTU19TTTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSBSRVNQT05TSVZFX0NMQVNTX01EO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5sZzoge1xuICAgICAgICBuZXdDbGFzcyA9IFJFU1BPTlNJVkVfQ0xBU1NfTEc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKG5hdGl2ZUVsLCBuZXdDbGFzcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhYkluZGV4YCBvZiB0aGUgYGVsZW1lbnRgIHRvIHRoZSBwcm92aWRlZCBgdGFiSW5kZXhgLlxuICAgKi9cbiAgcHVibGljIHNldFRhYkluZGV4KGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIGVsLnRhYkluZGV4ID0gdGFiSW5kZXg7XG4gIH1cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies the description to display in a selection box.\n */\nexport class SkySelectionBoxDescriptionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkySelectionBoxDescriptionComponent, isStandalone: false, selector: \"sky-selection-box-description\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxDescriptionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-selection-box-description', standalone: false, template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7R0FFRztBQU1ILE1BQU0sT0FBTyxtQ0FBbUM7OEdBQW5DLG1DQUFtQztrR0FBbkMsbUNBQW1DLDBGQ1ZoRCxrQkFDQTs7MkZEU2EsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNFLCtCQUErQixjQUU3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkZXNjcmlwdGlvbiB0byBkaXNwbGF5IGluIGEgc2VsZWN0aW9uIGJveC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXNlbGVjdGlvbi1ib3gtZGVzY3JpcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hEZXNjcmlwdGlvbkNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./selection-box-adapter.service\";\nimport * as i2 from \"@angular/common\";\n/**\n * Creates a button to present users with a choice or question before proceeding with a one-time process.\n */\nexport class SkySelectionBoxComponent {\n /**\n * The radio button or checkbox to display in the selection box.\n * @required\n */\n set control(value) {\n this.#_control = value;\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#ngUnsubscribe = new Subject();\n if (value) {\n this.#updateCheckedOnControlChange();\n this.#updateDisabledState();\n }\n }\n get control() {\n return this.#_control;\n }\n set checked(value) {\n this.#_checked = value;\n this.#changeDetector.markForCheck();\n }\n get checked() {\n return this.#_checked;\n }\n set disabled(value) {\n if (this.selectionBoxEl) {\n this.#selectionBoxAdapterService.setTabIndex(this.selectionBoxEl, value ? -1 : 0);\n }\n this.#_disabled = value;\n this.#changeDetector.markForCheck();\n }\n get disabled() {\n return this.#_disabled;\n }\n set selectionBoxEl(value) {\n this.#_selectionBoxEl = value;\n if (value) {\n this.#selectionBoxAdapterService.setTabIndex(value, this.disabled ? -1 : 0);\n // Wait for child elements to render before overriding tabIndex values.\n // TODO: This logic is brittle since the checkbox/radio can set its own tab index\n // value at any time. We need a way to enforce the tab index for the entire lifespan of the component.\n setTimeout(() => {\n this.#selectionBoxAdapterService.setChildrenTabIndex(value, -1);\n });\n }\n }\n get selectionBoxEl() {\n return this.#_selectionBoxEl;\n }\n #ngUnsubscribe = new Subject();\n #_checked = false;\n #_control;\n #_disabled = false;\n #_selectionBoxEl;\n #changeDetector;\n #selectionBoxAdapterService;\n constructor(changeDetector, selectionBoxAdapterService) {\n this.#changeDetector = changeDetector;\n this.#selectionBoxAdapterService = selectionBoxAdapterService;\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n onKeydown(event) {\n /* istanbul ignore else */\n if (event.key === ' ') {\n this.#selectControl();\n event.preventDefault();\n }\n }\n #selectControl() {\n if (this.controlEl) {\n this.#selectionBoxAdapterService.getControl(this.controlEl).click();\n }\n if (this.selectionBoxEl) {\n this.#selectionBoxAdapterService.focus(this.selectionBoxEl);\n }\n }\n #updateCheckedOnControlChange() {\n /* istanbul ignore else */\n if (this.control) {\n this.control.checkedChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.checked = value;\n });\n }\n }\n #updateDisabledState() {\n /* istanbul ignore else */\n if (this.control) {\n this.control.disabledChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value) => {\n this.disabled = value;\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkySelectionBoxAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkySelectionBoxComponent, isStandalone: false, selector: \"sky-selection-box\", inputs: { control: \"control\" }, viewQueries: [{ propertyName: \"controlEl\", first: true, predicate: [\"control\"], descendants: true, read: ElementRef }, { propertyName: \"selectionBoxEl\", first: true, predicate: [\"selectionBox\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"<label\\n #selectionBox\\n class=\\\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\\\"\\n [attr.disabled]=\\\"disabled ? true : null\\\"\\n [ngClass]=\\\"{\\n 'sky-selection-box-selected': checked,\\n 'sky-selection-box-disabled': disabled\\n }\\\"\\n (keydown)=\\\"onKeydown($event)\\\"\\n>\\n <div\\n #icon\\n class=\\\"sky-selection-box-icon\\\"\\n [ngClass]=\\\"{\\n 'sky-selection-box-icon-hidden': !icon.innerHTML.trim()\\n }\\\"\\n >\\n <ng-content select=\\\"sky-icon\\\" />\\n </div>\\n\\n <div class=\\\"sky-selection-box-content\\\">\\n <div class=\\\"sky-selection-box-header sky-font-display-2\\\">\\n <ng-content select=\\\"sky-selection-box-header\\\" />\\n </div>\\n <div class=\\\"sky-selection-box-description sky-font-deemphasized\\\">\\n <ng-content select=\\\"sky-selection-box-description\\\" />\\n </div>\\n </div>\\n\\n <div #control class=\\\"sky-selection-box-control\\\">\\n <ng-content select=\\\"sky-radio\\\" />\\n <ng-content select=\\\"sky-checkbox\\\" />\\n </div>\\n</label>\\n\", styles: [\".sky-selection-box:not(.sky-theme-modern *){--sky-override-selection-box-background-hover: #ffffff;--sky-override-selection-box-background-selected: #f1eef6;--sky-override-selection-box-box-shadow: 0 0 5px 0 rgba(0, 0, 0, .3);--sky-override-selection-box-box-shadow-hover: 0px 0px 5px 0 rgba(0, 0, 0, .3), inset 0 0 0 1px #00b4f1;--sky-override-selection-box-box-shadow-selected: 0 0 5px 0 rgba(0, 0, 0, .3);--sky-override-selection-box-content-margin-right: 10px;--sky-override-selection-box-control-padding-top: 5px;--sky-override-selection-box-description-margin-top: 0;--sky-override-selection-box-header-padding-top: 3px;--sky-override-selection-box-icon-background: transparent;--sky-override-selection-box-icon-border-radius: 0;--sky-override-selection-box-icon-color: #0974a1;--sky-override-selection-box-icon-margin: 10px;--sky-override-selection-box-icon-size: 42px;--sky-override-selection-box-padding: 15px 15px 15px 15px;--sky-override-selection-box-switch-border-hover: solid 1px #00b4f1;--sky-override-selection-box-switch-control-outline-hover: auto;--sky-override-selection-box-switch-control-box-shadow-focus: none;--sky-override-selection-box-switch-control-border-focus: 1px solid #cdcfd2;--sky-override-selection-box-background-color-disabled: #eeeeef;--sky-override-selection-box-icon-color-disabled: #686c73;--sky-override-selection-box-icon-background-color-disabled: transparent;--sky-override-selection-box-header-color-disabled: var( --sky-text-color-default )}.sky-theme-modern:not(.sky-theme-brand-base) .sky-selection-box{--sky-override-selection-box-box-shadow: var(--sky-elevation-raised-100);--sky-override-selection-box-box-shadow-hover: var(--sky-elevation-raised-100), inset 0 0 0 1px #1870B8;--sky-override-selection-box-box-shadow-selected: inset 0 0 0 2px #1870b8, 0px 1px 8px 0px rgba(0, 0, 0, .3), inset 6px 0 0 0 #0974a1;--sky-override-selection-box-control-padding-top: 5px;--sky-override-selection-box-description-margin-top: 3px;--sky-override-selection-box-header-padding-top: 3px;--sky-override-selection-box-header-color-disabled: var( --sky-color-text-default )}.sky-selection-box{display:flex;flex-flow:row nowrap;text-align:left}.sky-selection-box.sky-btn-default{padding:var(--sky-override-selection-box-padding, var(--sky-comp-selection_box-expanded-space-inset-top) var(--sky-comp-selection_box-expanded-space-inset-right) var(--sky-comp-selection_box-expanded-space-inset-bottom) var(--sky-comp-selection_box-expanded-space-inset-left))}.sky-selection-box.sky-btn-default:not(.sky-selection-box-disabled){box-shadow:var(--sky-override-selection-box-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-secondary-base))}.sky-selection-box.sky-btn-default:hover{background:var(--sky-override-selection-box-background-hover, var(--sky-color-background-action-secondary-hover));box-shadow:var(--sky-override-selection-box-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-secondary-hover))}.sky-selection-box.sky-btn-default:hover .sky-switch-control{border:var(--sky-override-selection-box-switch-border-hover, solid var(--sky-border-width-action-hover) var(--sky-color-border-action-secondary-hover))}.sky-selection-box.sky-btn-default:focus-visible .sky-switch-control{outline:var(--sky-override-selection-box-switch-control-outline-hover, none);border:var(--sky-override-selection-box-switch-control-border-focus, none);box-shadow:var(--sky-override-selection-box-switch-control-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-secondary-focus))}.sky-selection-box.sky-btn-default:focus-visible .sky-switch-control .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}.sky-selection-box.sky-btn-default.sky-selection-box-selected,.sky-selection-box.sky-btn-default:hover.sky-selection-box-selected,.sky-selection-box.sky-btn-default:focus.sky-selection-box-selected{background:var(--sky-override-selection-box-background-selected, var(--sky-color-background-selected-soft));box-shadow:var(--sky-override-selection-box-box-shadow-selected, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-secondary-base))}.sky-selection-box.sky-selection-box-disabled{background:var(--sky-override-selection-box-background-color-disabled, var(--sky-color-background-action-secondary-disabled))}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-header{color:var(--sky-override-selection-box-header-color-disabled, var(--sky-color-text-deemphasized))}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{color:var(--sky-override-selection-box-icon-color-disabled, var(--sky-color-icon-deemphasized));background:var(--sky-override-selection-box-icon-background-color-disabled, var(--sky-color-background-action-secondary-disabled))}.sky-selection-box .sky-selection-box-icon{background:var(--sky-override-selection-box-icon-background, var(--sky-color-background-icon_matte-action-soft));color:var(--sky-override-selection-box-icon-color, var(--sky-color-icon-action));margin:0 var(--sky-override-selection-box-icon-margin, var(--sky-space-inline-m)) 0 0;width:var(--sky-override-selection-box-icon-size, calc(var(--sky-size-icon-l) + var(--sky-space-inset-thumbnail_matte-xl) * 2));height:var(--sky-override-selection-box-icon-size, calc(var(--sky-size-icon-l) + var(--sky-space-inset-thumbnail_matte-xl) * 2));border-radius:var(--sky-override-selection-box-icon-border-radius, var(--sky-border-radius-round));display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-selection-box .sky-selection-box-icon .sky-icon{font-size:24px!important}.sky-selection-box .sky-selection-box-icon.sky-selection-box-icon-hidden{display:none}.sky-selection-box .sky-selection-box-content{flex:1 1 auto;margin:0 var(--sky-override-selection-box-content-margin-right, var(--sky-space-inline-xl)) 0 0;white-space:initial}.sky-selection-box .sky-selection-box-header{padding-top:var(--sky-override-selection-box-header-padding-top, 0)}.sky-selection-box .sky-selection-box-control{flex:0 0 auto;padding-top:var(--sky-override-selection-box-control-padding-top, 0)}.sky-selection-box .sky-selection-box-description{margin-top:var(--sky-override-selection-box-description-margin-top, var(--sky-space-stacked-xs))}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-selection-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: \"<label\\n #selectionBox\\n class=\\\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\\\"\\n [attr.disabled]=\\\"disabled ? true : null\\\"\\n [ngClass]=\\\"{\\n 'sky-selection-box-selected': checked,\\n 'sky-selection-box-disabled': disabled\\n }\\\"\\n (keydown)=\\\"onKeydown($event)\\\"\\n>\\n <div\\n #icon\\n class=\\\"sky-selection-box-icon\\\"\\n [ngClass]=\\\"{\\n 'sky-selection-box-icon-hidden': !icon.innerHTML.trim()\\n }\\\"\\n >\\n <ng-content select=\\\"sky-icon\\\" />\\n </div>\\n\\n <div class=\\\"sky-selection-box-content\\\">\\n <div class=\\\"sky-selection-box-header sky-font-display-2\\\">\\n <ng-content select=\\\"sky-selection-box-header\\\" />\\n </div>\\n <div class=\\\"sky-selection-box-description sky-font-deemphasized\\\">\\n <ng-content select=\\\"sky-selection-box-description\\\" />\\n </div>\\n </div>\\n\\n <div #control class=\\\"sky-selection-box-control\\\">\\n <ng-content select=\\\"sky-radio\\\" />\\n <ng-content select=\\\"sky-checkbox\\\" />\\n </div>\\n</label>\\n\", styles: [\".sky-selection-box:not(.sky-theme-modern *){--sky-override-selection-box-background-hover: #ffffff;--sky-override-selection-box-background-selected: #f1eef6;--sky-override-selection-box-box-shadow: 0 0 5px 0 rgba(0, 0, 0, .3);--sky-override-selection-box-box-shadow-hover: 0px 0px 5px 0 rgba(0, 0, 0, .3), inset 0 0 0 1px #00b4f1;--sky-override-selection-box-box-shadow-selected: 0 0 5px 0 rgba(0, 0, 0, .3);--sky-override-selection-box-content-margin-right: 10px;--sky-override-selection-box-control-padding-top: 5px;--sky-override-selection-box-description-margin-top: 0;--sky-override-selection-box-header-padding-top: 3px;--sky-override-selection-box-icon-background: transparent;--sky-override-selection-box-icon-border-radius: 0;--sky-override-selection-box-icon-color: #0974a1;--sky-override-selection-box-icon-margin: 10px;--sky-override-selection-box-icon-size: 42px;--sky-override-selection-box-padding: 15px 15px 15px 15px;--sky-override-selection-box-switch-border-hover: solid 1px #00b4f1;--sky-override-selection-box-switch-control-outline-hover: auto;--sky-override-selection-box-switch-control-box-shadow-focus: none;--sky-override-selection-box-switch-control-border-focus: 1px solid #cdcfd2;--sky-override-selection-box-background-color-disabled: #eeeeef;--sky-override-selection-box-icon-color-disabled: #686c73;--sky-override-selection-box-icon-background-color-disabled: transparent;--sky-override-selection-box-header-color-disabled: var( --sky-text-color-default )}.sky-theme-modern:not(.sky-theme-brand-base) .sky-selection-box{--sky-override-selection-box-box-shadow: var(--sky-elevation-raised-100);--sky-override-selection-box-box-shadow-hover: var(--sky-elevation-raised-100), inset 0 0 0 1px #1870B8;--sky-override-selection-box-box-shadow-selected: inset 0 0 0 2px #1870b8, 0px 1px 8px 0px rgba(0, 0, 0, .3), inset 6px 0 0 0 #0974a1;--sky-override-selection-box-control-padding-top: 5px;--sky-override-selection-box-description-margin-top: 3px;--sky-override-selection-box-header-padding-top: 3px;--sky-override-selection-box-header-color-disabled: var( --sky-color-text-default )}.sky-selection-box{display:flex;flex-flow:row nowrap;text-align:left}.sky-selection-box.sky-btn-default{padding:var(--sky-override-selection-box-padding, var(--sky-comp-selection_box-expanded-space-inset-top) var(--sky-comp-selection_box-expanded-space-inset-right) var(--sky-comp-selection_box-expanded-space-inset-bottom) var(--sky-comp-selection_box-expanded-space-inset-left))}.sky-selection-box.sky-btn-default:not(.sky-selection-box-disabled){box-shadow:var(--sky-override-selection-box-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-secondary-base))}.sky-selection-box.sky-btn-default:hover{background:var(--sky-override-selection-box-background-hover, var(--sky-color-background-action-secondary-hover));box-shadow:var(--sky-override-selection-box-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-secondary-hover))}.sky-selection-box.sky-btn-default:hover .sky-switch-control{border:var(--sky-override-selection-box-switch-border-hover, solid var(--sky-border-width-action-hover) var(--sky-color-border-action-secondary-hover))}.sky-selection-box.sky-btn-default:focus-visible .sky-switch-control{outline:var(--sky-override-selection-box-switch-control-outline-hover, none);border:var(--sky-override-selection-box-switch-control-border-focus, none);box-shadow:var(--sky-override-selection-box-switch-control-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-secondary-focus))}.sky-selection-box.sky-btn-default:focus-visible .sky-switch-control .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}.sky-selection-box.sky-btn-default.sky-selection-box-selected,.sky-selection-box.sky-btn-default:hover.sky-selection-box-selected,.sky-selection-box.sky-btn-default:focus.sky-selection-box-selected{background:var(--sky-override-selection-box-background-selected, var(--sky-color-background-selected-soft));box-shadow:var(--sky-override-selection-box-box-shadow-selected, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-secondary-base))}.sky-selection-box.sky-selection-box-disabled{background:var(--sky-override-selection-box-background-color-disabled, var(--sky-color-background-action-secondary-disabled))}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-header{color:var(--sky-override-selection-box-header-color-disabled, var(--sky-color-text-deemphasized))}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{color:var(--sky-override-selection-box-icon-color-disabled, var(--sky-color-icon-deemphasized));background:var(--sky-override-selection-box-icon-background-color-disabled, var(--sky-color-background-action-secondary-disabled))}.sky-selection-box .sky-selection-box-icon{background:var(--sky-override-selection-box-icon-background, var(--sky-color-background-icon_matte-action-soft));color:var(--sky-override-selection-box-icon-color, var(--sky-color-icon-action));margin:0 var(--sky-override-selection-box-icon-margin, var(--sky-space-inline-m)) 0 0;width:var(--sky-override-selection-box-icon-size, calc(var(--sky-size-icon-l) + var(--sky-space-inset-thumbnail_matte-xl) * 2));height:var(--sky-override-selection-box-icon-size, calc(var(--sky-size-icon-l) + var(--sky-space-inset-thumbnail_matte-xl) * 2));border-radius:var(--sky-override-selection-box-icon-border-radius, var(--sky-border-radius-round));display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-selection-box .sky-selection-box-icon .sky-icon{font-size:24px!important}.sky-selection-box .sky-selection-box-icon.sky-selection-box-icon-hidden{display:none}.sky-selection-box .sky-selection-box-content{flex:1 1 auto;margin:0 var(--sky-override-selection-box-content-margin-right, var(--sky-space-inline-xl)) 0 0;white-space:initial}.sky-selection-box .sky-selection-box-header{padding-top:var(--sky-override-selection-box-header-padding-top, 0)}.sky-selection-box .sky-selection-box-control{flex:0 0 auto;padding-top:var(--sky-override-selection-box-control-padding-top, 0)}.sky-selection-box .sky-selection-box-description{margin-top:var(--sky-override-selection-box-description-margin-top, var(--sky-space-stacked-xs))}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkySelectionBoxAdapterService }], propDecorators: { control: [{\n type: Input\n }], controlEl: [{\n type: ViewChild,\n args: ['control', {\n read: ElementRef,\n static: false,\n }]\n }], selectionBoxEl: [{\n type: ViewChild,\n args: ['selectionBox', {\n read: ElementRef,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPM0M7O0dBRUc7QUFTSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUNoQixLQUEyRDtRQUUzRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FB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LENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztpQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ3BDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDOzhHQTlJVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwrTEFnRDNCLFVBQVUseUdBTVYsVUFBVSw2QkNwRnBCLDArQkFrQ0E7OzJGREphLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixLQUFLO2tJQVFOLE9BQU87c0JBRGpCLEtBQUs7Z0JBOENDLFNBQVM7c0JBSmYsU0FBUzt1QkFBQyxTQUFTLEVBQUU7d0JBQ3BCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDtnQkFPVSxjQUFjO3NCQUp4QixTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8vcmFkaW8uY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5U2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1ib3gtYWRhcHRlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnV0dG9uIHRvIHByZXNlbnQgdXNlcnMgd2l0aCBhIGNob2ljZSBvciBxdWVzdGlvbiBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIGEgb25lLXRpbWUgcHJvY2Vzcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXNlbGVjdGlvbi1ib3gnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tYm94LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIHJhZGlvIGJ1dHRvbiBvciBjaGVja2JveCB0byBkaXNwbGF5IGluIHRoZSBzZWxlY3Rpb24gYm94LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29udHJvbChcbiAgICB2YWx1ZTogU2t5Q2hlY2tib3hDb21wb25lbnQgfCBTa3lSYWRpb0NvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgdGhpcy4jX2NvbnRyb2wgPSB2YWx1ZTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiN1cGRhdGVDaGVja2VkT25Db250cm9sQ2hhbmdlKCk7XG4gICAgICB0aGlzLiN1cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb250cm9sKCk6IFNreUNoZWNrYm94Q29tcG9uZW50IHwgU2t5UmFkaW9Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY29udHJvbDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19jaGVja2VkID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2VkO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbkJveEVsKSB7XG4gICAgICB0aGlzLiNzZWxlY3Rpb25Cb3hBZGFwdGVyU2VydmljZS5zZXRUYWJJbmRleChcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Cb3hFbCxcbiAgICAgICAgdmFsdWUgPyAtMSA6IDAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLiNfZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRyb2wnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgY29udHJvbEVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbkJveCcsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uQm94RWwodmFsdWU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc2VsZWN0aW9uQm94RWwgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlLnNldFRhYkluZGV4KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA/IC0xIDogMCxcbiAgICAgICk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIGNoaWxkIGVsZW1lbnRzIHRvIHJlbmRlciBiZWZvcmUgb3ZlcnJpZGluZyB0YWJJbmRleCB2YWx1ZXMuXG4gICAgICAvLyBUT0RPOiBUaGlzIGxvZ2ljIGlzIGJyaXR0bGUgc2luY2UgdGhlIGNoZWNrYm94L3JhZGlvIGNhbiBzZXQgaXRzIG93biB0YWIgaW5kZXhcbiAgICAgIC8vIHZhbHVlIGF0IGFueSB0aW1lLiBXZSBuZWVkIGEgd2F5IHRvIGVuZm9yY2UgdGhlIHRhYiBpbmRleCBmb3IgdGhlIGVudGlyZSBsaWZlc3BhbiBvZiB0aGUgY29tcG9uZW50LlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlLnNldENoaWxkcmVuVGFiSW5kZXgodmFsdWUsIC0xKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uQm94RWwoKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19zZWxlY3Rpb25Cb3hFbDtcbiAgfVxuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2NoZWNrZWQgPSBmYWxzZTtcblxuICAjX2NvbnRyb2w6IFNreUNoZWNrYm94Q29tcG9uZW50IHwgU2t5UmFkaW9Db21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICNfc2VsZWN0aW9uQm94RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI3NlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlOiBTa3lTZWxlY3Rpb25Cb3hBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgc2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2U6IFNreVNlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlID0gc2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLiNzZWxlY3RDb250cm9sKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gICNzZWxlY3RDb250cm9sKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRyb2xFbCkge1xuICAgICAgdGhpcy4jc2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2UuZ2V0Q29udHJvbCh0aGlzLmNvbnRyb2xFbCkuY2xpY2soKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Cb3hFbCkge1xuICAgICAgdGhpcy4jc2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2UuZm9jdXModGhpcy5zZWxlY3Rpb25Cb3hFbCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNoZWNrZWRPbkNvbnRyb2xDaGFuZ2UoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuY2hlY2tlZENoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sLmRpc2FibGVkQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsXG4gICNzZWxlY3Rpb25Cb3hcbiAgY2xhc3M9XCJza3ktc2VsZWN0aW9uLWJveCBza3ktcm91bmRlZC1jb3JuZXJzIHNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXNlbGVjdGlvbi1ib3gtc2VsZWN0ZWQnOiBjaGVja2VkLFxuICAgICdza3ktc2VsZWN0aW9uLWJveC1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4+XG4gIDxkaXZcbiAgICAjaWNvblxuICAgIGNsYXNzPVwic2t5LXNlbGVjdGlvbi1ib3gtaWNvblwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zZWxlY3Rpb24tYm94LWljb24taGlkZGVuJzogIWljb24uaW5uZXJIVE1MLnRyaW0oKVxuICAgIH1cIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWljb25cIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2t5LXNlbGVjdGlvbi1ib3gtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktc2VsZWN0aW9uLWJveC1oZWFkZXIgc2t5LWZvbnQtZGlzcGxheS0yXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktc2VsZWN0aW9uLWJveC1oZWFkZXJcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJza3ktc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbiBza3ktZm9udC1kZWVtcGhhc2l6ZWRcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1zZWxlY3Rpb24tYm94LWRlc2NyaXB0aW9uXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAjY29udHJvbCBjbGFzcz1cInNreS1zZWxlY3Rpb24tYm94LWNvbnRyb2xcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmFkaW9cIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1jaGVja2JveFwiIC8+XG4gIDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, HostListener, Input, Optional, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkySelectionBoxComponent } from './selection-box.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nimport * as i2 from \"./selection-box-adapter.service\";\nimport * as i3 from \"@skyux/theme\";\nimport * as i4 from \"@angular/common\";\nconst SKY_SELECTION_BOX_CLASS_NAME = '.sky-selection-box';\n/**\n * Creates a grid layout for an array of selection boxes.\n */\nexport class SkySelectionBoxGridComponent {\n /**\n * @internal\n * How to display the selection boxes in the grid.\n * @default 'center'\n */\n set alignItems(value) {\n if (value) {\n this.#_alignItems = value;\n }\n else {\n this.#_alignItems = 'center';\n }\n }\n get alignItems() {\n return this.#_alignItems;\n }\n set containerElementRef(value) {\n this.#_containerElementRef = value;\n this.#destroyMutationObserver();\n if (value) {\n this.#updateBreakpointClass();\n this.#initMutationObserver();\n }\n }\n get containerElementRef() {\n return this.#_containerElementRef;\n }\n #mutationObserver;\n #ngUnsubscribe = new Subject();\n #_alignItems = 'center';\n #_containerElementRef;\n #coreAdapterService;\n #selectionBoxAdapter;\n #hostElRef;\n #mutationObserverSvc;\n #ngZone;\n #themeSvc;\n constructor(coreAdapterService, selectionBoxAdapter, hostElRef, mutationObserverSvc, ngZone, themeSvc) {\n this.#coreAdapterService = coreAdapterService;\n this.#selectionBoxAdapter = selectionBoxAdapter;\n this.#hostElRef = hostElRef;\n this.#mutationObserverSvc = mutationObserverSvc;\n this.#ngZone = ngZone;\n this.#themeSvc = themeSvc;\n }\n ngOnInit() {\n /* istanbul ignore else */\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateBreakpointClass();\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#destroyMutationObserver();\n }\n onWindowResize() {\n this.#updateBreakpointClass();\n }\n #initMutationObserver() {\n /* istanbul ignore else */\n if (!this.#mutationObserver && this.containerElementRef) {\n const el = this.containerElementRef.nativeElement;\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // scenarios. This will keep MutationObserver from triggering change detection.\n this.#ngZone.runOutsideAngular(() => {\n this.#mutationObserver = this.#mutationObserverSvc.create(() => {\n this.#updateChildrenHeights();\n });\n this.#mutationObserver.observe(el, {\n characterData: true,\n subtree: true,\n });\n });\n }\n }\n #destroyMutationObserver() {\n /* istanbul ignore else */\n if (this.#mutationObserver) {\n this.#mutationObserver.disconnect();\n this.#mutationObserver = undefined;\n }\n }\n #updateBreakpointClass() {\n const parentWidth = this.#selectionBoxAdapter.getParentWidth(this.#hostElRef);\n if (this.containerElementRef) {\n this.#selectionBoxAdapter.setResponsiveClass(this.containerElementRef, this.#selectionBoxAdapter.getBreakpointForWidth(parentWidth));\n }\n this.#updateChildrenHeights();\n }\n #updateChildrenHeights() {\n if (this.containerElementRef) {\n this.#coreAdapterService.resetHeight(this.containerElementRef, SKY_SELECTION_BOX_CLASS_NAME);\n this.#coreAdapterService.syncMaxHeight(this.containerElementRef, SKY_SELECTION_BOX_CLASS_NAME);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxGridComponent, deps: [{ token: i1.SkyCoreAdapterService }, { token: i2.SkySelectionBoxAdapterService }, { token: i0.ElementRef }, { token: i1.SkyMutationObserverService }, { token: i0.NgZone }, { token: i3.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkySelectionBoxGridComponent, isStandalone: false, selector: \"sky-selection-box-grid\", inputs: { alignItems: \"alignItems\" }, host: { listeners: { \"window:resize\": \"onWindowResize()\" } }, queries: [{ propertyName: \"selectionBoxes\", predicate: SkySelectionBoxComponent, read: SkySelectionBoxComponent }], viewQueries: [{ propertyName: \"containerElementRef\", first: true, predicate: [\"container\"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: \"<div\\n #container\\n class=\\\"sky-selection-box-grid\\\"\\n [ngClass]=\\\"'sky-selection-box-grid-align-' + alignItems\\\"\\n>\\n <ng-content select=\\\"sky-selection-box\\\" />\\n</div>\\n\", styles: [\".sky-selection-box-grid:not(.sky-theme-modern *){--sky-override-selection-box-grid-margin-bottom: -15px;--sky-override-selection-box-grid-padding-horizontal: 7.5px;--sky-override-selection-box-margin-horizontal: 7.5px;--sky-override-selection-box-margin-bottom: 15px;--sky-override-selection-box-padding-responsive: 15px 15px 15px 15px;--sky-override-selection-box-header-heading-2-font-size: 26px;--sky-override-selection-box-header-heading-2-font-weight: 300;--sky-override-selection-box-header-heading-2-line-height: calc(20 / 14);--sky-override-selection-box-header-heading-3-color-no-icon: var( --sky-text-color-deemphasized );--sky-override-selection-box-header-heading-3-font-family: BLKB Sans Condensed, Helvetica Neue Condensed, Arial Narrow;--sky-override-selection-box-header-heading-3-font-size: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon: 19px;--sky-override-selection-box-header-heading-3-font-size-no-icon-sm: 20px;--sky-override-selection-box-header-heading-3-font-weight: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon: 300;--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm: 400;--sky-override-selection-box-header-heading-3-line-height: calc(20 / 14)}.sky-theme-modern:not(.sky-theme-brand-base) .sky-selection-box-grid{--sky-override-selection-box-header-heading-2-font-size: 24px;--sky-override-selection-box-header-heading-2-font-weight: 400;--sky-override-selection-box-header-heading-2-line-height: calc(20 / 14);--sky-override-selection-box-header-heading-3-font-size: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon-sm: 20px;--sky-override-selection-box-header-heading-3-font-weight: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm: 400;--sky-override-selection-box-header-heading-3-line-height: calc(20 / 14)}:host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 var(--sky-override-selection-box-grid-padding-horizontal, calc(var(--sky-space-gap-action_group-l) / 2));margin:0 auto var(--sky-override-selection-box-grid-margin-bottom, calc(var(--sky-space-stacked-m) * -1))}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 var(--sky-override-selection-box-margin-horizontal, calc(var(--sky-space-gap-action_group-l) / 2)) var(--sky-override-selection-box-margin-bottom, var(--sky-space-stacked-m));height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:var(--sky-override-selection-box-padding-responsive, var(--sky-comp-selection_box-collapsed-space-inset-top) var(--sky-comp-selection_box-collapsed-space-inset-right) var(--sky-comp-selection_box-collapsed-space-inset-bottom) var(--sky-comp-selection_box-collapsed-space-inset-left))}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-family:var(--sky-override-selection-box-header-heading-3-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon-sm, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:var(--sky-override-selection-box-padding-responsive, var(--sky-comp-selection_box-expanded-space-inset-top) var(--sky-comp-selection_box-expanded-space-inset-right) var(--sky-comp-selection_box-expanded-space-inset-bottom) var(--sky-comp-selection_box-expanded-space-inset-left))}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-family:var(--sky-override-selection-box-header-heading-3-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon-sm, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-md .sky-selection-box .sky-selection-box-header{font-size:var(--sky-override-selection-box-header-heading-2-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-2-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-2-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-md .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg .sky-selection-box .sky-selection-box-header{font-size:var(--sky-override-selection-box-header-heading-2-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-2-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-2-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-lg .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxGridComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-selection-box-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: \"<div\\n #container\\n class=\\\"sky-selection-box-grid\\\"\\n [ngClass]=\\\"'sky-selection-box-grid-align-' + alignItems\\\"\\n>\\n <ng-content select=\\\"sky-selection-box\\\" />\\n</div>\\n\", styles: [\".sky-selection-box-grid:not(.sky-theme-modern *){--sky-override-selection-box-grid-margin-bottom: -15px;--sky-override-selection-box-grid-padding-horizontal: 7.5px;--sky-override-selection-box-margin-horizontal: 7.5px;--sky-override-selection-box-margin-bottom: 15px;--sky-override-selection-box-padding-responsive: 15px 15px 15px 15px;--sky-override-selection-box-header-heading-2-font-size: 26px;--sky-override-selection-box-header-heading-2-font-weight: 300;--sky-override-selection-box-header-heading-2-line-height: calc(20 / 14);--sky-override-selection-box-header-heading-3-color-no-icon: var( --sky-text-color-deemphasized );--sky-override-selection-box-header-heading-3-font-family: BLKB Sans Condensed, Helvetica Neue Condensed, Arial Narrow;--sky-override-selection-box-header-heading-3-font-size: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon: 19px;--sky-override-selection-box-header-heading-3-font-size-no-icon-sm: 20px;--sky-override-selection-box-header-heading-3-font-weight: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon: 300;--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm: 400;--sky-override-selection-box-header-heading-3-line-height: calc(20 / 14)}.sky-theme-modern:not(.sky-theme-brand-base) .sky-selection-box-grid{--sky-override-selection-box-header-heading-2-font-size: 24px;--sky-override-selection-box-header-heading-2-font-weight: 400;--sky-override-selection-box-header-heading-2-line-height: calc(20 / 14);--sky-override-selection-box-header-heading-3-font-size: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon: 20px;--sky-override-selection-box-header-heading-3-font-size-no-icon-sm: 20px;--sky-override-selection-box-header-heading-3-font-weight: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon: 400;--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm: 400;--sky-override-selection-box-header-heading-3-line-height: calc(20 / 14)}:host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 var(--sky-override-selection-box-grid-padding-horizontal, calc(var(--sky-space-gap-action_group-l) / 2));margin:0 auto var(--sky-override-selection-box-grid-margin-bottom, calc(var(--sky-space-stacked-m) * -1))}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 var(--sky-override-selection-box-margin-horizontal, calc(var(--sky-space-gap-action_group-l) / 2)) var(--sky-override-selection-box-margin-bottom, var(--sky-space-stacked-m));height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:var(--sky-override-selection-box-padding-responsive, var(--sky-comp-selection_box-collapsed-space-inset-top) var(--sky-comp-selection_box-collapsed-space-inset-right) var(--sky-comp-selection_box-collapsed-space-inset-bottom) var(--sky-comp-selection_box-collapsed-space-inset-left))}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-family:var(--sky-override-selection-box-header-heading-3-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon-sm, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:var(--sky-override-selection-box-padding-responsive, var(--sky-comp-selection_box-expanded-space-inset-top) var(--sky-comp-selection_box-expanded-space-inset-right) var(--sky-comp-selection_box-expanded-space-inset-bottom) var(--sky-comp-selection_box-expanded-space-inset-left))}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-family:var(--sky-override-selection-box-header-heading-3-font-family, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon-sm, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon-sm, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-md .sky-selection-box .sky-selection-box-header{font-size:var(--sky-override-selection-box-header-heading-2-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-2-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-2-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-md .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg .sky-selection-box .sky-selection-box-header{font-size:var(--sky-override-selection-box-header-heading-2-font-size, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-2-font-weight, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-2-line-height, var(--sky-font-line_height-display-2))}.sky-selection-box-grid.sky-selection-box-container-lg .sky-selection-box .sky-selection-box-icon-hidden+.sky-selection-box-content .sky-selection-box-header{color:var(--sky-override-selection-box-header-heading-3-color-no-icon, var(--sky-color-text-default));font-family:var(--sky-override-selection-box-header-heading-3-font-family-no-icon, var(--sky-font-family-primary));font-size:var(--sky-override-selection-box-header-heading-3-font-size-no-icon, var(--sky-font-size-display-2));font-weight:var(--sky-override-selection-box-header-heading-3-font-weight-no-icon, var(--sky-font-weight-display-2));line-height:var(--sky-override-selection-box-header-heading-3-line-height, var(--sky-font-line_height-display-2))}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }, { type: i2.SkySelectionBoxAdapterService }, { type: i0.ElementRef }, { type: i1.SkyMutationObserverService }, { type: i0.NgZone }, { type: i3.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { alignItems: [{\n type: Input\n }], selectionBoxes: [{\n type: ContentChildren,\n args: [SkySelectionBoxComponent, {\n read: SkySelectionBoxComponent,\n }]\n }], containerElementRef: [{\n type: ViewChild,\n args: ['container', {\n read: ElementRef,\n static: true,\n }]\n }], onWindowResize: [{\n type: HostListener,\n args: ['window:resize']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsUUFBUSxFQUVSLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQUdyRSxNQUFNLDRCQUE0QixHQUFHLG9CQUFvQixDQUFDO0FBRTFEOztHQUVHO0FBU0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2Qzs7OztPQUlHO0lBQ0gsSUFDVyxVQUFVLENBQUMsS0FBb0Q7UUFDeEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFPRCxJQUlX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QjtxQkFDL0I7Z0JBT1UsbUJBQW1CO3NCQUo3QixTQUFTO3VCQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQWdFTSxjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLCBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5U2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1ib3gtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVNlbGVjdGlvbkJveENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXNUeXBlIH0gZnJvbSAnLi90eXBlcy9zZWxlY3Rpb24tYm94LWdyaWQtYWxpZ24taXRlbXMtdHlwZSc7XG5cbmNvbnN0IFNLWV9TRUxFQ1RJT05fQk9YX0NMQVNTX05BTUUgPSAnLnNreS1zZWxlY3Rpb24tYm94JztcblxuLyoqXG4gKiBDcmVhdGVzIGEgZ3JpZCBsYXlvdXQgZm9yIGFuIGFycmF5IG9mIHNlbGVjdGlvbiBib3hlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXNlbGVjdGlvbi1ib3gtZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tYm94LWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tYm94LWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEhvdyB0byBkaXNwbGF5IHRoZSBzZWxlY3Rpb24gYm94ZXMgaW4gdGhlIGdyaWQuXG4gICAqIEBkZWZhdWx0ICdjZW50ZXInXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFsaWduSXRlbXModmFsdWU6IFNreVNlbGVjdGlvbkJveEdyaWRBbGlnbkl0ZW1zVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX2FsaWduSXRlbXMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2FsaWduSXRlbXMgPSAnY2VudGVyJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFsaWduSXRlbXMoKTogU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXNUeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jX2FsaWduSXRlbXM7XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKFNreVNlbGVjdGlvbkJveENvbXBvbmVudCwge1xuICAgIHJlYWQ6IFNreVNlbGVjdGlvbkJveENvbXBvbmVudCxcbiAgfSlcbiAgcHVibGljIHNlbGVjdGlvbkJveGVzOiBRdWVyeUxpc3Q8U2t5U2VsZWN0aW9uQm94Q29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBzZXQgY29udGFpbmVyRWxlbWVudFJlZih2YWx1ZTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19jb250YWluZXJFbGVtZW50UmVmID0gdmFsdWU7XG4gICAgdGhpcy4jZGVzdHJveU11dGF0aW9uT2JzZXJ2ZXIoKTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnRDbGFzcygpO1xuICAgICAgdGhpcy4jaW5pdE11dGF0aW9uT2JzZXJ2ZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRhaW5lckVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb250YWluZXJFbGVtZW50UmVmO1xuICB9XG5cbiAgI211dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfYWxpZ25JdGVtczogU2t5U2VsZWN0aW9uQm94R3JpZEFsaWduSXRlbXNUeXBlID0gJ2NlbnRlcic7XG5cbiAgI19jb250YWluZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI3NlbGVjdGlvbkJveEFkYXB0ZXI6IFNreVNlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlO1xuICAjaG9zdEVsUmVmOiBFbGVtZW50UmVmO1xuICAjbXV0YXRpb25PYnNlcnZlclN2YzogU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2U7XG4gICNuZ1pvbmU6IE5nWm9uZTtcbiAgI3RoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgc2VsZWN0aW9uQm94QWRhcHRlcjogU2t5U2VsZWN0aW9uQm94QWRhcHRlclNlcnZpY2UsXG4gICAgaG9zdEVsUmVmOiBFbGVtZW50UmVmLFxuICAgIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UgPSBjb3JlQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jc2VsZWN0aW9uQm94QWRhcHRlciA9IHNlbGVjdGlvbkJveEFkYXB0ZXI7XG4gICAgdGhpcy4jaG9zdEVsUmVmID0gaG9zdEVsUmVmO1xuICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTdmMgPSBtdXRhdGlvbk9ic2VydmVyU3ZjO1xuICAgIHRoaXMuI25nWm9uZSA9IG5nWm9uZTtcbiAgICB0aGlzLiN0aGVtZVN2YyA9IHRoZW1lU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnRDbGFzcygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy4jZGVzdHJveU11dGF0aW9uT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlQnJlYWtwb2ludENsYXNzKCk7XG4gIH1cblxuICAjaW5pdE11dGF0aW9uT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI211dGF0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250YWluZXJFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuY29udGFpbmVyRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAvLyBNdXRhdGlvbk9ic2VydmVyIGlzIHBhdGNoZWQgYnkgWm9uZS5qcyBhbmQgdGhlcmVmb3JlIGJlY29tZXMgcGFydCBvZiB0aGVcbiAgICAgIC8vIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSwgYnV0IHRoaXMgY2FuIGxlYWQgdG8gaW5maW5pdGUgbG9vcHMgaW4gc29tZVxuICAgICAgLy8gc2NlbmFyaW9zLiBUaGlzIHdpbGwga2VlcCBNdXRhdGlvbk9ic2VydmVyIGZyb20gdHJpZ2dlcmluZyBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgdGhpcy4jbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlciA9IHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTdmMuY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVDaGlsZHJlbkhlaWdodHMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGVsLCB7XG4gICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNkZXN0cm95TXV0YXRpb25PYnNlcnZlcigpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNtdXRhdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJyZWFrcG9pbnRDbGFzcygpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXIuZ2V0UGFyZW50V2lkdGgoXG4gICAgICB0aGlzLiNob3N0RWxSZWYsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRhaW5lckVsZW1lbnRSZWYpIHtcbiAgICAgIHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXIuc2V0UmVzcG9uc2l2ZUNsYXNzKFxuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuI3NlbGVjdGlvbkJveEFkYXB0ZXIuZ2V0QnJlYWtwb2ludEZvcldpZHRoKHBhcmVudFdpZHRoKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI3VwZGF0ZUNoaWxkcmVuSGVpZ2h0cygpO1xuICB9XG5cbiAgI3VwZGF0ZUNoaWxkcmVuSGVpZ2h0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250YWluZXJFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UucmVzZXRIZWlnaHQoXG4gICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudFJlZixcbiAgICAgICAgU0tZX1NFTEVDVElPTl9CT1hfQ0xBU1NfTkFNRSxcbiAgICAgICk7XG4gICAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2Uuc3luY01heEhlaWdodChcbiAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50UmVmLFxuICAgICAgICBTS1lfU0VMRUNUSU9OX0JPWF9DTEFTU19OQU1FLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2NvbnRhaW5lclxuICBjbGFzcz1cInNreS1zZWxlY3Rpb24tYm94LWdyaWRcIlxuICBbbmdDbGFzc109XCInc2t5LXNlbGVjdGlvbi1ib3gtZ3JpZC1hbGlnbi0nICsgYWxpZ25JdGVtc1wiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1zZWxlY3Rpb24tYm94XCIgLz5cbjwvZGl2PlxuIl19","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies the header to display in a selection box.\n */\nexport class SkySelectionBoxHeaderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkySelectionBoxHeaderComponent, isStandalone: false, selector: \"sky-selection-box-header\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-selection-box-header', standalone: false, template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7R0FFRztBQU1ILE1BQU0sT0FBTyw4QkFBOEI7OEdBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCLHFGQ1YzQyxrQkFDQTs7MkZEU2EsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLDBCQUEwQixjQUV4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdG8gZGlzcGxheSBpbiBhIHNlbGVjdGlvbiBib3guXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1zZWxlY3Rpb24tYm94LWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tYm94LWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hIZWFkZXJDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\nimport { SkySelectionBoxDescriptionComponent } from './selection-box-description.component';\nimport { SkySelectionBoxGridComponent } from './selection-box-grid.component';\nimport { SkySelectionBoxHeaderComponent } from './selection-box-header.component';\nimport { SkySelectionBoxComponent } from './selection-box.component';\nimport * as i0 from \"@angular/core\";\nexport class SkySelectionBoxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxModule, declarations: [SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent], imports: [CommonModule, SkyThemeModule], exports: [SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxModule, providers: [SkySelectionBoxAdapterService], imports: [CommonModule, SkyThemeModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkySelectionBoxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n imports: [CommonModule, SkyThemeModule],\n exports: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n providers: [SkySelectionBoxAdapterService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFrQnJFLE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLGlCQWQ5Qiw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLG1DQUFtQztZQUNuQyw4QkFBOEIsYUFFdEIsWUFBWSxFQUFFLGNBQWMsYUFFcEMsNEJBQTRCO1lBQzVCLHdCQUF3QjtZQUN4QixtQ0FBbUM7WUFDbkMsOEJBQThCOytHQUlyQixxQkFBcUIsYUFGckIsQ0FBQyw2QkFBNkIsQ0FBQyxZQVBoQyxZQUFZLEVBQUUsY0FBYzs7MkZBUzNCLHFCQUFxQjtrQkFoQmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QixtQ0FBbUM7d0JBQ25DLDhCQUE4QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QixtQ0FBbUM7d0JBQ25DLDhCQUE4QjtxQkFDL0I7b0JBQ0QsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFNreVNlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3Rpb24tYm94LWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hEZXNjcmlwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWJveC1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U2VsZWN0aW9uQm94R3JpZENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWJveC1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGlvbi1ib3gtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGlvbi1ib3guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5U2VsZWN0aW9uQm94R3JpZENvbXBvbmVudCxcbiAgICBTa3lTZWxlY3Rpb25Cb3hDb21wb25lbnQsXG4gICAgU2t5U2VsZWN0aW9uQm94RGVzY3JpcHRpb25Db21wb25lbnQsXG4gICAgU2t5U2VsZWN0aW9uQm94SGVhZGVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lUaGVtZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lTZWxlY3Rpb25Cb3hHcmlkQ29tcG9uZW50LFxuICAgIFNreVNlbGVjdGlvbkJveENvbXBvbmVudCxcbiAgICBTa3lTZWxlY3Rpb25Cb3hEZXNjcmlwdGlvbkNvbXBvbmVudCxcbiAgICBTa3lTZWxlY3Rpb25Cb3hIZWFkZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1NreVNlbGVjdGlvbkJveEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2VsZWN0aW9uQm94TW9kdWxlIHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies the label to display beside the toggle switch. To display a help button beside the label, include a help\n * button element, such as `sky-help-inline`, in the `sky-toggle-switch` element and a `sky-control-help` CSS class on\n * that help button element.\n * @deprecated Use the `labelText` input on the toggle switch component instead.\n */\nexport class SkyToggleSwitchLabelComponent {\n constructor() {\n inject(SkyLogService).deprecated('SkyToggleSwitchLabelComponent', {\n deprecationMajorVersion: 9,\n replacementRecommendation: 'To add a label to toggle switch, use the `labelText` input on the toggle switch component instead.',\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyToggleSwitchLabelComponent, isStandalone: false, selector: \"sky-toggle-switch-label\", ngImport: i0, template: \"<span skyTrim><ng-content /></span>\\n\", dependencies: [{ kind: \"directive\", type: i1.λ4, selector: \"[skyTrim]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-toggle-switch-label', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<span skyTrim><ng-content /></span>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXN3aXRjaC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC1sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFNUM7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDO1FBQ0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRTtZQUNoRSx1QkFBdUIsRUFBRSxDQUFDO1lBQzFCLHlCQUF5QixFQUN2QixvR0FBb0c7U0FDdkcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FQVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixvRkNmMUMsdUNBQ0E7OzJGRGNhLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGxhYmVsIHRvIGRpc3BsYXkgYmVzaWRlIHRoZSB0b2dnbGUgc3dpdGNoLiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b24gYmVzaWRlIHRoZSBsYWJlbCwgaW5jbHVkZSBhIGhlbHBcbiAqIGJ1dHRvbiBlbGVtZW50LCBzdWNoIGFzIGBza3ktaGVscC1pbmxpbmVgLCBpbiB0aGUgYHNreS10b2dnbGUtc3dpdGNoYCBlbGVtZW50IGFuZCBhIGBza3ktY29udHJvbC1oZWxwYCBDU1MgY2xhc3Mgb25cbiAqIHRoYXQgaGVscCBidXR0b24gZWxlbWVudC5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgYGxhYmVsVGV4dGAgaW5wdXQgb24gdGhlIHRvZ2dsZSBzd2l0Y2ggY29tcG9uZW50IGluc3RlYWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10b2dnbGUtc3dpdGNoLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1zd2l0Y2gtbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRvZ2dsZVN3aXRjaExhYmVsQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaW5qZWN0KFNreUxvZ1NlcnZpY2UpLmRlcHJlY2F0ZWQoJ1NreVRvZ2dsZVN3aXRjaExhYmVsQ29tcG9uZW50Jywge1xuICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAnVG8gYWRkIGEgbGFiZWwgdG8gdG9nZ2xlIHN3aXRjaCwgdXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCBvbiB0aGUgdG9nZ2xlIHN3aXRjaCBjb21wb25lbnQgaW5zdGVhZC4nLFxuICAgIH0pO1xuICB9XG59XG4iLCI8c3BhbiBza3lUcmltPjxuZy1jb250ZW50IC8+PC9zcGFuPlxuIl19","import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, booleanAttribute, forwardRef, inject, } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@skyux/help-inline\";\nconst SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\nconst SKY_TOGGLE_SWITCH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\nexport class SkyToggleSwitchComponent {\n /**\n * The ARIA label for the toggle switch. This sets the `aria-label`\n * attribute to provide a text equivalent for screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * Use a context-sensitive label, such as \"Activate annual fundraiser\" for a toggle switch that activates and deactivates an annual fundraiser. Context is especially important if multiple toggle switches are in close proximity.\n * When the `sky-toggle-switch-label` component displays a visible label, this property is only necessary if that label requires extra context.\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n * @deprecated Use the `labelText` input instead.\n */\n set ariaLabel(value) {\n this.#_ariaLabel = value;\n if (value !== undefined) {\n this.#logSvc.deprecated('SkyToggleSwitchComponent.ariaLabel', {\n deprecationMajorVersion: 9,\n replacementRecommendation: 'To add an ARIA label to the toggle switch, use the `labelText` input instead',\n });\n }\n }\n get ariaLabel() {\n return this.#_ariaLabel;\n }\n /**\n * Whether the toggle switch is selected.\n * @default false\n */\n set checked(value) {\n const checked = !!value;\n if (checked !== this.#_checked) {\n this.#_checked = checked;\n this.#onChange(checked);\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.#isFirstChange && this.#control) {\n this.#control.markAsPristine();\n this.#isFirstChange = false;\n }\n }\n }\n get checked() {\n return this.#_checked;\n }\n #control;\n #isFirstChange;\n #logSvc;\n #ngUnsubscribe;\n #_ariaLabel;\n #_checked;\n #changeDetector;\n constructor(changeDetector, idService) {\n /**\n * Whether to disable the toggle switch on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n */\n this.disabled = false;\n /**\n * The tab index for the toggle switch. If not defined, the index is set to the position\n * of the toggle switch on load.\n */\n this.tabIndex = 0;\n /**\n * Whether to hide `labelText` from view.\n */\n this.labelHidden = false;\n /**\n * Fires when the checked state of a toggle switch changes.\n */\n this.toggleChange = new EventEmitter();\n this.hasLabelComponent = false;\n this.enableIndicatorAnimation = false;\n this.#isFirstChange = true;\n this.#logSvc = inject(SkyLogService);\n this.#ngUnsubscribe = new Subject();\n this.#_checked = false;\n /* istanbul ignore next */\n this.#onTouched = () => { };\n /* istanbul ignore next */\n this.#onChange = () => { };\n this.#changeDetector = changeDetector;\n this.labelId = idService.generateId();\n }\n ngAfterContentInit() {\n /* istanbul ignore else */\n if (this.labelComponents) {\n this.hasLabelComponent = this.labelComponents.length > 0;\n this.labelComponents.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((newLabelComponents) => {\n this.hasLabelComponent = newLabelComponents.length > 0;\n // Allow the template to reload any ARIA attributes that are relying on the\n // label component existing in the DOM.\n this.#changeDetector.markForCheck();\n });\n }\n // Wait for the view to render before applying animation effects.\n // (Some browsers, such as Firefox, apply the animation too early.)\n setTimeout(() => {\n this.enableIndicatorAnimation = true;\n });\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n writeValue(value) {\n this.checked = !!value;\n this.#changeDetector.markForCheck();\n }\n validate(control) {\n if (!this.#control) {\n this.#control = control;\n }\n return null;\n }\n registerOnChange(fn) {\n this.#onChange = fn;\n }\n registerOnTouched(fn) {\n this.#onTouched = fn;\n }\n setDisabledState(disabled) {\n this.disabled = disabled;\n this.#changeDetector.markForCheck();\n }\n onButtonClick(event) {\n event.stopPropagation();\n this.#toggleChecked();\n this.#emitChangeEvent();\n }\n onButtonBlur() {\n this.#onTouched();\n }\n /* istanbul ignore next */\n #onTouched;\n /* istanbul ignore next */\n #onChange;\n #emitChangeEvent() {\n this.#onChange(this.#_checked);\n this.toggleChange.emit({\n checked: this.#_checked,\n });\n }\n #toggleChecked() {\n this.checked = !this.checked;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyIdService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyToggleSwitchComponent, isStandalone: false, selector: \"sky-toggle-switch\", inputs: { ariaLabel: \"ariaLabel\", checked: \"checked\", disabled: \"disabled\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", tabIndex: \"tabIndex\", labelText: \"labelText\", labelHidden: [\"labelHidden\", \"labelHidden\", booleanAttribute], helpKey: \"helpKey\" }, outputs: { toggleChange: \"toggleChange\" }, providers: [\n SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,\n SKY_TOGGLE_SWITCH_VALIDATOR,\n ], queries: [{ propertyName: \"labelComponents\", predicate: SkyToggleSwitchLabelComponent }], ngImport: i0, template: \"<span\\n class=\\\"sky-toggle-switch\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\\n }\\\"\\n>\\n <button\\n #toggle=\\\"skyId\\\"\\n class=\\\"sky-toggle-switch-button\\\"\\n role=\\\"switch\\\"\\n type=\\\"button\\\"\\n skyId\\n [attr.aria-checked]=\\\"checked\\\"\\n [attr.aria-label]=\\\"labelText || ariaLabel || null\\\"\\n [attr.aria-labelledby]=\\\"\\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-checked': checked,\\n 'sky-toggle-switch-disabled': disabled\\n }\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n (blur)=\\\"onButtonBlur()\\\"\\n (click)=\\\"onButtonClick($event)\\\"\\n >\\n <div aria-hidden=\\\"true\\\" class=\\\"sky-toggle-switch-switch\\\">\\n <i\\n class=\\\"sky-toggle-switch-indicator\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-transition': enableIndicatorAnimation\\n }\\\"\\n >&nbsp;</i\\n >\\n </div>\\n </button>\\n <span>\\n @if (hasLabelComponent || labelText) {\\n <label\\n class=\\\"sky-toggle-switch-label\\\"\\n [for]=\\\"toggle.id\\\"\\n [attr.id]=\\\"labelId\\\"\\n >\\n @if (labelText) {\\n @if (!labelHidden) {\\n <span class=\\\"sky-toggle-switch-label-text\\\">{{ labelText }}</span>\\n }\\n } @else {\\n <ng-content select=\\\"sky-toggle-switch-label\\\" />\\n }\\n </label>\\n }\\n <span class=\\\"sky-control-help-container\\\">\\n @if (labelText && (helpPopoverContent || helpKey)) {\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n }\\n <ng-content select=\\\".sky-control-help\\\" />\\n </span>\\n </span>\\n</span>\\n\", styles: [\".sky-toggle-switch:not(.sky-theme-modern *){--sky-override-toggle-switch-background-color: #eeeeef;--sky-override-toggle-switch-background-color-disabled: #cdcfd2;--sky-override-toggle-switch-background-color-selected: #c1e8fb;--sky-override-toggle-switch-border: 1px solid #cdcfd2;--sky-override-toggle-switch-border-color-active: #cdcfd2;--sky-override-toggle-switch-border-color-disabled: transparent;--sky-override-toggle-switch-border-color-focus: #1870B8;--sky-override-toggle-switch-border-color-hover: #00b4f1;--sky-override-toggle-switch-border-color-selected: #00b4f1;--sky-override-toggle-switch-border-radius: 24px;--sky-override-toggle-switch-border-width: 1px;--sky-override-toggle-switch-border-width-active: 1px;--sky-override-toggle-switch-border-width-disabled: 2px;--sky-override-toggle-switch-border-width-focus: 2px;--sky-override-toggle-switch-border-width-hover: 2px;--sky-override-toggle-switch-border-width-selected: 2px;--sky-override-toggle-switch-indicator-background-color: #ffffff;--sky-override-toggle-switch-indicator-background-color-disabled: #eeeeef;--sky-override-toggle-switch-indicator-border-radius: 100%;--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .75);--sky-override-toggle-switch-indicator-height: 22px;--sky-override-toggle-switch-indicator-left: 22px;--sky-override-toggle-switch-indicator-margin-left: -22px;--sky-override-toggle-switch-indicator-width: 22px;--sky-override-toggle-switch-label-color-disabled: var( --sky-text-color-default );--sky-override-toggle-switch-label-gap: 10px;--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-padding: 1px;--sky-override-toggle-switch-padding-active: 1px;--sky-override-toggle-switch-padding-disabled: 0;--sky-override-toggle-switch-padding-focus: 0;--sky-override-toggle-switch-padding-hover: 0;--sky-override-toggle-switch-padding-selected: 0;--sky-override-toggle-switch-pointer-disabled: default;--sky-override-toggle-switch-transition: none;--sky-override-toggle-switch-width: 46px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-toggle-switch{--sky-override-toggle-switch-background-color: var(--modern-color-white);--sky-override-toggle-switch-border-color-selected: var( --sky-color-border-selected );--sky-override-toggle-switch-box-shadow-focus: var(--sky-elevation-focus);--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .5);--sky-override-toggle-switch-label-color-disabled: var( --sky-color-text-default );--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-width: var(--modern-size-48)}.sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:var(--sky-override-toggle-switch-label-gap, var(--sky-space-gap-label-m))}.sky-toggle-switch .sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-switch{border:var(--sky-override-toggle-switch-border, var(--sky-border-width-input-base) solid var(--sky-color-border-switch-base));background-color:var(--sky-override-toggle-switch-background-color, var(--sky-background-input-base));padding:var(--sky-override-toggle-switch-padding, var(--sky-border-width-input-base));border-radius:var(--sky-override-toggle-switch-border-radius, calc(var(--sky-border-radius-thumb) + var(--sky-space-inset-thumb) * 2)/100%);flex:none;line-height:var(--sky-override-toggle-switch-line-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-width, calc(var(--sky-size-switch) * 2 - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:inline-block;transition:var(--sky-override-toggle-switch-transition, border-color .15s, box-shadow .15s)}.sky-toggle-switch .sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-focus, var(--sky-border-width-input-focus));border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-switch-focus));padding:var(--sky-override-toggle-switch-padding-focus, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-focus)))}.sky-toggle-switch .sky-toggle-switch-button:focus-visible:not(:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{box-shadow:var(--sky-override-toggle-switch-box-shadow-focus, none)}.sky-toggle-switch .sky-toggle-switch-button:active .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-active, var(--sky-border-width-input-active));border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-switch-active));padding:var(--sky-override-toggle-switch-padding-active, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-active)))}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-hover, var(--sky-border-width-input-hover));border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-switch-hover));padding:var(--sky-override-toggle-switch-padding-hover, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-selected, var(--sky-color-background-selected-heavy))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-selected, var(--sky-border-width-selected-s));border-color:var(--sky-override-toggle-switch-border-color-selected, var(--sky-color-border-switch-selected-base));padding:var(--sky-override-toggle-switch-padding-selected, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:focus-visible:not(:active) .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-switch-selected-focus))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:active .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-switch-selected-active))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:hover:not(:focus-visible,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-switch-selected-hover))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked.sky-toggle-switch-disabled .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-switch-selected-disabled))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-color-text-default)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-disabled, var(--sky-color-background-input-disabled));border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-switch-disabled));border-width:var(--sky-override-toggle-switch-border-width-disabled, var(--sky-border-width-input-disabled));padding:var(--sky-override-toggle-switch-padding-disabled, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-disabled)));cursor:var(--sky-override-toggle-switch-pointer-disabled, not-allowed)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled+span .sky-toggle-switch-label{color:var(--sky-override-toggle-switch-label-color-disabled, var(--sky-color-text-deemphasized))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:var(--sky-override-toggle-switch-indicator-background-color-disabled, var(--sky-color-background-thumb-disabled))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator{height:var(--sky-override-toggle-switch-indicator-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-indicator-width, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:block;position:relative;top:0;left:var(--sky-override-toggle-switch-indicator-left, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));margin-left:var(--sky-override-toggle-switch-indicator-margin-left, calc((var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)) * -1));border-radius:var(--sky-override-toggle-switch-indicator-border-radius, var(--sky-border-radius-thumb));box-shadow:var(--sky-override-toggle-switch-indicator-box-shadow, var(--sky-elevation-raised-100));background-color:var(--sky-override-toggle-switch-indicator-background-color, var(--sky-color-background-thumb-base))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: i3.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"directive\", type: i1.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-toggle-switch', providers: [\n SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,\n SKY_TOGGLE_SWITCH_VALIDATOR,\n ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<span\\n class=\\\"sky-toggle-switch\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\\n }\\\"\\n>\\n <button\\n #toggle=\\\"skyId\\\"\\n class=\\\"sky-toggle-switch-button\\\"\\n role=\\\"switch\\\"\\n type=\\\"button\\\"\\n skyId\\n [attr.aria-checked]=\\\"checked\\\"\\n [attr.aria-label]=\\\"labelText || ariaLabel || null\\\"\\n [attr.aria-labelledby]=\\\"\\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\\n \\\"\\n [disabled]=\\\"disabled\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-checked': checked,\\n 'sky-toggle-switch-disabled': disabled\\n }\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n (blur)=\\\"onButtonBlur()\\\"\\n (click)=\\\"onButtonClick($event)\\\"\\n >\\n <div aria-hidden=\\\"true\\\" class=\\\"sky-toggle-switch-switch\\\">\\n <i\\n class=\\\"sky-toggle-switch-indicator\\\"\\n [ngClass]=\\\"{\\n 'sky-toggle-switch-transition': enableIndicatorAnimation\\n }\\\"\\n >&nbsp;</i\\n >\\n </div>\\n </button>\\n <span>\\n @if (hasLabelComponent || labelText) {\\n <label\\n class=\\\"sky-toggle-switch-label\\\"\\n [for]=\\\"toggle.id\\\"\\n [attr.id]=\\\"labelId\\\"\\n >\\n @if (labelText) {\\n @if (!labelHidden) {\\n <span class=\\\"sky-toggle-switch-label-text\\\">{{ labelText }}</span>\\n }\\n } @else {\\n <ng-content select=\\\"sky-toggle-switch-label\\\" />\\n }\\n </label>\\n }\\n <span class=\\\"sky-control-help-container\\\">\\n @if (labelText && (helpPopoverContent || helpKey)) {\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"labelText\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n />\\n }\\n <ng-content select=\\\".sky-control-help\\\" />\\n </span>\\n </span>\\n</span>\\n\", styles: [\".sky-toggle-switch:not(.sky-theme-modern *){--sky-override-toggle-switch-background-color: #eeeeef;--sky-override-toggle-switch-background-color-disabled: #cdcfd2;--sky-override-toggle-switch-background-color-selected: #c1e8fb;--sky-override-toggle-switch-border: 1px solid #cdcfd2;--sky-override-toggle-switch-border-color-active: #cdcfd2;--sky-override-toggle-switch-border-color-disabled: transparent;--sky-override-toggle-switch-border-color-focus: #1870B8;--sky-override-toggle-switch-border-color-hover: #00b4f1;--sky-override-toggle-switch-border-color-selected: #00b4f1;--sky-override-toggle-switch-border-radius: 24px;--sky-override-toggle-switch-border-width: 1px;--sky-override-toggle-switch-border-width-active: 1px;--sky-override-toggle-switch-border-width-disabled: 2px;--sky-override-toggle-switch-border-width-focus: 2px;--sky-override-toggle-switch-border-width-hover: 2px;--sky-override-toggle-switch-border-width-selected: 2px;--sky-override-toggle-switch-indicator-background-color: #ffffff;--sky-override-toggle-switch-indicator-background-color-disabled: #eeeeef;--sky-override-toggle-switch-indicator-border-radius: 100%;--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .75);--sky-override-toggle-switch-indicator-height: 22px;--sky-override-toggle-switch-indicator-left: 22px;--sky-override-toggle-switch-indicator-margin-left: -22px;--sky-override-toggle-switch-indicator-width: 22px;--sky-override-toggle-switch-label-color-disabled: var( --sky-text-color-default );--sky-override-toggle-switch-label-gap: 10px;--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-padding: 1px;--sky-override-toggle-switch-padding-active: 1px;--sky-override-toggle-switch-padding-disabled: 0;--sky-override-toggle-switch-padding-focus: 0;--sky-override-toggle-switch-padding-hover: 0;--sky-override-toggle-switch-padding-selected: 0;--sky-override-toggle-switch-pointer-disabled: default;--sky-override-toggle-switch-transition: none;--sky-override-toggle-switch-width: 46px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-toggle-switch{--sky-override-toggle-switch-background-color: var(--modern-color-white);--sky-override-toggle-switch-border-color-selected: var( --sky-color-border-selected );--sky-override-toggle-switch-box-shadow-focus: var(--sky-elevation-focus);--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .5);--sky-override-toggle-switch-label-color-disabled: var( --sky-color-text-default );--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-width: var(--modern-size-48)}.sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:var(--sky-override-toggle-switch-label-gap, var(--sky-space-gap-label-m))}.sky-toggle-switch .sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-switch{border:var(--sky-override-toggle-switch-border, var(--sky-border-width-input-base) solid var(--sky-color-border-switch-base));background-color:var(--sky-override-toggle-switch-background-color, var(--sky-background-input-base));padding:var(--sky-override-toggle-switch-padding, var(--sky-border-width-input-base));border-radius:var(--sky-override-toggle-switch-border-radius, calc(var(--sky-border-radius-thumb) + var(--sky-space-inset-thumb) * 2)/100%);flex:none;line-height:var(--sky-override-toggle-switch-line-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-width, calc(var(--sky-size-switch) * 2 - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:inline-block;transition:var(--sky-override-toggle-switch-transition, border-color .15s, box-shadow .15s)}.sky-toggle-switch .sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-focus, var(--sky-border-width-input-focus));border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-switch-focus));padding:var(--sky-override-toggle-switch-padding-focus, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-focus)))}.sky-toggle-switch .sky-toggle-switch-button:focus-visible:not(:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{box-shadow:var(--sky-override-toggle-switch-box-shadow-focus, none)}.sky-toggle-switch .sky-toggle-switch-button:active .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-active, var(--sky-border-width-input-active));border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-switch-active));padding:var(--sky-override-toggle-switch-padding-active, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-active)))}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-hover, var(--sky-border-width-input-hover));border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-switch-hover));padding:var(--sky-override-toggle-switch-padding-hover, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-selected, var(--sky-color-background-selected-heavy))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-selected, var(--sky-border-width-selected-s));border-color:var(--sky-override-toggle-switch-border-color-selected, var(--sky-color-border-switch-selected-base));padding:var(--sky-override-toggle-switch-padding-selected, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:focus-visible:not(:active) .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-switch-selected-focus))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:active .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-switch-selected-active))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:hover:not(:focus-visible,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-switch-selected-hover))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked.sky-toggle-switch-disabled .sky-toggle-switch-switch{border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-switch-selected-disabled))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-color-text-default)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-disabled, var(--sky-color-background-input-disabled));border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-switch-disabled));border-width:var(--sky-override-toggle-switch-border-width-disabled, var(--sky-border-width-input-disabled));padding:var(--sky-override-toggle-switch-padding-disabled, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-disabled)));cursor:var(--sky-override-toggle-switch-pointer-disabled, not-allowed)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled+span .sky-toggle-switch-label{color:var(--sky-override-toggle-switch-label-color-disabled, var(--sky-color-text-deemphasized))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:var(--sky-override-toggle-switch-indicator-background-color-disabled, var(--sky-color-background-thumb-disabled))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator{height:var(--sky-override-toggle-switch-indicator-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-indicator-width, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:block;position:relative;top:0;left:var(--sky-override-toggle-switch-indicator-left, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));margin-left:var(--sky-override-toggle-switch-indicator-margin-left, calc((var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)) * -1));border-radius:var(--sky-override-toggle-switch-indicator-border-radius, var(--sky-border-radius-thumb));box-shadow:var(--sky-override-toggle-switch-indicator-box-shadow, var(--sky-elevation-raised-100));background-color:var(--sky-override-toggle-switch-indicator-background-color, var(--sky-color-background-thumb-base))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyIdService }], propDecorators: { ariaLabel: [{\n type: Input\n }], checked: [{\n type: Input\n }], disabled: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], labelText: [{\n type: Input\n }], labelHidden: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], helpKey: [{\n type: Input\n }], toggleChange: [{\n type: Output\n }], labelComponents: [{\n type: ContentChildren,\n args: [SkyToggleSwitchLabelComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFHaEYsTUFBTSx3Q0FBd0MsR0FBUTtJQUNwRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBQ0YsTUFBTSwyQkFBMkIsR0FBRztJQUNsQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZE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QURsQixNQUFNO2dCQVNBLGVBQWU7c0JBRHJCLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UsIFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VG9nZ2xlU3dpdGNoTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3RvZ2dsZS1zd2l0Y2gtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRvZ2dsZVN3aXRjaENoYW5nZSB9IGZyb20gJy4vdHlwZXMvdG9nZ2xlLXN3aXRjaC1jaGFuZ2UnO1xuXG5jb25zdCBTS1lfVE9HR0xFX1NXSVRDSF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lUb2dnbGVTd2l0Y2hDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5jb25zdCBTS1lfVE9HR0xFX1NXSVRDSF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVRvZ2dsZVN3aXRjaENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRvZ2dsZS1zd2l0Y2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvZ2dsZS1zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU0tZX1RPR0dMRV9TV0lUQ0hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUixcbiAgICBTS1lfVE9HR0xFX1NXSVRDSF9WQUxJREFUT1IsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VG9nZ2xlU3dpdGNoQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIHRvZ2dsZSBzd2l0Y2guIFRoaXMgc2V0cyB0aGUgYGFyaWEtbGFiZWxgXG4gICAqIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVycyBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBVc2UgYSBjb250ZXh0LXNlbnNpdGl2ZSBsYWJlbCwgc3VjaCBhcyBcIkFjdGl2YXRlIGFubnVhbCBmdW5kcmFpc2VyXCIgZm9yIGEgdG9nZ2xlIHN3aXRjaCB0aGF0IGFjdGl2YXRlcyBhbmQgZGVhY3RpdmF0ZXMgYW4gYW5udWFsIGZ1bmRyYWlzZXIuIENvbnRleHQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgaWYgbXVsdGlwbGUgdG9nZ2xlIHN3aXRjaGVzIGFyZSBpbiBjbG9zZSBwcm94aW1pdHkuXG4gICAqIFdoZW4gdGhlIGBza3ktdG9nZ2xlLXN3aXRjaC1sYWJlbGAgY29tcG9uZW50IGRpc3BsYXlzIGEgdmlzaWJsZSBsYWJlbCwgdGhpcyBwcm9wZXJ0eSBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB0aGF0IGxhYmVsIHJlcXVpcmVzIGV4dHJhIGNvbnRleHQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGBsYWJlbFRleHRgIGlucHV0IGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFMYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFMYWJlbCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2xvZ1N2Yy5kZXByZWNhdGVkKCdTa3lUb2dnbGVTd2l0Y2hDb21wb25lbnQuYXJpYUxhYmVsJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjpcbiAgICAgICAgICAnVG8gYWRkIGFuIEFSSUEgbGFiZWwgdG8gdGhlIHRvZ2dsZSBzd2l0Y2gsIHVzZSB0aGUgYGxhYmVsVGV4dGAgaW5wdXQgaW5zdGVhZCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYUxhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRvZ2dsZSBzd2l0Y2ggaXMgc2VsZWN0ZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjaGVja2VkID0gISF2YWx1ZTtcbiAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy4jX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuI19jaGVja2VkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKGNoZWNrZWQpO1xuXG4gICAgICAvLyBEbyBub3QgbWFyayB0aGUgZmllbGQgYXMgXCJkaXJ0eVwiXG4gICAgICAvLyBpZiB0aGUgZmllbGQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCBhIHZhbHVlLlxuICAgICAgaWYgKHRoaXMuI2lzRmlyc3RDaGFuZ2UgJiYgdGhpcy4jY29udHJvbCkge1xuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIHRoaXMuI2lzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgdG9nZ2xlIHN3aXRjaCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0b2dnbGUgc3dpdGNoLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgaW5kZXggZm9yIHRoZSB0b2dnbGUgc3dpdGNoLiBJZiBub3QgZGVmaW5lZCwgdGhlIGluZGV4IGlzIHNldCB0byB0aGUgcG9zaXRpb25cbiAgICogb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggb24gbG9hZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgdG9nZ2xlIHN3aXRjaCdzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgYGxhYmVsVGV4dGAgZnJvbSB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgdG9nZ2xlIHN3aXRjaCBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGNoZWNrZWQgc3RhdGUgb2YgYSB0b2dnbGUgc3dpdGNoIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHRvZ2dsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5VG9nZ2xlU3dpdGNoQ2hhbmdlPigpO1xuXG4gIHB1YmxpYyBoYXNMYWJlbENvbXBvbmVudCA9IGZhbHNlO1xuICBwdWJsaWMgbGFiZWxJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBlbmFibGVJbmRpY2F0b3JBbmltYXRpb24gPSBmYWxzZTtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVRvZ2dsZVN3aXRjaExhYmVsQ29tcG9uZW50KVxuICBwdWJsaWMgbGFiZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8U2t5VG9nZ2xlU3dpdGNoTGFiZWxDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gICNjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG4gICNpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcbiAgcmVhZG9ubHkgI2xvZ1N2YyA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfY2hlY2tlZCA9IGZhbHNlO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBpZFNlcnZpY2U6IFNreUlkU2VydmljZSkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy5sYWJlbElkID0gaWRTZXJ2aWNlLmdlbmVyYXRlSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5sYWJlbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuaGFzTGFiZWxDb21wb25lbnQgPSB0aGlzLmxhYmVsQ29tcG9uZW50cy5sZW5ndGggPiAwO1xuXG4gICAgICB0aGlzLmxhYmVsQ29tcG9uZW50cy5jaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgobmV3TGFiZWxDb21wb25lbnRzKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYXNMYWJlbENvbXBvbmVudCA9IG5ld0xhYmVsQ29tcG9uZW50cy5sZW5ndGggPiAwO1xuICAgICAgICAgIC8vIEFsbG93IHRoZSB0ZW1wbGF0ZSB0byByZWxvYWQgYW55IEFSSUEgYXR0cmlidXRlcyB0aGF0IGFyZSByZWx5aW5nIG9uIHRoZVxuICAgICAgICAgIC8vIGxhYmVsIGNvbXBvbmVudCBleGlzdGluZyBpbiB0aGUgRE9NLlxuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBXYWl0IGZvciB0aGUgdmlldyB0byByZW5kZXIgYmVmb3JlIGFwcGx5aW5nIGFuaW1hdGlvbiBlZmZlY3RzLlxuICAgIC8vIChTb21lIGJyb3dzZXJzLCBzdWNoIGFzIEZpcmVmb3gsIGFwcGx5IHRoZSBhbmltYXRpb24gdG9vIGVhcmx5LilcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZW5hYmxlSW5kaWNhdG9yQW5pbWF0aW9uID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgdGhpcy4jY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uQnV0dG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuI3RvZ2dsZUNoZWNrZWQoKTtcbiAgICB0aGlzLiNlbWl0Q2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJ1dHRvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAjb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgI29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICNlbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UodGhpcy4jX2NoZWNrZWQpO1xuICAgIHRoaXMudG9nZ2xlQ2hhbmdlLmVtaXQoe1xuICAgICAgY2hlY2tlZDogdGhpcy4jX2NoZWNrZWQsXG4gICAgfSk7XG4gIH1cblxuICAjdG9nZ2xlQ2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cInNreS10b2dnbGUtc3dpdGNoXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktdG9nZ2xlLXN3aXRjaC13aXRoLWxhYmVsJzogaGFzTGFiZWxDb21wb25lbnQgfHwgbGFiZWxUZXh0XG4gIH1cIlxuPlxuICA8YnV0dG9uXG4gICAgI3RvZ2dsZT1cInNreUlkXCJcbiAgICBjbGFzcz1cInNreS10b2dnbGUtc3dpdGNoLWJ1dHRvblwiXG4gICAgcm9sZT1cInN3aXRjaFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFRleHQgfHwgYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICFhcmlhTGFiZWwgJiYgKGhhc0xhYmVsQ29tcG9uZW50IHx8IGxhYmVsVGV4dCkgPyBsYWJlbElkIDogbnVsbFxuICAgIFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRvZ2dsZS1zd2l0Y2gtY2hlY2tlZCc6IGNoZWNrZWQsXG4gICAgICAnc2t5LXRvZ2dsZS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gICAgKGJsdXIpPVwib25CdXR0b25CbHVyKClcIlxuICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cInNreS10b2dnbGUtc3dpdGNoLXN3aXRjaFwiPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJza3ktdG9nZ2xlLXN3aXRjaC1pbmRpY2F0b3JcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS10b2dnbGUtc3dpdGNoLXRyYW5zaXRpb24nOiBlbmFibGVJbmRpY2F0b3JBbmltYXRpb25cbiAgICAgICAgfVwiXG4gICAgICAgID4mbmJzcDs8L2lcbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG4gIDxzcGFuPlxuICAgIEBpZiAoaGFzTGFiZWxDb21wb25lbnQgfHwgbGFiZWxUZXh0KSB7XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJza3ktdG9nZ2xlLXN3aXRjaC1sYWJlbFwiXG4gICAgICAgIFtmb3JdPVwidG9nZ2xlLmlkXCJcbiAgICAgICAgW2F0dHIuaWRdPVwibGFiZWxJZFwiXG4gICAgICA+XG4gICAgICAgIEBpZiAobGFiZWxUZXh0KSB7XG4gICAgICAgICAgQGlmICghbGFiZWxIaWRkZW4pIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXRvZ2dsZS1zd2l0Y2gtbGFiZWwtdGV4dFwiPnt7IGxhYmVsVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10b2dnbGUtc3dpdGNoLWxhYmVsXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgQGlmIChsYWJlbFRleHQgJiYgKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSkge1xuICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+XG4gICAgPC9zcGFuPlxuICA8L3NwYW4+XG48L3NwYW4+XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule, SkyTrimModule } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport { SkyToggleSwitchComponent } from './toggle-switch.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyToggleSwitchModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchModule, declarations: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent], imports: [CommonModule,\n FormsModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyTrimModule], exports: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchModule, imports: [CommonModule,\n FormsModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyTrimModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyToggleSwitchModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n imports: [\n CommonModule,\n FormsModule,\n SkyHelpInlineModule,\n SkyIdModule,\n SkyTrimModule,\n ],\n exports: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXN3aXRjaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3RvZ2dsZS1zd2l0Y2gvdG9nZ2xlLXN3aXRjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXpELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQWFyRSxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixpQkFWakIsNkJBQTZCLEVBQUUsd0JBQXdCLGFBRXBFLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxhQUFhLGFBRUwsNkJBQTZCLEVBQUUsd0JBQXdCOytHQUV0RCxxQkFBcUIsWUFSOUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGFBQWE7OzJGQUlKLHFCQUFxQjtrQkFYakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSx3QkFBd0IsQ0FBQztvQkFDdkUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSx3QkFBd0IsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreVRyaW1Nb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcblxuaW1wb3J0IHsgU2t5VG9nZ2xlU3dpdGNoTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3RvZ2dsZS1zd2l0Y2gtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRvZ2dsZVN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lUb2dnbGVTd2l0Y2hMYWJlbENvbXBvbmVudCwgU2t5VG9nZ2xlU3dpdGNoQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreVRyaW1Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTa3lUb2dnbGVTd2l0Y2hMYWJlbENvbXBvbmVudCwgU2t5VG9nZ2xlU3dpdGNoQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VG9nZ2xlU3dpdGNoTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL3NreXV4LWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2.SkyCharacterCounterScreenReaderPipe","i3","i1","numberAttribute4","i2","i3.SkyFormErrorsComponent","i4","i5","i6","i7.SkyCheckboxLabelTextLabelComponent","MAX_FILE_SIZE_DEFAULT","MIN_FILE_SIZE_DEFAULT","i1.SkyFileAttachmentService","i2.SkyFileItemService","i7","i8","i9","takeUntil","i2.SkyCharacterCounterIndicatorComponent","i7.SkyInputBoxHintTextPipe","i7.SkyInputBoxComponent","i8.SkyInputBoxControlDirective","i1.SkyFileItemService","i1.SkyRadioGroupIdService","i5.SkyFormErrorsComponent","i1.SkySelectionBoxAdapterService","i2.SkySelectionBoxAdapterService"],"mappings":"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"}