@testgorilla/tgo-ui 7.0.0-beta.0 → 7.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/components/accordion/accordion.component.d.ts +100 -0
- package/components/accordion/accordion.component.module.d.ts +12 -0
- package/components/accordion/accordion.model.d.ts +2 -0
- package/components/accordion/index.d.ts +5 -118
- package/components/accordion/public-api.d.ts +4 -0
- package/components/ai-audio-circle/ai-audio-circle.component.d.ts +60 -0
- package/components/ai-audio-circle/ai-audio-circle.module.d.ts +8 -0
- package/components/ai-audio-circle/index.d.ts +5 -70
- package/components/ai-audio-circle/public-api.d.ts +2 -0
- package/components/ai-caveat/ai-caveat.component.d.ts +36 -0
- package/components/ai-caveat/ai-caveat.component.module.d.ts +10 -0
- package/components/ai-caveat/index.d.ts +3 -47
- package/components/ai-caveat/public-api.d.ts +3 -0
- package/components/ai-feedback/ai-feedback.component.d.ts +52 -0
- package/components/ai-feedback/ai-feedback.model.d.ts +19 -0
- package/components/ai-feedback/ai-feedback.module.d.ts +16 -0
- package/components/ai-feedback/index.d.ts +5 -92
- package/components/ai-feedback/public-api.d.ts +4 -0
- package/components/alert-banner/alert-banner.component.d.ts +144 -0
- package/components/alert-banner/alert-banner.component.module.d.ts +12 -0
- package/components/alert-banner/alert-banner.model.d.ts +6 -0
- package/components/alert-banner/index.d.ts +5 -165
- package/components/alert-banner/public-api.d.ts +4 -0
- package/components/audio-waveform/audio-waveform.component.d.ts +32 -0
- package/components/audio-waveform/audio-waveform.model.d.ts +8 -0
- package/components/audio-waveform/audio-waveform.module.d.ts +7 -0
- package/components/audio-waveform/audio-waveform.service.d.ts +21 -0
- package/components/audio-waveform/index.d.ts +5 -71
- package/components/audio-waveform/public-api.d.ts +4 -0
- package/components/autocomplete/autocomplete.component.d.ts +324 -0
- package/components/autocomplete/autocomplete.component.module.d.ts +23 -0
- package/components/autocomplete/autocomplete.model.d.ts +23 -0
- package/components/autocomplete/includes.pipe.d.ts +12 -0
- package/components/autocomplete/index.d.ts +3 -414
- package/components/autocomplete/prevent-input.directive.d.ts +7 -0
- package/components/autocomplete/public-api.d.ts +4 -0
- package/components/autocomplete/select-text.directive.d.ts +19 -0
- package/components/autocomplete/transform-Item.pipe.d.ts +11 -0
- package/components/avatar/avatar.component.d.ts +67 -0
- package/components/avatar/avatar.component.module.d.ts +13 -0
- package/components/avatar/avatar.model.d.ts +18 -0
- package/components/avatar/index.d.ts +5 -107
- package/components/avatar/name-initials.pipe.d.ts +7 -0
- package/components/avatar/public-api.d.ts +4 -0
- package/components/badge/badge.component.d.ts +73 -0
- package/components/badge/badge.component.module.d.ts +10 -0
- package/components/badge/badge.model.d.ts +38 -0
- package/components/badge/index.d.ts +5 -125
- package/components/badge/public-api.d.ts +4 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +40 -0
- package/components/breadcrumb/breadcrumb.component.module.d.ts +14 -0
- package/components/breadcrumb/breadcrumb.model.d.ts +5 -0
- package/components/breadcrumb/index.d.ts +5 -62
- package/components/breadcrumb/public-api.d.ts +4 -0
- package/components/button/button.component.d.ts +238 -0
- package/components/button/button.component.module.d.ts +15 -0
- package/components/button/button.model.d.ts +14 -0
- package/components/button/color-contrast.d.ts +28 -0
- package/components/button/index.d.ts +3 -298
- package/components/button/public-api.d.ts +5 -0
- package/components/card/card.component.d.ts +87 -0
- package/components/card/card.component.module.d.ts +9 -0
- package/components/card/card.model.d.ts +3 -0
- package/components/card/index.d.ts +5 -103
- package/components/card/public-api.d.ts +4 -0
- package/components/checkbox/checkbox.component.d.ts +193 -0
- package/components/checkbox/checkbox.component.module.d.ts +16 -0
- package/components/checkbox/focus-visible.directive.d.ts +12 -0
- package/components/checkbox/index.d.ts +5 -221
- package/components/checkbox/public-api.d.ts +4 -0
- package/components/checklist/checklist.component.d.ts +82 -0
- package/components/checklist/checklist.model.d.ts +9 -0
- package/components/checklist/index.d.ts +5 -97
- package/components/checklist/public-api.d.ts +3 -0
- package/components/core/alert-bar.model.d.ts +2 -0
- package/components/core/alert-bars.utils.d.ts +6 -0
- package/components/core/application-theme.model.d.ts +7 -0
- package/components/core/autocomplete-utils.d.ts +12 -0
- package/components/core/checkbox.model.d.ts +1 -0
- package/components/core/color-contrast.d.ts +28 -0
- package/components/core/colors.model.d.ts +63 -0
- package/components/core/data-property-getter.pipe.d.ts +8 -0
- package/components/core/digits-only.directive.d.ts +17 -0
- package/components/core/dynamic-component.directive.d.ts +20 -0
- package/components/core/ellipse-text.directive.d.ts +20 -0
- package/components/core/has-validation-error.pipe.d.ts +15 -0
- package/components/core/hex-to-rgb.d.ts +1 -0
- package/components/core/index.d.ts +3 -346
- package/components/core/is-large-tablet.d.ts +2 -0
- package/components/core/is-mobile.d.ts +2 -0
- package/components/core/keyboard-events.model.d.ts +11 -0
- package/components/core/language.model.d.ts +14 -0
- package/components/core/language.service.d.ts +20 -0
- package/components/core/link-target.model.d.ts +1 -0
- package/components/core/memoize-func.pipe.d.ts +26 -0
- package/components/core/public-api.d.ts +25 -0
- package/components/core/screen-breakpoints.model.d.ts +5 -0
- package/components/core/select-text.directive.d.ts +19 -0
- package/components/core/truncate.pipe.d.ts +7 -0
- package/components/core/ui-ordinal-suffix.pipe.d.ts +7 -0
- package/components/core/ui-translate.pipe.d.ts +32 -0
- package/components/datepicker/date-adapter.d.ts +34 -0
- package/components/datepicker/datepicker.component.d.ts +235 -0
- package/components/datepicker/datepicker.component.module.d.ts +17 -0
- package/components/datepicker/datepicker.service.d.ts +8 -0
- package/components/datepicker/index.d.ts +5 -305
- package/components/datepicker/no-date-format.directive.d.ts +11 -0
- package/components/datepicker/public-api.d.ts +6 -0
- package/components/deprecated-paginator/deprecated-paginator.component.d.ts +34 -0
- package/components/deprecated-paginator/deprecated-paginator.component.module.d.ts +9 -0
- package/components/dialog/confirm-dialog/confirm-dialog.component.d.ts +38 -0
- package/components/dialog/confirm-dialog/confirm-dialog.component.module.d.ts +12 -0
- package/components/dialog/confirm-dialog/confirm-dialog.model.d.ts +47 -0
- package/components/dialog/dialog-custom/dialog-custom.component.d.ts +22 -0
- package/components/dialog/dialog-custom/dialog-custom.component.module.d.ts +10 -0
- package/components/dialog/dialog.component.d.ts +163 -0
- package/components/dialog/dialog.component.module.d.ts +11 -0
- package/components/dialog/dialog.model.d.ts +12 -0
- package/components/dialog/dialog.service.d.ts +14 -0
- package/components/dialog/index.d.ts +5 -308
- package/components/dialog/public-api.d.ts +10 -0
- package/components/divider/divider.component.d.ts +39 -0
- package/components/divider/divider.component.module.d.ts +9 -0
- package/components/divider/divider.model.d.ts +1 -0
- package/components/divider/index.d.ts +5 -53
- package/components/divider/public-api.d.ts +4 -0
- package/components/donut-chart/donut-chart.component.d.ts +22 -0
- package/components/donut-chart/donut-chart.component.model.d.ts +6 -0
- package/components/donut-chart/donut-chart.component.module.d.ts +8 -0
- package/components/donut-chart/index.d.ts +5 -39
- package/components/donut-chart/public-api.d.ts +3 -0
- package/components/dropdown/dropdown.component.d.ts +214 -0
- package/components/dropdown/dropdown.component.module.d.ts +16 -0
- package/components/dropdown/dropdown.model.d.ts +6 -0
- package/components/dropdown/index.d.ts +5 -240
- package/components/dropdown/public-api.d.ts +4 -0
- package/components/elevation-shadow/elevation-shadow.component.d.ts +26 -0
- package/components/elevation-shadow/elevation-shadow.component.module.d.ts +8 -0
- package/components/elevation-shadow/elevation-shadow.constant.d.ts +8 -0
- package/components/elevation-shadow/index.d.ts +5 -45
- package/components/elevation-shadow/public-api.d.ts +3 -0
- package/components/empty-state/empty-state.component.d.ts +199 -0
- package/components/empty-state/empty-state.component.module.d.ts +11 -0
- package/components/empty-state/empty-state.model.d.ts +3 -0
- package/components/empty-state/index.d.ts +5 -217
- package/components/empty-state/public-api.d.ts +4 -0
- package/components/field/field.component.d.ts +376 -0
- package/components/field/field.component.module.d.ts +17 -0
- package/components/field/field.model.d.ts +1 -0
- package/components/field/index.d.ts +3 -396
- package/components/field/public-api.d.ts +4 -0
- package/components/file-upload/drag-drop.directive.d.ts +12 -0
- package/components/file-upload/file-upload.component.d.ts +142 -0
- package/components/file-upload/file-upload.component.module.d.ts +14 -0
- package/components/file-upload/index.d.ts +5 -169
- package/components/file-upload/public-api.d.ts +3 -0
- package/components/filter-button/filter-button.component.d.ts +140 -0
- package/components/filter-button/filter-button.component.module.d.ts +17 -0
- package/components/filter-button/filter-button.model.d.ts +13 -0
- package/components/filter-button/index.d.ts +5 -173
- package/components/filter-button/public-api.d.ts +4 -0
- package/components/gaussian-chart/gaussian-chart.component.d.ts +82 -0
- package/components/gaussian-chart/gaussian-chart.module.d.ts +12 -0
- package/components/gaussian-chart/index.d.ts +5 -96
- package/components/gaussian-chart/public-api.d.ts +2 -0
- package/components/icon/icon-svg-content.d.ts +16 -0
- package/components/icon/icon.component.d.ts +72 -0
- package/components/icon/icon.component.module.d.ts +10 -0
- package/components/icon/icon.config.d.ts +10 -0
- package/components/icon/icon.model.d.ts +7 -0
- package/components/icon/icons.service.d.ts +8 -0
- package/components/icon/index.d.ts +5 -109
- package/components/icon/public-api.d.ts +6 -0
- package/components/icon-label/icon-label.component.d.ts +51 -0
- package/components/icon-label/icon-label.component.module.d.ts +9 -0
- package/components/icon-label/index.d.ts +5 -62
- package/components/icon-label/public-api.d.ts +2 -0
- package/components/inline-field/index.d.ts +3 -273
- package/components/inline-field/inline-field.component.d.ts +153 -0
- package/components/inline-field/inline-field.component.module.d.ts +13 -0
- package/components/inline-field/inline-field.model.d.ts +107 -0
- package/components/inline-field/public-api.d.ts +4 -0
- package/components/logo/index.d.ts +5 -106
- package/components/logo/logo.component.d.ts +66 -0
- package/components/logo/logo.component.module.d.ts +8 -0
- package/components/logo/logo.model.d.ts +29 -0
- package/components/logo/public-api.d.ts +4 -0
- package/components/media-card/index.d.ts +5 -35
- package/components/media-card/media-card.component.d.ts +32 -0
- package/components/media-card/public-api.d.ts +1 -0
- package/components/media-dialog/index.d.ts +5 -47
- package/components/media-dialog/media-dialog.component.d.ts +28 -0
- package/components/media-dialog/media-dialog.model.d.ts +16 -0
- package/components/media-dialog/public-api.d.ts +2 -0
- package/components/multi-input/index.d.ts +5 -185
- package/components/multi-input/multi-input.component.d.ts +158 -0
- package/components/multi-input/multi-input.component.module.d.ts +17 -0
- package/components/multi-input/multi-input.model.d.ts +4 -0
- package/components/multi-input/public-api.d.ts +5 -0
- package/components/multi-input/required-multi-input.validator.d.ts +3 -0
- package/components/navbar/index.d.ts +5 -203
- package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +28 -0
- package/components/navbar/navbar.component.d.ts +133 -0
- package/components/navbar/navbar.component.module.d.ts +21 -0
- package/components/navbar/navbar.model.d.ts +21 -0
- package/components/navbar/public-api.d.ts +5 -0
- package/components/overflow-menu/index.d.ts +5 -163
- package/components/overflow-menu/overflow-menu.component.d.ts +117 -0
- package/components/overflow-menu/overflow-menu.component.module.d.ts +14 -0
- package/components/overflow-menu/overflow-menu.model.d.ts +32 -0
- package/components/overflow-menu/public-api.d.ts +4 -0
- package/components/page-header/index.d.ts +5 -51
- package/components/page-header/page-header.component.d.ts +38 -0
- package/components/page-header/page-header.component.module.d.ts +10 -0
- package/components/page-header/public-api.d.ts +3 -0
- package/components/paginator/index.d.ts +5 -70
- package/components/paginator/paginator.component.d.ts +58 -0
- package/components/paginator/paginator.component.module.d.ts +9 -0
- package/components/paginator/public-api.d.ts +3 -0
- package/components/password-criteria/index.d.ts +5 -60
- package/components/password-criteria/password.component.d.ts +44 -0
- package/components/password-criteria/password.component.module.d.ts +13 -0
- package/components/password-criteria/public-api.d.ts +3 -0
- package/components/password-strength/index.d.ts +5 -59
- package/components/password-strength/password-strength.component.d.ts +45 -0
- package/components/password-strength/password-strength.component.module.d.ts +11 -0
- package/components/password-strength/public-api.d.ts +3 -0
- package/components/phone-input/index.d.ts +3 -179
- package/components/phone-input/join-strings.pipe.d.ts +7 -0
- package/components/phone-input/phone-input.component.d.ts +145 -0
- package/components/phone-input/phone-input.component.module.d.ts +19 -0
- package/components/phone-input/phone-input.model.d.ts +8 -0
- package/components/phone-input/public-api.d.ts +5 -0
- package/components/popover/index.d.ts +5 -34
- package/components/popover/popover.component.d.ts +9 -0
- package/components/popover/popover.directive.d.ts +31 -0
- package/components/popover/public-api.d.ts +1 -0
- package/components/progress-bar/index.d.ts +5 -86
- package/components/progress-bar/progress-bar.component.d.ts +73 -0
- package/components/progress-bar/progress-bar.component.module.d.ts +10 -0
- package/components/progress-bar/public-api.d.ts +3 -0
- package/components/prompt/index.d.ts +5 -95
- package/components/prompt/prompt.component.d.ts +62 -0
- package/components/prompt/prompt.model.d.ts +9 -0
- package/components/prompt/prompt.module.d.ts +20 -0
- package/components/prompt/public-api.d.ts +4 -0
- package/components/radial-progress/index.d.ts +5 -99
- package/components/radial-progress/public-api.d.ts +4 -0
- package/components/radial-progress/radial-progress.component.d.ts +75 -0
- package/components/radial-progress/radial-progress.component.module.d.ts +10 -0
- package/components/radial-progress/radial-progress.model.d.ts +10 -0
- package/components/radio-button/index.d.ts +5 -211
- package/components/radio-button/public-api.d.ts +4 -0
- package/components/radio-button/radio-button.component.d.ts +189 -0
- package/components/radio-button/radio-button.component.module.d.ts +15 -0
- package/components/radio-button/radio-button.model.d.ts +4 -0
- package/components/rating/half-star.pipe.d.ts +14 -0
- package/components/rating/index.d.ts +5 -97
- package/components/rating/public-api.d.ts +3 -0
- package/components/rating/rating.component.d.ts +71 -0
- package/components/rating/rating.component.module.d.ts +10 -0
- package/components/scale/index.d.ts +5 -65
- package/components/scale/public-api.d.ts +3 -0
- package/components/scale/scale.component.d.ts +54 -0
- package/components/scale/scale.component.module.d.ts +8 -0
- package/components/scale-table/index.d.ts +5 -49
- package/components/scale-table/public-api.d.ts +3 -0
- package/components/scale-table/scale-table.component.d.ts +39 -0
- package/components/scale-table/scale-table.model.d.ts +5 -0
- package/components/segmented-bar/index.d.ts +5 -92
- package/components/segmented-bar/public-api.d.ts +4 -0
- package/components/segmented-bar/segmented-bar.component.d.ts +64 -0
- package/components/segmented-bar/segmented-bar.component.module.d.ts +12 -0
- package/components/segmented-bar/segmented-bar.model.d.ts +12 -0
- package/components/segmented-button/index.d.ts +5 -77
- package/components/segmented-button/public-api.d.ts +4 -0
- package/components/segmented-button/segmented-button.component.d.ts +55 -0
- package/components/segmented-button/segmented-button.component.module.d.ts +11 -0
- package/components/segmented-button/segmented-button.model.d.ts +8 -0
- package/components/selectable-card/index.d.ts +5 -50
- package/components/selectable-card/public-api.d.ts +2 -0
- package/components/selectable-card/selectable-card.component.d.ts +38 -0
- package/components/selectable-card/selectable-card.component.module.d.ts +10 -0
- package/components/side-panel/index.d.ts +3 -97
- package/components/side-panel/public-api.d.ts +5 -0
- package/components/side-panel/side-panel-data-injection-token.d.ts +2 -0
- package/components/side-panel/side-panel.animations.d.ts +3 -0
- package/components/side-panel/side-panel.component.d.ts +22 -0
- package/components/side-panel/side-panel.model.d.ts +46 -0
- package/components/side-panel/side-panel.service.d.ts +22 -0
- package/components/side-sheet/index.d.ts +5 -81
- package/components/side-sheet/public-api.d.ts +4 -0
- package/components/side-sheet/side-sheet.component.d.ts +43 -0
- package/components/side-sheet/side-sheet.component.module.d.ts +14 -0
- package/components/side-sheet/side-sheet.model.d.ts +10 -0
- package/components/side-sheet/side-sheet.service.d.ts +14 -0
- package/components/skeleton/index.d.ts +5 -34
- package/components/skeleton/public-api.d.ts +3 -0
- package/components/skeleton/skeleton.component.d.ts +27 -0
- package/components/skeleton/skeleton.model.d.ts +2 -0
- package/components/slider/index.d.ts +5 -144
- package/components/slider/public-api.d.ts +4 -0
- package/components/slider/slider.component.d.ts +128 -0
- package/components/slider/slider.component.module.d.ts +7 -0
- package/components/slider/slider.model.d.ts +5 -0
- package/components/snackbar/index.d.ts +5 -162
- package/components/snackbar/public-api.d.ts +5 -0
- package/components/snackbar/snackbar.component.d.ts +126 -0
- package/components/snackbar/snackbar.component.module.d.ts +13 -0
- package/components/snackbar/snackbar.model.d.ts +7 -0
- package/components/snackbar/snackbar.service.d.ts +16 -0
- package/components/spider-chart/index.d.ts +5 -127
- package/components/spider-chart/public-api.d.ts +3 -0
- package/components/spider-chart/spider-chart.component.d.ts +90 -0
- package/components/spider-chart/spider-chart.model.d.ts +12 -0
- package/components/spider-chart/spider-chart.module.d.ts +12 -0
- package/components/spinner/index.d.ts +5 -74
- package/components/spinner/public-api.d.ts +4 -0
- package/components/spinner/spinner.component.d.ts +59 -0
- package/components/spinner/spinner.model.d.ts +1 -0
- package/components/spinner/spinner.module.d.ts +10 -0
- package/components/stepper/index.d.ts +3 -341
- package/components/stepper/public-api.d.ts +7 -0
- package/components/stepper/step-line-element.directive.d.ts +17 -0
- package/components/stepper/step.component.d.ts +184 -0
- package/components/stepper/step.component.module.d.ts +11 -0
- package/components/stepper/stepper.component.d.ts +102 -0
- package/components/stepper/stepper.component.module.d.ts +15 -0
- package/components/stepper/stepper.model.d.ts +23 -0
- package/components/table/index.d.ts +3 -251
- package/components/table/public-api.d.ts +6 -0
- package/components/table/sentence-case.pipe.d.ts +7 -0
- package/components/table/table.component.d.ts +117 -0
- package/components/table/table.component.module.d.ts +17 -0
- package/components/table/table.model.d.ts +104 -0
- package/components/table/table.utils.d.ts +6 -0
- package/components/tabs/index.d.ts +5 -145
- package/components/tabs/public-api.d.ts +5 -0
- package/components/tabs/tab.directive.d.ts +28 -0
- package/components/tabs/tabs.component.d.ts +79 -0
- package/components/tabs/tabs.component.module.d.ts +13 -0
- package/components/tabs/tabs.model.d.ts +26 -0
- package/components/tag/index.d.ts +5 -166
- package/components/tag/public-api.d.ts +4 -0
- package/components/tag/tag.component.d.ts +145 -0
- package/components/tag/tag.component.module.d.ts +14 -0
- package/components/tag/tag.model.d.ts +1 -0
- package/components/toggle/index.d.ts +5 -130
- package/components/toggle/public-api.d.ts +3 -0
- package/components/toggle/toggle.component.d.ts +113 -0
- package/components/toggle/toggle.component.module.d.ts +13 -0
- package/components/toggle/toggle.model.d.ts +1 -0
- package/components/tooltip/index.d.ts +5 -111
- package/components/tooltip/public-api.d.ts +5 -0
- package/components/tooltip/tooltip-template.directive.d.ts +27 -0
- package/components/tooltip/tooltip.component.d.ts +64 -0
- package/components/tooltip/tooltip.component.module.d.ts +11 -0
- package/components/tooltip/tooltip.model.d.ts +8 -0
- package/components/universal-skills/index.d.ts +5 -153
- package/components/universal-skills/public-api.d.ts +6 -0
- package/components/universal-skills/spider-charts/universal-skills-spider-charts.component.d.ts +47 -0
- package/components/universal-skills/spider-charts/universal-skills-spider-charts.component.module.d.ts +14 -0
- package/components/universal-skills/universal-skills-report.component.d.ts +33 -0
- package/components/universal-skills/universal-skills-report.component.module.d.ts +12 -0
- package/components/universal-skills/universal-skills-report.model.d.ts +44 -0
- package/components/universal-skills/universal-skills.service.d.ts +13 -0
- package/components/validation-error/index.d.ts +5 -36
- package/components/validation-error/public-api.d.ts +3 -0
- package/components/validation-error/validation-error.component.d.ts +22 -0
- package/components/validation-error/validation-error.model.d.ts +1 -0
- package/components/validation-error/validation-error.module.d.ts +10 -0
- package/components/write-with-ai/index.d.ts +3 -131
- package/components/write-with-ai/llm.service.d.ts +22 -0
- package/components/write-with-ai/public-api.d.ts +4 -0
- package/components/write-with-ai/write-with-ai.component.d.ts +79 -0
- package/components/write-with-ai/write-with-ai.model.d.ts +24 -0
- package/components/write-with-ai/write-with-ai.module.d.ts +7 -0
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +16 -16
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +24 -24
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +24 -24
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +23 -23
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +23 -22
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +9 -8
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +16 -16
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +33 -33
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +21 -21
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +31 -31
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +13 -13
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +18 -18
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +26 -26
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +13 -12
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +33 -33
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +9 -8
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +34 -33
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +21 -19
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +9 -9
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +16 -16
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +28 -28
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +9 -9
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +9 -9
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +9 -9
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +14 -14
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +13 -13
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +17 -17
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +5 -5
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +15 -15
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +14 -32
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +20 -20
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +27 -27
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +9 -9
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +23 -23
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +38 -38
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/index.d.ts +5 -46
- package/mcp/catalog.json +1 -0
- package/mcp/server.mjs +21567 -0
- package/package.json +30 -29
- package/projects/tgo-canopy-ui/theme/_tooltip.scss +0 -2
- package/public-api.d.ts +81 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { PromptData, PromptTag } from '@testgorilla/tgo-ui/components/prompt';
|
|
4
|
+
import { AlertBannerAction } from '@testgorilla/tgo-ui/components/alert-banner';
|
|
5
|
+
import { AlertBarType } from '@testgorilla/tgo-ui/components/core';
|
|
6
|
+
import { WriteWithAiStatus, WriteWithAiTagOption, WriteWithAiLlmConfig, WriteWithAiSubmitEvent } from './write-with-ai.model';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
interface StatusConfig {
|
|
9
|
+
variant: 'loading' | 'success' | 'error';
|
|
10
|
+
alertType: AlertBarType;
|
|
11
|
+
messageKey: string;
|
|
12
|
+
actions: AlertBannerAction[];
|
|
13
|
+
}
|
|
14
|
+
export declare class WriteWithAiComponent implements OnInit, ControlValueAccessor {
|
|
15
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
16
|
+
readonly standalone: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
readonly defaultOpen: import("@angular/core").InputSignal<boolean>;
|
|
18
|
+
readonly fieldLabel: import("@angular/core").InputSignal<string>;
|
|
19
|
+
readonly header: import("@angular/core").InputSignal<string>;
|
|
20
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
21
|
+
readonly promptValue: import("@angular/core").InputSignal<string>;
|
|
22
|
+
readonly tags: import("@angular/core").InputSignal<WriteWithAiTagOption[]>;
|
|
23
|
+
readonly status: import("@angular/core").InputSignal<WriteWithAiStatus>;
|
|
24
|
+
readonly subheader: import("@angular/core").InputSignal<string | undefined>;
|
|
25
|
+
readonly llmConfig: import("@angular/core").InputSignal<WriteWithAiLlmConfig | undefined>;
|
|
26
|
+
/** Layout: make the inner field stretch to fill its container height. */
|
|
27
|
+
readonly fullHeight: import("@angular/core").InputSignal<boolean>;
|
|
28
|
+
/** Layout: render the inner field without a visible border. */
|
|
29
|
+
readonly borderless: import("@angular/core").InputSignal<boolean>;
|
|
30
|
+
/** Opaque host metadata emitted with promptSubmit for backend integrations. */
|
|
31
|
+
readonly metadata: import("@angular/core").InputSignal<Record<string, unknown>>;
|
|
32
|
+
readonly valueChange: import("@angular/core").OutputEmitterRef<string>;
|
|
33
|
+
readonly promptChange: import("@angular/core").OutputEmitterRef<string>;
|
|
34
|
+
readonly promptSubmit: import("@angular/core").OutputEmitterRef<WriteWithAiSubmitEvent>;
|
|
35
|
+
readonly cancelPending: import("@angular/core").OutputEmitterRef<void>;
|
|
36
|
+
readonly acceptResult: import("@angular/core").OutputEmitterRef<void>;
|
|
37
|
+
readonly requestRefine: import("@angular/core").OutputEmitterRef<void>;
|
|
38
|
+
private readonly destroyRef;
|
|
39
|
+
private readonly llmService;
|
|
40
|
+
private readonly uiTranslate;
|
|
41
|
+
private readonly promptModel;
|
|
42
|
+
private readonly isPanelManuallyOpen;
|
|
43
|
+
private readonly internalStatus;
|
|
44
|
+
private readonly internalValue;
|
|
45
|
+
private readonly cancelRequest$;
|
|
46
|
+
/** ControlValueAccessor: whether the form control is disabled. */
|
|
47
|
+
readonly cvaDisabled: import("@angular/core").WritableSignal<boolean>;
|
|
48
|
+
/** ControlValueAccessor callbacks. */
|
|
49
|
+
private onChange;
|
|
50
|
+
private onTouched;
|
|
51
|
+
readonly translationContext = "WRITE_WITH_AI.";
|
|
52
|
+
private readonly labels;
|
|
53
|
+
readonly isDefaultMode: import("@angular/core").Signal<boolean>;
|
|
54
|
+
readonly effectiveStatus: import("@angular/core").Signal<WriteWithAiStatus>;
|
|
55
|
+
readonly effectiveValue: import("@angular/core").Signal<string>;
|
|
56
|
+
readonly isPanelVisible: import("@angular/core").Signal<boolean>;
|
|
57
|
+
readonly promptTags: import("@angular/core").Signal<PromptTag[]>;
|
|
58
|
+
readonly statusConfig: import("@angular/core").Signal<StatusConfig | null>;
|
|
59
|
+
constructor();
|
|
60
|
+
readonly promptModelData: import("@angular/core").Signal<PromptData>;
|
|
61
|
+
handlePromptModelChange(value: PromptData | string): void;
|
|
62
|
+
ngOnInit(): void;
|
|
63
|
+
togglePanel(): void;
|
|
64
|
+
handleValueInput(value: string): void;
|
|
65
|
+
handlePromptSubmit(promptData?: PromptData | string): void;
|
|
66
|
+
handlePrimaryAction(): void;
|
|
67
|
+
handleSecondaryAction(): void;
|
|
68
|
+
writeValue(value: string): void;
|
|
69
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
70
|
+
registerOnTouched(fn: () => void): void;
|
|
71
|
+
setDisabledState(isDisabled: boolean): void;
|
|
72
|
+
private executeDefaultFlow;
|
|
73
|
+
private handleCancel;
|
|
74
|
+
private handleAccept;
|
|
75
|
+
private handleRefine;
|
|
76
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WriteWithAiComponent, never>;
|
|
77
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WriteWithAiComponent, "ui-write-with-ai", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "standalone": { "alias": "standalone"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "promptValue": { "alias": "promptValue"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "subheader": { "alias": "subheader"; "required": false; "isSignal": true; }; "llmConfig": { "alias": "llmConfig"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "metadata": { "alias": "metadata"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "promptChange": "promptChange"; "promptSubmit": "promptSubmit"; "cancelPending": "cancelPending"; "acceptResult": "acceptResult"; "requestRefine": "requestRefine"; }, never, never, true, never>;
|
|
78
|
+
}
|
|
79
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type WriteWithAiStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
2
|
+
export interface WriteWithAiTagOption {
|
|
3
|
+
id: number;
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface WriteWithAiLlmConfig {
|
|
8
|
+
default?: boolean;
|
|
9
|
+
context?: string;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
model?: string;
|
|
12
|
+
provider?: 'openai' | 'openai-compatible' | 'gemini';
|
|
13
|
+
endpoint?: string;
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Emitted by promptSubmit — gives the host everything needed
|
|
18
|
+
* to call its own backend without stitching values together.
|
|
19
|
+
*/
|
|
20
|
+
export interface WriteWithAiSubmitEvent {
|
|
21
|
+
prompt: string;
|
|
22
|
+
content: string;
|
|
23
|
+
metadata: Record<string, unknown>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./write-with-ai.component";
|
|
3
|
+
export declare class WriteWithAiComponentModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WriteWithAiComponentModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WriteWithAiComponentModule, never, [typeof i1.WriteWithAiComponent], [typeof i1.WriteWithAiComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<WriteWithAiComponentModule>;
|
|
7
|
+
}
|
|
@@ -96,12 +96,12 @@ class AccordionComponent {
|
|
|
96
96
|
this.closed.emit();
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.18", type: AccordionComponent, isStandalone: false, selector: "ui-accordion", inputs: { label: "label", open: ["open", "open", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], showPremiumIcon: ["showPremiumIcon", "showPremiumIcon", booleanAttribute], premiumTooltipText: "premiumTooltipText", applicationTheme: "applicationTheme", labelIcon: "labelIcon", variant: "variant", allowCustomHeader: "allowCustomHeader", noBackgroundColor: "noBackgroundColor", toggleIconPosition: "toggleIconPosition" }, outputs: { closed: "closed", opened: "opened" }, ngImport: i0, template: "<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <mat-panel-title>\n <ng-content select=\"[customHeader]\"></ng-content>\n </mat-panel-title>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,.mat-expansion-panel-header .accordion-label,.mat-expansion-panel-header-description .accordion-actions{display:flex;justify-content:center;align-items:center}:host ::ng-deep .mat-expansion-panel-body{background:#ededed;border-radius:8px;width:calc(100% - 32px);padding:0;margin:0 auto}:host ::ng-deep .mat-expansion-panel-content{overflow:hidden}:host ::ng-deep .mat-expansion-panel.bgcolor-none .mat-expansion-panel-body{background:none}:host ::ng-deep .mat-expansion-indicator{height:24px;width:24px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mat-expansion-indicator:after{color:#000!important;margin-top:-6px}.mat-expansion-panel{box-shadow:unset!important;background:transparent}.accordion-wrapper.disabled{opacity:.5;pointer-events:none}.mat-expansion-panel-header-description{justify-content:end;margin:0 16px 0 8px}.mat-expansion-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;height:48px!important;border-radius:8px;z-index:1;border:1px solid transparent}.mat-expansion-panel-header.cdk-keyboard-focused{position:relative}.mat-expansion-panel-header.cdk-keyboard-focused:after{content:\"\";width:100%;height:100%;outline:3px solid #242424;position:absolute;left:0;top:0;animation:focus-ring-animation-main .4s forwards;border-radius:10px}.mat-expansion-panel-header.custom-height{height:auto!important;align-items:flex-start}.mat-expansion-panel-header.custom-height ::ng-deep .mat-expansion-panel-header-title{flex-basis:auto;margin-right:0}.mat-expansion-panel-header.custom-height ::ng-deep .mat-expansion-panel-header-description{flex-grow:0;flex-basis:auto}.mat-expansion-panel-header.left-toggle{flex-direction:row-reverse;gap:8px}.mat-expansion-panel-header:focus{border:1px dashed #888888!important}.mat-expansion-panel-header:hover{background:#f6f6f6!important}.mat-expansion-panel-header .accordion-label{font-size:14px;font-weight:700;gap:8px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mat-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}.accordion-wrapper[theme=dark],.accordion-wrapper[theme=light]{position:relative;border-radius:10px}.accordion-wrapper[theme=dark] .mat-expansion-panel-header,.accordion-wrapper[theme=light] .mat-expansion-panel-header{border:unset!important}.accordion-wrapper[theme=dark] .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light] .mat-expansion-panel-header:hover{background:transparent!important}.accordion-wrapper[theme=dark].standard .mat-expansion-panel:hover,.accordion-wrapper[theme=light].standard .mat-expansion-panel:hover{box-shadow:0 4px 16px #24242414}.accordion-wrapper[theme=dark].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{margin:0 16px 12px}.accordion-wrapper[theme=dark] .mat-expansion-panel,.accordion-wrapper[theme=light] .mat-expansion-panel{background:#fff;border-radius:10px;border:1px solid #919191;overflow:visible}.accordion-wrapper[theme=dark] .mat-expansion-panel:hover,.accordion-wrapper[theme=light] .mat-expansion-panel:hover{outline:1px solid #242424;border-color:#242424}.accordion-wrapper[theme=dark] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body{background-color:#f4f4f4}.accordion-wrapper[theme=dark] .mat-expansion-panel *,.accordion-wrapper[theme=light] .mat-expansion-panel *{color:#242424;font-weight:400}.accordion-wrapper[theme=dark] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after,.accordion-wrapper[theme=light] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after{color:#242424!important}.accordion-wrapper[theme=dark]:hover .accordion-label,.accordion-wrapper[theme=light]:hover .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark]:focus,.accordion-wrapper[theme=light]:focus{outline:unset!important;border-color:unset!important}.accordion-wrapper[theme=dark]:focus:after,.accordion-wrapper[theme=light]:focus:after{content:\"\";position:absolute;top:-3px;left:-3px;display:flex;width:calc(100% + 6px);height:calc(100% + 6px);border:1px dashed #919191;border-radius:10px}.accordion-wrapper[theme=dark]:focus .accordion-label,.accordion-wrapper[theme=light]:focus .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark].filter .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter .mat-expansion-panel-header{padding-left:2px;border:1px dashed transparent!important;border-radius:10px;box-shadow:none!important}.accordion-wrapper[theme=dark].filter:focus:after,.accordion-wrapper[theme=light].filter:focus:after{display:none}.accordion-wrapper[theme=dark].filter:focus .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter:focus .mat-expansion-panel-header{border:1px dashed #919191!important}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-header-description,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-header-description{margin-left:0}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].filter .mat-expansion-panel,.accordion-wrapper[theme=light].filter .mat-expansion-panel{border:unset}.accordion-wrapper[theme=dark].filter .mat-expansion-panel:hover,.accordion-wrapper[theme=light].filter .mat-expansion-panel:hover{border:unset;outline:unset}.accordion-wrapper[theme=dark].table .mat-expansion-panel,.accordion-wrapper[theme=light].table .mat-expansion-panel{border-radius:0;border:unset;outline:unset}.accordion-wrapper[theme=dark].table:after,.accordion-wrapper[theme=light].table:after{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{border-radius:0;box-shadow:none!important;height:64px!important}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light].table .mat-expansion-panel-header:hover{background:#fff2fc!important}.accordion-wrapper[theme=dark].table .accordion-label,.accordion-wrapper[theme=light].table .accordion-label{font-weight:400!important;text-decoration:unset}.accordion-wrapper[theme=dark].table .table-container,.accordion-wrapper[theme=light].table .table-container{display:flex;flex-direction:row}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-indicator,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-indicator{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{padding:12px 24px}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].table ui-icon,.accordion-wrapper[theme=light].table ui-icon{border:1px dashed transparent;margin-right:16px}.accordion-wrapper[theme=dark].table ui-icon ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon ::ng-deep mat-icon{transition:transform .3s}.accordion-wrapper[theme=dark].table ui-icon.open ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon.open ::ng-deep mat-icon{transform:rotate(180deg)}.accordion-wrapper[theme=dark].table:focus ui-icon,.accordion-wrapper[theme=light].table:focus ui-icon{border-radius:100%;border:1px dashed #919191}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i4.MatExpansionPanelDescription, selector: "mat-panel-description" }] }); }
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.20", type: AccordionComponent, isStandalone: false, selector: "ui-accordion", inputs: { label: "label", open: ["open", "open", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], showPremiumIcon: ["showPremiumIcon", "showPremiumIcon", booleanAttribute], premiumTooltipText: "premiumTooltipText", applicationTheme: "applicationTheme", labelIcon: "labelIcon", variant: "variant", allowCustomHeader: "allowCustomHeader", noBackgroundColor: "noBackgroundColor", toggleIconPosition: "toggleIconPosition" }, outputs: { closed: "closed", opened: "opened" }, ngImport: i0, template: "<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <ng-content select=\"[customHeader]\"></ng-content>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,.mat-expansion-panel-header .accordion-label,.mat-expansion-panel-header-description .accordion-actions{display:flex;justify-content:center;align-items:center}:host ::ng-deep .mat-expansion-panel-body{background:#ededed;border-radius:8px;width:calc(100% - 32px);padding:0;margin:0 auto}:host ::ng-deep .mat-expansion-panel-content{overflow:hidden}:host ::ng-deep .mat-expansion-panel.bgcolor-none .mat-expansion-panel-body{background:none}:host ::ng-deep .mat-expansion-indicator{height:24px;width:24px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mat-expansion-indicator:after{color:#000!important;margin-top:-6px}.mat-expansion-panel{box-shadow:unset!important;background:transparent}.accordion-wrapper.disabled{opacity:.5;pointer-events:none}.mat-expansion-panel-header-description{justify-content:end;margin:0 16px 0 8px}.mat-expansion-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;height:48px!important;border-radius:8px;z-index:1;border:1px solid transparent}.mat-expansion-panel-header.cdk-keyboard-focused{position:relative}.mat-expansion-panel-header.cdk-keyboard-focused:after{content:\"\";width:100%;height:100%;outline:3px solid #242424;position:absolute;left:0;top:0;animation:focus-ring-animation-main .4s forwards;border-radius:10px}.mat-expansion-panel-header.custom-height{height:auto!important;align-items:flex-start}.mat-expansion-panel-header.left-toggle{flex-direction:row-reverse;gap:8px}.mat-expansion-panel-header:focus{border:1px dashed #888888!important}.mat-expansion-panel-header:hover{background:#f6f6f6!important}.mat-expansion-panel-header .accordion-label{font-size:14px;font-weight:700;gap:8px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}.accordion-wrapper[theme=dark],.accordion-wrapper[theme=light]{position:relative;border-radius:10px}.accordion-wrapper[theme=dark] .mat-expansion-panel-header,.accordion-wrapper[theme=light] .mat-expansion-panel-header{border:unset!important}.accordion-wrapper[theme=dark] .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light] .mat-expansion-panel-header:hover{background:transparent!important}.accordion-wrapper[theme=dark].standard .mat-expansion-panel:hover,.accordion-wrapper[theme=light].standard .mat-expansion-panel:hover{box-shadow:0 4px 16px #24242414}.accordion-wrapper[theme=dark].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{margin:0 16px 12px}.accordion-wrapper[theme=dark] .mat-expansion-panel,.accordion-wrapper[theme=light] .mat-expansion-panel{background:#fff;border-radius:10px;border:1px solid #919191;overflow:visible}.accordion-wrapper[theme=dark] .mat-expansion-panel:hover,.accordion-wrapper[theme=light] .mat-expansion-panel:hover{outline:1px solid #242424;border-color:#242424}.accordion-wrapper[theme=dark] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body{background-color:#f4f4f4}.accordion-wrapper[theme=dark] .mat-expansion-panel *,.accordion-wrapper[theme=light] .mat-expansion-panel *{color:#242424;font-weight:400}.accordion-wrapper[theme=dark] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after,.accordion-wrapper[theme=light] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after{color:#242424!important}.accordion-wrapper[theme=dark]:hover .accordion-label,.accordion-wrapper[theme=light]:hover .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark]:focus,.accordion-wrapper[theme=light]:focus{outline:unset!important;border-color:unset!important}.accordion-wrapper[theme=dark]:focus:after,.accordion-wrapper[theme=light]:focus:after{content:\"\";position:absolute;top:-3px;left:-3px;display:flex;width:calc(100% + 6px);height:calc(100% + 6px);border:1px dashed #919191;border-radius:10px}.accordion-wrapper[theme=dark]:focus .accordion-label,.accordion-wrapper[theme=light]:focus .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark].filter .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter .mat-expansion-panel-header{padding-left:2px;border:1px dashed transparent!important;border-radius:10px;box-shadow:none!important}.accordion-wrapper[theme=dark].filter:focus:after,.accordion-wrapper[theme=light].filter:focus:after{display:none}.accordion-wrapper[theme=dark].filter:focus .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter:focus .mat-expansion-panel-header{border:1px dashed #919191!important}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-header-description,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-header-description{margin-left:0}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].filter .mat-expansion-panel,.accordion-wrapper[theme=light].filter .mat-expansion-panel{border:unset}.accordion-wrapper[theme=dark].filter .mat-expansion-panel:hover,.accordion-wrapper[theme=light].filter .mat-expansion-panel:hover{border:unset;outline:unset}.accordion-wrapper[theme=dark].table .mat-expansion-panel,.accordion-wrapper[theme=light].table .mat-expansion-panel{border-radius:0;border:unset;outline:unset}.accordion-wrapper[theme=dark].table:after,.accordion-wrapper[theme=light].table:after{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{border-radius:0;box-shadow:none!important;height:64px!important}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light].table .mat-expansion-panel-header:hover{background:#fff2fc!important}.accordion-wrapper[theme=dark].table .accordion-label,.accordion-wrapper[theme=light].table .accordion-label{font-weight:400!important;text-decoration:unset}.accordion-wrapper[theme=dark].table .table-container,.accordion-wrapper[theme=light].table .table-container{display:flex;flex-direction:row}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-indicator,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-indicator{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{padding:12px 24px}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].table ui-icon,.accordion-wrapper[theme=light].table ui-icon{border:1px dashed transparent;margin-right:16px}.accordion-wrapper[theme=dark].table ui-icon ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon ::ng-deep mat-icon{transition:transform .3s}.accordion-wrapper[theme=dark].table ui-icon.open ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon.open ::ng-deep mat-icon{transform:rotate(180deg)}.accordion-wrapper[theme=dark].table:focus ui-icon,.accordion-wrapper[theme=light].table:focus ui-icon{border-radius:100%;border:1px dashed #919191}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i4.MatExpansionPanelDescription, selector: "mat-panel-description" }] }); }
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
|
-
args: [{ selector: 'ui-accordion', standalone: false, template: "<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <mat-panel-title>\n <ng-content select=\"[customHeader]\"></ng-content>\n </mat-panel-title>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,.mat-expansion-panel-header .accordion-label,.mat-expansion-panel-header-description .accordion-actions{display:flex;justify-content:center;align-items:center}:host ::ng-deep .mat-expansion-panel-body{background:#ededed;border-radius:8px;width:calc(100% - 32px);padding:0;margin:0 auto}:host ::ng-deep .mat-expansion-panel-content{overflow:hidden}:host ::ng-deep .mat-expansion-panel.bgcolor-none .mat-expansion-panel-body{background:none}:host ::ng-deep .mat-expansion-indicator{height:24px;width:24px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mat-expansion-indicator:after{color:#000!important;margin-top:-6px}.mat-expansion-panel{box-shadow:unset!important;background:transparent}.accordion-wrapper.disabled{opacity:.5;pointer-events:none}.mat-expansion-panel-header-description{justify-content:end;margin:0 16px 0 8px}.mat-expansion-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;height:48px!important;border-radius:8px;z-index:1;border:1px solid transparent}.mat-expansion-panel-header.cdk-keyboard-focused{position:relative}.mat-expansion-panel-header.cdk-keyboard-focused:after{content:\"\";width:100%;height:100%;outline:3px solid #242424;position:absolute;left:0;top:0;animation:focus-ring-animation-main .4s forwards;border-radius:10px}.mat-expansion-panel-header.custom-height{height:auto!important;align-items:flex-start}.mat-expansion-panel-header.custom-height ::ng-deep .mat-expansion-panel-header-title{flex-basis:auto;margin-right:0}.mat-expansion-panel-header.custom-height ::ng-deep .mat-expansion-panel-header-description{flex-grow:0;flex-basis:auto}.mat-expansion-panel-header.left-toggle{flex-direction:row-reverse;gap:8px}.mat-expansion-panel-header:focus{border:1px dashed #888888!important}.mat-expansion-panel-header:hover{background:#f6f6f6!important}.mat-expansion-panel-header .accordion-label{font-size:14px;font-weight:700;gap:8px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mat-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}.accordion-wrapper[theme=dark],.accordion-wrapper[theme=light]{position:relative;border-radius:10px}.accordion-wrapper[theme=dark] .mat-expansion-panel-header,.accordion-wrapper[theme=light] .mat-expansion-panel-header{border:unset!important}.accordion-wrapper[theme=dark] .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light] .mat-expansion-panel-header:hover{background:transparent!important}.accordion-wrapper[theme=dark].standard .mat-expansion-panel:hover,.accordion-wrapper[theme=light].standard .mat-expansion-panel:hover{box-shadow:0 4px 16px #24242414}.accordion-wrapper[theme=dark].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{margin:0 16px 12px}.accordion-wrapper[theme=dark] .mat-expansion-panel,.accordion-wrapper[theme=light] .mat-expansion-panel{background:#fff;border-radius:10px;border:1px solid #919191;overflow:visible}.accordion-wrapper[theme=dark] .mat-expansion-panel:hover,.accordion-wrapper[theme=light] .mat-expansion-panel:hover{outline:1px solid #242424;border-color:#242424}.accordion-wrapper[theme=dark] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body{background-color:#f4f4f4}.accordion-wrapper[theme=dark] .mat-expansion-panel *,.accordion-wrapper[theme=light] .mat-expansion-panel *{color:#242424;font-weight:400}.accordion-wrapper[theme=dark] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after,.accordion-wrapper[theme=light] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after{color:#242424!important}.accordion-wrapper[theme=dark]:hover .accordion-label,.accordion-wrapper[theme=light]:hover .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark]:focus,.accordion-wrapper[theme=light]:focus{outline:unset!important;border-color:unset!important}.accordion-wrapper[theme=dark]:focus:after,.accordion-wrapper[theme=light]:focus:after{content:\"\";position:absolute;top:-3px;left:-3px;display:flex;width:calc(100% + 6px);height:calc(100% + 6px);border:1px dashed #919191;border-radius:10px}.accordion-wrapper[theme=dark]:focus .accordion-label,.accordion-wrapper[theme=light]:focus .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark].filter .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter .mat-expansion-panel-header{padding-left:2px;border:1px dashed transparent!important;border-radius:10px;box-shadow:none!important}.accordion-wrapper[theme=dark].filter:focus:after,.accordion-wrapper[theme=light].filter:focus:after{display:none}.accordion-wrapper[theme=dark].filter:focus .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter:focus .mat-expansion-panel-header{border:1px dashed #919191!important}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-header-description,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-header-description{margin-left:0}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].filter .mat-expansion-panel,.accordion-wrapper[theme=light].filter .mat-expansion-panel{border:unset}.accordion-wrapper[theme=dark].filter .mat-expansion-panel:hover,.accordion-wrapper[theme=light].filter .mat-expansion-panel:hover{border:unset;outline:unset}.accordion-wrapper[theme=dark].table .mat-expansion-panel,.accordion-wrapper[theme=light].table .mat-expansion-panel{border-radius:0;border:unset;outline:unset}.accordion-wrapper[theme=dark].table:after,.accordion-wrapper[theme=light].table:after{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{border-radius:0;box-shadow:none!important;height:64px!important}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light].table .mat-expansion-panel-header:hover{background:#fff2fc!important}.accordion-wrapper[theme=dark].table .accordion-label,.accordion-wrapper[theme=light].table .accordion-label{font-weight:400!important;text-decoration:unset}.accordion-wrapper[theme=dark].table .table-container,.accordion-wrapper[theme=light].table .table-container{display:flex;flex-direction:row}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-indicator,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-indicator{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{padding:12px 24px}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].table ui-icon,.accordion-wrapper[theme=light].table ui-icon{border:1px dashed transparent;margin-right:16px}.accordion-wrapper[theme=dark].table ui-icon ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon ::ng-deep mat-icon{transition:transform .3s}.accordion-wrapper[theme=dark].table ui-icon.open ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon.open ::ng-deep mat-icon{transform:rotate(180deg)}.accordion-wrapper[theme=dark].table:focus ui-icon,.accordion-wrapper[theme=light].table:focus ui-icon{border-radius:100%;border:1px dashed #919191}\n"] }]
|
|
104
|
+
args: [{ selector: 'ui-accordion', standalone: false, template: "<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <ng-content select=\"[customHeader]\"></ng-content>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,.mat-expansion-panel-header .accordion-label,.mat-expansion-panel-header-description .accordion-actions{display:flex;justify-content:center;align-items:center}:host ::ng-deep .mat-expansion-panel-body{background:#ededed;border-radius:8px;width:calc(100% - 32px);padding:0;margin:0 auto}:host ::ng-deep .mat-expansion-panel-content{overflow:hidden}:host ::ng-deep .mat-expansion-panel.bgcolor-none .mat-expansion-panel-body{background:none}:host ::ng-deep .mat-expansion-indicator{height:24px;width:24px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mat-expansion-indicator:after{color:#000!important;margin-top:-6px}.mat-expansion-panel{box-shadow:unset!important;background:transparent}.accordion-wrapper.disabled{opacity:.5;pointer-events:none}.mat-expansion-panel-header-description{justify-content:end;margin:0 16px 0 8px}.mat-expansion-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;height:48px!important;border-radius:8px;z-index:1;border:1px solid transparent}.mat-expansion-panel-header.cdk-keyboard-focused{position:relative}.mat-expansion-panel-header.cdk-keyboard-focused:after{content:\"\";width:100%;height:100%;outline:3px solid #242424;position:absolute;left:0;top:0;animation:focus-ring-animation-main .4s forwards;border-radius:10px}.mat-expansion-panel-header.custom-height{height:auto!important;align-items:flex-start}.mat-expansion-panel-header.left-toggle{flex-direction:row-reverse;gap:8px}.mat-expansion-panel-header:focus{border:1px dashed #888888!important}.mat-expansion-panel-header:hover{background:#f6f6f6!important}.mat-expansion-panel-header .accordion-label{font-size:14px;font-weight:700;gap:8px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}.accordion-wrapper[theme=dark],.accordion-wrapper[theme=light]{position:relative;border-radius:10px}.accordion-wrapper[theme=dark] .mat-expansion-panel-header,.accordion-wrapper[theme=light] .mat-expansion-panel-header{border:unset!important}.accordion-wrapper[theme=dark] .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light] .mat-expansion-panel-header:hover{background:transparent!important}.accordion-wrapper[theme=dark].standard .mat-expansion-panel:hover,.accordion-wrapper[theme=light].standard .mat-expansion-panel:hover{box-shadow:0 4px 16px #24242414}.accordion-wrapper[theme=dark].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].standard .mat-expansion-panel ::ng-deep .mat-expansion-panel-body{margin:0 16px 12px}.accordion-wrapper[theme=dark] .mat-expansion-panel,.accordion-wrapper[theme=light] .mat-expansion-panel{background:#fff;border-radius:10px;border:1px solid #919191;overflow:visible}.accordion-wrapper[theme=dark] .mat-expansion-panel:hover,.accordion-wrapper[theme=light] .mat-expansion-panel:hover{outline:1px solid #242424;border-color:#242424}.accordion-wrapper[theme=dark] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light] .mat-expansion-panel:not(.bgcolor-none) ::ng-deep .mat-expansion-panel-body{background-color:#f4f4f4}.accordion-wrapper[theme=dark] .mat-expansion-panel *,.accordion-wrapper[theme=light] .mat-expansion-panel *{color:#242424;font-weight:400}.accordion-wrapper[theme=dark] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after,.accordion-wrapper[theme=light] .mat-expansion-panel ::ng-deep .mat-expansion-indicator:after{color:#242424!important}.accordion-wrapper[theme=dark]:hover .accordion-label,.accordion-wrapper[theme=light]:hover .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark]:focus,.accordion-wrapper[theme=light]:focus{outline:unset!important;border-color:unset!important}.accordion-wrapper[theme=dark]:focus:after,.accordion-wrapper[theme=light]:focus:after{content:\"\";position:absolute;top:-3px;left:-3px;display:flex;width:calc(100% + 6px);height:calc(100% + 6px);border:1px dashed #919191;border-radius:10px}.accordion-wrapper[theme=dark]:focus .accordion-label,.accordion-wrapper[theme=light]:focus .accordion-label{font-weight:700!important;text-decoration:underline}.accordion-wrapper[theme=dark].filter .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter .mat-expansion-panel-header{padding-left:2px;border:1px dashed transparent!important;border-radius:10px;box-shadow:none!important}.accordion-wrapper[theme=dark].filter:focus:after,.accordion-wrapper[theme=light].filter:focus:after{display:none}.accordion-wrapper[theme=dark].filter:focus .mat-expansion-panel-header,.accordion-wrapper[theme=light].filter:focus .mat-expansion-panel-header{border:1px dashed #919191!important}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-header-description,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-header-description{margin-left:0}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].filter ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].filter ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].filter .mat-expansion-panel,.accordion-wrapper[theme=light].filter .mat-expansion-panel{border:unset}.accordion-wrapper[theme=dark].filter .mat-expansion-panel:hover,.accordion-wrapper[theme=light].filter .mat-expansion-panel:hover{border:unset;outline:unset}.accordion-wrapper[theme=dark].table .mat-expansion-panel,.accordion-wrapper[theme=light].table .mat-expansion-panel{border-radius:0;border:unset;outline:unset}.accordion-wrapper[theme=dark].table:after,.accordion-wrapper[theme=light].table:after{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{border-radius:0;box-shadow:none!important;height:64px!important}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header:hover,.accordion-wrapper[theme=light].table .mat-expansion-panel-header:hover{background:#fff2fc!important}.accordion-wrapper[theme=dark].table .accordion-label,.accordion-wrapper[theme=light].table .accordion-label{font-weight:400!important;text-decoration:unset}.accordion-wrapper[theme=dark].table .table-container,.accordion-wrapper[theme=light].table .table-container{display:flex;flex-direction:row}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-indicator,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-indicator{display:none}.accordion-wrapper[theme=dark].table .mat-expansion-panel-header,.accordion-wrapper[theme=light].table .mat-expansion-panel-header{padding:12px 24px}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body{background-color:transparent!important;margin:0;width:100%}.accordion-wrapper[theme=dark].table ::ng-deep .mat-expansion-panel-body div,.accordion-wrapper[theme=light].table ::ng-deep .mat-expansion-panel-body div{padding:0!important}.accordion-wrapper[theme=dark].table ui-icon,.accordion-wrapper[theme=light].table ui-icon{border:1px dashed transparent;margin-right:16px}.accordion-wrapper[theme=dark].table ui-icon ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon ::ng-deep mat-icon{transition:transform .3s}.accordion-wrapper[theme=dark].table ui-icon.open ::ng-deep mat-icon,.accordion-wrapper[theme=light].table ui-icon.open ::ng-deep mat-icon{transform:rotate(180deg)}.accordion-wrapper[theme=dark].table:focus ui-icon,.accordion-wrapper[theme=light].table:focus ui-icon{border-radius:100%;border:1px dashed #919191}\n"] }]
|
|
105
105
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
106
106
|
type: Optional
|
|
107
107
|
}, {
|
|
@@ -140,11 +140,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
140
140
|
}] } });
|
|
141
141
|
|
|
142
142
|
class AccordionComponentModule {
|
|
143
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
144
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
145
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
144
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponentModule, declarations: [AccordionComponent], imports: [CommonModule, IconComponentModule, ButtonComponentModule, MatTooltipModule, MatExpansionModule], exports: [AccordionComponent] }); }
|
|
145
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponentModule, imports: [CommonModule, IconComponentModule, ButtonComponentModule, MatTooltipModule, MatExpansionModule] }); }
|
|
146
146
|
}
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AccordionComponentModule, decorators: [{
|
|
148
148
|
type: NgModule,
|
|
149
149
|
args: [{
|
|
150
150
|
declarations: [AccordionComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-accordion.mjs","sources":["../../../components/accordion/accordion.component.ts","../../../components/accordion/accordion.component.html","../../../components/accordion/accordion.component.module.ts","../../../components/accordion/testgorilla-tgo-ui-components-accordion.ts"],"sourcesContent":["import { booleanAttribute, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { AccordionVariant, ToggleIconPosition } from './accordion.model';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\n\n@Component({\n selector: 'ui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n standalone: false,\n})\nexport class AccordionComponent {\n /**\n * The label displayed for the accordion.\n * @type {string}\n * @required\n * @memberof AccordionComponent\n */\n @Input({ required: true }) label: string;\n\n /**\n * Determines whether the accordion is initially open.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) open = false;\n\n /**\n * Disables the accordion if set to true.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Indicates whether to show a premium icon.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) showPremiumIcon = false;\n\n /**\n * The tooltip text for the premium icon.\n * @type {string}\n * @default ''\n * @memberof AccordionComponent\n */\n @Input() premiumTooltipText = '';\n\n /**\n *\n * Defines the application theme where accordion is used\n *\n * @type {ApplicationTheme}\n * @memberof AccordionComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Changed premium icon on this icon\n *\n * @type {IconName}\n * @memberof AccordionComponent\n */\n @Input() labelIcon: IconName;\n\n /**\n *\n * Select accordion variant. Don`t work on Classic theme\n *\n * @type {AccordionVariant}\n * @memberof AccordionComponent\n */\n @Input() variant: AccordionVariant = 'standard';\n\n /**\n *\n * Projects content with attribute 'customHeader'\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() allowCustomHeader = false;\n\n /**\n *\n * Sets background color of content to none\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() noBackgroundColor = false;\n\n /**\n *\n * Defines the toggle icon position\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() toggleIconPosition: ToggleIconPosition = 'right';\n\n @Output() closed = new EventEmitter<void>();\n @Output() opened = new EventEmitter<void>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected toggle(open: boolean): void {\n this.open = open;\n\n if (this.open) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n }\n}\n","<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <mat-panel-title>\n <ng-content select=\"[customHeader]\"></ng-content>\n </mat-panel-title>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccordionComponent } from './accordion.component';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\n@NgModule({\n declarations: [AccordionComponent],\n exports: [AccordionComponent],\n imports: [CommonModule, IconComponentModule, ButtonComponentModule, MatTooltipModule, MatExpansionModule],\n})\nexport class AccordionComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-accordion.mjs","sources":["../../../components/accordion/accordion.component.ts","../../../components/accordion/accordion.component.html","../../../components/accordion/accordion.component.module.ts","../../../components/accordion/testgorilla-tgo-ui-components-accordion.ts"],"sourcesContent":["import { booleanAttribute, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { AccordionVariant, ToggleIconPosition } from './accordion.model';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\n\n@Component({\n selector: 'ui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n standalone: false,\n})\nexport class AccordionComponent {\n /**\n * The label displayed for the accordion.\n * @type {string}\n * @required\n * @memberof AccordionComponent\n */\n @Input({ required: true }) label: string;\n\n /**\n * Determines whether the accordion is initially open.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) open = false;\n\n /**\n * Disables the accordion if set to true.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Indicates whether to show a premium icon.\n * @type {boolean}\n * @default false\n * @memberof AccordionComponent\n */\n @Input({ transform: booleanAttribute }) showPremiumIcon = false;\n\n /**\n * The tooltip text for the premium icon.\n * @type {string}\n * @default ''\n * @memberof AccordionComponent\n */\n @Input() premiumTooltipText = '';\n\n /**\n *\n * Defines the application theme where accordion is used\n *\n * @type {ApplicationTheme}\n * @memberof AccordionComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Changed premium icon on this icon\n *\n * @type {IconName}\n * @memberof AccordionComponent\n */\n @Input() labelIcon: IconName;\n\n /**\n *\n * Select accordion variant. Don`t work on Classic theme\n *\n * @type {AccordionVariant}\n * @memberof AccordionComponent\n */\n @Input() variant: AccordionVariant = 'standard';\n\n /**\n *\n * Projects content with attribute 'customHeader'\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() allowCustomHeader = false;\n\n /**\n *\n * Sets background color of content to none\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() noBackgroundColor = false;\n\n /**\n *\n * Defines the toggle icon position\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() toggleIconPosition: ToggleIconPosition = 'right';\n\n @Output() closed = new EventEmitter<void>();\n @Output() opened = new EventEmitter<void>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected toggle(open: boolean): void {\n this.open = open;\n\n if (this.open) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n }\n}\n","<mat-accordion\n class=\"accordion-wrapper\"\n [class.disabled]=\"disabled\"\n [ngClass]=\"variant\"\n [attr.theme]=\"applicationTheme\"\n>\n <mat-expansion-panel\n [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\"\n >\n <mat-expansion-panel-header\n [tabIndex]=\"disabled ? -1 : 0\"\n [class.custom-height]=\"allowCustomHeader\"\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\n [attr.aria-label]=\"label\"\n >\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\n <div class=\"accordion-label\">\n {{ label }}\n </div>\n </div>\n <ng-template #default>\n <div class=\"accordion-label\">\n {{ label }}\n <ng-content select=\"[subHeader]\"></ng-content>\n <ui-icon\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"premiumTooltipText\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\n *ngIf=\"showPremiumIcon || labelIcon\"\n ></ui-icon>\n </div>\n </ng-template>\n </mat-panel-title>\n <ng-template #customHeader>\n <ng-content select=\"[customHeader]\"></ng-content>\n </ng-template>\n <mat-panel-description>\n <div class=\"accordion-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccordionComponent } from './accordion.component';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\n@NgModule({\n declarations: [AccordionComponent],\n exports: [AccordionComponent],\n imports: [CommonModule, IconComponentModule, ButtonComponentModule, MatTooltipModule, MatExpansionModule],\n})\nexport class AccordionComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -11,16 +11,16 @@ var InterviewState;
|
|
|
11
11
|
})(InterviewState || (InterviewState = {}));
|
|
12
12
|
class AiAudioCircleComponent {
|
|
13
13
|
constructor() {
|
|
14
|
-
this.audioTrack = input(
|
|
15
|
-
this.candidateAudioTrack = input(
|
|
16
|
-
this.state = model(InterviewState.AiListening
|
|
17
|
-
this.canvasSize = input(350
|
|
18
|
-
this.animated = input(true
|
|
19
|
-
this.isSpeaking = signal(false
|
|
20
|
-
this.scaleValue = signal(1
|
|
14
|
+
this.audioTrack = input();
|
|
15
|
+
this.candidateAudioTrack = input();
|
|
16
|
+
this.state = model(InterviewState.AiListening);
|
|
17
|
+
this.canvasSize = input(350);
|
|
18
|
+
this.animated = input(true);
|
|
19
|
+
this.isSpeaking = signal(false);
|
|
20
|
+
this.scaleValue = signal(1);
|
|
21
21
|
this.currentAmp = 0.02;
|
|
22
22
|
this.simTime = 0;
|
|
23
|
-
this.baseRadius = computed(() => this.canvasSize() * 0.28
|
|
23
|
+
this.baseRadius = computed(() => this.canvasSize() * 0.28);
|
|
24
24
|
// Audio detection thresholds
|
|
25
25
|
this.AI_SPEAKING_THRESHOLD = 0.02;
|
|
26
26
|
this.CANDIDATE_SPEAKING_THRESHOLD = 0.5;
|
|
@@ -424,23 +424,23 @@ class AiAudioCircleComponent {
|
|
|
424
424
|
ngOnDestroy() {
|
|
425
425
|
this.cleanup();
|
|
426
426
|
}
|
|
427
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
428
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
427
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
428
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.20", type: AiAudioCircleComponent, isStandalone: false, selector: "ui-ai-audio-circle", inputs: { audioTrack: { classPropertyName: "audioTrack", publicName: "audioTrack", isSignal: true, isRequired: false, transformFunction: null }, candidateAudioTrack: { classPropertyName: "candidateAudioTrack", publicName: "candidateAudioTrack", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, viewQueries: [{ propertyName: "pulseCanvasRef", first: true, predicate: ["pulseCanvas"], descendants: true }], ngImport: i0, template: "<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n", styles: [".ai-audio-visualizer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.canvas-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}canvas{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
429
429
|
}
|
|
430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleComponent, decorators: [{
|
|
431
431
|
type: Component,
|
|
432
432
|
args: [{ selector: 'ui-ai-audio-circle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n", styles: [".ai-audio-visualizer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.canvas-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}canvas{display:block}\n"] }]
|
|
433
433
|
}], ctorParameters: () => [], propDecorators: { pulseCanvasRef: [{
|
|
434
434
|
type: ViewChild,
|
|
435
435
|
args: ['pulseCanvas', { static: false }]
|
|
436
|
-
}]
|
|
436
|
+
}] } });
|
|
437
437
|
|
|
438
438
|
class AiAudioCircleModule {
|
|
439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
440
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
441
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
439
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
440
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleModule, declarations: [AiAudioCircleComponent], imports: [CommonModule], exports: [AiAudioCircleComponent] }); }
|
|
441
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleModule, imports: [CommonModule] }); }
|
|
442
442
|
}
|
|
443
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AiAudioCircleModule, decorators: [{
|
|
444
444
|
type: NgModule,
|
|
445
445
|
args: [{
|
|
446
446
|
declarations: [AiAudioCircleComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-ai-audio-circle.mjs","sources":["../../../components/ai-audio-circle/ai-audio-circle.component.ts","../../../components/ai-audio-circle/ai-audio-circle.component.html","../../../components/ai-audio-circle/ai-audio-circle.module.ts","../../../components/ai-audio-circle/testgorilla-tgo-ui-components-ai-audio-circle.ts"],"sourcesContent":["import {\n Component,\n input,\n model,\n OnDestroy,\n ChangeDetectionStrategy,\n WritableSignal,\n signal,\n ElementRef,\n ViewChild,\n AfterViewInit,\n effect,\n computed,\n} from '@angular/core';\nimport { Color } from '@testgorilla/tgo-ui/components/core';\n\nexport enum InterviewState {\n CandidateSpeaking = 'candidate-speaking',\n AiListening = 'ai-listening',\n AiSpeaking = 'ai-speaking',\n}\n\n@Component({\n selector: 'ui-ai-audio-circle',\n templateUrl: './ai-audio-circle.component.html',\n styleUrls: ['./ai-audio-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AiAudioCircleComponent implements OnDestroy, AfterViewInit {\n @ViewChild('pulseCanvas', { static: false }) pulseCanvasRef?: ElementRef<HTMLCanvasElement>;\n\n audioTrack = input<MediaStreamTrack>();\n candidateAudioTrack = input<MediaStreamTrack>();\n state = model<InterviewState>(InterviewState.AiListening);\n canvasSize = input<number>(350);\n animated = input<boolean>(true);\n\n isSpeaking: WritableSignal<boolean> = signal(false);\n scaleValue: WritableSignal<number> = signal(1);\n\n audioContext?: AudioContext;\n analyser?: AnalyserNode;\n candidateAnalyser?: AnalyserNode;\n dataArray?: Uint8Array<ArrayBuffer>;\n candidateDataArray?: Uint8Array<ArrayBuffer>;\n animationFrameId?: number;\n source?: MediaStreamAudioSourceNode;\n candidateSource?: MediaStreamAudioSourceNode;\n\n pulseCtx?: CanvasRenderingContext2D;\n currentAmp = 0.02;\n simTime = 0;\n baseRadius = computed(() => this.canvasSize() * 0.28);\n\n // Audio detection thresholds\n readonly AI_SPEAKING_THRESHOLD = 0.02;\n readonly CANDIDATE_SPEAKING_THRESHOLD = 0.5;\n\n readonly SHADOW_COLOR_RGB = this.hexToRgb(Color.BRAND_50);\n\n pulseTime = 0;\n pulseScale = 1;\n pulseTargetScale = 1;\n pulseAnimationId?: number;\n blobs: Array<{\n x: number;\n y: number;\n vx: number;\n vy: number;\n radius: number;\n color: string;\n opacity: number;\n }> = [];\n\n constructor() {\n effect(() => {\n const audioTrack = this.audioTrack();\n if (audioTrack) {\n this.setupAudioAnalysis();\n }\n });\n\n effect(() => {\n const candidateAudioTrack = this.candidateAudioTrack();\n if (candidateAudioTrack) {\n this.setupCandidateAudioAnalysis();\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initializeCanvas();\n this.initializeBlobs();\n this.startAnimations();\n }\n\n private initializeCanvas(): void {\n if (!this.pulseCanvasRef) {\n return;\n }\n\n const pulseCanvas = this.pulseCanvasRef.nativeElement;\n\n const dpr = window.devicePixelRatio || 1;\n\n // Setup pulse canvas\n const size = this.canvasSize();\n pulseCanvas.width = size * dpr;\n pulseCanvas.height = size * dpr;\n pulseCanvas.style.width = `${size}px`;\n pulseCanvas.style.height = `${size}px`;\n const ctx = pulseCanvas.getContext('2d');\n if (!ctx) {\n console.error('[AI_AUDIO_CIRCLE] Failed to get 2d context');\n return;\n }\n this.pulseCtx = ctx;\n this.pulseCtx.scale(dpr, dpr);\n }\n\n private initializeBlobs(): void {\n const size = this.canvasSize();\n const centerX = size / 2;\n const centerY = size / 2;\n const baseRadius = this.baseRadius();\n\n const colors = [\n { color: Color.INFORMATIVE_30, opacity: 0.8 },\n { color: Color.INFORMATIVE_20, opacity: 0.7 },\n { color: Color.BRAND_50, opacity: 0.75 },\n { color: Color.BRAND_20, opacity: 0.6 },\n { color: Color.INFORMATIVE_30, opacity: 0.65 },\n ];\n\n // Use deterministic seed values when not animated for stable visual tests\n const seedVelocities = [0.12, -0.08, 0.15, -0.1, 0.06];\n const seedRadii = [0.72, 0.65, 0.8, 0.68, 0.76];\n\n this.blobs = colors.map((c, i) => {\n const angle = (i / colors.length) * Math.PI * 2;\n const dist = baseRadius * 0.25;\n return {\n x: centerX + Math.cos(angle) * dist,\n y: centerY + Math.sin(angle) * dist,\n vx: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[i],\n vy: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[(i + 2) % 5],\n radius: baseRadius * (this.animated() ? 0.6 + Math.random() * 0.4 : seedRadii[i]),\n color: c.color,\n opacity: c.opacity,\n };\n });\n }\n\n private setupAudioAnalysis(): void {\n const audioTrack = this.audioTrack();\n if (!audioTrack) {\n return;\n }\n\n try {\n if (!this.audioContext) {\n this.audioContext = new AudioContext();\n }\n\n this.analyser = this.audioContext.createAnalyser();\n this.analyser.fftSize = 256;\n this.analyser.smoothingTimeConstant = 0.8;\n\n const bufferLength = this.analyser.frequencyBinCount;\n this.dataArray = new Uint8Array(bufferLength);\n\n const stream = new MediaStream([audioTrack]);\n this.source = this.audioContext.createMediaStreamSource(stream);\n this.source.connect(this.analyser);\n\n this.analyzeAudio();\n } catch (error) {\n console.error('[AI_AUDIO_CIRCLE] Error setting up audio analysis:', error);\n }\n }\n\n private setupCandidateAudioAnalysis(): void {\n const candidateAudioTrack = this.candidateAudioTrack();\n if (!candidateAudioTrack) {\n return;\n }\n\n try {\n if (!this.audioContext) {\n this.audioContext = new AudioContext();\n }\n\n this.candidateAnalyser = this.audioContext.createAnalyser();\n this.candidateAnalyser.fftSize = 256;\n this.candidateAnalyser.smoothingTimeConstant = 0.8;\n\n const bufferLength = this.candidateAnalyser.frequencyBinCount;\n this.candidateDataArray = new Uint8Array(bufferLength);\n\n const stream = new MediaStream([candidateAudioTrack]);\n this.candidateSource = this.audioContext.createMediaStreamSource(stream);\n this.candidateSource.connect(this.candidateAnalyser);\n } catch (error) {\n console.error('[AI_AUDIO_CIRCLE] Error setting up candidate audio analysis:', error);\n }\n }\n\n private analyzeAudio(): void {\n if (!this.analyser || !this.dataArray) {\n return;\n }\n\n const analyze = () => {\n if (!this.analyser || !this.dataArray) {\n return;\n }\n\n // Analyze AI audio\n this.analyser.getByteFrequencyData(this.dataArray);\n const sum = Array.from(this.dataArray).reduce((a, b) => a + b, 0);\n const aiVolume = sum / this.dataArray.length / 255;\n\n // Analyze candidate audio if available\n let candidateVolume = 0;\n if (this.candidateAnalyser && this.candidateDataArray) {\n this.candidateAnalyser.getByteFrequencyData(this.candidateDataArray);\n const candidateSum = Array.from(this.candidateDataArray).reduce((a, b) => a + b, 0);\n candidateVolume = candidateSum / this.candidateDataArray.length / 255;\n }\n\n const aiSpeaking = aiVolume > this.AI_SPEAKING_THRESHOLD;\n const candidateSpeaking = candidateVolume > this.CANDIDATE_SPEAKING_THRESHOLD;\n\n if (candidateSpeaking) {\n this.state.set(InterviewState.CandidateSpeaking);\n } else if (aiSpeaking) {\n this.state.set(InterviewState.AiSpeaking);\n } else {\n this.state.set(InterviewState.AiListening);\n }\n\n this.isSpeaking.set(aiSpeaking);\n\n // Update amplitude for animations\n const currentStateValue = this.state();\n if (currentStateValue === InterviewState.AiSpeaking && aiSpeaking) {\n const target = Math.pow(aiVolume, 0.75) * 1.8;\n this.currentAmp += (target - this.currentAmp) * 0.5;\n } else if (currentStateValue === InterviewState.CandidateSpeaking) {\n const target = 0.55;\n this.currentAmp += (target - this.currentAmp) * 0.1;\n } else {\n const fixedBase = 0.2;\n this.currentAmp += (fixedBase - this.currentAmp) * 0.05;\n }\n\n this.animationFrameId = requestAnimationFrame(analyze);\n };\n\n this.animationFrameId = requestAnimationFrame(analyze);\n }\n\n private startAnimations(): void {\n this.animatePulse = this.animatePulse.bind(this);\n this.mainLoop = this.mainLoop.bind(this);\n\n if (!this.animated()) {\n // Render a single static frame for deterministic visual tests\n this.animatePulse();\n return;\n }\n\n this.animatePulse();\n this.mainLoop();\n }\n\n private mainLoop(): void {\n this.simTime += 0.05;\n\n const currentStateValue = this.state();\n\n if (currentStateValue === InterviewState.AiSpeaking) {\n if (this.analyser && this.dataArray) {\n // Use real audio amplitude (already handled in analyzeAudio)\n } else {\n // Simulated speaking\n const rhythm = Math.sin(this.simTime * 0.8) * 0.5 + 0.5;\n const spikes = Math.random() * 0.9;\n const target = rhythm * spikes;\n this.currentAmp += (target - this.currentAmp) * 0.25;\n }\n } else if (currentStateValue === InterviewState.CandidateSpeaking) {\n const target = 0.55;\n this.currentAmp += (target - this.currentAmp) * 0.1;\n } else {\n const fixedBase = 0.2;\n this.currentAmp += (fixedBase - this.currentAmp) * 0.05;\n }\n\n requestAnimationFrame(this.mainLoop);\n }\n\n private animatePulse(): void {\n if (!this.pulseCtx) {\n return;\n }\n\n const ctx = this.pulseCtx;\n this.pulseTime += 0.016;\n const size = this.canvasSize();\n const centerX = size / 2;\n const centerY = size / 2;\n const baseRadius = this.baseRadius();\n\n ctx.clearRect(0, 0, size, size);\n\n const currentStateValue = this.state();\n const effectiveAmp = this.currentAmp;\n const isListening = currentStateValue === InterviewState.AiListening;\n const isCandidate = currentStateValue === InterviewState.CandidateSpeaking;\n const isAiSpeaking = currentStateValue === InterviewState.AiSpeaking;\n\n // Scale logic\n if (isCandidate) {\n // Candidate speaking: Fixed enlarged scale (115%), no breathing effect\n this.pulseTargetScale = 1.15;\n const breathing = 0;\n this.pulseScale += (this.pulseTargetScale + breathing - this.pulseScale) * 0.08;\n } else {\n // AI speaking/listening: Scale reacts to audio amplitude, with optional breathing\n // When AI is speaking: effectiveAmp is high, scale grows with voice + erratic wobble\n // When AI is listening: effectiveAmp is low (~0.2), scale stays near 1.0 with breathing effect\n this.pulseTargetScale = 1 + effectiveAmp * 0.5;\n let breathing: number;\n if (isListening) {\n breathing = Math.sin(this.pulseTime * 1.5) * 0.035;\n } else if (isAiSpeaking) {\n // Erratic movement: overlapping waves at incommensurate frequencies for non-periodic feel\n breathing =\n Math.sin(this.pulseTime * 2.7) * 0.055 +\n Math.cos(this.pulseTime * 1.9) * 0.04 +\n Math.sin(this.pulseTime * 4.1 + 1) * 0.025;\n } else {\n breathing = 0;\n }\n const smoothing = isAiSpeaking ? 0.11 : 0.06;\n this.pulseScale += (this.pulseTargetScale + breathing - this.pulseScale) * smoothing;\n }\n\n const currentRadius = baseRadius * this.pulseScale;\n\n // Draw shadows\n for (let i = 3; i >= 1; i--) {\n const shadowRadius = currentRadius + i * 10;\n const shadowOpacity = 0.35 - i * 0.06;\n const shadowGradient = ctx.createRadialGradient(\n centerX,\n centerY,\n currentRadius * 0.98,\n centerX,\n centerY,\n shadowRadius\n );\n shadowGradient.addColorStop(0, `rgba(${this.SHADOW_COLOR_RGB}, ${shadowOpacity})`);\n shadowGradient.addColorStop(0.6, `rgba(${this.SHADOW_COLOR_RGB}, ${shadowOpacity * 0.5})`);\n shadowGradient.addColorStop(1, `rgba(${this.SHADOW_COLOR_RGB}, 0)`);\n ctx.beginPath();\n ctx.arc(centerX, centerY, shadowRadius, 0, Math.PI * 2);\n ctx.fillStyle = shadowGradient;\n ctx.fill();\n }\n\n // Clip to circle\n ctx.save();\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.clip();\n\n // Background gradient\n const bgGradient = ctx.createLinearGradient(\n centerX - currentRadius,\n centerY - currentRadius,\n centerX + currentRadius,\n centerY + currentRadius\n );\n bgGradient.addColorStop(0, Color.BRAND_50);\n bgGradient.addColorStop(0.5, Color.INFORMATIVE_20);\n bgGradient.addColorStop(1, Color.INFORMATIVE_30);\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.fillStyle = bgGradient;\n ctx.fill();\n\n // Animate blobs\n let speedMultiplier: number;\n let chaosStrength: number;\n if (isCandidate) {\n speedMultiplier = 3.0;\n chaosStrength = 1.0;\n } else if (isListening) {\n speedMultiplier = 2.0;\n chaosStrength = 1.0;\n } else {\n speedMultiplier = 1.5 + effectiveAmp * 3.0;\n chaosStrength = isAiSpeaking ? 1.8 : 1.0;\n }\n\n this.blobs.forEach((blob, index) => {\n // Chaos forces\n let chaos1 = Math.sin(this.pulseTime * 0.6 + index * 2.5 + blob.x * 0.02) * 0.15;\n let chaos2 = Math.cos(this.pulseTime * 0.4 + index * 1.8 + blob.y * 0.015) * 0.12;\n let chaos3 = Math.sin(this.pulseTime * 1.0 + index * 0.7) * 0.08;\n if (isAiSpeaking) {\n chaos1 += Math.sin(this.pulseTime * 3.2 + index * 1.3) * 0.18;\n chaos2 += Math.cos(this.pulseTime * 2.5 + index * 2.1) * 0.14;\n chaos3 += Math.sin(this.pulseTime * 4.0 + index * 0.5) * 0.1;\n }\n\n // Apply forces\n const force = 0.045 * speedMultiplier * chaosStrength;\n blob.vx += (chaos1 + chaos3 * Math.cos(this.pulseTime * 1.5 + index)) * force;\n blob.vy += (chaos2 + chaos3 * Math.sin(this.pulseTime * 1.2 + index)) * force;\n\n // Friction (slightly less when AI speaking for more sustained movement)\n const friction = isAiSpeaking ? 0.985 : 0.98;\n blob.vx *= friction;\n blob.vy *= friction;\n\n // Max velocity (higher when AI speaking for more erratic motion)\n const maxVelBase = isListening ? 3.0 : isAiSpeaking ? 6.0 : 4.5;\n const maxVel = maxVelBase * speedMultiplier;\n const vel = Math.sqrt(blob.vx * blob.vx + blob.vy * blob.vy);\n if (vel > maxVel) {\n blob.vx = (blob.vx / vel) * maxVel;\n blob.vy = (blob.vy / vel) * maxVel;\n }\n\n // Update position\n blob.x += blob.vx;\n blob.y += blob.vy;\n\n // Keep within bounds\n const dx = blob.x - centerX;\n const dy = blob.y - centerY;\n const dist = Math.sqrt(dx * dx + dy * dy);\n const maxDist = currentRadius * 0.55;\n if (dist > maxDist) {\n const angle = Math.atan2(dy, dx);\n blob.x = centerX + Math.cos(angle) * maxDist;\n blob.y = centerY + Math.sin(angle) * maxDist;\n blob.vx -= dx * 0.065;\n blob.vy -= dy * 0.065;\n }\n\n // Parse color to RGB\n const rgb = this.hexToRgb(blob.color);\n\n // Draw blob with glow\n const blurRadius = blob.radius * 1.3;\n const outerGlow = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blurRadius);\n outerGlow.addColorStop(0, `rgba(${rgb}, ${blob.opacity * 0.9})`);\n outerGlow.addColorStop(0.2, `rgba(${rgb}, ${blob.opacity * 0.7})`);\n outerGlow.addColorStop(0.4, `rgba(${rgb}, ${blob.opacity * 0.5})`);\n outerGlow.addColorStop(0.6, `rgba(${rgb}, ${blob.opacity * 0.3})`);\n outerGlow.addColorStop(0.8, `rgba(${rgb}, ${blob.opacity * 0.1})`);\n outerGlow.addColorStop(1, `rgba(${rgb}, 0)`);\n ctx.beginPath();\n ctx.arc(blob.x, blob.y, blurRadius, 0, Math.PI * 2);\n ctx.fillStyle = outerGlow;\n ctx.fill();\n });\n\n // Highlight\n const highlightGradient = ctx.createRadialGradient(\n centerX - currentRadius * 0.3,\n centerY - currentRadius * 0.3,\n 0,\n centerX - currentRadius * 0.3,\n centerY - currentRadius * 0.3,\n currentRadius * 0.6\n );\n highlightGradient.addColorStop(0, 'rgba(255, 255, 255, 0.12)');\n highlightGradient.addColorStop(0.5, 'rgba(255, 255, 255, 0.03)');\n highlightGradient.addColorStop(1, 'rgba(255, 255, 255, 0)');\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.fillStyle = highlightGradient;\n ctx.fill();\n\n ctx.restore();\n\n if (this.animated()) {\n this.pulseAnimationId = requestAnimationFrame(this.animatePulse);\n }\n }\n\n private hexToRgb(hex: string): string {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n return '0, 0, 0';\n }\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `${r}, ${g}, ${b}`;\n }\n\n private cleanup(): void {\n if (this.animationFrameId) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = undefined;\n }\n if (this.pulseAnimationId) {\n cancelAnimationFrame(this.pulseAnimationId);\n this.pulseAnimationId = undefined;\n }\n if (this.source) {\n this.source.disconnect();\n this.source = undefined;\n }\n if (this.candidateSource) {\n this.candidateSource.disconnect();\n this.candidateSource = undefined;\n }\n if (this.audioContext && this.audioContext.state !== 'closed') {\n void this.audioContext.close();\n this.audioContext = undefined;\n }\n this.analyser = undefined;\n this.candidateAnalyser = undefined;\n this.dataArray = undefined;\n this.candidateDataArray = undefined;\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n}\n","<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AiAudioCircleComponent } from './ai-audio-circle.component';\n\n@NgModule({\n declarations: [AiAudioCircleComponent],\n imports: [CommonModule],\n exports: [AiAudioCircleComponent],\n})\nexport class AiAudioCircleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-ai-audio-circle.mjs","sources":["../../../components/ai-audio-circle/ai-audio-circle.component.ts","../../../components/ai-audio-circle/ai-audio-circle.component.html","../../../components/ai-audio-circle/ai-audio-circle.module.ts","../../../components/ai-audio-circle/testgorilla-tgo-ui-components-ai-audio-circle.ts"],"sourcesContent":["import {\n Component,\n input,\n model,\n OnDestroy,\n ChangeDetectionStrategy,\n WritableSignal,\n signal,\n ElementRef,\n ViewChild,\n AfterViewInit,\n effect,\n computed,\n} from '@angular/core';\nimport { Color } from '@testgorilla/tgo-ui/components/core';\n\nexport enum InterviewState {\n CandidateSpeaking = 'candidate-speaking',\n AiListening = 'ai-listening',\n AiSpeaking = 'ai-speaking',\n}\n\n@Component({\n selector: 'ui-ai-audio-circle',\n templateUrl: './ai-audio-circle.component.html',\n styleUrls: ['./ai-audio-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AiAudioCircleComponent implements OnDestroy, AfterViewInit {\n @ViewChild('pulseCanvas', { static: false }) pulseCanvasRef?: ElementRef<HTMLCanvasElement>;\n\n audioTrack = input<MediaStreamTrack>();\n candidateAudioTrack = input<MediaStreamTrack>();\n state = model<InterviewState>(InterviewState.AiListening);\n canvasSize = input<number>(350);\n animated = input<boolean>(true);\n\n isSpeaking: WritableSignal<boolean> = signal(false);\n scaleValue: WritableSignal<number> = signal(1);\n\n audioContext?: AudioContext;\n analyser?: AnalyserNode;\n candidateAnalyser?: AnalyserNode;\n dataArray?: Uint8Array<ArrayBuffer>;\n candidateDataArray?: Uint8Array<ArrayBuffer>;\n animationFrameId?: number;\n source?: MediaStreamAudioSourceNode;\n candidateSource?: MediaStreamAudioSourceNode;\n\n pulseCtx?: CanvasRenderingContext2D;\n currentAmp = 0.02;\n simTime = 0;\n baseRadius = computed(() => this.canvasSize() * 0.28);\n\n // Audio detection thresholds\n readonly AI_SPEAKING_THRESHOLD = 0.02;\n readonly CANDIDATE_SPEAKING_THRESHOLD = 0.5;\n\n readonly SHADOW_COLOR_RGB = this.hexToRgb(Color.BRAND_50);\n\n pulseTime = 0;\n pulseScale = 1;\n pulseTargetScale = 1;\n pulseAnimationId?: number;\n blobs: Array<{\n x: number;\n y: number;\n vx: number;\n vy: number;\n radius: number;\n color: string;\n opacity: number;\n }> = [];\n\n constructor() {\n effect(() => {\n const audioTrack = this.audioTrack();\n if (audioTrack) {\n this.setupAudioAnalysis();\n }\n });\n\n effect(() => {\n const candidateAudioTrack = this.candidateAudioTrack();\n if (candidateAudioTrack) {\n this.setupCandidateAudioAnalysis();\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initializeCanvas();\n this.initializeBlobs();\n this.startAnimations();\n }\n\n private initializeCanvas(): void {\n if (!this.pulseCanvasRef) {\n return;\n }\n\n const pulseCanvas = this.pulseCanvasRef.nativeElement;\n\n const dpr = window.devicePixelRatio || 1;\n\n // Setup pulse canvas\n const size = this.canvasSize();\n pulseCanvas.width = size * dpr;\n pulseCanvas.height = size * dpr;\n pulseCanvas.style.width = `${size}px`;\n pulseCanvas.style.height = `${size}px`;\n const ctx = pulseCanvas.getContext('2d');\n if (!ctx) {\n console.error('[AI_AUDIO_CIRCLE] Failed to get 2d context');\n return;\n }\n this.pulseCtx = ctx;\n this.pulseCtx.scale(dpr, dpr);\n }\n\n private initializeBlobs(): void {\n const size = this.canvasSize();\n const centerX = size / 2;\n const centerY = size / 2;\n const baseRadius = this.baseRadius();\n\n const colors = [\n { color: Color.INFORMATIVE_30, opacity: 0.8 },\n { color: Color.INFORMATIVE_20, opacity: 0.7 },\n { color: Color.BRAND_50, opacity: 0.75 },\n { color: Color.BRAND_20, opacity: 0.6 },\n { color: Color.INFORMATIVE_30, opacity: 0.65 },\n ];\n\n // Use deterministic seed values when not animated for stable visual tests\n const seedVelocities = [0.12, -0.08, 0.15, -0.1, 0.06];\n const seedRadii = [0.72, 0.65, 0.8, 0.68, 0.76];\n\n this.blobs = colors.map((c, i) => {\n const angle = (i / colors.length) * Math.PI * 2;\n const dist = baseRadius * 0.25;\n return {\n x: centerX + Math.cos(angle) * dist,\n y: centerY + Math.sin(angle) * dist,\n vx: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[i],\n vy: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[(i + 2) % 5],\n radius: baseRadius * (this.animated() ? 0.6 + Math.random() * 0.4 : seedRadii[i]),\n color: c.color,\n opacity: c.opacity,\n };\n });\n }\n\n private setupAudioAnalysis(): void {\n const audioTrack = this.audioTrack();\n if (!audioTrack) {\n return;\n }\n\n try {\n if (!this.audioContext) {\n this.audioContext = new AudioContext();\n }\n\n this.analyser = this.audioContext.createAnalyser();\n this.analyser.fftSize = 256;\n this.analyser.smoothingTimeConstant = 0.8;\n\n const bufferLength = this.analyser.frequencyBinCount;\n this.dataArray = new Uint8Array(bufferLength);\n\n const stream = new MediaStream([audioTrack]);\n this.source = this.audioContext.createMediaStreamSource(stream);\n this.source.connect(this.analyser);\n\n this.analyzeAudio();\n } catch (error) {\n console.error('[AI_AUDIO_CIRCLE] Error setting up audio analysis:', error);\n }\n }\n\n private setupCandidateAudioAnalysis(): void {\n const candidateAudioTrack = this.candidateAudioTrack();\n if (!candidateAudioTrack) {\n return;\n }\n\n try {\n if (!this.audioContext) {\n this.audioContext = new AudioContext();\n }\n\n this.candidateAnalyser = this.audioContext.createAnalyser();\n this.candidateAnalyser.fftSize = 256;\n this.candidateAnalyser.smoothingTimeConstant = 0.8;\n\n const bufferLength = this.candidateAnalyser.frequencyBinCount;\n this.candidateDataArray = new Uint8Array(bufferLength);\n\n const stream = new MediaStream([candidateAudioTrack]);\n this.candidateSource = this.audioContext.createMediaStreamSource(stream);\n this.candidateSource.connect(this.candidateAnalyser);\n } catch (error) {\n console.error('[AI_AUDIO_CIRCLE] Error setting up candidate audio analysis:', error);\n }\n }\n\n private analyzeAudio(): void {\n if (!this.analyser || !this.dataArray) {\n return;\n }\n\n const analyze = () => {\n if (!this.analyser || !this.dataArray) {\n return;\n }\n\n // Analyze AI audio\n this.analyser.getByteFrequencyData(this.dataArray);\n const sum = Array.from(this.dataArray).reduce((a, b) => a + b, 0);\n const aiVolume = sum / this.dataArray.length / 255;\n\n // Analyze candidate audio if available\n let candidateVolume = 0;\n if (this.candidateAnalyser && this.candidateDataArray) {\n this.candidateAnalyser.getByteFrequencyData(this.candidateDataArray);\n const candidateSum = Array.from(this.candidateDataArray).reduce((a, b) => a + b, 0);\n candidateVolume = candidateSum / this.candidateDataArray.length / 255;\n }\n\n const aiSpeaking = aiVolume > this.AI_SPEAKING_THRESHOLD;\n const candidateSpeaking = candidateVolume > this.CANDIDATE_SPEAKING_THRESHOLD;\n\n if (candidateSpeaking) {\n this.state.set(InterviewState.CandidateSpeaking);\n } else if (aiSpeaking) {\n this.state.set(InterviewState.AiSpeaking);\n } else {\n this.state.set(InterviewState.AiListening);\n }\n\n this.isSpeaking.set(aiSpeaking);\n\n // Update amplitude for animations\n const currentStateValue = this.state();\n if (currentStateValue === InterviewState.AiSpeaking && aiSpeaking) {\n const target = Math.pow(aiVolume, 0.75) * 1.8;\n this.currentAmp += (target - this.currentAmp) * 0.5;\n } else if (currentStateValue === InterviewState.CandidateSpeaking) {\n const target = 0.55;\n this.currentAmp += (target - this.currentAmp) * 0.1;\n } else {\n const fixedBase = 0.2;\n this.currentAmp += (fixedBase - this.currentAmp) * 0.05;\n }\n\n this.animationFrameId = requestAnimationFrame(analyze);\n };\n\n this.animationFrameId = requestAnimationFrame(analyze);\n }\n\n private startAnimations(): void {\n this.animatePulse = this.animatePulse.bind(this);\n this.mainLoop = this.mainLoop.bind(this);\n\n if (!this.animated()) {\n // Render a single static frame for deterministic visual tests\n this.animatePulse();\n return;\n }\n\n this.animatePulse();\n this.mainLoop();\n }\n\n private mainLoop(): void {\n this.simTime += 0.05;\n\n const currentStateValue = this.state();\n\n if (currentStateValue === InterviewState.AiSpeaking) {\n if (this.analyser && this.dataArray) {\n // Use real audio amplitude (already handled in analyzeAudio)\n } else {\n // Simulated speaking\n const rhythm = Math.sin(this.simTime * 0.8) * 0.5 + 0.5;\n const spikes = Math.random() * 0.9;\n const target = rhythm * spikes;\n this.currentAmp += (target - this.currentAmp) * 0.25;\n }\n } else if (currentStateValue === InterviewState.CandidateSpeaking) {\n const target = 0.55;\n this.currentAmp += (target - this.currentAmp) * 0.1;\n } else {\n const fixedBase = 0.2;\n this.currentAmp += (fixedBase - this.currentAmp) * 0.05;\n }\n\n requestAnimationFrame(this.mainLoop);\n }\n\n private animatePulse(): void {\n if (!this.pulseCtx) {\n return;\n }\n\n const ctx = this.pulseCtx;\n this.pulseTime += 0.016;\n const size = this.canvasSize();\n const centerX = size / 2;\n const centerY = size / 2;\n const baseRadius = this.baseRadius();\n\n ctx.clearRect(0, 0, size, size);\n\n const currentStateValue = this.state();\n const effectiveAmp = this.currentAmp;\n const isListening = currentStateValue === InterviewState.AiListening;\n const isCandidate = currentStateValue === InterviewState.CandidateSpeaking;\n const isAiSpeaking = currentStateValue === InterviewState.AiSpeaking;\n\n // Scale logic\n if (isCandidate) {\n // Candidate speaking: Fixed enlarged scale (115%), no breathing effect\n this.pulseTargetScale = 1.15;\n const breathing = 0;\n this.pulseScale += (this.pulseTargetScale + breathing - this.pulseScale) * 0.08;\n } else {\n // AI speaking/listening: Scale reacts to audio amplitude, with optional breathing\n // When AI is speaking: effectiveAmp is high, scale grows with voice + erratic wobble\n // When AI is listening: effectiveAmp is low (~0.2), scale stays near 1.0 with breathing effect\n this.pulseTargetScale = 1 + effectiveAmp * 0.5;\n let breathing: number;\n if (isListening) {\n breathing = Math.sin(this.pulseTime * 1.5) * 0.035;\n } else if (isAiSpeaking) {\n // Erratic movement: overlapping waves at incommensurate frequencies for non-periodic feel\n breathing =\n Math.sin(this.pulseTime * 2.7) * 0.055 +\n Math.cos(this.pulseTime * 1.9) * 0.04 +\n Math.sin(this.pulseTime * 4.1 + 1) * 0.025;\n } else {\n breathing = 0;\n }\n const smoothing = isAiSpeaking ? 0.11 : 0.06;\n this.pulseScale += (this.pulseTargetScale + breathing - this.pulseScale) * smoothing;\n }\n\n const currentRadius = baseRadius * this.pulseScale;\n\n // Draw shadows\n for (let i = 3; i >= 1; i--) {\n const shadowRadius = currentRadius + i * 10;\n const shadowOpacity = 0.35 - i * 0.06;\n const shadowGradient = ctx.createRadialGradient(\n centerX,\n centerY,\n currentRadius * 0.98,\n centerX,\n centerY,\n shadowRadius\n );\n shadowGradient.addColorStop(0, `rgba(${this.SHADOW_COLOR_RGB}, ${shadowOpacity})`);\n shadowGradient.addColorStop(0.6, `rgba(${this.SHADOW_COLOR_RGB}, ${shadowOpacity * 0.5})`);\n shadowGradient.addColorStop(1, `rgba(${this.SHADOW_COLOR_RGB}, 0)`);\n ctx.beginPath();\n ctx.arc(centerX, centerY, shadowRadius, 0, Math.PI * 2);\n ctx.fillStyle = shadowGradient;\n ctx.fill();\n }\n\n // Clip to circle\n ctx.save();\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.clip();\n\n // Background gradient\n const bgGradient = ctx.createLinearGradient(\n centerX - currentRadius,\n centerY - currentRadius,\n centerX + currentRadius,\n centerY + currentRadius\n );\n bgGradient.addColorStop(0, Color.BRAND_50);\n bgGradient.addColorStop(0.5, Color.INFORMATIVE_20);\n bgGradient.addColorStop(1, Color.INFORMATIVE_30);\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.fillStyle = bgGradient;\n ctx.fill();\n\n // Animate blobs\n let speedMultiplier: number;\n let chaosStrength: number;\n if (isCandidate) {\n speedMultiplier = 3.0;\n chaosStrength = 1.0;\n } else if (isListening) {\n speedMultiplier = 2.0;\n chaosStrength = 1.0;\n } else {\n speedMultiplier = 1.5 + effectiveAmp * 3.0;\n chaosStrength = isAiSpeaking ? 1.8 : 1.0;\n }\n\n this.blobs.forEach((blob, index) => {\n // Chaos forces\n let chaos1 = Math.sin(this.pulseTime * 0.6 + index * 2.5 + blob.x * 0.02) * 0.15;\n let chaos2 = Math.cos(this.pulseTime * 0.4 + index * 1.8 + blob.y * 0.015) * 0.12;\n let chaos3 = Math.sin(this.pulseTime * 1.0 + index * 0.7) * 0.08;\n if (isAiSpeaking) {\n chaos1 += Math.sin(this.pulseTime * 3.2 + index * 1.3) * 0.18;\n chaos2 += Math.cos(this.pulseTime * 2.5 + index * 2.1) * 0.14;\n chaos3 += Math.sin(this.pulseTime * 4.0 + index * 0.5) * 0.1;\n }\n\n // Apply forces\n const force = 0.045 * speedMultiplier * chaosStrength;\n blob.vx += (chaos1 + chaos3 * Math.cos(this.pulseTime * 1.5 + index)) * force;\n blob.vy += (chaos2 + chaos3 * Math.sin(this.pulseTime * 1.2 + index)) * force;\n\n // Friction (slightly less when AI speaking for more sustained movement)\n const friction = isAiSpeaking ? 0.985 : 0.98;\n blob.vx *= friction;\n blob.vy *= friction;\n\n // Max velocity (higher when AI speaking for more erratic motion)\n const maxVelBase = isListening ? 3.0 : isAiSpeaking ? 6.0 : 4.5;\n const maxVel = maxVelBase * speedMultiplier;\n const vel = Math.sqrt(blob.vx * blob.vx + blob.vy * blob.vy);\n if (vel > maxVel) {\n blob.vx = (blob.vx / vel) * maxVel;\n blob.vy = (blob.vy / vel) * maxVel;\n }\n\n // Update position\n blob.x += blob.vx;\n blob.y += blob.vy;\n\n // Keep within bounds\n const dx = blob.x - centerX;\n const dy = blob.y - centerY;\n const dist = Math.sqrt(dx * dx + dy * dy);\n const maxDist = currentRadius * 0.55;\n if (dist > maxDist) {\n const angle = Math.atan2(dy, dx);\n blob.x = centerX + Math.cos(angle) * maxDist;\n blob.y = centerY + Math.sin(angle) * maxDist;\n blob.vx -= dx * 0.065;\n blob.vy -= dy * 0.065;\n }\n\n // Parse color to RGB\n const rgb = this.hexToRgb(blob.color);\n\n // Draw blob with glow\n const blurRadius = blob.radius * 1.3;\n const outerGlow = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blurRadius);\n outerGlow.addColorStop(0, `rgba(${rgb}, ${blob.opacity * 0.9})`);\n outerGlow.addColorStop(0.2, `rgba(${rgb}, ${blob.opacity * 0.7})`);\n outerGlow.addColorStop(0.4, `rgba(${rgb}, ${blob.opacity * 0.5})`);\n outerGlow.addColorStop(0.6, `rgba(${rgb}, ${blob.opacity * 0.3})`);\n outerGlow.addColorStop(0.8, `rgba(${rgb}, ${blob.opacity * 0.1})`);\n outerGlow.addColorStop(1, `rgba(${rgb}, 0)`);\n ctx.beginPath();\n ctx.arc(blob.x, blob.y, blurRadius, 0, Math.PI * 2);\n ctx.fillStyle = outerGlow;\n ctx.fill();\n });\n\n // Highlight\n const highlightGradient = ctx.createRadialGradient(\n centerX - currentRadius * 0.3,\n centerY - currentRadius * 0.3,\n 0,\n centerX - currentRadius * 0.3,\n centerY - currentRadius * 0.3,\n currentRadius * 0.6\n );\n highlightGradient.addColorStop(0, 'rgba(255, 255, 255, 0.12)');\n highlightGradient.addColorStop(0.5, 'rgba(255, 255, 255, 0.03)');\n highlightGradient.addColorStop(1, 'rgba(255, 255, 255, 0)');\n ctx.beginPath();\n ctx.arc(centerX, centerY, currentRadius, 0, Math.PI * 2);\n ctx.fillStyle = highlightGradient;\n ctx.fill();\n\n ctx.restore();\n\n if (this.animated()) {\n this.pulseAnimationId = requestAnimationFrame(this.animatePulse);\n }\n }\n\n private hexToRgb(hex: string): string {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n return '0, 0, 0';\n }\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `${r}, ${g}, ${b}`;\n }\n\n private cleanup(): void {\n if (this.animationFrameId) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = undefined;\n }\n if (this.pulseAnimationId) {\n cancelAnimationFrame(this.pulseAnimationId);\n this.pulseAnimationId = undefined;\n }\n if (this.source) {\n this.source.disconnect();\n this.source = undefined;\n }\n if (this.candidateSource) {\n this.candidateSource.disconnect();\n this.candidateSource = undefined;\n }\n if (this.audioContext && this.audioContext.state !== 'closed') {\n void this.audioContext.close();\n this.audioContext = undefined;\n }\n this.analyser = undefined;\n this.candidateAnalyser = undefined;\n this.dataArray = undefined;\n this.candidateDataArray = undefined;\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n}\n","<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AiAudioCircleComponent } from './ai-audio-circle.component';\n\n@NgModule({\n declarations: [AiAudioCircleComponent],\n imports: [CommonModule],\n exports: [AiAudioCircleComponent],\n})\nexport class AiAudioCircleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;IAgBY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC;AACxC,IAAA,cAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC5B,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC5B,CAAC,EAJW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;MAab,sBAAsB,CAAA;AA8CjC,IAAA,WAAA,GAAA;QA3CA,IAAA,CAAA,UAAU,GAAG,KAAK,EAAoB;QACtC,IAAA,CAAA,mBAAmB,GAAG,KAAK,EAAoB;AAC/C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,cAAc,CAAC,WAAW,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,GAAG,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,IAAI,CAAC;AAE/B,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,KAAK,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAA2B,MAAM,CAAC,CAAC,CAAC;QAY9C,IAAA,CAAA,UAAU,GAAG,IAAI;QACjB,IAAA,CAAA,OAAO,GAAG,CAAC;AACX,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;;QAG5C,IAAA,CAAA,qBAAqB,GAAG,IAAI;QAC5B,IAAA,CAAA,4BAA4B,GAAG,GAAG;QAElC,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEzD,IAAA,CAAA,SAAS,GAAG,CAAC;QACb,IAAA,CAAA,UAAU,GAAG,CAAC;QACd,IAAA,CAAA,gBAAgB,GAAG,CAAC;QAEpB,IAAA,CAAA,KAAK,GAQA,EAAE;QAGL,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;YACpC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,kBAAkB,EAAE;YAC3B;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE;YACtD,IAAI,mBAAmB,EAAE;gBACvB,IAAI,CAAC,2BAA2B,EAAE;YACpC;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;QACF;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;AAErD,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC;;AAGxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AAC9B,QAAA,WAAW,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG;AAC9B,QAAA,WAAW,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG;QAC/B,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,IAAI;QACrC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,IAAI;QACtC,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC;YAC3D;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;IAC/B;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAEpC,QAAA,MAAM,MAAM,GAAG;YACb,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE;YAC7C,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE;YAC7C,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YACvC,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;SAC/C;;AAGD,QAAA,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AAE/C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC/B,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC;AAC/C,YAAA,MAAM,IAAI,GAAG,UAAU,GAAG,IAAI;YAC9B,OAAO;gBACL,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;gBACnC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;gBACnC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC;AACrE,gBAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjF,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB;AACH,QAAA,CAAC,CAAC;IACJ;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QACpC,IAAI,CAAC,UAAU,EAAE;YACf;QACF;AAEA,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE;YACxC;YAEA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,GAAG;AAEzC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC;YAE7C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC;QAC5E;IACF;IAEQ,2BAA2B,GAAA;AACjC,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE;QACtD,IAAI,CAAC,mBAAmB,EAAE;YACxB;QACF;AAEA,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE;YACxC;YAEA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,GAAG;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,GAAG;AAElD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;YAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC;YAEtD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACrD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACxE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACtD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC;QACtF;IACF;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACrC;QACF;QAEA,MAAM,OAAO,GAAG,MAAK;YACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrC;YACF;;YAGA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;;YAGlD,IAAI,eAAe,GAAG,CAAC;YACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACrD,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACpE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnF,eAAe,GAAG,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,GAAG;YACvE;AAEA,YAAA,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC,qBAAqB;AACxD,YAAA,MAAM,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAAC,4BAA4B;YAE7E,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAClD;iBAAO,IAAI,UAAU,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC;YAC3C;iBAAO;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;YAC5C;AAEA,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;;AAG/B,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE;YACtC,IAAI,iBAAiB,KAAK,cAAc,CAAC,UAAU,IAAI,UAAU,EAAE;AACjE,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG;AAC7C,gBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG;YACrD;AAAO,iBAAA,IAAI,iBAAiB,KAAK,cAAc,CAAC,iBAAiB,EAAE;gBACjE,MAAM,MAAM,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG;YACrD;iBAAO;gBACL,MAAM,SAAS,GAAG,GAAG;AACrB,gBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI;YACzD;AAEA,YAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC;AACxD,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC;IACxD;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;;YAEpB,IAAI,CAAC,YAAY,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI;AAEpB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE;AAEtC,QAAA,IAAI,iBAAiB,KAAK,cAAc,CAAC,UAAU,EAAE;YACnD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;;YAErC;iBAAO;;AAEL,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;AAClC,gBAAA,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM;AAC9B,gBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI;YACtD;QACF;AAAO,aAAA,IAAI,iBAAiB,KAAK,cAAc,CAAC,iBAAiB,EAAE;YACjE,MAAM,MAAM,GAAG,IAAI;AACnB,YAAA,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG;QACrD;aAAO;YACL,MAAM,SAAS,GAAG,GAAG;AACrB,YAAA,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI;QACzD;AAEA,QAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;AACzB,QAAA,IAAI,CAAC,SAAS,IAAI,KAAK;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QAEpC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAE/B,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE;AACtC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU;AACpC,QAAA,MAAM,WAAW,GAAG,iBAAiB,KAAK,cAAc,CAAC,WAAW;AACpE,QAAA,MAAM,WAAW,GAAG,iBAAiB,KAAK,cAAc,CAAC,iBAAiB;AAC1E,QAAA,MAAM,YAAY,GAAG,iBAAiB,KAAK,cAAc,CAAC,UAAU;;QAGpE,IAAI,WAAW,EAAE;;AAEf,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAC5B,MAAM,SAAS,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI;QACjF;aAAO;;;;YAIL,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,YAAY,GAAG,GAAG;AAC9C,YAAA,IAAI,SAAiB;YACrB,IAAI,WAAW,EAAE;AACf,gBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK;YACpD;iBAAO,IAAI,YAAY,EAAE;;gBAEvB,SAAS;oBACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK;wBACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI;AACrC,wBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK;YAC9C;iBAAO;gBACL,SAAS,GAAG,CAAC;YACf;YACA,MAAM,SAAS,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI;AAC5C,YAAA,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS;QACtF;AAEA,QAAA,MAAM,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU;;AAGlD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3B,YAAA,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,GAAG,EAAE;AAC3C,YAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;YACrC,MAAM,cAAc,GAAG,GAAG,CAAC,oBAAoB,CAC7C,OAAO,EACP,OAAO,EACP,aAAa,GAAG,IAAI,EACpB,OAAO,EACP,OAAO,EACP,YAAY,CACb;AACD,YAAA,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,gBAAgB,CAAA,EAAA,EAAK,aAAa,CAAA,CAAA,CAAG,CAAC;AAClF,YAAA,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,gBAAgB,KAAK,aAAa,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;YAC1F,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,gBAAgB,CAAA,IAAA,CAAM,CAAC;YACnE,GAAG,CAAC,SAAS,EAAE;AACf,YAAA,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,YAAA,GAAG,CAAC,SAAS,GAAG,cAAc;YAC9B,GAAG,CAAC,IAAI,EAAE;QACZ;;QAGA,GAAG,CAAC,IAAI,EAAE;QACV,GAAG,CAAC,SAAS,EAAE;AACf,QAAA,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,EAAE;;QAGV,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CACzC,OAAO,GAAG,aAAa,EACvB,OAAO,GAAG,aAAa,EACvB,OAAO,GAAG,aAAa,EACvB,OAAO,GAAG,aAAa,CACxB;QACD,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC1C,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;QAClD,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;QAChD,GAAG,CAAC,SAAS,EAAE;AACf,QAAA,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxD,QAAA,GAAG,CAAC,SAAS,GAAG,UAAU;QAC1B,GAAG,CAAC,IAAI,EAAE;;AAGV,QAAA,IAAI,eAAuB;AAC3B,QAAA,IAAI,aAAqB;QACzB,IAAI,WAAW,EAAE;YACf,eAAe,GAAG,GAAG;YACrB,aAAa,GAAG,GAAG;QACrB;aAAO,IAAI,WAAW,EAAE;YACtB,eAAe,GAAG,GAAG;YACrB,aAAa,GAAG,GAAG;QACrB;aAAO;AACL,YAAA,eAAe,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG;YAC1C,aAAa,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG;QAC1C;QAEA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;;YAEjC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;YAChF,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;AACjF,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI;YAChE,IAAI,YAAY,EAAE;AAChB,gBAAA,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI;AAC7D,gBAAA,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI;AAC7D,gBAAA,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG;YAC9D;;AAGA,YAAA,MAAM,KAAK,GAAG,KAAK,GAAG,eAAe,GAAG,aAAa;YACrD,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK;YAC7E,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK;;YAG7E,MAAM,QAAQ,GAAG,YAAY,GAAG,KAAK,GAAG,IAAI;AAC5C,YAAA,IAAI,CAAC,EAAE,IAAI,QAAQ;AACnB,YAAA,IAAI,CAAC,EAAE,IAAI,QAAQ;;AAGnB,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG;AAC/D,YAAA,MAAM,MAAM,GAAG,UAAU,GAAG,eAAe;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAC5D,YAAA,IAAI,GAAG,GAAG,MAAM,EAAE;AAChB,gBAAA,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM;AAClC,gBAAA,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM;YACpC;;AAGA,YAAA,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;;AAGjB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO;AAC3B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,YAAA,MAAM,OAAO,GAAG,aAAa,GAAG,IAAI;AACpC,YAAA,IAAI,IAAI,GAAG,OAAO,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAChC,gBAAA,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO;AAC5C,gBAAA,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO;AAC5C,gBAAA,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK;AACrB,gBAAA,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK;YACvB;;YAGA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGrC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG;YACpC,MAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;AACzF,YAAA,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;AAChE,YAAA,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;AAClE,YAAA,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;AAClE,YAAA,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;AAClE,YAAA,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC;YAClE,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,IAAA,CAAM,CAAC;YAC5C,GAAG,CAAC,SAAS,EAAE;YACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,YAAA,GAAG,CAAC,SAAS,GAAG,SAAS;YACzB,GAAG,CAAC,IAAI,EAAE;AACZ,QAAA,CAAC,CAAC;;AAGF,QAAA,MAAM,iBAAiB,GAAG,GAAG,CAAC,oBAAoB,CAChD,OAAO,GAAG,aAAa,GAAG,GAAG,EAC7B,OAAO,GAAG,aAAa,GAAG,GAAG,EAC7B,CAAC,EACD,OAAO,GAAG,aAAa,GAAG,GAAG,EAC7B,OAAO,GAAG,aAAa,GAAG,GAAG,EAC7B,aAAa,GAAG,GAAG,CACpB;AACD,QAAA,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,2BAA2B,CAAC;AAC9D,QAAA,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,2BAA2B,CAAC;AAChE,QAAA,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,wBAAwB,CAAC;QAC3D,GAAG,CAAC,SAAS,EAAE;AACf,QAAA,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACxD,QAAA,GAAG,CAAC,SAAS,GAAG,iBAAiB;QACjC,GAAG,CAAC,IAAI,EAAE;QAEV,GAAG,CAAC,OAAO,EAAE;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;QAClE;IACF;AAEQ,IAAA,QAAQ,CAAC,GAAW,EAAA;QAC1B,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,SAAS;QAClB;QACA,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,OAAO,GAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,EAAE;IAC3B;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;QACnC;AACA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;QACnC;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;QACzB;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;QAClC;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC7D,YAAA,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;QAC/B;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;IACrC;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,EAAE;IAChB;+GA5fW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,s5BC7BnC,iIAKA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDwBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,iIAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA;wDAG4B,cAAc,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;MErBhC,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAC3B,YAAY,aACZ,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;ACRD;;AAEG;;;;"}
|