@impartner/design-components 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/fesm2022/impartner-design-components.mjs +1668 -973
- package/fesm2022/impartner-design-components.mjs.map +1 -1
- package/index.d.ts +3634 -3
- package/package.json +9 -12
- package/constants/fontawesome-icons.d.ts +0 -6
- package/constants/index.d.ts +0 -1
- package/esm2022/constants/fontawesome-icons.mjs +0 -3012
- package/esm2022/constants/index.mjs +0 -2
- package/esm2022/impartner-design-components.mjs +0 -5
- package/esm2022/lib/alert/alert.component.mjs +0 -106
- package/esm2022/lib/alert/alert.module.mjs +0 -19
- package/esm2022/lib/alert/index.mjs +0 -4
- package/esm2022/lib/alert/theme/alert-theme.mjs +0 -2
- package/esm2022/lib/alert/theme/index.mjs +0 -2
- package/esm2022/lib/avatar/avatar.component.mjs +0 -48
- package/esm2022/lib/avatar/avatar.module.mjs +0 -19
- package/esm2022/lib/avatar/index.mjs +0 -3
- package/esm2022/lib/avatar-group/avatar-group.component.mjs +0 -16
- package/esm2022/lib/avatar-group/avatar-group.module.mjs +0 -19
- package/esm2022/lib/avatar-group/index.mjs +0 -3
- package/esm2022/lib/backdrop/backdrop.component.mjs +0 -52
- package/esm2022/lib/backdrop/backdrop.module.mjs +0 -19
- package/esm2022/lib/backdrop/index.mjs +0 -3
- package/esm2022/lib/badge/badge.component.mjs +0 -121
- package/esm2022/lib/badge/badge.module.mjs +0 -20
- package/esm2022/lib/badge/index.mjs +0 -4
- package/esm2022/lib/badge/types/badge-icon.mjs +0 -2
- package/esm2022/lib/badge/types/badge-size.mjs +0 -7
- package/esm2022/lib/badge/types/index.mjs +0 -2
- package/esm2022/lib/branding/branded.directive.mjs +0 -19
- package/esm2022/lib/branding/branding.module.mjs +0 -19
- package/esm2022/lib/branding/index.mjs +0 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item.component.mjs +0 -25
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -37
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -19
- package/esm2022/lib/breadcrumb/index.mjs +0 -4
- package/esm2022/lib/button/button.component.mjs +0 -116
- package/esm2022/lib/button/button.module.mjs +0 -21
- package/esm2022/lib/button/index.mjs +0 -4
- package/esm2022/lib/button/themes/button-theme.mjs +0 -2
- package/esm2022/lib/button/themes/index.mjs +0 -2
- package/esm2022/lib/button-group/button-group.component.mjs +0 -52
- package/esm2022/lib/button-group/button-group.module.mjs +0 -20
- package/esm2022/lib/button-group/index.mjs +0 -3
- package/esm2022/lib/card-heading/card-heading.component.mjs +0 -30
- package/esm2022/lib/card-heading/card-heading.module.mjs +0 -19
- package/esm2022/lib/card-heading/index.mjs +0 -3
- package/esm2022/lib/data-card/data-card.component.mjs +0 -123
- package/esm2022/lib/data-card/data-card.module.mjs +0 -21
- package/esm2022/lib/data-card/index.mjs +0 -3
- package/esm2022/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.mjs +0 -105
- package/esm2022/lib/datetime-picker/components/datepicker-nav/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.mjs +0 -33
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +0 -369
- package/esm2022/lib/datetime-picker/components/datetime-picker/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.mjs +0 -367
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.mjs +0 -68
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/index.mjs +0 -6
- package/esm2022/lib/datetime-picker/constants/datetime-picker-defaults.mjs +0 -12
- package/esm2022/lib/datetime-picker/constants/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/datetime-picker.module.mjs +0 -22
- package/esm2022/lib/datetime-picker/index.mjs +0 -4
- package/esm2022/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.mjs +0 -40
- package/esm2022/lib/datetime-picker/services/datetime-formatter/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/services/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/types/datetime-picker-value.interface.mjs +0 -2
- package/esm2022/lib/datetime-picker/types/index.mjs +0 -2
- package/esm2022/lib/design-components.module.mjs +0 -132
- package/esm2022/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +0 -22
- package/esm2022/lib/dropdown/components/index.mjs +0 -2
- package/esm2022/lib/dropdown/dropdown.component.mjs +0 -143
- package/esm2022/lib/dropdown/dropdown.module.mjs +0 -21
- package/esm2022/lib/dropdown/index.mjs +0 -5
- package/esm2022/lib/dropdown/types/dropdown-position.mjs +0 -2
- package/esm2022/lib/dropdown/types/index.mjs +0 -2
- package/esm2022/lib/file-upload/directives/file-drop.directive.mjs +0 -50
- package/esm2022/lib/file-upload/directives/index.mjs +0 -2
- package/esm2022/lib/file-upload/file-upload.component.mjs +0 -335
- package/esm2022/lib/file-upload/file-upload.module.mjs +0 -38
- package/esm2022/lib/file-upload/index.mjs +0 -5
- package/esm2022/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +0 -23
- package/esm2022/lib/file-upload/pipes/index.mjs +0 -2
- package/esm2022/lib/form-field/component/directives/corner-hint.directive.mjs +0 -15
- package/esm2022/lib/form-field/component/directives/error.directive.mjs +0 -27
- package/esm2022/lib/form-field/component/directives/form-root.directive.mjs +0 -93
- package/esm2022/lib/form-field/component/directives/hint.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/index.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/label.directive.mjs +0 -15
- package/esm2022/lib/form-field/component/directives/prefix.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/suffix.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/form-field.component.mjs +0 -131
- package/esm2022/lib/form-field/component/form-field.module.mjs +0 -24
- package/esm2022/lib/form-field/component/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/checkbox/checkbox.component.mjs +0 -345
- package/esm2022/lib/form-field/controls/checkbox/checkbox.module.mjs +0 -16
- package/esm2022/lib/form-field/controls/checkbox/index.mjs +0 -3
- package/esm2022/lib/form-field/controls/index.mjs +0 -6
- package/esm2022/lib/form-field/controls/input/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +0 -234
- package/esm2022/lib/form-field/controls/radio/index.mjs +0 -6
- package/esm2022/lib/form-field/controls/radio/injection-tokens.mjs +0 -4
- package/esm2022/lib/form-field/controls/radio/interfaces/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -11
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -262
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -290
- package/esm2022/lib/form-field/controls/radio/radio.module.mjs +0 -17
- package/esm2022/lib/form-field/controls/select/index.mjs +0 -9
- package/esm2022/lib/form-field/controls/select/interfaces/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/interfaces/select-option.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +0 -44
- package/esm2022/lib/form-field/controls/select/option-display/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option-display/select-option-display.component.mjs +0 -162
- package/esm2022/lib/form-field/controls/select/option-group/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option-group/select-option-group.component.mjs +0 -35
- package/esm2022/lib/form-field/controls/select/option-parent.mjs +0 -4
- package/esm2022/lib/form-field/controls/select/select-model.mjs +0 -150
- package/esm2022/lib/form-field/controls/select/select.component.mjs +0 -725
- package/esm2022/lib/form-field/controls/select/select.module.mjs +0 -37
- package/esm2022/lib/form-field/controls/select/value-tags-display/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.mjs +0 -91
- package/esm2022/lib/form-field/controls/shared/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/shared/toggle/components/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +0 -17
- package/esm2022/lib/form-field/controls/shared/toggle/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -112
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.module.mjs +0 -18
- package/esm2022/lib/form-field/controls/tag-select/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/tag-select/tag-select.component.mjs +0 -146
- package/esm2022/lib/form-field/form-field-errors.mjs +0 -5
- package/esm2022/lib/form-field/impdc-forms.mjs +0 -7
- package/esm2022/lib/form-field/impdc-forms.module.mjs +0 -53
- package/esm2022/lib/form-field/index.mjs +0 -2
- package/esm2022/lib/form-field/services/error-state-matcher.service.mjs +0 -28
- package/esm2022/lib/form-field/services/index.mjs +0 -3
- package/esm2022/lib/form-field/services/unique-selection-dispatcher.service.mjs +0 -48
- package/esm2022/lib/form-field/shared/constructors.type.mjs +0 -2
- package/esm2022/lib/form-field/shared/disabled.mixin.mjs +0 -15
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +0 -24
- package/esm2022/lib/form-field/shared/form-field-control.mjs +0 -10
- package/esm2022/lib/form-field/shared/index.mjs +0 -5
- package/esm2022/lib/form-field/shared/tab-index.mixin.mjs +0 -19
- package/esm2022/lib/icon/icon.component.mjs +0 -83
- package/esm2022/lib/icon/icon.module.mjs +0 -19
- package/esm2022/lib/icon/index.mjs +0 -3
- package/esm2022/lib/index.mjs +0 -29
- package/esm2022/lib/modal/index.mjs +0 -4
- package/esm2022/lib/modal/modal.component.mjs +0 -266
- package/esm2022/lib/modal/modal.module.mjs +0 -37
- package/esm2022/lib/modal/types/index.mjs +0 -3
- package/esm2022/lib/modal/types/modal-component-sizes.mjs +0 -9
- package/esm2022/lib/modal/types/modal-theme.mjs +0 -12
- package/esm2022/lib/pagination/index.mjs +0 -3
- package/esm2022/lib/pagination/pagination.component.mjs +0 -176
- package/esm2022/lib/pagination/pagination.module.mjs +0 -41
- package/esm2022/lib/progress-bar/index.mjs +0 -3
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -51
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -18
- package/esm2022/lib/scrollable/index.mjs +0 -3
- package/esm2022/lib/scrollable/scrollable.component.mjs +0 -186
- package/esm2022/lib/scrollable/scrollable.module.mjs +0 -21
- package/esm2022/lib/select-icon/index.mjs +0 -3
- package/esm2022/lib/select-icon/select-icon.component.mjs +0 -308
- package/esm2022/lib/select-icon/select-icon.module.mjs +0 -39
- package/esm2022/lib/size-detection/directive/element-size.interface.mjs +0 -2
- package/esm2022/lib/size-detection/directive/index.mjs +0 -3
- package/esm2022/lib/size-detection/directive/size-detector.directive.mjs +0 -43
- package/esm2022/lib/size-detection/index.mjs +0 -3
- package/esm2022/lib/size-detection/size-detection.module.mjs +0 -18
- package/esm2022/lib/spinner/index.mjs +0 -3
- package/esm2022/lib/spinner/spinner.component.mjs +0 -24
- package/esm2022/lib/spinner/spinner.module.mjs +0 -18
- package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +0 -16
- package/esm2022/lib/table/components/column-heading/column-heading.component.mjs +0 -38
- package/esm2022/lib/table/components/index.mjs +0 -4
- package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +0 -61
- package/esm2022/lib/table/constants/index.mjs +0 -3
- package/esm2022/lib/table/constants/public-table.constants.mjs +0 -2
- package/esm2022/lib/table/constants/table.constants.mjs +0 -23
- package/esm2022/lib/table/containers/index.mjs +0 -2
- package/esm2022/lib/table/containers/table.component.mjs +0 -474
- package/esm2022/lib/table/directives/collapse-monitor.directive.mjs +0 -42
- package/esm2022/lib/table/directives/index.mjs +0 -4
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +0 -46
- package/esm2022/lib/table/directives/table.directive.mjs +0 -55
- package/esm2022/lib/table/enumerations/index.mjs +0 -2
- package/esm2022/lib/table/enumerations/table-column-type.mjs +0 -21
- package/esm2022/lib/table/helpers/index.mjs +0 -2
- package/esm2022/lib/table/helpers/table-theme.helper.mjs +0 -31
- package/esm2022/lib/table/index.mjs +0 -8
- package/esm2022/lib/table/interfaces/cell-renderer.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/collapsible-row-content-context.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -2
- package/esm2022/lib/table/interfaces/index.mjs +0 -13
- package/esm2022/lib/table/interfaces/sort-by-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-cell-option.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-event-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-collapse-change.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-item.interface.mjs +0 -2
- package/esm2022/lib/table/table.module.mjs +0 -101
- package/esm2022/lib/tag/index.mjs +0 -2
- package/esm2022/lib/tag/tag.component.mjs +0 -104
- package/esm2022/lib/text-highlight/index.mjs +0 -3
- package/esm2022/lib/text-highlight/text-highlight.component.mjs +0 -101
- package/esm2022/lib/text-highlight/text-highlight.module.mjs +0 -17
- package/esm2022/public-api.mjs +0 -9
- package/esm2022/services/index.mjs +0 -2
- package/esm2022/services/interaction.service.mjs +0 -88
- package/esm2022/types/component-size.mjs +0 -12
- package/esm2022/types/component-theme.mjs +0 -22
- package/esm2022/types/index.mjs +0 -3
- package/esm2022/utilities/boolean-props.mjs +0 -7
- package/esm2022/utilities/dc.mjs +0 -9
- package/esm2022/utilities/index.mjs +0 -6
- package/esm2022/utilities/lc.mjs +0 -9
- package/esm2022/utilities/number-props.mjs +0 -18
- package/esm2022/utilities/sanitize.mjs +0 -7
- package/lib/alert/alert.component.d.ts +0 -50
- package/lib/alert/alert.module.d.ts +0 -9
- package/lib/alert/index.d.ts +0 -3
- package/lib/alert/theme/alert-theme.d.ts +0 -1
- package/lib/alert/theme/index.d.ts +0 -1
- package/lib/avatar/avatar.component.d.ts +0 -28
- package/lib/avatar/avatar.module.d.ts +0 -9
- package/lib/avatar/index.d.ts +0 -2
- package/lib/avatar-group/avatar-group.component.d.ts +0 -10
- package/lib/avatar-group/avatar-group.module.d.ts +0 -9
- package/lib/avatar-group/index.d.ts +0 -2
- package/lib/backdrop/backdrop.component.d.ts +0 -24
- package/lib/backdrop/backdrop.module.d.ts +0 -9
- package/lib/backdrop/index.d.ts +0 -2
- package/lib/badge/badge.component.d.ts +0 -63
- package/lib/badge/badge.module.d.ts +0 -10
- package/lib/badge/index.d.ts +0 -3
- package/lib/badge/types/badge-icon.d.ts +0 -1
- package/lib/badge/types/badge-size.d.ts +0 -6
- package/lib/badge/types/index.d.ts +0 -2
- package/lib/branding/branded.directive.d.ts +0 -6
- package/lib/branding/branding.module.d.ts +0 -9
- package/lib/branding/index.d.ts +0 -2
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -7
- package/lib/breadcrumb/breadcrumb.component.d.ts +0 -21
- package/lib/breadcrumb/breadcrumb.module.d.ts +0 -9
- package/lib/breadcrumb/index.d.ts +0 -3
- package/lib/button/button.component.d.ts +0 -47
- package/lib/button/button.module.d.ts +0 -11
- package/lib/button/index.d.ts +0 -3
- package/lib/button/themes/button-theme.d.ts +0 -1
- package/lib/button/themes/index.d.ts +0 -1
- package/lib/button-group/button-group.component.d.ts +0 -22
- package/lib/button-group/button-group.module.d.ts +0 -10
- package/lib/button-group/index.d.ts +0 -2
- package/lib/card-heading/card-heading.component.d.ts +0 -18
- package/lib/card-heading/card-heading.module.d.ts +0 -9
- package/lib/card-heading/index.d.ts +0 -2
- package/lib/data-card/data-card.component.d.ts +0 -68
- package/lib/data-card/data-card.module.d.ts +0 -11
- package/lib/data-card/index.d.ts +0 -2
- package/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.d.ts +0 -31
- package/lib/datetime-picker/components/datepicker-nav/index.d.ts +0 -1
- package/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.d.ts +0 -15
- package/lib/datetime-picker/components/datepicker-template-host/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +0 -155
- package/lib/datetime-picker/components/datetime-picker/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.d.ts +0 -160
- package/lib/datetime-picker/components/datetime-picker-input/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.d.ts +0 -24
- package/lib/datetime-picker/components/datetime-picker-input-footer/index.d.ts +0 -1
- package/lib/datetime-picker/components/index.d.ts +0 -5
- package/lib/datetime-picker/constants/datetime-picker-defaults.d.ts +0 -4
- package/lib/datetime-picker/constants/index.d.ts +0 -1
- package/lib/datetime-picker/datetime-picker.module.d.ts +0 -8
- package/lib/datetime-picker/index.d.ts +0 -4
- package/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.d.ts +0 -20
- package/lib/datetime-picker/services/datetime-formatter/index.d.ts +0 -1
- package/lib/datetime-picker/services/index.d.ts +0 -1
- package/lib/datetime-picker/types/datetime-picker-value.interface.d.ts +0 -5
- package/lib/datetime-picker/types/index.d.ts +0 -1
- package/lib/design-components.module.d.ts +0 -24
- package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +0 -11
- package/lib/dropdown/components/index.d.ts +0 -1
- package/lib/dropdown/dropdown.component.d.ts +0 -67
- package/lib/dropdown/dropdown.module.d.ts +0 -11
- package/lib/dropdown/index.d.ts +0 -4
- package/lib/dropdown/types/dropdown-position.d.ts +0 -1
- package/lib/dropdown/types/index.d.ts +0 -1
- package/lib/file-upload/directives/file-drop.directive.d.ts +0 -11
- package/lib/file-upload/directives/index.d.ts +0 -1
- package/lib/file-upload/file-upload.component.d.ts +0 -105
- package/lib/file-upload/file-upload.module.d.ts +0 -14
- package/lib/file-upload/index.d.ts +0 -4
- package/lib/file-upload/pipes/human-readable-byte-size.pipe.d.ts +0 -7
- package/lib/file-upload/pipes/index.d.ts +0 -1
- package/lib/form-field/component/directives/corner-hint.directive.d.ts +0 -5
- package/lib/form-field/component/directives/error.directive.d.ts +0 -8
- package/lib/form-field/component/directives/form-root.directive.d.ts +0 -26
- package/lib/form-field/component/directives/hint.directive.d.ts +0 -6
- package/lib/form-field/component/directives/index.d.ts +0 -15
- package/lib/form-field/component/directives/label.directive.d.ts +0 -5
- package/lib/form-field/component/directives/prefix.directive.d.ts +0 -9
- package/lib/form-field/component/directives/suffix.directive.d.ts +0 -9
- package/lib/form-field/component/form-field.component.d.ts +0 -37
- package/lib/form-field/component/form-field.module.d.ts +0 -14
- package/lib/form-field/component/index.d.ts +0 -3
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +0 -137
- package/lib/form-field/controls/checkbox/checkbox.module.d.ts +0 -7
- package/lib/form-field/controls/checkbox/index.d.ts +0 -2
- package/lib/form-field/controls/index.d.ts +0 -5
- package/lib/form-field/controls/input/index.d.ts +0 -1
- package/lib/form-field/controls/input/input.directive.d.ts +0 -84
- package/lib/form-field/controls/radio/index.d.ts +0 -5
- package/lib/form-field/controls/radio/injection-tokens.d.ts +0 -4
- package/lib/form-field/controls/radio/interfaces/index.d.ts +0 -3
- package/lib/form-field/controls/radio/interfaces/radio-button.interface.d.ts +0 -6
- package/lib/form-field/controls/radio/interfaces/radio-change-event.interface.d.ts +0 -12
- package/lib/form-field/controls/radio/interfaces/radio-group.interface.d.ts +0 -13
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +0 -98
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +0 -104
- package/lib/form-field/controls/radio/radio.module.d.ts +0 -8
- package/lib/form-field/controls/select/index.d.ts +0 -9
- package/lib/form-field/controls/select/interfaces/index.d.ts +0 -1
- package/lib/form-field/controls/select/interfaces/select-option.interface.d.ts +0 -6
- package/lib/form-field/controls/select/option/index.d.ts +0 -1
- package/lib/form-field/controls/select/option/select-option.component.d.ts +0 -21
- package/lib/form-field/controls/select/option-display/index.d.ts +0 -1
- package/lib/form-field/controls/select/option-display/select-option-display.component.d.ts +0 -64
- package/lib/form-field/controls/select/option-group/index.d.ts +0 -1
- package/lib/form-field/controls/select/option-group/select-option-group.component.d.ts +0 -11
- package/lib/form-field/controls/select/option-parent.d.ts +0 -16
- package/lib/form-field/controls/select/select-model.d.ts +0 -36
- package/lib/form-field/controls/select/select.component.d.ts +0 -232
- package/lib/form-field/controls/select/select.module.d.ts +0 -10
- package/lib/form-field/controls/select/value-tags-display/index.d.ts +0 -1
- package/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.d.ts +0 -46
- package/lib/form-field/controls/shared/index.d.ts +0 -1
- package/lib/form-field/controls/shared/toggle/components/index.d.ts +0 -1
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +0 -6
- package/lib/form-field/controls/shared/toggle/index.d.ts +0 -3
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +0 -29
- package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +0 -9
- package/lib/form-field/controls/tag-select/index.d.ts +0 -1
- package/lib/form-field/controls/tag-select/tag-select.component.d.ts +0 -43
- package/lib/form-field/form-field-errors.d.ts +0 -2
- package/lib/form-field/impdc-forms.d.ts +0 -6
- package/lib/form-field/impdc-forms.module.d.ts +0 -13
- package/lib/form-field/index.d.ts +0 -1
- package/lib/form-field/services/error-state-matcher.service.d.ts +0 -12
- package/lib/form-field/services/index.d.ts +0 -2
- package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +0 -29
- package/lib/form-field/shared/constructors.type.d.ts +0 -7
- package/lib/form-field/shared/disabled.mixin.d.ts +0 -10
- package/lib/form-field/shared/error-state.mixin.d.ts +0 -31
- package/lib/form-field/shared/form-field-control.d.ts +0 -24
- package/lib/form-field/shared/index.d.ts +0 -5
- package/lib/form-field/shared/tab-index.mixin.d.ts +0 -13
- package/lib/icon/icon.component.d.ts +0 -36
- package/lib/icon/icon.module.d.ts +0 -9
- package/lib/icon/index.d.ts +0 -2
- package/lib/index.d.ts +0 -28
- package/lib/modal/index.d.ts +0 -3
- package/lib/modal/modal.component.d.ts +0 -116
- package/lib/modal/modal.module.d.ts +0 -13
- package/lib/modal/types/index.d.ts +0 -2
- package/lib/modal/types/modal-component-sizes.d.ts +0 -3
- package/lib/modal/types/modal-theme.d.ts +0 -7
- package/lib/pagination/index.d.ts +0 -2
- package/lib/pagination/pagination.component.d.ts +0 -58
- package/lib/pagination/pagination.module.d.ts +0 -14
- package/lib/progress-bar/index.d.ts +0 -2
- package/lib/progress-bar/progress-bar.component.d.ts +0 -31
- package/lib/progress-bar/progress-bar.module.d.ts +0 -8
- package/lib/scrollable/index.d.ts +0 -2
- package/lib/scrollable/scrollable.component.d.ts +0 -41
- package/lib/scrollable/scrollable.module.d.ts +0 -11
- package/lib/select-icon/index.d.ts +0 -2
- package/lib/select-icon/select-icon.component.d.ts +0 -123
- package/lib/select-icon/select-icon.module.d.ts +0 -12
- package/lib/size-detection/directive/element-size.interface.d.ts +0 -4
- package/lib/size-detection/directive/index.d.ts +0 -2
- package/lib/size-detection/directive/size-detector.directive.d.ts +0 -14
- package/lib/size-detection/index.d.ts +0 -3
- package/lib/size-detection/size-detection.module.d.ts +0 -8
- package/lib/spinner/index.d.ts +0 -2
- package/lib/spinner/spinner.component.d.ts +0 -13
- package/lib/spinner/spinner.module.d.ts +0 -8
- package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +0 -10
- package/lib/table/components/column-heading/column-heading.component.d.ts +0 -14
- package/lib/table/components/index.d.ts +0 -3
- package/lib/table/components/row-actions/row-actions.component.d.ts +0 -21
- package/lib/table/constants/index.d.ts +0 -2
- package/lib/table/constants/public-table.constants.d.ts +0 -1
- package/lib/table/constants/table.constants.d.ts +0 -9
- package/lib/table/containers/index.d.ts +0 -1
- package/lib/table/containers/table.component.d.ts +0 -178
- package/lib/table/directives/collapse-monitor.directive.d.ts +0 -12
- package/lib/table/directives/index.d.ts +0 -3
- package/lib/table/directives/table-inject-component.directive.d.ts +0 -16
- package/lib/table/directives/table.directive.d.ts +0 -23
- package/lib/table/enumerations/index.d.ts +0 -1
- package/lib/table/enumerations/table-column-type.d.ts +0 -19
- package/lib/table/helpers/index.d.ts +0 -1
- package/lib/table/helpers/table-theme.helper.d.ts +0 -7
- package/lib/table/index.d.ts +0 -7
- package/lib/table/interfaces/cell-renderer.interface.d.ts +0 -13
- package/lib/table/interfaces/collapsible-row-content-context.interface.d.ts +0 -39
- package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +0 -3
- package/lib/table/interfaces/index.d.ts +0 -12
- package/lib/table/interfaces/sort-by-payload.interface.d.ts +0 -11
- package/lib/table/interfaces/table-cell-option.interface.d.ts +0 -4
- package/lib/table/interfaces/table-column-defs.type.d.ts +0 -53
- package/lib/table/interfaces/table-event-payload.interface.d.ts +0 -13
- package/lib/table/interfaces/table-row-action-payload.interface.d.ts +0 -13
- package/lib/table/interfaces/table-row-action.interface.d.ts +0 -17
- package/lib/table/interfaces/table-row-collapse-change.interface.d.ts +0 -11
- package/lib/table/interfaces/table-row-item.interface.d.ts +0 -8
- package/lib/table/table.module.d.ts +0 -24
- package/lib/tag/index.d.ts +0 -1
- package/lib/tag/tag.component.d.ts +0 -54
- package/lib/text-highlight/index.d.ts +0 -2
- package/lib/text-highlight/text-highlight.component.d.ts +0 -37
- package/lib/text-highlight/text-highlight.module.d.ts +0 -8
- package/public-api.d.ts +0 -4
- package/services/index.d.ts +0 -1
- package/services/interaction.service.d.ts +0 -28
- package/types/component-size.d.ts +0 -12
- package/types/component-theme.d.ts +0 -12
- package/types/index.d.ts +0 -2
- package/utilities/boolean-props.d.ts +0 -8
- package/utilities/dc.d.ts +0 -6
- package/utilities/index.d.ts +0 -5
- package/utilities/lc.d.ts +0 -6
- package/utilities/number-props.d.ts +0 -15
- package/utilities/sanitize.d.ts +0 -1
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @angular-eslint/no-conflicting-lifecycle */
|
|
2
|
-
import { Directive, Inject, Input, Optional, Self } from '@angular/core';
|
|
3
|
-
import { Validators } from '@angular/forms';
|
|
4
|
-
import { nanoid } from 'nanoid';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import { coerceBooleanPropertyValue } from '../../../../utilities';
|
|
7
|
-
import { IMPDC_FORM_ROOT } from '../../component';
|
|
8
|
-
import { mixinErrorState } from '../../shared';
|
|
9
|
-
import { ImpdcFormFieldControl } from '../../shared/form-field-control';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/forms";
|
|
12
|
-
import * as i2 from "../../services";
|
|
13
|
-
const IMPDC_INPUT_INVALID_TYPES = [
|
|
14
|
-
'button',
|
|
15
|
-
'checkbox',
|
|
16
|
-
'file',
|
|
17
|
-
'hidden',
|
|
18
|
-
'image',
|
|
19
|
-
'radio',
|
|
20
|
-
'range',
|
|
21
|
-
'reset',
|
|
22
|
-
'submit'
|
|
23
|
-
];
|
|
24
|
-
/** @docs-private */
|
|
25
|
-
export function getInputUnsupportedTypeError(type) {
|
|
26
|
-
return Error(`Input type "${type}" isn't supported by impdcInput.`);
|
|
27
|
-
}
|
|
28
|
-
const _InputDirectiveBase = mixinErrorState(class {
|
|
29
|
-
constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
30
|
-
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
31
|
-
this._formRoot = _formRoot;
|
|
32
|
-
this._parentForm = _parentForm;
|
|
33
|
-
this._parentFormGroup = _parentFormGroup;
|
|
34
|
-
this.ngControl = ngControl;
|
|
35
|
-
this.stateChanges = new Subject();
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* The `InputDirective` (`<input impdcInput`, `<textarea impdcInput` or `<select impdcInput`) is a directive for text inputs.
|
|
40
|
-
* With this directive, the input, textarea, and select can be used within a `FormFieldComponent` (`<impdc-form-field`).
|
|
41
|
-
* To use, import `ImpdcFormsModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
42
|
-
*/
|
|
43
|
-
export class InputDirective extends _InputDirectiveBase {
|
|
44
|
-
get disabled() {
|
|
45
|
-
return this._disabled;
|
|
46
|
-
}
|
|
47
|
-
set disabled(value) {
|
|
48
|
-
this._disabled = coerceBooleanPropertyValue(value);
|
|
49
|
-
if (this.focused) {
|
|
50
|
-
this.focused = false;
|
|
51
|
-
this.stateChanges.next();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
get id() {
|
|
55
|
-
return this._id;
|
|
56
|
-
}
|
|
57
|
-
set id(value) {
|
|
58
|
-
this._id = value || this._uid;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Supports most standard `<input [type]>` attribute values. Does not support `button`, `checkbox`,
|
|
62
|
-
* `file`, `hidden`, `image`, `radio`, `range`, `reset`, or `button`, and does not apply to
|
|
63
|
-
* `<textarea>` or `<select>` elements.
|
|
64
|
-
*
|
|
65
|
-
* @default text
|
|
66
|
-
*/
|
|
67
|
-
get type() {
|
|
68
|
-
return this._type;
|
|
69
|
-
}
|
|
70
|
-
set type(value) {
|
|
71
|
-
if (!this._typeIsValid(value)) {
|
|
72
|
-
throw getInputUnsupportedTypeError(value);
|
|
73
|
-
}
|
|
74
|
-
this._type = value || 'text';
|
|
75
|
-
// Sync with native input element.
|
|
76
|
-
if (!this._isTextarea) {
|
|
77
|
-
this._elementRef.nativeElement.type = this._type;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Used to set requiredness of control in a template-based manner;
|
|
82
|
-
* not necessary when using the Angular reactive forms API and `required` validator.
|
|
83
|
-
*/
|
|
84
|
-
get required() {
|
|
85
|
-
return (this._required ??
|
|
86
|
-
this.ngControl?.control?.hasValidator(Validators.required) ??
|
|
87
|
-
false);
|
|
88
|
-
}
|
|
89
|
-
set required(value) {
|
|
90
|
-
this._required = coerceBooleanPropertyValue(value);
|
|
91
|
-
this.stateChanges.next();
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Used to put the control in a non-interactive readonly state; only supports `<input>` and
|
|
95
|
-
* `<textarea>` elements.
|
|
96
|
-
*
|
|
97
|
-
* To see the difference between `readonly` and `disabled`, refer to [MDN's documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly).
|
|
98
|
-
*/
|
|
99
|
-
get readonly() {
|
|
100
|
-
return this._readonly;
|
|
101
|
-
}
|
|
102
|
-
set readonly(value) {
|
|
103
|
-
this._readonly = coerceBooleanPropertyValue(value);
|
|
104
|
-
}
|
|
105
|
-
get value() {
|
|
106
|
-
return this._inputValueAccessor.value;
|
|
107
|
-
}
|
|
108
|
-
set value(value) {
|
|
109
|
-
if (value !== this.value) {
|
|
110
|
-
this._inputValueAccessor.value = value;
|
|
111
|
-
this.stateChanges.next();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
constructor(_elementRef, ngControl, _formRoot, _parentForm, _parentFormGroup, _defaultErrorStateMatcher) {
|
|
115
|
-
super(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl);
|
|
116
|
-
this._elementRef = _elementRef;
|
|
117
|
-
this._uid = `impdc-input-${nanoid()}`;
|
|
118
|
-
this.focused = false;
|
|
119
|
-
this.controlType = 'impdc-input';
|
|
120
|
-
this.supportsAffixes = true;
|
|
121
|
-
this._disabled = false;
|
|
122
|
-
this._type = 'text';
|
|
123
|
-
this._readonly = false;
|
|
124
|
-
const { nativeElement } = this._elementRef;
|
|
125
|
-
const nodeName = nativeElement.nodeName.toLowerCase();
|
|
126
|
-
this._inputValueAccessor = nativeElement;
|
|
127
|
-
this.id = this.id;
|
|
128
|
-
this._isSelect = nodeName === 'select';
|
|
129
|
-
this._isTextarea = nodeName === 'textarea';
|
|
130
|
-
if (this._isSelect) {
|
|
131
|
-
this.controlType = nativeElement.multiple
|
|
132
|
-
? 'impdc-native-select-multiple'
|
|
133
|
-
: 'impdc-native-select';
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/** @ignore */
|
|
137
|
-
ngDoCheck() {
|
|
138
|
-
if (this.ngControl) {
|
|
139
|
-
this.updateErrorState();
|
|
140
|
-
if (this.ngControl.disabled !== null &&
|
|
141
|
-
this.ngControl.disabled !== this.disabled) {
|
|
142
|
-
this.disabled = this.ngControl.disabled;
|
|
143
|
-
this.stateChanges.next();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/** @ignore */
|
|
148
|
-
ngOnChanges() {
|
|
149
|
-
this.stateChanges.next();
|
|
150
|
-
}
|
|
151
|
-
/** @ignore */
|
|
152
|
-
ngOnDestroy() {
|
|
153
|
-
this.stateChanges.complete();
|
|
154
|
-
}
|
|
155
|
-
_focusChanged(isFocused) {
|
|
156
|
-
if (isFocused !== this.focused) {
|
|
157
|
-
this.focused = isFocused;
|
|
158
|
-
this.stateChanges.next();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
_typeIsValid(inputType) {
|
|
162
|
-
return IMPDC_INPUT_INVALID_TYPES.indexOf(inputType) === -1;
|
|
163
|
-
}
|
|
164
|
-
_onInput() {
|
|
165
|
-
// This is a noop function and is used to let Angular know whenever the value changes.
|
|
166
|
-
// Angular will run a new change detection each time the `input` event has been dispatched.
|
|
167
|
-
// It's necessary that Angular recognizes the value change, because when Angular forms
|
|
168
|
-
// aren't used, the placeholder won't recognize the value changes and will not disappear.
|
|
169
|
-
// Listening to the input event wouldn't be necessary when the input is using the
|
|
170
|
-
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
|
171
|
-
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
173
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: InputDirective, isStandalone: true, selector: "input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]", inputs: { disabled: "disabled", id: "id", type: "type", required: "required", readonly: "readonly", errorStateMatcher: "errorStateMatcher", value: "value" }, host: { listeners: { "focus": "_focusChanged(true)", "blur": "_focusChanged(false)", "input": "_onInput()" }, properties: { "id": "id", "disabled": "disabled", "required": "required", "attr.id": "id", "attr.readonly": "readonly && !_isSelect || null", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.form-control": "!_isSelect", "class.form-control-color": "type === \"color\"", "class.form-select": "_isSelect", "class.impdc-form-field-control": "true", "class.is-invalid": "errorState", "class.impdc-input--invalid": "errorState", "class.impdc-input--disabled": "disabled", "class.impdc-input--required": "required" }, classAttribute: "impdc-input" }, providers: [{ provide: ImpdcFormFieldControl, useExisting: InputDirective }], exportAs: ["impdcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
174
|
-
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputDirective, decorators: [{
|
|
176
|
-
type: Directive,
|
|
177
|
-
args: [{
|
|
178
|
-
selector: 'input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]',
|
|
179
|
-
exportAs: 'impdcInput',
|
|
180
|
-
standalone: true,
|
|
181
|
-
// eslint-disable-next-line @angular-eslint/no-host-metadata-property
|
|
182
|
-
host: {
|
|
183
|
-
class: 'impdc-input',
|
|
184
|
-
'[id]': 'id',
|
|
185
|
-
'[disabled]': 'disabled',
|
|
186
|
-
'[required]': 'required',
|
|
187
|
-
'[attr.id]': 'id',
|
|
188
|
-
'[attr.readonly]': 'readonly && !_isSelect || null',
|
|
189
|
-
'[attr.aria-required]': 'required.toString()',
|
|
190
|
-
'[attr.aria-disabled]': 'disabled.toString()',
|
|
191
|
-
'[attr.aria-invalid]': 'errorState',
|
|
192
|
-
'[class.form-control]': '!_isSelect',
|
|
193
|
-
'[class.form-control-color]': 'type === "color"',
|
|
194
|
-
'[class.form-select]': '_isSelect',
|
|
195
|
-
'[class.impdc-form-field-control]': 'true',
|
|
196
|
-
'[class.is-invalid]': 'errorState',
|
|
197
|
-
'[class.impdc-input--invalid]': 'errorState',
|
|
198
|
-
'[class.impdc-input--disabled]': 'disabled',
|
|
199
|
-
'[class.impdc-input--required]': 'required',
|
|
200
|
-
'(focus)': '_focusChanged(true)',
|
|
201
|
-
'(blur)': '_focusChanged(false)',
|
|
202
|
-
'(input)': '_onInput()'
|
|
203
|
-
},
|
|
204
|
-
providers: [{ provide: ImpdcFormFieldControl, useExisting: InputDirective }]
|
|
205
|
-
}]
|
|
206
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
|
207
|
-
type: Optional
|
|
208
|
-
}, {
|
|
209
|
-
type: Self
|
|
210
|
-
}] }, { type: undefined, decorators: [{
|
|
211
|
-
type: Optional
|
|
212
|
-
}, {
|
|
213
|
-
type: Inject,
|
|
214
|
-
args: [IMPDC_FORM_ROOT]
|
|
215
|
-
}] }, { type: i1.NgForm, decorators: [{
|
|
216
|
-
type: Optional
|
|
217
|
-
}] }, { type: i1.FormGroupDirective, decorators: [{
|
|
218
|
-
type: Optional
|
|
219
|
-
}] }, { type: i2.ErrorStateMatcher }], propDecorators: { disabled: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], id: [{
|
|
222
|
-
type: Input
|
|
223
|
-
}], type: [{
|
|
224
|
-
type: Input
|
|
225
|
-
}], required: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}], readonly: [{
|
|
228
|
-
type: Input
|
|
229
|
-
}], errorStateMatcher: [{
|
|
230
|
-
type: Input
|
|
231
|
-
}], value: [{
|
|
232
|
-
type: Input
|
|
233
|
-
}] } });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL2NvbnRyb2xzL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBRUwsMEJBQTBCLEVBQzNCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBR0wsZUFBZSxFQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQUV4RSxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVE7SUFDUixVQUFVO0lBQ1YsTUFBTTtJQUNOLFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtDQUNULENBQUM7QUFFRixvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQVk7SUFDdkQsT0FBTyxLQUFLLENBQUMsZUFBZSxJQUFJLGtDQUFrQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUN6QztJQUdFLFlBQ1MseUJBQTRDLEVBQzVDLFNBQXdCLEVBQ3hCLFdBQW1CLEVB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YW5ndWxhci1lc2xpbnQvbm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlICovXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdDb250cm9sLFxuICBOZ0Zvcm0sXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IEltcGRjRm9ybVJvb3QsIElNUERDX0ZPUk1fUk9PVCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgbWl4aW5FcnJvclN0YXRlXG59IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS1maWVsZC1jb250cm9sJztcblxuY29uc3QgSU1QRENfSU5QVVRfSU5WQUxJRF9UWVBFUyA9IFtcbiAgJ2J1dHRvbicsXG4gICdjaGVja2JveCcsXG4gICdmaWxlJyxcbiAgJ2hpZGRlbicsXG4gICdpbWFnZScsXG4gICdyYWRpbycsXG4gICdyYW5nZScsXG4gICdyZXNldCcsXG4gICdzdWJtaXQnXG5dO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0VW5zdXBwb3J0ZWRUeXBlRXJyb3IodHlwZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gRXJyb3IoYElucHV0IHR5cGUgXCIke3R5cGV9XCIgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGltcGRjSW5wdXQuYCk7XG59XG5cbmNvbnN0IF9JbnB1dERpcmVjdGl2ZUJhc2UgPSBtaXhpbkVycm9yU3RhdGUoXG4gIGNsYXNzIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgcHVibGljIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgICApIHt9XG4gIH1cbik7XG5cbi8qKlxuICogVGhlIGBJbnB1dERpcmVjdGl2ZWAgKGA8aW5wdXQgaW1wZGNJbnB1dGAsIGA8dGV4dGFyZWEgaW1wZGNJbnB1dGAgb3IgYDxzZWxlY3QgaW1wZGNJbnB1dGApIGlzIGEgZGlyZWN0aXZlIGZvciB0ZXh0IGlucHV0cy5cbiAqIFdpdGggdGhpcyBkaXJlY3RpdmUsIHRoZSBpbnB1dCwgdGV4dGFyZWEsIGFuZCBzZWxlY3QgY2FuIGJlIHVzZWQgd2l0aGluIGEgYEZvcm1GaWVsZENvbXBvbmVudGAgKGA8aW1wZGMtZm9ybS1maWVsZGApLlxuICogVG8gdXNlLCBpbXBvcnQgYEltcGRjRm9ybXNNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOlxuICAgICdpbnB1dFtpbXBkY0lucHV0XSwgdGV4dGFyZWFbaW1wZGNJbnB1dF0sIHNlbGVjdFtpbXBkY05hdGl2ZVNlbGVjdF0nLFxuICBleHBvcnRBczogJ2ltcGRjSW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtaW5wdXQnLFxuICAgICdbaWRdJzogJ2lkJyxcbiAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tyZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbYXR0ci5yZWFkb25seV0nOiAncmVhZG9ubHkgJiYgIV9pc1NlbGVjdCB8fCBudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAncmVxdWlyZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuZm9ybS1jb250cm9sXSc6ICchX2lzU2VsZWN0JyxcbiAgICAnW2NsYXNzLmZvcm0tY29udHJvbC1jb2xvcl0nOiAndHlwZSA9PT0gXCJjb2xvclwiJyxcbiAgICAnW2NsYXNzLmZvcm0tc2VsZWN0XSc6ICdfaXNTZWxlY3QnLFxuICAgICdbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmlzLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtaW5wdXQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtaW5wdXQtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1pbnB1dC0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnKGZvY3VzKSc6ICdfZm9jdXNDaGFuZ2VkKHRydWUpJyxcbiAgICAnKGJsdXIpJzogJ19mb2N1c0NoYW5nZWQoZmFsc2UpJyxcbiAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgpJ1xuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEltcGRjRm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IElucHV0RGlyZWN0aXZlIH1dXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RGlyZWN0aXZlXG4gIGV4dGVuZHMgX0lucHV0RGlyZWN0aXZlQmFzZVxuICBpbXBsZW1lbnRzXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPGFueT4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBEb0NoZWNrXG57XG4gIHByaXZhdGUgX2lucHV0VmFsdWVBY2Nlc3NvcjogeyB2YWx1ZTogYW55IH07XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBgaW1wZGMtaW5wdXQtJHtuYW5vaWQoKX1gO1xuICBwcm90ZWN0ZWQgX2lzU2VsZWN0OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2lzVGV4dGFyZWE6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnaW1wZGMtaW5wdXQnO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNBZmZpeGVzOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG4gIHByb3RlY3RlZCBfaWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIG1vc3Qgc3RhbmRhcmQgYDxpbnB1dCBbdHlwZV0+YCBhdHRyaWJ1dGUgdmFsdWVzLiBEb2VzIG5vdCBzdXBwb3J0IGBidXR0b25gLCBgY2hlY2tib3hgLFxuICAgKiBgZmlsZWAsIGBoaWRkZW5gLCBgaW1hZ2VgLCBgcmFkaW9gLCBgcmFuZ2VgLCBgcmVzZXRgLCBvciBgYnV0dG9uYCwgYW5kIGRvZXMgbm90IGFwcGx5IHRvXG4gICAqIGA8dGV4dGFyZWE+YCBvciBgPHNlbGVjdD5gIGVsZW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0ZXh0XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX3R5cGVJc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgdGhyb3cgZ2V0SW5wdXRVbnN1cHBvcnRlZFR5cGVFcnJvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlIHx8ICd0ZXh0JztcblxuICAgIC8vIFN5bmMgd2l0aCBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICBpZiAoIXRoaXMuX2lzVGV4dGFyZWEpIHtcbiAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfdHlwZSA9ICd0ZXh0JztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcHV0IHRoZSBjb250cm9sIGluIGEgbm9uLWludGVyYWN0aXZlIHJlYWRvbmx5IHN0YXRlOyBvbmx5IHN1cHBvcnRzIGA8aW5wdXQ+YCBhbmRcbiAgICogYDx0ZXh0YXJlYT5gIGVsZW1lbnRzLlxuICAgKlxuICAgKiBUbyBzZWUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBgcmVhZG9ubHlgIGFuZCBgZGlzYWJsZWRgLCByZWZlciB0byBbTUROJ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9BdHRyaWJ1dGVzL3JlYWRvbmx5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZG9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGVycm9yU3RhdGVNYXRjaGVyITogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvci52YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPFxuICAgICAgSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudFxuICAgID4sXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSBuYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICB0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IgPSBuYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICAgIHRoaXMuX2lzU2VsZWN0ID0gbm9kZU5hbWUgPT09ICdzZWxlY3QnO1xuICAgIHRoaXMuX2lzVGV4dGFyZWEgPSBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJztcblxuICAgIGlmICh0aGlzLl9pc1NlbGVjdCkge1xuICAgICAgdGhpcy5jb250cm9sVHlwZSA9IChuYXRpdmVFbGVtZW50IGFzIEhUTUxTZWxlY3RFbGVtZW50KS5tdWx0aXBsZVxuICAgICAgICA/ICdpbXBkYy1uYXRpdmUtc2VsZWN0LW11bHRpcGxlJ1xuICAgICAgICA6ICdpbXBkYy1uYXRpdmUtc2VsZWN0JztcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwgJiZcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2ZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNGb2N1c2VkICE9PSB0aGlzLmZvY3VzZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3R5cGVJc1ZhbGlkKGlucHV0VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIElNUERDX0lOUFVUX0lOVkFMSURfVFlQRVMuaW5kZXhPZihpbnB1dFR5cGUpID09PSAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb25JbnB1dCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgbm9vcCBmdW5jdGlvbiBhbmQgaXMgdXNlZCB0byBsZXQgQW5ndWxhciBrbm93IHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgIC8vIEFuZ3VsYXIgd2lsbCBydW4gYSBuZXcgY2hhbmdlIGRldGVjdGlvbiBlYWNoIHRpbWUgdGhlIGBpbnB1dGAgZXZlbnQgaGFzIGJlZW4gZGlzcGF0Y2hlZC5cbiAgICAvLyBJdCdzIG5lY2Vzc2FyeSB0aGF0IEFuZ3VsYXIgcmVjb2duaXplcyB0aGUgdmFsdWUgY2hhbmdlLCBiZWNhdXNlIHdoZW4gQW5ndWxhciBmb3Jtc1xuICAgIC8vIGFyZW4ndCB1c2VkLCB0aGUgcGxhY2Vob2xkZXIgd29uJ3QgcmVjb2duaXplIHRoZSB2YWx1ZSBjaGFuZ2VzIGFuZCB3aWxsIG5vdCBkaXNhcHBlYXIuXG4gICAgLy8gTGlzdGVuaW5nIHRvIHRoZSBpbnB1dCBldmVudCB3b3VsZG4ndCBiZSBuZWNlc3Nhcnkgd2hlbiB0aGUgaW5wdXQgaXMgdXNpbmcgdGhlXG4gICAgLy8gRm9ybXNNb2R1bGUgb3IgUmVhY3RpdmVGb3Jtc01vZHVsZSwgYmVjYXVzZSBBbmd1bGFyIGZvcm1zIGFsc28gbGlzdGVucyB0byBpbnB1dCBldmVudHMuXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { RadioChangeEvent } from './interfaces';
|
|
2
|
-
export { RadioButtonComponent } from './radio-button/radio-button.component';
|
|
3
|
-
export { RadioGroupDirective } from './radio-group/radio-group.directive';
|
|
4
|
-
export { IMPDC_RADIO_GROUP, IMPDC_RADIO_BUTTON } from './injection-tokens';
|
|
5
|
-
export { RadioModule } from './radio.module';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvcmFkaW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUE2QixNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSYWRpb0NoYW5nZUV2ZW50LCBJUmFkaW9CdXR0b24sIElSYWRpb0dyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBSYWRpb0dyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgSU1QRENfUkFESU9fR1JPVVAsIElNUERDX1JBRElPX0JVVFRPTiB9IGZyb20gJy4vaW5qZWN0aW9uLXRva2Vucyc7XG5leHBvcnQgeyBSYWRpb01vZHVsZSB9IGZyb20gJy4vcmFkaW8ubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const IMPDC_RADIO_GROUP = new InjectionToken('ImpdcRadioGroup');
|
|
3
|
-
export const IMPDC_RADIO_BUTTON = new InjectionToken('ImpdcRadioButton');
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbmplY3Rpb24tdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELGlCQUFpQixDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2xELGtCQUFrQixDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElSYWRpb0J1dHRvbiwgSVJhZGlvR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgSU1QRENfUkFESU9fR1JPVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVJhZGlvR3JvdXA+KFxuICAnSW1wZGNSYWRpb0dyb3VwJ1xuKTtcblxuZXhwb3J0IGNvbnN0IElNUERDX1JBRElPX0JVVFRPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUmFkaW9CdXR0b24+KFxuICAnSW1wZGNSYWRpb0J1dHRvbidcbik7XG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './radio-change-event.interface';
|
|
2
|
-
export * from './radio-button.interface';
|
|
3
|
-
export * from './radio-group.interface';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvcmFkaW8vaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmFkaW8tY2hhbmdlLWV2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cC5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbnRlcmZhY2VzL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVJhZGlvQnV0dG9uIHtcbiAgY2hlY2tlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuXG4gIG1hcmtGb3JDaGVjaygpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export class RadioChangeEvent {
|
|
2
|
-
constructor(
|
|
3
|
-
/** The specific radio button that changed. */
|
|
4
|
-
source,
|
|
5
|
-
/** The selected value. */
|
|
6
|
-
value) {
|
|
7
|
-
this.source = source;
|
|
8
|
-
this.value = value;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tY2hhbmdlLWV2ZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9pbnRlcmZhY2VzL3JhZGlvLWNoYW5nZS1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjtJQUNFLDhDQUE4QztJQUM5QixNQUFvQjtJQUNwQywwQkFBMEI7SUFDVixLQUFVO1FBRlYsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUVwQixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ3pCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSYWRpb0J1dHRvbiB9IGZyb20gJy4vcmFkaW8tYnV0dG9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBSYWRpb0NoYW5nZUV2ZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIFRoZSBzcGVjaWZpYyByYWRpbyBidXR0b24gdGhhdCBjaGFuZ2VkLiAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IElSYWRpb0J1dHRvbixcbiAgICAvKiogVGhlIHNlbGVjdGVkIHZhbHVlLiAqL1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogYW55XG4gICkge31cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWZpZWxkL2NvbnRyb2xzL3JhZGlvL2ludGVyZmFjZXMvcmFkaW8tZ3JvdXAuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmFkaW9CdXR0b24gfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSYWRpb0dyb3VwIHtcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG4gIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW47XG4gIGdldCBpbmxpbmUoKTogYm9vbGVhbjtcbiAgZ2V0IG5hbWUoKTogc3RyaW5nO1xuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcbiAgZ2V0IHZhbHVlKCk6IGFueTtcbiAgc2VsZWN0ZWQ6IElSYWRpb0J1dHRvbiB8IG51bGw7XG5cbiAgZW1pdENoYW5nZXNFdmVudCgpOiB2b2lkO1xuICBvbkNoYW5nZUZuKHZhbHVlOiBhbnkpOiB2b2lkO1xuICB0b3VjaCgpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Attribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
|
|
3
|
-
import { nanoid } from 'nanoid';
|
|
4
|
-
import { coerceBooleanPropertyValue, coerceNumberPropertyValue } from '../../../../../utilities';
|
|
5
|
-
import { mixinTabIndex } from '../../../shared/tab-index.mixin';
|
|
6
|
-
import { ToggleModule } from '../../shared';
|
|
7
|
-
import { IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP } from '../injection-tokens';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../../services/unique-selection-dispatcher.service";
|
|
10
|
-
import * as i2 from "../../shared/toggle/toggle.component";
|
|
11
|
-
import * as i3 from "../../shared/toggle/components/toggle-input/toggle-input.component";
|
|
12
|
-
class RadioButtonComponentBase {
|
|
13
|
-
constructor() { }
|
|
14
|
-
}
|
|
15
|
-
const _RadioButtonComponentMixinBase = mixinTabIndex(RadioButtonComponentBase);
|
|
16
|
-
export class RadioButtonComponent extends _RadioButtonComponentMixinBase {
|
|
17
|
-
/**
|
|
18
|
-
* Whether or not the radio input is checked/selected.
|
|
19
|
-
*/
|
|
20
|
-
get checked() {
|
|
21
|
-
return this._checked;
|
|
22
|
-
}
|
|
23
|
-
set checked(value) {
|
|
24
|
-
const newCheckedValue = coerceBooleanPropertyValue(value);
|
|
25
|
-
if (this._checked !== newCheckedValue) {
|
|
26
|
-
this._checked = newCheckedValue;
|
|
27
|
-
if (newCheckedValue &&
|
|
28
|
-
this._radioGroup &&
|
|
29
|
-
this._radioGroup.value !== this.value) {
|
|
30
|
-
this._radioGroup.selected = this;
|
|
31
|
-
}
|
|
32
|
-
else if (!newCheckedValue &&
|
|
33
|
-
this._radioGroup &&
|
|
34
|
-
this._radioGroup.value === this.value) {
|
|
35
|
-
this._radioGroup.selected = null;
|
|
36
|
-
}
|
|
37
|
-
if (newCheckedValue) {
|
|
38
|
-
this._radioDispatcher.notify(this.id, this.name);
|
|
39
|
-
}
|
|
40
|
-
this._changeDetector.markForCheck();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* The specific value represented by the radio button.
|
|
45
|
-
*/
|
|
46
|
-
get value() {
|
|
47
|
-
return this._value;
|
|
48
|
-
}
|
|
49
|
-
set value(value) {
|
|
50
|
-
if (this._value !== value) {
|
|
51
|
-
this._value = value;
|
|
52
|
-
if (this._radioGroup) {
|
|
53
|
-
if (!this.checked) {
|
|
54
|
-
this.checked = this._radioGroup.value === value;
|
|
55
|
-
}
|
|
56
|
-
if (this.checked) {
|
|
57
|
-
this._radioGroup.selected = this;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Whether or not the radio button displays inline; Inherited from the parent `RadioGroupDirective` when available.
|
|
64
|
-
*/
|
|
65
|
-
get inline() {
|
|
66
|
-
return (this._inline || (this._radioGroup && this._radioGroup.inline) || false);
|
|
67
|
-
}
|
|
68
|
-
set inline(value) {
|
|
69
|
-
this._inline = coerceBooleanPropertyValue(value);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Used to enable or disable the radio button, but will always return `true` when the parent
|
|
73
|
-
* `RadioGroupDirective` is already disabled.
|
|
74
|
-
*/
|
|
75
|
-
get disabled() {
|
|
76
|
-
return (this._disabled || (this._radioGroup != null && this._radioGroup.disabled));
|
|
77
|
-
}
|
|
78
|
-
set disabled(value) {
|
|
79
|
-
const newDisabledState = coerceBooleanPropertyValue(value);
|
|
80
|
-
if (this._disabled !== newDisabledState) {
|
|
81
|
-
this._disabled = newDisabledState;
|
|
82
|
-
this._changeDetector.markForCheck();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/** @ignore */
|
|
86
|
-
get required() {
|
|
87
|
-
return (this._required || (this._radioGroup != null && this._radioGroup.required));
|
|
88
|
-
}
|
|
89
|
-
set required(value) {
|
|
90
|
-
this._required = coerceBooleanPropertyValue(value);
|
|
91
|
-
}
|
|
92
|
-
get _errorState() {
|
|
93
|
-
return this._radioGroup ? this._radioGroup.errorState : false;
|
|
94
|
-
}
|
|
95
|
-
constructor(_changeDetector, _radioDispatcher, tabIndex, _radioGroup) {
|
|
96
|
-
super();
|
|
97
|
-
this._changeDetector = _changeDetector;
|
|
98
|
-
this._radioDispatcher = _radioDispatcher;
|
|
99
|
-
this._radioGroup = _radioGroup;
|
|
100
|
-
this._uid = `impdc-radio-button-${nanoid()}`;
|
|
101
|
-
this._removeUniqueSelectionListener = () => { };
|
|
102
|
-
this.id = this._uid;
|
|
103
|
-
this._checked = false;
|
|
104
|
-
this._value = null;
|
|
105
|
-
this._disabled = false;
|
|
106
|
-
this._required = false;
|
|
107
|
-
/**
|
|
108
|
-
* The primary label text for the radio button.
|
|
109
|
-
*/
|
|
110
|
-
this.label = '';
|
|
111
|
-
/**
|
|
112
|
-
* Text to provide additional description or context for the radio button. Does
|
|
113
|
-
* not display if `inline` is `true`.
|
|
114
|
-
*/
|
|
115
|
-
this.description = '';
|
|
116
|
-
/**
|
|
117
|
-
* Event emitted when the radio button becomes selected/checked.
|
|
118
|
-
*/
|
|
119
|
-
this.change = new EventEmitter();
|
|
120
|
-
if (tabIndex) {
|
|
121
|
-
this.tabIndex = coerceNumberPropertyValue(tabIndex, 0);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/** @ignore */
|
|
125
|
-
ngOnInit() {
|
|
126
|
-
if (this._radioGroup) {
|
|
127
|
-
this.checked = this._radioGroup.value === this._value;
|
|
128
|
-
if (this.checked) {
|
|
129
|
-
this._radioGroup.selected = this;
|
|
130
|
-
}
|
|
131
|
-
this.name = this._radioGroup.name;
|
|
132
|
-
}
|
|
133
|
-
this._removeUniqueSelectionListener = this._radioDispatcher.listen((id, name) => {
|
|
134
|
-
if (id !== this.id && name === this.name) {
|
|
135
|
-
this.checked = false;
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
/** @ignore */
|
|
140
|
-
ngDoCheck() {
|
|
141
|
-
this._updateTabIndex();
|
|
142
|
-
}
|
|
143
|
-
/** @ignore */
|
|
144
|
-
ngAfterViewInit() {
|
|
145
|
-
this._updateTabIndex();
|
|
146
|
-
}
|
|
147
|
-
/** @ignore */
|
|
148
|
-
ngOnDestroy() {
|
|
149
|
-
this._removeUniqueSelectionListener();
|
|
150
|
-
}
|
|
151
|
-
/** @ignore */
|
|
152
|
-
markForCheck() {
|
|
153
|
-
this._changeDetector.markForCheck();
|
|
154
|
-
}
|
|
155
|
-
_emitChangesEvent() {
|
|
156
|
-
this.change.emit({ source: this, value: this._value });
|
|
157
|
-
}
|
|
158
|
-
_onBlur() {
|
|
159
|
-
if (this._radioGroup) {
|
|
160
|
-
this._radioGroup.touch();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
_onInputChange(event) {
|
|
164
|
-
event.stopPropagation();
|
|
165
|
-
if (!this.checked && !this.disabled) {
|
|
166
|
-
const groupValueChanged = this._radioGroup && this.value !== this._radioGroup.value;
|
|
167
|
-
this.checked = true;
|
|
168
|
-
this._emitChangesEvent();
|
|
169
|
-
if (this._radioGroup) {
|
|
170
|
-
this._radioGroup.onChangeFn(this.value);
|
|
171
|
-
if (groupValueChanged) {
|
|
172
|
-
this._radioGroup.emitChangesEvent();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
_updateTabIndex() {
|
|
178
|
-
const radioGroup = this._radioGroup;
|
|
179
|
-
let tabIndexValue;
|
|
180
|
-
if (!radioGroup || !radioGroup.selected || this.disabled) {
|
|
181
|
-
tabIndexValue = this.tabIndex;
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
tabIndexValue = radioGroup.selected === this ? this.tabIndex : -1;
|
|
185
|
-
}
|
|
186
|
-
if (tabIndexValue !== this._previousTabIndex) {
|
|
187
|
-
const inputElt = this._inputElement?.nativeElement;
|
|
188
|
-
if (inputElt) {
|
|
189
|
-
inputElt.setAttribute('tabindex', tabIndexValue + '');
|
|
190
|
-
this._previousTabIndex = tabIndexValue;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.UniqueSelectionDispatcher }, { token: 'tabindex', attribute: true }, { token: IMPDC_RADIO_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: RadioButtonComponent, isStandalone: true, selector: "impdc-radio-button", inputs: { tabIndex: "tabIndex", id: "id", name: "name", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], checked: "checked", value: "value", inline: "inline", disabled: "disabled", required: "required", label: "label", description: "description" }, outputs: { change: "change" }, host: { properties: { "attr.id": "id", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "class.impdc-radio-button--required": "required", "class.impdc-radio-button--invalid": "_errorState", "class.impdc-radio-button--disabled": "disabled", "class.impdc-radio-button--inline": "inline" }, classAttribute: "impdc-radio-button" }, providers: [
|
|
196
|
-
{
|
|
197
|
-
provide: IMPDC_RADIO_BUTTON,
|
|
198
|
-
useExisting: RadioButtonComponent
|
|
199
|
-
}
|
|
200
|
-
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["nativeInput"], descendants: true, read: ElementRef }], exportAs: ["impdcRadioButton"], usesInheritance: true, ngImport: i0, template: "<impdc-toggle [label]=\"label\" [description]=\"description\" [inline]=\"inline\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"radio\"\n class=\"impdc-radio-button__native-control\"\n [class.is-invalid]=\"_errorState\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (blur)=\"_onBlur()\" />\n</impdc-toggle>\n", styles: [":host{display:block;opacity:var(--impartner-hex-input-opacity, 1)}:host.impdc-radio-button--inline{display:inline-block}:host.impdc-radio-button--inline:not(:last-of-type){margin-right:4rem}:host:not(.impdc-radio-button--inline):not(:last-of-type){margin-bottom:1.6rem}:host.impdc-radio-button--disabled{--impartner-hex-input-opacity: .5}:host.impdc-radio-button--invalid ::ng-deep .form-check-label{color:var(--impd-color-red-600)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i2.ToggleComponent, selector: "impdc-toggle", inputs: ["isSwitch", "label", "description", "inline", "switchIcons", "layout"] }, { kind: "component", type: i3.ToggleInputComponent, selector: "input[impdc-toggle-input]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
201
|
-
}
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RadioButtonComponent, decorators: [{
|
|
203
|
-
type: Component,
|
|
204
|
-
args: [{ selector: 'impdc-radio-button', standalone: true, imports: [CommonModule, ToggleModule], host: {
|
|
205
|
-
class: 'impdc-radio-button',
|
|
206
|
-
'[attr.id]': 'id',
|
|
207
|
-
'[attr.tabindex]': 'null',
|
|
208
|
-
'[attr.aria-label]': 'null',
|
|
209
|
-
'[attr.aria-labelledby]': 'null',
|
|
210
|
-
'[attr.aria-describedby]': 'null',
|
|
211
|
-
'[class.impdc-radio-button--required]': 'required',
|
|
212
|
-
'[class.impdc-radio-button--invalid]': '_errorState',
|
|
213
|
-
'[class.impdc-radio-button--disabled]': 'disabled',
|
|
214
|
-
'[class.impdc-radio-button--inline]': 'inline'
|
|
215
|
-
}, inputs: ['tabIndex'], exportAs: 'impdcRadioButton', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
216
|
-
{
|
|
217
|
-
provide: IMPDC_RADIO_BUTTON,
|
|
218
|
-
useExisting: RadioButtonComponent
|
|
219
|
-
}
|
|
220
|
-
], template: "<impdc-toggle [label]=\"label\" [description]=\"description\" [inline]=\"inline\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"radio\"\n class=\"impdc-radio-button__native-control\"\n [class.is-invalid]=\"_errorState\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (blur)=\"_onBlur()\" />\n</impdc-toggle>\n", styles: [":host{display:block;opacity:var(--impartner-hex-input-opacity, 1)}:host.impdc-radio-button--inline{display:inline-block}:host.impdc-radio-button--inline:not(:last-of-type){margin-right:4rem}:host:not(.impdc-radio-button--inline):not(:last-of-type){margin-bottom:1.6rem}:host.impdc-radio-button--disabled{--impartner-hex-input-opacity: .5}:host.impdc-radio-button--invalid ::ng-deep .form-check-label{color:var(--impd-color-red-600)}\n"] }]
|
|
221
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.UniqueSelectionDispatcher }, { type: undefined, decorators: [{
|
|
222
|
-
type: Attribute,
|
|
223
|
-
args: ['tabindex']
|
|
224
|
-
}] }, { type: undefined, decorators: [{
|
|
225
|
-
type: Inject,
|
|
226
|
-
args: [IMPDC_RADIO_GROUP]
|
|
227
|
-
}, {
|
|
228
|
-
type: Optional
|
|
229
|
-
}] }], propDecorators: { _inputElement: [{
|
|
230
|
-
type: ViewChild,
|
|
231
|
-
args: ['nativeInput', { read: ElementRef }]
|
|
232
|
-
}], id: [{
|
|
233
|
-
type: Input
|
|
234
|
-
}], name: [{
|
|
235
|
-
type: Input
|
|
236
|
-
}], ariaLabel: [{
|
|
237
|
-
type: Input,
|
|
238
|
-
args: ['aria-label']
|
|
239
|
-
}], ariaLabelledby: [{
|
|
240
|
-
type: Input,
|
|
241
|
-
args: ['aria-labelledby']
|
|
242
|
-
}], ariaDescribedby: [{
|
|
243
|
-
type: Input,
|
|
244
|
-
args: ['aria-describedby']
|
|
245
|
-
}], checked: [{
|
|
246
|
-
type: Input
|
|
247
|
-
}], value: [{
|
|
248
|
-
type: Input
|
|
249
|
-
}], inline: [{
|
|
250
|
-
type: Input
|
|
251
|
-
}], disabled: [{
|
|
252
|
-
type: Input
|
|
253
|
-
}], required: [{
|
|
254
|
-
type: Input
|
|
255
|
-
}], label: [{
|
|
256
|
-
type: Input
|
|
257
|
-
}], description: [{
|
|
258
|
-
type: Input
|
|
259
|
-
}], change: [{
|
|
260
|
-
type: Output
|
|
261
|
-
}] } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUNULHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFHNUUsTUFBZSx3QkFBd0I7SUFFckMsZ0JBQWUsQ0FBQztDQUNqQjtBQUVELE1BQU0sOEJBQThCLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFnQy9FLE1BQU0sT0FBTyxvQkFDWCxTQUFRLDhC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a0JBQWtCLG1CQUNYLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxzQkFBc0I7eUJBQ2xDO3FCQUNGOzswQkFtTEUsU0FBUzsyQkFBQyxVQUFVOzswQkFDcEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBbks5QixhQUFhO3NCQURwQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSXZDLEVBQUU7c0JBRFIsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO3VCQUFDLFlBQVk7Z0JBT1osY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBT2pCLGVBQWU7c0JBRHJCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQU9kLE9BQU87c0JBRGpCLEtBQUs7Z0JBcUNLLEtBQUs7c0JBRGYsS0FBSztnQkF5QkssTUFBTTtzQkFEaEIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFrQkssUUFBUTtzQkFEbEIsS0FBSztnQkFlQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsV0FBVztzQkFEakIsS0FBSztnQkFRVSxNQUFNO3NCQUZyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlLFxuICBjb2VyY2VOdW1iZXJQcm9wZXJ0eVZhbHVlXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzVGFiSW5kZXgsIG1peGluVGFiSW5kZXggfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdGFiLWluZGV4Lm1peGluJztcbmltcG9ydCB7IFRvZ2dsZU1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBJTVBEQ19SQURJT19CVVRUT04sIElNUERDX1JBRElPX0dST1VQIH0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBSYWRpb0NoYW5nZUV2ZW50LCBJUmFkaW9CdXR0b24sIElSYWRpb0dyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmFic3RyYWN0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50QmFzZSB7XG4gIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbmNvbnN0IF9SYWRpb0J1dHRvbkNvbXBvbmVudE1peGluQmFzZSA9IG1peGluVGFiSW5kZXgoUmFkaW9CdXR0b25Db21wb25lbnRCYXNlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtcmFkaW8tYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9nZ2xlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtcmFkaW8tYnV0dG9uJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnbnVsbCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1yYWRpby1idXR0b24tLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1yYWRpby1idXR0b24tLWludmFsaWRdJzogJ19lcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmltcGRjLXJhZGlvLWJ1dHRvbi0tZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmltcGRjLXJhZGlvLWJ1dHRvbi0taW5saW5lXSc6ICdpbmxpbmUnXG4gIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0YWJJbmRleCddLFxuICBleHBvcnRBczogJ2ltcGRjUmFkaW9CdXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSU1QRENfUkFESU9fQlVUVE9OLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gIGV4dGVuZHMgX1JhZGlvQnV0dG9uQ29tcG9uZW50TWl4aW5CYXNlXG4gIGltcGxlbWVudHNcbiAgICBJUmFkaW9CdXR0b24sXG4gICAgSGFzVGFiSW5kZXgsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBEb0NoZWNrLFxuICAgIEFmdGVyVmlld0luaXRcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkOiBzdHJpbmcgPSBgaW1wZGMtcmFkaW8tYnV0dG9uLSR7bmFub2lkKCl9YDtcbiAgcHJpdmF0ZSBfcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXI6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNUYWJJbmRleD86IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gdGhpcy5fdWlkO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgZm9yIGEgZ3JvdXAgb2YgcmFkaW8gb3B0aW9uczsgSW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBgUmFkaW9Hcm91cERpcmVjdGl2ZWAgd2hlbiBhdmFpbGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydHkgZm9yIHNldHRpbmcgQVJJQSBcImxhYmVsXCIgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgcHVibGljIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydHkgZm9yIHNldHRpbmcgQVJJQSBcImxhYmVsbGVkIGJ5XCIgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsbGVkYnknKVxuICBwdWJsaWMgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IGZvciBzZXR0aW5nIEFSSUEgXCJkZXNjcmliZWQgYnlcIiBhdHRyaWJ1dGUuXG4gICAqL1xuICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKVxuICBwdWJsaWMgYXJpYURlc2NyaWJlZGJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcmFkaW8gaW5wdXQgaXMgY2hlY2tlZC9zZWxlY3RlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgfVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIGNvbnN0IG5ld0NoZWNrZWRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLl9jaGVja2VkICE9PSBuZXdDaGVja2VkVmFsdWUpIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBuZXdDaGVja2VkVmFsdWU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbmV3Q2hlY2tlZFZhbHVlICYmXG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAgJiZcbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC52YWx1ZSAhPT0gdGhpcy52YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAuc2VsZWN0ZWQgPSB0aGlzO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgIW5ld0NoZWNrZWRWYWx1ZSAmJlxuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwICYmXG4gICAgICAgIHRoaXMuX3JhZGlvR3JvdXAudmFsdWUgPT09IHRoaXMudmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld0NoZWNrZWRWYWx1ZSkge1xuICAgICAgICB0aGlzLl9yYWRpb0Rpc3BhdGNoZXIubm90aWZ5KHRoaXMuaWQsIHRoaXMubmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgX2NoZWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSByYWRpbyBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5fcmFkaW9Hcm91cC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC5zZWxlY3RlZCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF92YWx1ZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHJhZGlvIGJ1dHRvbiBkaXNwbGF5cyBpbmxpbmU7IEluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgYFJhZGlvR3JvdXBEaXJlY3RpdmVgIHdoZW4gYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2lubGluZSB8fCAodGhpcy5fcmFkaW9Hcm91cCAmJiB0aGlzLl9yYWRpb0dyb3VwLmlubGluZSkgfHwgZmFsc2VcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgaW5saW5lKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9pbmxpbmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9pbmxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSByYWRpbyBidXR0b24sIGJ1dCB3aWxsIGFsd2F5cyByZXR1cm4gYHRydWVgIHdoZW4gdGhlIHBhcmVudFxuICAgKiBgUmFkaW9Hcm91cERpcmVjdGl2ZWAgaXMgYWxyZWFkeSBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2Rpc2FibGVkIHx8ICh0aGlzLl9yYWRpb0dyb3VwICE9IG51bGwgJiYgdGhpcy5fcmFkaW9Hcm91cC5kaXNhYmxlZClcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIGNvbnN0IG5ld0Rpc2FibGVkU3RhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3RGlzYWJsZWRTdGF0ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgfHwgKHRoaXMuX3JhZGlvR3JvdXAgIT0gbnVsbCAmJiB0aGlzLl9yYWRpb0dyb3VwLnJlcXVpcmVkKVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbWFyeSBsYWJlbCB0ZXh0IGZvciB0aGUgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIFRleHQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGRlc2NyaXB0aW9uIG9yIGNvbnRleHQgZm9yIHRoZSByYWRpbyBidXR0b24uIERvZXNcbiAgICogbm90IGRpc3BsYXkgaWYgYGlubGluZWAgaXMgYHRydWVgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlc2NyaXB0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcmFkaW8gYnV0dG9uIGJlY29tZXMgc2VsZWN0ZWQvY2hlY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9DaGFuZ2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgZ2V0IF9lcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yYWRpb0dyb3VwID8gdGhpcy5fcmFkaW9Hcm91cC5lcnJvclN0YXRlIDogZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfcmFkaW9EaXNwYXRjaGVyOiBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyLFxuICAgIEBBdHRyaWJ1dGUoJ3RhYmluZGV4JykgdGFiSW5kZXg/OiBzdHJpbmcsXG4gICAgQEluamVjdChJTVBEQ19SQURJT19HUk9VUCkgQE9wdGlvbmFsKCkgcmVhZG9ubHkgX3JhZGlvR3JvdXA/OiBJUmFkaW9Hcm91cFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKHRhYkluZGV4KSB7XG4gICAgICB0aGlzLnRhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHlWYWx1ZSh0YWJJbmRleCwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLl9yYWRpb0dyb3VwLnZhbHVlID09PSB0aGlzLl92YWx1ZTtcblxuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLl9yYWRpb0dyb3VwLnNlbGVjdGVkID0gdGhpcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5uYW1lID0gdGhpcy5fcmFkaW9Hcm91cC5uYW1lO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyID0gdGhpcy5fcmFkaW9EaXNwYXRjaGVyLmxpc3RlbihcbiAgICAgIChpZCwgbmFtZSkgPT4ge1xuICAgICAgICBpZiAoaWQgIT09IHRoaXMuaWQgJiYgbmFtZSA9PT0gdGhpcy5uYW1lKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVUYWJJbmRleCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVUYWJJbmRleCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlc0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQoeyBzb3VyY2U6IHRoaXMsIHZhbHVlOiB0aGlzLl92YWx1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb0dyb3VwKSB7XG4gICAgICB0aGlzLl9yYWRpb0dyb3VwLnRvdWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGdyb3VwVmFsdWVDaGFuZ2VkID1cbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cCAmJiB0aGlzLnZhbHVlICE9PSB0aGlzLl9yYWRpb0dyb3VwLnZhbHVlO1xuICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VzRXZlbnQoKTtcblxuICAgICAgaWYgKHRoaXMuX3JhZGlvR3JvdXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9Hcm91cC5vbkNoYW5nZUZuKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGlmIChncm91cFZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMuX3JhZGlvR3JvdXAuZW1pdENoYW5nZXNFdmVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCByYWRpb0dyb3VwID0gdGhpcy5fcmFkaW9Hcm91cDtcbiAgICBsZXQgdGFiSW5kZXhWYWx1ZTogbnVtYmVyO1xuXG4gICAgaWYgKCFyYWRpb0dyb3VwIHx8ICFyYWRpb0dyb3VwLnNlbGVjdGVkIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRhYkluZGV4VmFsdWUgPSB0aGlzLnRhYkluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWJJbmRleFZhbHVlID0gcmFkaW9Hcm91cC5zZWxlY3RlZCA9PT0gdGhpcyA/IHRoaXMudGFiSW5kZXggOiAtMTtcbiAgICB9XG5cbiAgICBpZiAodGFiSW5kZXhWYWx1ZSAhPT0gdGhpcy5fcHJldmlvdXNUYWJJbmRleCkge1xuICAgICAgY29uc3QgaW5wdXRFbHQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmIChpbnB1dEVsdCkge1xuICAgICAgICBpbnB1dEVsdC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiSW5kZXhWYWx1ZSArICcnKTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNUYWJJbmRleCA9IHRhYkluZGV4VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8aW1wZGMtdG9nZ2xlIFtsYWJlbF09XCJsYWJlbFwiIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiIFtpbmxpbmVdPVwiaW5saW5lXCI+XG4gIDxpbnB1dFxuICAgICNuYXRpdmVJbnB1dFxuICAgIGltcGRjLXRvZ2dsZS1pbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJpbXBkYy1yYWRpby1idXR0b25fX25hdGl2ZS1jb250cm9sXCJcbiAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJfZXJyb3JTdGF0ZVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAoY2hhbmdlKT1cIl9vbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiIC8+XG48L2ltcGRjLXRvZ2dsZT5cbiJdfQ==
|