@testgorilla/tgo-ui 2.17.21 → 2.17.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui.mjs","sources":["../../../projects/tgo-canopy-ui/utils/alert-bars.utils.ts","../../../projects/tgo-canopy-ui/utils/localization/language.model.ts","../../../projects/tgo-canopy-ui/utils/localization/language.service.ts","../../../projects/tgo-canopy-ui/utils/color-contrast.ts","../../../projects/tgo-canopy-ui/components/icon/icon.config.ts","../../../projects/tgo-canopy-ui/services/icons.service.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.html","../../../projects/tgo-canopy-ui/components/badge/badge.model.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.html","../../../projects/tgo-canopy-ui/components/button/button.component.ts","../../../projects/tgo-canopy-ui/components/button/button.component.html","../../../projects/tgo-canopy-ui/pipes/ui-translate.pipe.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.html","../../../projects/tgo-canopy-ui/components/icon/icon.component.module.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.module.ts","../../../projects/tgo-canopy-ui/components/button/button.component.module.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.module.ts","../../../projects/tgo-canopy-ui/components/card/card.component.ts","../../../projects/tgo-canopy-ui/components/card/card.component.html","../../../projects/tgo-canopy-ui/components/card/card.component.module.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.html","../../../projects/tgo-canopy-ui/pipes/has-validation-error.pipe.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.html","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.module.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.module.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.html","../../../projects/tgo-canopy-ui/components/dialog/dialog.service.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.constant.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.html","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.module.ts","../../../projects/tgo-canopy-ui/directives/digits-only.directive.ts","../../../projects/tgo-canopy-ui/components/field/field.component.ts","../../../projects/tgo-canopy-ui/components/field/field.component.html","../../../projects/tgo-canopy-ui/components/field/field.component.module.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.html","../../../projects/tgo-canopy-ui/directives/drag-drop.directive.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.html","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.module.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.html","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.module.ts","../../../projects/tgo-canopy-ui/components/logo/logo.model.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.html","../../../projects/tgo-canopy-ui/components/logo/logo.component.module.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.html","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.module.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.model.ts","../../../projects/tgo-canopy-ui/pipes/name-initials.pipe.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.html","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html","../../../projects/tgo-canopy-ui/models/screen-breakpoints.model.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.service.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.html","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.html","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.module.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.html","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.module.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.html","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.service.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.module.ts","../../../projects/tgo-canopy-ui/pipes/data-property-getter.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.model.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/directives/dynamic-component.directive.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.html","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.module.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.model.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.module.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.module.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.html","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.module.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.html","../../../projects/tgo-canopy-ui/components/spinner/spinner.module.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.html","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/datepicker/no-date-format.directive.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.html","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.module.ts","../../../projects/tgo-canopy-ui/components/rating/half-star.pipe.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.html","../../../projects/tgo-canopy-ui/components/rating/rating.component.module.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.html","../../../projects/tgo-canopy-ui/components/scale/scale.component.module.ts","../../../projects/tgo-canopy-ui/directives/ellipse-text.directive.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.html","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.module.ts","../../../projects/tgo-canopy-ui/providers/is-mobile.ts","../../../projects/tgo-canopy-ui/components/step/step.component.ts","../../../projects/tgo-canopy-ui/components/step/step.component.html","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.model.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.html","../../../projects/tgo-canopy-ui/directives/step-line-element.directive.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.html","../../../projects/tgo-canopy-ui/components/step/step.component.module.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.module.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.module.ts","../../../projects/tgo-canopy-ui/utils/autocomplete-utils.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.model.ts","../../../projects/tgo-canopy-ui/directives/select-text.directive.ts","../../../projects/tgo-canopy-ui/components/autocomplete/transform-Item.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/includes.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.html","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.module.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.html","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.model.ts","../../../projects/tgo-canopy-ui/utils/table.utils.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.ts","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.html","../../../projects/tgo-canopy-ui/pipes/memoize-func.pipe.ts","../../../projects/tgo-canopy-ui/components/table/sentence-case.pipe.ts","../../../projects/tgo-canopy-ui/components/table/table.component.ts","../../../projects/tgo-canopy-ui/components/table/table.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.component.module.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.html","../../../projects/tgo-canopy-ui/components/slider/slider.component.module.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip-template.directive.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.html","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.html","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.module.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.html","../../../projects/tgo-canopy-ui/components/divider/divider.component.module.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.html","../../../projects/tgo-canopy-ui/components/tabs/tab.directive.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.module.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.html","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.module.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.html","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.module.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.html","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.module.ts","../../../projects/tgo-canopy-ui/components/phone-input/join-strings.pipe.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.html","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.module.ts","../../../projects/tgo-canopy-ui/models/colors.model.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.html","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.module.ts","../../../projects/tgo-canopy-ui/public-api.ts","../../../projects/tgo-canopy-ui/testgorilla-tgo-ui.ts"],"sourcesContent":["import { IconName } from '../components/icon/icon.model';\nimport { AlertVariant } from './alert-bar.model';\n\nexport const alertBarsUtil = {\n //Set css class and iconName according type\n setIcon: (alertType: string): IconName => {\n if (alertType === 'success') {\n return 'Round-check';\n }\n if (alertType === 'info') {\n return 'Info';\n }\n if (alertType === 'warning') {\n return 'Warning';\n }\n if (alertType === 'error') {\n return 'Error';\n }\n return '';\n },\n\n //Set cssClass for fixed or static position\n setPosition: (fixed: boolean): string => {\n if (fixed === true) {\n return 'fixed';\n } else {\n return 'static';\n }\n },\n\n //Set css class for alertbanner\n setCssClass: (fullWidth: boolean, type: string, position: string, variant: AlertVariant = 'banner'): string => {\n const isFullWidth = !!fullWidth ? 'full-width' : '';\n const _type = variant === 'banner' ? type : (type === 'error' || type === 'success') ? 'info' : type;\n return `${_type} ${position} ${isFullWidth} ${variant}`;\n },\n};\n","export enum Language {\n en = 'en',\n es = 'es',\n nl = 'nl',\n fr = 'fr',\n de = 'de',\n 'it-it' = 'it-it',\n 'ja-jp' = 'ja-jp',\n 'pt-br' = 'pt-br',\n 'da-dk' = 'da-dk',\n 'nb-no' = 'nb-no',\n 'pl-pl' = 'pl-pl',\n 'sv-se' = 'sv-se',\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from './language.model';\n//This type enforces all translations are present when some translation needs to live in the frontend\nexport type TranslationMap = { [key in Language]: string };\n\n//This function retrieves all languages from the enum. It is used to initialize transloco\nexport const getAvailableLangs = () => Object.values(Language);\n\n//This type is intended for UI uses only\nexport type UILanguage = { code: Language | string; label: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LanguageService {\n static readonly defaultLanguage = Language.en;\n\n readonly defaultLanguageList: UILanguage[] = [\n { code: Language.en, label: 'English' },\n { code: Language.es, label: 'Spanish' },\n { code: Language.de, label: 'German' },\n { code: Language.fr, label: 'French' },\n { code: Language.nl, label: 'Dutch' },\n { code: Language['it-it'], label: 'Italian' },\n { code: Language['ja-jp'], label: 'Japanese' },\n { code: Language['pt-br'], label: 'Portuguese' },\n { code: Language['da-dk'], label: 'Danish' },\n { code: Language['nb-no'], label: 'Norwegian' },\n { code: Language['pl-pl'], label: 'Polish' },\n { code: Language['sv-se'], label: 'Swedish' },\n ];\n}\n","/**\n * Function for adjusting the lightness of a color based on different events (hover, pressed, disabled).\n * Accepts a hex color, transforms it to HSL, and based on color's L and event darkens or lightens it.\n * Used to manage different colors based on application configuration\n *\n * @param hexColor color in hex format\n * @param typeEvent interaction event\n * @param theme\n */\nexport const adjustLightness = (hexColor: string, typeEvent: 'hover' | 'pressed' | 'disabled', theme: 'new' | 'classic' = 'new'): string => {\n const hexRegex = /^#([0-9A-F]{3}){1,2}$/i;\n if (hexColor && !hexRegex.test(hexColor)) {\n throw new Error('Invalid HEX color format');\n }\n\n const hslColor = hexToHsl(hexColor);\n const lightness = hslColor.l * 100;\n\n if (theme === 'new') {\n if (lightness > 70 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness < 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 70 && lightness > 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n }\n } else {\n if (lightness > 70 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness < 30 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness > 70 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l - 20 / 100);\n } else if (lightness < 30 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l + 30 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l - 20 / 100);\n } else if (lightness > 70 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 30 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 50 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 20 / 100);\n }\n }\n\n return hslToHex(hslColor);\n};\n\n/**\n * Transforms hex color to HSL in object variation.\n * @param hexColor string value with hex color\n */\nexport const hexToHsl = (hexColor: string): { h: number; s: number; l: number } => {\n const rgbColor = parseInt(hexColor.slice(1), 16);\n const r = ((rgbColor >> 16) & 255) / 255;\n const g = ((rgbColor >> 8) & 255) / 255;\n const b = (rgbColor & 255) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h = 0;\n let s;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // grayscale\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h, s, l };\n};\n\n/**\n * Transforms HSL color, represented as an object and transforms it to hex string.\n * @param hslColor accepts the HSL color like an object.\n */\nexport const hslToHex = (hslColor: { h: number; s: number; l: number }): string => {\n const { h, s, l } = hslColor;\n\n const hueToRgb = (p: number, q: number, t: number): number => {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n const r = hueToRgb(p, q, h + 1 / 3);\n const g = hueToRgb(p, q, h);\n const b = hueToRgb(p, q, h - 1 / 3);\n\n const rgbColor = (Math.round(r * 255) << 16) | (Math.round(g * 255) << 8) | Math.round(b * 255);\n\n return `#${rgbColor.toString(16).padStart(6, '0')}`;\n};\n\n/**\n * Restricts the value to be within the range [0, 1].\n * @param value\n */\nconst clamp = (value: number): number => Math.min(Math.max(value, 0), 1);\n","// Data of all tgoIcons\nexport const tgoIcons = [\n 'Add',\n 'Archive',\n 'Arrow_down',\n 'Arrow_left',\n 'Arrow_right',\n 'Arrow_up',\n 'Assessment',\n 'Attempts',\n 'Book',\n 'Calendar',\n 'Candidates',\n 'Chat-notifications',\n 'Chat',\n 'Check',\n 'Clone',\n 'Close',\n 'Code',\n 'Company',\n 'Copy',\n 'Custom-questions',\n 'Delete',\n 'Devices',\n 'Document',\n 'Download',\n 'Edit',\n 'Email-message',\n 'Empty-placeholder',\n 'Error',\n 'Essay',\n 'Eye-hide',\n 'Eye-view',\n 'Feedback-1',\n 'Feedback-2',\n 'Feedback-3',\n 'Feedback-4',\n 'Feedback-5',\n 'File-attach',\n 'File-upload',\n 'Filter',\n 'Folder',\n 'Format-add-file',\n 'Format-add-table',\n 'Format-align-L',\n 'Format-align-R',\n 'Format-align-center',\n 'Format-align-justify',\n 'Format-bold',\n 'Format-code-active',\n 'Format-code-block',\n 'Format-edit-table',\n 'Format-format',\n 'Format-function',\n 'Format-italics',\n 'Format-list-bulleted',\n 'Format-list-numbered',\n 'Format-picker',\n 'Format-quote',\n 'Format-subscript',\n 'Format-superscript',\n 'Format-text-direction-L',\n 'Format-text-direction-R',\n 'Format-text-size',\n 'Format-underline',\n 'Format-variable',\n 'Full-screen',\n 'Gender-female',\n 'Gender-male',\n 'Help-2',\n 'Help',\n 'Image',\n 'Info',\n 'Integration',\n 'Language',\n 'Layout',\n 'Learn',\n 'Level',\n 'Light-bulb',\n 'Link',\n 'Loading-spinner',\n 'Localisation',\n 'Location',\n 'Lock',\n 'Log-out',\n 'Menu-burger',\n 'Menu-ellipsis',\n 'Microphone',\n 'Minus',\n 'Mouse-cursor',\n 'Mouse-grab-cursor',\n 'Mouse',\n 'Multi-choice',\n 'Notifications',\n 'Password',\n 'Path',\n 'Plan-billing',\n 'Plus',\n 'Premium',\n 'Promotion',\n 'Question-count',\n 'Refer',\n 'Reset',\n 'Review',\n 'Round-check-filled',\n 'Round-check',\n 'Search',\n 'Secure-checkout',\n 'Send',\n 'Settings',\n 'Social-facebook',\n 'Social-instagram',\n 'Social-linkedin',\n 'Sorting-down-1',\n 'Sorting-down',\n 'Speedometer',\n 'Star-filled',\n 'Star-half',\n 'Star-outline',\n 'Support',\n 'Sync',\n 'Team',\n 'Test',\n 'Thunder',\n 'Timer',\n 'Type',\n 'Unarchive',\n 'Unlock',\n 'Upgrade',\n 'Upload',\n 'User-access',\n 'User-add',\n 'User-invite',\n 'User-profile',\n 'User-reject',\n 'User-switch',\n 'Video-pause',\n 'Video-play',\n 'Video-record',\n 'Video',\n 'Volume',\n 'Warning',\n 'Zoom-in',\n 'Zoom-out',\n 'Fire',\n 'Gift',\n 'Grab',\n 'Share',\n 'Sparkles',\n 'Video-stop',\n 'Minimize',\n 'Employee',\n 'Money-bag',\n 'Suitcase',\n 'Google',\n 'Fast-forward',\n 'Fast-rewind',\n 'Skip-next',\n 'Skip-previous',\n 'TestGorilla',\n] as const;\n\nexport const tgoRebrandIcons = [\n 'Archive-filled',\n 'Archive-in-line',\n 'Add-in-line',\n 'Add-filled',\n 'Arrow-chevron-down-filled',\n 'Arrow-chevron-down-in-line',\n 'Arrow-chevron-left-filled',\n 'Arrow-chevron-left-in-line',\n 'Arrow-chevron-right-filled',\n 'Arrow-chevron-right-in-line',\n 'Arrow-chevron-up-filled',\n 'Arrow-chevron-up-in-line',\n 'Arrow-down-filled',\n 'Arrow-down-in-line',\n 'Arrow-up-filled',\n 'Arrow-up-in-line',\n 'Assessment-filled',\n 'Assessment-in-line',\n 'Attach-filled',\n 'Attach-in-line',\n 'Attempts-filled',\n 'Attempts-in-line',\n 'Book-filled',\n 'Book-in-line',\n 'Calendar-filled',\n 'Calendar-in-line',\n 'Candidates-filled',\n 'Candidates-in-line',\n 'Chat-filled',\n 'Chat-in-line',\n 'Check-filled',\n 'Check-in-line',\n 'Check-round-filled',\n 'Check-round-in-line',\n 'Clone-filled',\n 'Clone-in-line',\n 'Close-filled',\n 'Close-in-line',\n 'Code-filled',\n 'Code-in-line',\n 'Company-filled',\n 'Company-in-line',\n 'Copy-filled',\n 'Copy-in-line',\n 'Delete-filled',\n 'Delete-in-line',\n 'Devices-filled',\n 'Devices-in-line',\n 'Document-filled',\n 'Document-in-line',\n 'Download-filled',\n 'Download-in-line',\n 'Edit-filled',\n 'Edit-in-line',\n 'Edit-text-filled',\n 'Edit-text-in-line',\n 'Employee-filled',\n 'Employee-in-line',\n 'Error-filled',\n 'Error-in-line',\n 'Essay-filled',\n 'Essay-in-line',\n 'Experience-filled',\n 'Experience-in-line',\n 'Facebook-filled',\n 'Facebook-in-line',\n 'Fast-forward-filled',\n 'Fast-forward-in-line',\n 'Fast-rewind-filled',\n 'Fast-rewind-in-line',\n 'Filter-filled',\n 'Filter-in-line',\n 'Fire-filled',\n 'Fire-in-line',\n 'Folder-filled',\n 'Folder-in-line',\n 'Full-screen-filled',\n 'Full-screen-in-line',\n 'Gender-male-filled',\n 'Gender-male-in-line',\n 'Gender-female-filled',\n 'Gender-female-in-line',\n 'Gift-filled',\n 'Gift-in-line',\n 'Google-filled',\n 'Google-in-line',\n 'Grab-filled',\n 'Grab-in-line',\n 'Help-filled',\n 'Help-in-line',\n 'Hide-filled',\n 'Hide-in-line',\n 'Image-filled',\n 'Image-in-line',\n 'Info-filled',\n 'Info-in-line',\n 'Instagram-filled',\n 'Instagram-in-line',\n 'Integration-filled',\n 'Integration-in-line',\n 'Invite-filled',\n 'Invite-in-line',\n 'Language-filled',\n 'Language-in-line',\n 'Layout-filled',\n 'Layout-in-line',\n 'Learn-filled',\n 'Learn-in-line',\n 'Level-filled',\n 'Level-in-line',\n 'Light-bulb-filled',\n 'Light-bulb-in-line',\n 'Link-filled',\n 'Link-in-line',\n 'Linkedin-filled',\n 'Linkedin-in-line',\n 'Localization-filled',\n 'Localization-in-line',\n 'Location-filled',\n 'Location-in-line',\n 'Lock-filled',\n 'Lock-in-line',\n 'Logout-filled',\n 'Logout-in-line',\n 'Menu-burger-filled',\n 'Menu-burger-in-line',\n 'Menu-ellipsis-filled',\n 'Menu-ellipsis-in-line',\n 'Mic-filled',\n 'Mic-in-line',\n 'Minimize-filled',\n 'Minimize-in-line',\n 'Minus-filled',\n 'Minus-in-line',\n 'Mouse-filled',\n 'Mouse-in-line',\n 'Multi-choice-filled',\n 'Multi-choice-in-line',\n 'Notification-bell-filled',\n 'Notification-bell-in-line',\n 'Password-filled',\n 'Password-in-line',\n 'Path-filled',\n 'Path-in-line',\n 'Pause-filled',\n 'Pause-in-line',\n 'Plan-billing-filled',\n 'Plan-billing-in-line',\n 'Play-filled',\n 'Play-in-line',\n 'Plus-filled',\n 'Plus-in-line',\n 'Premium-filled',\n 'Premium-in-line',\n 'Premium-circle-in-line',\n 'Question-count-filled',\n 'Question-count-in-line',\n 'Question-filled',\n 'Question-in-line',\n 'Record-filled',\n 'Record-in-line',\n 'Reject-filled',\n 'Refer-in-line',\n 'Refer-filled',\n 'Reject-in-line',\n 'Reset-filled',\n 'Reset-in-line',\n 'Review-emoji-1-filled',\n 'Review-emoji-1-in-line',\n 'Review-emoji-2-filled',\n 'Review-emoji-2-in-line',\n 'Review-emoji-3-filled',\n 'Review-emoji-3-in-line',\n 'Review-emoji-4-filled',\n 'Review-emoji-4-in-line',\n 'Review-emoji-5-filled',\n 'Review-emoji-5-in-line',\n 'Review-filled',\n 'Review-half-star-filled',\n 'Review-half-star-in-line',\n 'Review-in-line',\n 'Review-star-filled',\n 'Review-star-in-line',\n 'Search-filled',\n 'Search-in-line',\n 'Secure-filled',\n 'Secure-in-line',\n 'Send-filled',\n 'Send-in-line',\n 'Settings-filled',\n 'Settings-in-line',\n 'Share-filled',\n 'Share-in-line',\n 'Skip-next-filled',\n 'Skip-next-in-line',\n 'Skip-previous-filled',\n 'Skip-previous-in-line',\n 'Sparkle-filled',\n 'Sparkle-in-line',\n 'Speedometer-filled',\n 'Speedometer-in-line',\n 'Stop-filled',\n 'Stop-in-line',\n 'Switch-filled',\n 'Switch-in-line',\n 'Sync-filled',\n 'Sync-in-line',\n 'Team-filled',\n 'Team-in-line',\n 'Test-filled',\n 'Test-in-line',\n 'Timer-filled',\n 'Timer-in-line',\n 'Type-filled',\n 'Type-in-line',\n 'Unarchive-filled',\n 'Unarchive-in-line',\n 'Unlock-filled',\n 'Unlock-in-line',\n 'Upgrade-filled',\n 'Upgrade-in-line',\n 'Upload-filled',\n 'Upload-in-line',\n 'User-access-filled',\n 'User-access-in-line',\n 'User-add-filled',\n 'User-add-in-line',\n 'User-profile-filled',\n 'User-profile-in-line',\n 'Video-filled',\n 'Video-in-line',\n 'View-filled',\n 'View-in-line',\n 'Volume-filled',\n 'Volume-in-line',\n 'Warning-filled',\n 'Warning-in-line',\n 'Zoom-in-filled',\n 'Zoom-in-in-line',\n 'Zoom-out-filled',\n 'Zoom-out-in-line',\n 'TestGorilla-filled',\n 'TestGorilla-in-line',\n] as const;\n\nexport const groupedIcons = {\n directional: [\n 'Arrow-chevron-down-filled',\n 'Arrow-chevron-down-in-line',\n 'Arrow-chevron-left-filled',\n 'Arrow-chevron-left-in-line',\n 'Arrow-chevron-right-filled',\n 'Arrow-chevron-right-in-line',\n 'Arrow-chevron-up-filled',\n 'Arrow-chevron-up-in-line',\n 'Arrow-down-filled',\n 'Arrow-down-in-line',\n 'Arrow-up-filled',\n 'Arrow-up-in-line',\n 'Fast-forward-filled',\n 'Fast-forward-in-line',\n 'Fast-rewind-filled',\n 'Fast-rewind-in-line',\n 'Minus-filled',\n 'Minus-in-line',\n 'Plus-filled',\n 'Plus-in-line',\n 'Skip-next-filled',\n 'Skip-next-in-line',\n 'Skip-previous-filled',\n 'Skip-previous-in-line',\n ],\n assessment: [\n 'Assessment-filled',\n 'Assessment-in-line',\n 'Attempts-filled',\n 'Attempts-in-line',\n 'Candidates-filled',\n 'Candidates-in-line',\n 'Code-filled',\n 'Code-in-line',\n 'Essay-filled',\n 'Essay-in-line',\n 'Language-filled',\n 'Language-in-line',\n 'Learn-filled',\n 'Learn-in-line',\n 'Level-filled',\n 'Level-in-line',\n 'Localization-filled',\n 'Localization-in-line',\n 'Mic-filled',\n 'Mic-in-line',\n 'Multi-choice-filled',\n 'Multi-choice-in-line',\n 'Question-count-filled',\n 'Question-count-in-line',\n 'Question-filled',\n 'Question-in-line',\n 'Speedometer-filled',\n 'Speedometer-in-line',\n 'Test-filled',\n 'Test-in-line',\n 'Timer-filled',\n 'Timer-in-line',\n 'Type-filled',\n 'Type-in-line',\n 'Video-filled',\n 'Video-in-line',\n ],\n status: [\n 'Check-filled',\n 'Check-in-line',\n 'Check-round-filled',\n 'Check-round-in-line',\n 'Error-filled',\n 'Error-in-line',\n 'Help-filled',\n 'Help-in-line',\n 'Info-filled',\n 'Info-in-line',\n 'Refer-in-line',\n 'Refer-filled',\n 'Review-emoji-1-filled',\n 'Review-emoji-1-in-line',\n 'Review-emoji-2-filled',\n 'Review-emoji-2-in-line',\n 'Review-emoji-3-filled',\n 'Review-emoji-3-in-line',\n 'Review-emoji-4-filled',\n 'Review-emoji-4-in-line',\n 'Review-emoji-5-filled',\n 'Review-emoji-5-in-line',\n 'Review-half-star-filled',\n 'Review-half-star-in-line',\n 'Review-star-filled',\n 'Review-star-in-line',\n 'Warning-filled',\n 'Warning-in-line',\n ],\n social: [\n 'Facebook-filled',\n 'Facebook-in-line',\n 'Google-filled',\n 'Google-in-line',\n 'Instagram-filled',\n 'Instagram-in-line',\n 'Linkedin-filled',\n 'Linkedin-in-line',\n 'TestGorilla-filled',\n 'TestGorilla-in-line',\n ],\n actions: [\n 'Archive-filled',\n 'Archive-in-line',\n 'Attach-filled',\n 'Attach-in-line',\n 'Clone-filled',\n 'Clone-in-line',\n 'Close-filled',\n 'Close-in-line',\n 'Copy-filled',\n 'Copy-in-line',\n 'Delete-filled',\n 'Delete-in-line',\n 'Download-filled',\n 'Download-in-line',\n 'Edit-filled',\n 'Edit-in-line',\n 'Edit-text-filled',\n 'Edit-text-in-line',\n 'Filter-filled',\n 'Filter-in-line',\n 'Full-screen-filled',\n 'Full-screen-in-line',\n 'Grab-filled',\n 'Grab-in-line',\n 'Hide-filled',\n 'Hide-in-line',\n 'Invite-filled',\n 'Invite-in-line',\n 'Link-filled',\n 'Link-in-line',\n 'Lock-filled',\n 'Lock-in-line',\n 'Logout-filled',\n 'Logout-in-line',\n 'Menu-burger-filled',\n 'Menu-burger-in-line',\n 'Menu-ellipsis-filled',\n 'Menu-ellipsis-in-line',\n 'Minimize-filled',\n 'Minimize-in-line',\n 'Pause-filled',\n 'Pause-in-line',\n 'Play-filled',\n 'Play-in-line',\n 'Record-filled',\n 'Record-in-line',\n 'Reject-filled',\n 'Reject-in-line',\n 'Reset-filled',\n 'Reset-in-line',\n 'Review-filled',\n 'Review-half-star-filled',\n 'Search-filled',\n 'Search-in-line',\n 'Send-filled',\n 'Send-in-line',\n 'Settings-filled',\n 'Settings-in-line',\n 'Share-filled',\n 'Share-in-line',\n 'Stop-filled',\n 'Stop-in-line',\n 'Switch-filled',\n 'Switch-in-line',\n 'Unarchive-filled',\n 'Unarchive-in-line',\n 'Unlock-filled',\n 'Unlock-in-line',\n 'Upgrade-filled',\n 'Upgrade-in-line',\n 'Upload-filled',\n 'Upload-in-line',\n 'User-add-filled',\n 'User-add-in-line',\n 'View-filled',\n 'View-in-line',\n 'Zoom-in-filled',\n 'Zoom-in-in-line',\n 'Zoom-out-filled',\n 'Zoom-out-in-line',\n ],\n communication: [\n 'Book-filled',\n 'Book-in-line',\n 'Calendar-filled',\n 'Calendar-in-line',\n 'Chat-filled',\n 'Chat-in-line',\n 'Company-filled',\n 'Company-in-line',\n 'Devices-filled',\n 'Devices-in-line',\n 'Document-filled',\n 'Document-in-line',\n 'Employee-filled',\n 'Employee-in-line',\n 'Experience-filled',\n 'Experience-in-line',\n 'Fire-filled',\n 'Fire-in-line',\n 'Folder-filled',\n 'Folder-in-line',\n 'Gender-female-filled',\n 'Gender-female-in-line',\n 'Gender-male-filled',\n 'Gender-male-in-line',\n 'Gift-filled',\n 'Gift-in-line',\n 'Image-filled',\n 'Image-in-line',\n 'Integration-filled',\n 'Integration-in-line',\n 'Layout-filled',\n 'Layout-in-line',\n 'Light-bulb-filled',\n 'Light-bulb-in-line',\n 'Location-filled',\n 'Location-in-line',\n 'Mouse-filled',\n 'Mouse-in-line',\n 'Notification-bell-filled',\n 'Notification-bell-in-line',\n 'Password-filled',\n 'Password-in-line',\n 'Path-filled',\n 'Path-in-line',\n 'Plan-billing-filled',\n 'Plan-billing-in-line',\n 'Premium-filled',\n 'Premium-in-line',\n 'Premium-circle-in-line',\n 'Secure-filled',\n 'Secure-in-line',\n 'Sparkle-filled',\n 'Sparkle-in-line',\n 'Sync-filled',\n 'Sync-in-line',\n 'Team-filled',\n 'Team-in-line',\n 'User-access-filled',\n 'User-access-in-line',\n 'User-profile-filled',\n 'User-profile-in-line',\n 'Volume-filled',\n 'Volume-in-line',\n ],\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconsService {\n private _loadedIcons: any[] = [];\n\n addIcon(icon: any): void {\n this._loadedIcons = [...this._loadedIcons, icon];\n }\n\n isIconLoaded(icon: any): boolean {\n return this._loadedIcons.includes(icon);\n }\n}\n","import {\n Component,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { tgoIcons, tgoRebrandIcons } from './icon.config';\nimport { IconColor, IconName, IconSize } from './icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconsService } from '../../services/icons.service';\n\n@Component({\n selector: 'ui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent implements OnInit {\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconComponent\n */\n @HostBinding('style.--icon-size')\n @Input() size: IconSize = '16';\n\n /**\n * Icon css class\n *\n * @memberof IconComponent\n */\n @Input() cssClass = '';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconComponent\n */\n @Input() name: IconName;\n\n /**\n * Icon color\n *\n * @type {IconColor}\n * @memberof IconComponent\n */\n @Input() color?: IconColor = 'black';\n\n /**\n * Icon filled\n *\n * @type {boolean}\n * @memberof IconComponent\n */\n @Input() filled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n customCssClass: string;\n filename: IconName | undefined;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private matIconRegistry: MatIconRegistry,\n private domSanitzer: DomSanitizer,\n private iconsService: IconsService\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.customCssClass = this.setCssClass();\n this.addIcon();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['size'] || changes['cssClass'] || changes['color'] ) {\n this.customCssClass = this.setCssClass();\n }\n if (changes['name'] || changes['filled'] || changes['applicationTheme']) {\n this.addIcon();\n }\n }\n\n //set css class for size\n setCssClass(): string {\n return `${this.cssClass} size-${this.size} ${this.color}`;\n }\n\n //Add icon to matIcon registry\n addIcon() {\n let filename: IconName | undefined;\n\n if (this.filled || this.name?.includes('filled')) {\n this.name = this.name.replace(/-in-line/, '') as IconName;\n filename =\n this.applicationTheme === 'classic'\n ? tgoIcons.find(icon => icon === this.filledIconName)\n : tgoRebrandIcons.find(icon => icon === this.filledIconName);\n } else {\n filename =\n this.applicationTheme === 'classic'\n ? (this.name?.replace(/-filled|-in-line/, '') as IconName)\n : (this.inlineIconFileName as IconName);\n }\n\n if (!filename) {\n filename = tgoIcons.find(icon => icon === this.name);\n }\n\n this.name = filename as IconName;\n const path = this.applicationTheme === 'classic' ? '/icons/' : '/icons/rebrand/';\n\n if (filename && !this.iconsService.isIconLoaded(filename)) {\n this.matIconRegistry.addSvgIcon(\n filename,\n this.domSanitzer.bypassSecurityTrustResourceUrl(`${path}${filename}.svg`)\n );\n this.iconsService.addIcon(filename);\n }\n }\n\n get filledIconName() {\n return this.name?.includes('filled') ? this.name : `${this.name}-filled`;\n }\n\n get inlineIconName() {\n return this.name?.includes('in-line') ? this.name : `${this.name}-in-line`;\n }\n\n get inlineIconFileName() {\n return this.name?.includes('filled') ? this.name.replace('filled', 'in-line') : this.inlineIconName;\n }\n}\n","<mat-icon [svgIcon]=\"name\" [attr.class]=\"customCssClass\"></mat-icon>\n","export type BadgeVariant = 'primary' | 'secondary' | 'notification';\nexport type BadgeColor =\n | 'red'\n | 'grey-medium'\n | 'teal'\n | 'yellow'\n | 'petrol'\n | 'teal-60w'\n | 'petrol-90w'\n | 'petrol-60w'\n | 'grey-dark'\n | 'blue-20'\n | 'blue-40';\n\nexport enum BadgeColorEnum {\n RED = 'red',\n GREY_MEDIUM = 'grey-medium',\n TEAL = 'teal',\n YELLOW = 'yellow',\n PETROL = 'petrol',\n TEAL_60W = 'teal-60w',\n PETROL_90W = 'petrol-90w',\n PETROL_60W = 'petrol-60w',\n GREY_DARK = 'grey-dark',\n BLUE_20 = 'blue-20',\n BLUE_40 = 'blue-40',\n}\n\nexport type RebrandBadgeColor =\n | 'success'\n | 'warning'\n | 'negative'\n | 'info'\n | 'brand'\n | 'neutral'\n | 'blue-20'\n | 'blue-40';\n\nexport enum RebrandBadgeColorEnum {\n SUCCESS = 'success',\n WARNING = 'warning',\n NEGATIVE = 'negative',\n INFO = 'info',\n BRAND = 'brand',\n NEUTRAL = 'neutral',\n BLUE_40 = 'blue-40',\n BLUE_20 = 'blue-20',\n}\n\nexport enum BadgeVariantEnum {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n NOTIFICATION = 'notification',\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { IconColor, IconName } from '../icon/icon.model';\nimport {\n BadgeColor,\n BadgeColorEnum,\n BadgeVariant,\n BadgeVariantEnum,\n RebrandBadgeColor,\n RebrandBadgeColorEnum,\n} from './badge.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n})\nexport class BadgeComponent {\n /**\n * The label to be displayed on the badge.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() label = '';\n\n /**\n * The icon name to be displayed on the badge.\n * @type {IconName}\n * @memberof BadgeComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * The color of the badge. Defaults to 'petrol'.\n * @type {BadgeColor}\n * @memberof BadgeComponent\n */\n @Input() color: BadgeColor = 'petrol';\n\n /**\n * The variant of the badge. Defaults to 'primary'.\n * @type {BadgeVariant}\n * @memberof BadgeComponent\n */\n @Input() variant: BadgeVariant = 'primary';\n\n /**\n * The amount of notifications to be displayed on the badge.\n * @type {number}\n * @memberof BadgeComponent\n */\n @Input() notificationsAmount = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof BadgeComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The color of the badge on new theme. Defaults to 'brand'.\n * @type {RebrandBadgeColor}\n * @memberof BadgeComponent\n */\n @Input() rebrandColor: RebrandBadgeColor = 'brand';\n\n protected badgeVariant = BadgeVariantEnum;\n private darkColors: string[] = [\n BadgeColorEnum.GREY_MEDIUM,\n BadgeColorEnum.PETROL_90W,\n BadgeColorEnum.TEAL_60W,\n BadgeColorEnum.PETROL_60W,\n RebrandBadgeColorEnum.SUCCESS,\n RebrandBadgeColorEnum.INFO,\n RebrandBadgeColorEnum.BRAND,\n RebrandBadgeColorEnum.NEUTRAL,\n RebrandBadgeColorEnum.NEGATIVE,\n RebrandBadgeColorEnum.WARNING,\n RebrandBadgeColorEnum.BLUE_20,\n ];\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 get iconColor(): IconColor {\n return this.darkColors.includes(this.isClassicTheme ? this.color : this.rebrandColor) ? 'black' : 'white';\n }\n\n protected get isClassicTheme(): boolean {\n return this.applicationTheme === 'classic';\n }\n}\n","<div [class]=\"'badge-container-' + variant\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"(label.length > 25) ? label : ''\"\n [matTooltipClass]=\"applicationTheme\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"badgeVariant.PRIMARY\">\n <ui-icon *ngIf=\"icon\" class=\"badge-icon\" [name]=\"icon\" [color]=\"iconColor\" ></ui-icon>\n </ng-container>\n <div *ngSwitchCase=\"badgeVariant.SECONDARY\" class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n <div *ngSwitchCase=\"badgeVariant.NOTIFICATION\" class=\"number-notification\">{{ notificationsAmount }}</div>\n </ng-container>\n <div class=\"label\" *ngIf=\"label && variant !== badgeVariant.NOTIFICATION\">{{ label.length > 25 ? (label | slice : 0 : 25) + '...' : label }}</div>\n</div>\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding, Inject,\n Input,\n OnInit, Optional,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport {\n ButtonBadgeConfig,\n ButtonColor,\n ButtonIconPosition,\n ButtonSize,\n ButtonState,\n ButtonType,\n IconButtonSize,\n LinkUrlTarget\n} from './button.model';\nimport { adjustLightness } from '../../utils/color-contrast';\nimport { MatButton } from '@angular/material/button';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent implements OnInit, AfterViewInit {\n @HostBinding('style.pointer-events')\n get enabled(): string {\n return this.disabled ? 'none' : 'all';\n }\n\n @ViewChild('tooltipElement') tooltipElement: ElementRef<HTMLElement>;\n\n /**\n * Define button height\n *\n * @type {ButtonSize}\n * @memberof ButtonComponent\n */\n @Input() size: ButtonSize = 'big';\n /**\n * Background color of the button while in active state\n *\n * @type {ButtonColor}\n * @memberof ButtonComponent\n */\n @HostBinding('attr.btn-variant')\n @Input()\n variant: ButtonColor = 'primary';\n\n /**\n * Text content to appear on the button\n *\n * @memberof ButtonComponent\n */\n @Input() label = '';\n\n /**\n * Positioning of the icon (when existant)\n *\n * @type {ButtonIconPosition}\n * @memberof ButtonComponent\n */\n @Input() iconPosition?: ButtonIconPosition = 'right';\n\n /**\n * Define if button has only icon without text\n *\n * @memberof ButtonComponent\n */\n @Input() justIcon = false;\n\n /**\n * Name of ui-icon\n *\n * @type {IconName}\n * @memberof ButtonComponent\n */\n @Input() iconName: IconName = '';\n\n /**\n * Indicator if the button should be disabled\n *\n * @memberof ButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Indicator if the loading icon should be shown\n *\n * @memberof ButtonComponent\n */\n @Input() loading = false;\n\n /**\n * Indicator of the button width\n *\n * @memberof ButtonComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Url of button if it is a link\n *\n * @memberof ButtonComponent\n */\n @Input() url?: string;\n\n /**\n * Url's target of button if it is a link\n *\n * @type {@type {LinkUrlTarget}}\n * @memberof ButtonComponent\n */\n @Input() urlTarget?: LinkUrlTarget;\n\n /**\n * Button value\n *\n * @memberof ButtonComponent\n */\n @Input() value?: string;\n\n /**\n * @property tooltip\n * @description The tooltip that is displayed on hover. Required for icon-button type\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() tooltip = '';\n\n /**\n * @property isPremium\n * @description The icon that is displayed for Premium button\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() isPremium = false;\n\n /**\n * The type of the button.\n *\n * @type {ButtonType}\n * @memberof ButtonComponent\n * @default 'button'\n */\n @Input() type: ButtonType = 'button';\n\n /**\n * Color of the button.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() companyColor: string | null = '';\n\n /**\n * Config for the button badge variation\n * @type {ButtonBadgeConfig}\n * @property badgeType Type of badge on the button\n * @property badgeLabel Label text for the badge\n * @property badgeNotificationAmount The amount for notification in the badge\n */\n @Input() buttonBadgeConfig: ButtonBadgeConfig | undefined;\n\n /**\n *\n * Defines the application theme where buttons is used\n *\n * @type {ApplicationTheme}\n * @memberof ButtonComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Disabled button scale on click\n *\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() disabledScaleOnClick = false;\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() ariaRequired = false;\n\n @Output() buttonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output() buttonHoverEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('buttonElement', { static: false }) buttonElement: MatButton;\n\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('style.--color')\n get compColor() {\n return this.getCompanyColor;\n }\n\n classCss: string;\n styleCss: any;\n isButtonLink: boolean;\n isLabel: boolean;\n buttonState: ButtonState;\n hover = false;\n iconButtonSize: IconButtonSize = '40';\n allowButtonTypeForPremium: ButtonColor[] = ['secondary', 'primary', 'ghost', 'outlined', 'destructive'];\n isFilledIcon: boolean;\n coloredIcons = ['Google-in-line', 'Google', 'Google-filled'];\n\n get typeIncluded(): boolean {\n return this.allowButtonTypeForPremium.includes(this.variant);\n }\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 ngOnInit(): void {\n this.classCss = this.setCssClass();\n this.styleCss = this.setCssStyle();\n this.isButtonLink = this.showButtonLink();\n this.isLabel = this.showLabel();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['disabled']) {\n this.buttonState = 'default';\n }\n if (!this.applicationTheme) {\n this.applicationTheme = 'light';\n }\n if (changes['type']) {\n this.isButtonLink = this.showButtonLink();\n }\n if (changes['loading']) {\n this.isLabel = this.showLabel();\n }\n if (\n changes['type'] ||\n changes['fullWidth'] ||\n changes['iconName'] ||\n changes['justIcon'] ||\n changes['iconPosition'] ||\n changes['disabled'] ||\n changes['companyColor'] ||\n changes['applicationTheme']\n ) {\n this.classCss = this.setCssClass();\n this.styleCss = this.setCssStyle();\n }\n if (changes['variant']?.currentValue === 'icon-button' || (changes['variant']?.currentValue === 'menuTrigger' && this.applicationTheme !== 'classic')) {\n this.iconButtonSize = this.setIconButtonSize();\n }\n\n this.isFilledIcon = this.applicationTheme !== 'classic' && (this.variant === 'primary' || this.variant === 'secondary');\n }\n\n ngAfterViewInit(): void {\n this.tooltipElement.nativeElement.onclick = ev => {\n ev.preventDefault();\n ev.stopPropagation();\n };\n if (this.variant === 'icon-button' && !this.tooltip) {\n throw new Error('ui-button ButtonComponent\\n [tooltip] is required for [type] icon-button!');\n } else if (this.variant === 'destructive' && !this.iconName && !this.loading && this.applicationTheme !== 'classic') {\n throw new Error('ui-button ButtonComponent\\n [icon] is required for [type] destructive');\n }\n }\n\n buttonClick(event: Event): void {\n this.buttonClickEvent.emit(event);\n }\n\n buttonHover(event: Event): void {\n if (event.type === 'mouseenter') {\n this.hover = true;\n this.buttonHoverEvent.emit(event);\n this.buttonState = 'hover';\n if (this.shouldChangeFilledStatus && this.iconName) {\n this.iconName = this.iconName.replace(/-in-line|-filled/, '') + '-filled' as IconName;\n }\n } else {\n this.hover = false;\n if (this.shouldChangeFilledStatus && this.iconName) {\n this.iconName = this.iconName.replace(/-in-line|-filled/, '') + '-in-line' as IconName;\n }\n this.buttonState = 'default';\n }\n\n this.styleCss = this.setCssStyle();\n }\n\n //Show or hide label\n showLabel(): boolean {\n return !this.loading;\n }\n\n //Set css class according inputs\n setCssClass(): string {\n const width = this.fullWidth ? 'full-width' : '';\n const hasIcon = this.iconName === null ? '' : 'icon';\n const justIcon = this.justIcon || this.variant === 'icon-button' ? 'only-icon' : '';\n const iconPosition = this.iconPosition === undefined ? '' : this.iconPosition;\n const disabled = this.disabled && this.variant === 'primary' ? 'primary-disabled' : '';\n const variant = this.variant === 'ghost' && this.applicationTheme === 'classic' ? 'outlined' : this.variant;\n const companyColor = this.companyColor ? 'has-company-color' : '';\n return `${this.size} ${iconPosition} ${variant} ${width} ${hasIcon} ${justIcon} ${disabled} ${companyColor} ${this.applicationTheme}-theme`;\n }\n\n setCssStyle(): any {\n this.buttonState = this.disabled ? 'disabled' : this.buttonState;\n const styleObj: any = {};\n\n if (this.variant === 'primary' && this.applicationTheme !== 'classic' && (this.buttonState === 'hover' || this.buttonState === 'pressed')) {\n styleObj['background-color'] = adjustLightness(this.getCompanyColor, this.buttonState);\n } else if (this.variant === 'primary' && this.applicationTheme === 'classic' && this.buttonState !== 'default') {\n styleObj['background-color'] = adjustLightness(this.getCompanyColor, this.buttonState, 'classic');\n } else if (this.getCompanyColor && (this.variant === 'link' || this.variant === 'tertiary' || this.variant === 'icon-button')) {\n styleObj['color'] = this.getCompanyColor;\n }\n return styleObj;\n }\n\n //Show or hide spinner\n get showSpinner(): boolean {\n const isNotTab = this.variant !== 'tab';\n const isNotLink = this.variant !== 'link';\n const isLoading = this.loading === true;\n return isLoading && isNotTab && isNotLink;\n }\n\n //Show button with <button> or <a> tag\n showButtonLink(): boolean {\n return this.variant !== 'link';\n }\n\n setIconButtonSize(): IconButtonSize {\n return this.size === 'big' ? '40' : this.size === 'small' ? '24' : '32';\n }\n\n onPressed(ev: Event): void {\n if (ev.type === 'mousedown') {\n this.buttonState = 'pressed';\n } else {\n this.buttonState = this.hover ? 'hover' : 'default';\n }\n\n this.styleCss = this.setCssStyle();\n }\n\n focus(): void {\n this.buttonElement.focus();\n }\n\n get getCompanyColor(): string {\n return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');\n }\n\n get shouldChangeFilledStatus(): boolean {\n return this.applicationTheme !== 'classic' && this.variant !== 'primary' && this.variant !== 'secondary' && !this.coloredIcons.includes(this.iconName);\n }\n}\n","<div #tooltipElement class=\"tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"applicationTheme\"\n></div>\n<div\n class=\"button-wrapper\"\n [ngClass]=\"{ 'full-width': fullWidth, 'rounded-icon': applicationTheme !== 'classic' && iconName && !label, link: !isButtonLink }\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"applicationTheme\"\n>\n <div class=\"button-container\"\n [ngClass]=\"{ 'disabled': disabled, 'button-scale': applicationTheme !== 'classic' && !disabledScaleOnClick }\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <span *ngIf=\"isPremium && typeIncluded\" class=\"right-top\">\n <img [attr.src]=\"'/images/premium.svg'\" [alt]=\"'premium-icon'\">\n </span>\n <ui-badge\n *ngIf=\"buttonBadgeConfig?.badgeType\"\n [rebrandColor]=\"buttonBadgeConfig?.rebrandColor ?? 'brand'\"\n [variant]=\"buttonBadgeConfig!.badgeType!\"\n [label]=\"buttonBadgeConfig?.badgeLabel ?? ''\"\n [notificationsAmount]=\"buttonBadgeConfig?.badgeNotificationAmount ?? 0\"\n class=\"right-top\"\n [ngClass]=\"{ 'badge-primary': buttonBadgeConfig?.badgeType === 'primary', 'badge-notification': buttonBadgeConfig?.badgeType === 'notification' }\"\n ></ui-badge>\n <button\n [style]=\"'--icon-button-size:' + iconButtonSize + 'px'\"\n [ngClass]=\"classCss\"\n [ngStyle]=\"styleCss\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick($event)\"\n (mouseleave)=\"buttonHover($event)\"\n (mouseenter)=\"buttonHover($event)\"\n (mousedown)=\"onPressed($event)\"\n (mouseup)=\"onPressed($event)\"\n *ngIf=\"isButtonLink\"\n [type]=\"type\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n #buttonElement\n mat-flat-button>\n <ng-container *ngIf=\"showSpinner; else icons\">\n <span class=\"spinner-wrapper\">\n <mat-spinner class=\"position-spinner\" aria-label=\"loading\" mode=\"indeterminate\" diameter=\"24\"></mat-spinner>\n </span>\n </ng-container>\n <ng-template #icons>\n <span class=\"icon-only-wrapper\" *ngIf=\"justIcon && !!iconName\">\n <span\n class=\"icon only\"\n role=\"label\"\n [attr.aria-label]=\"label\"\n >\n <ui-icon\n [color]=\"'inherit'\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"iconName\"\n [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"\n ></ui-icon>\n </span>\n </span>\n\n <span class=\"icon-label-wrapper\" [ngClass]=\"{'center-text': iconName === ''}\" *ngIf=\"!justIcon\">\n <span\n class=\"icon\"\n *ngIf=\"iconPosition === 'left' && !!iconName\"\n aria-hidden=\"true\"\n >\n <ui-icon\n [color]=\"'inherit'\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"iconName\"\n [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"\n ></ui-icon>\n </span>\n <span *ngIf=\"isLabel\" class=\"label\">{{ label }}</span>\n <span class=\"icon\" *ngIf=\"iconPosition === 'right' && !!iconName\" aria-hidden=\"true\"><ui-icon\n [color]=\"'inherit'\" [applicationTheme]=\"applicationTheme\" [name]=\"iconName\" [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"></ui-icon></span>\n </span>\n </ng-template>\n </button>\n <a\n #buttonElement\n [ngClass]=\"classCss\"\n [ngStyle]=\"styleCss\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick($event)\"\n (mouseenter)=\"buttonHover($event)\"\n (mouseleave)=\"buttonHover($event)\"\n (mousedown)=\"onPressed($event)\"\n (mouseup)=\"onPressed($event)\"\n [disableRipple]=\"true\"\n *ngIf=\"!isButtonLink\"\n [href]=\"url\"\n [target]=\"urlTarget\"\n mat-flat-button>\n <span class=\"icon-label-wrapper\">\n {{ label }}\n </span>\n </a>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport en from '../assets/i18n/en.json';\nimport es from '../assets/i18n/es.json';\nimport de from '../assets/i18n/de.json';\nimport * as daDk from '../assets/i18n/da-dk.json';\nimport fr from '../assets/i18n/fr.json';\nimport * as itIt from '../assets/i18n/it-it.json';\nimport * as jaJp from '../assets/i18n/ja-jp.json';\nimport * as nbNo from '../assets/i18n/nb-no.json';\nimport nl from '../assets/i18n/nl.json';\nimport * as plPl from '../assets/i18n/pl-pl.json';\nimport * as ptBr from '../assets/i18n/pt-br.json';\nimport * as svSe from '../assets/i18n/sv-se.json';\n\n/**\n * Used for translations\n */\n@Pipe({\n name: 'uiTranslate',\n standalone: true,\n})\nexport class UiTranslatePipe implements PipeTransform {\n protected readonly LANGS: { [key: string]: any } = {\n en,\n es,\n de,\n 'da-dk': daDk,\n fr,\n 'it-it': itIt,\n 'ja-jp': jaJp,\n 'nb-no': nbNo,\n nl,\n 'pl-pl': plPl,\n 'pt-br': ptBr,\n 'sv-se': svSe,\n };\n /**\n * Finds the translation by keys with interpolation if provided\n * @param translateKey key, can have multiple keys separated with '.' eg ('KEY', 'FIRST_LVL_KEY.SECOND_LVL_KEY')\n * @param activeLang current active language\n * @param interpolationData data that will be used to replace interpolations in translated variant\n * For example, for translate text like this\n * 'You have {{attemptsAmount}} attempts left\n * the interpolation object should be { attemptsAmount: 10 }\n */\n transform(translateKey: string, activeLang: string, interpolationData?: any): string {\n const currentLangObject = JSON.parse(JSON.stringify(this.LANGS[activeLang]));\n const enLangObject = JSON.parse(JSON.stringify(this.LANGS['en']));\n const keys = translateKey.split('.');\n const translation = keys.reduce((acc, currentKey) => acc && acc[currentKey], currentLangObject);\n\n if (translation && interpolationData) {\n return this.interpolate(translation, interpolationData);\n }\n\n const englishTranslation = keys.reduce((acc, currentKey) => acc && acc[currentKey], enLangObject);\n return this.interpolate(englishTranslation, interpolationData);\n }\n\n /**\n * Used to find and replace interpolation in text\n * @param translation the translation text\n * @param interpolationData the interpolation object\n */\n private interpolate(translation: string, interpolationData: { [key: string]: any }): string {\n return translation?.replace(/{{(.*?)}}/g, (match: string, group: string) => {\n const value = interpolationData[group.trim()] as string;\n return value ?? match;\n });\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { IconName } from '../../components/icon/icon.model';\nimport { AlertBarType, AlertVariant } from '../../utils/alert-bar.model';\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\nimport { LinkTargetType } from './alert-banner.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-alert-banner',\n templateUrl: './alert-banner.component.html',\n styleUrls: ['./alert-banner.component.scss'],\n animations: [\n trigger('openClose', [\n transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),\n transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertBannerComponent implements OnInit {\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private domSanitizer: DomSanitizer\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Alert Banner type\n *\n * @type {AlertBarType}\n * @memberof AlertBannerComponent\n */\n @Input() alertType: AlertBarType = 'success';\n\n /**\n * Alert Banner variant\n *\n * @type {AlertVariant}\n * @memberof AlertBannerComponent\n */\n @Input() alertVariant: AlertVariant = 'banner';\n\n /**\n * Alert banner message\n *\n * @memberof AlertBannerComponent\n */\n @Input() set message(msg: string) {\n this._message = this.domSanitizer.bypassSecurityTrustHtml(msg);\n }\n\n /**\n * Include dismmiss button\n *\n * @memberof AlertBannerComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Include shadow or not\n *\n * @memberof AlertBannerComponent\n */\n @Input() shadow = false;\n\n /**\n * Link text that will appended at the end of message\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof AlertBannerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Sets the full width\n *\n * @type {boolean}\n * @memberof AlertBannerComponent\n */\n @Input() isFullWidth: boolean | undefined;\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @memberof AlertBannerComponent\n */\n @Input() closeButtonTooltip = '';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof AlertBannerComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n @HostBinding('class.display-none') get isDismissed() {\n return this.dismissAlertBanner;\n }\n\n iconName: IconName;\n visible = true;\n fullWidth: boolean;\n fixed: boolean;\n position: string;\n cssClass: string;\n _message: SafeHtml = '';\n dismissAlertBanner = false;\n\n ngOnInit(): void {\n this.iconName = alertBarsUtil.setIcon(this.alertType);\n this.position = alertBarsUtil.setPosition(this.fixed);\n this.fixed = this.alertVariant === 'banner' ? true : false;\n this.fullWidth = this.isFullWidth ?? this.alertVariant === 'banner';\n this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position, this.alertVariant);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n setTimeout(() => {\n this.dismissAlertBanner = true;\n }, 200);\n }\n}\n","<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\" [attr.theme]=\"applicationTheme\" [class.shadow]=\"alertVariant === 'callout' && shadow ? true : false\">\n <div class=\"alert-text\">\n <ui-icon class=\"left-icon\" [name]=\"iconName\" size=\"24\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"_message\"></span>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic' && alertVariant !== 'callout'\"\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule, MatIconModule, HttpClientModule],\n exports: [IconComponent],\n providers: [HttpClientModule],\n})\nexport class IconComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from './badge.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [BadgeComponent],\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\n exports: [BadgeComponent],\n})\nexport class BadgeComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\nimport { ButtonComponent } from './button.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BadgeComponentModule } from '../badge/badge.component.module';\n\n@NgModule({\n declarations: [ButtonComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n IconComponentModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n BadgeComponentModule,\n ],\n exports: [ButtonComponent],\n providers: [],\n})\nexport class ButtonComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { AlertBannerComponent } from './alert-banner.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [AlertBannerComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe],\n exports: [AlertBannerComponent],\n})\nexport class AlertBannerComponentModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CardSize, CardVariant } from './card.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent implements OnChanges, OnInit {\n /**\n * Card size. Defaults \"medium\".\n *\n * @type {CardSize}\n * @memberof CardComponent\n */\n @Input() size: CardSize = 'medium';\n\n /**\n * Card variants. Defaults \"default\".\n *\n * @type {CardVariant}\n * @memberof CardComponent\n */\n @Input() variant: CardVariant = 'default';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof CardComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Show errors below card.\n *\n * @type {string[]}\n * @memberof CardComponent\n */\n @Input() set errors(errors: string[]) {\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n }\n\n /**\n * Marks card as selected\n *\n * @type {boolean}\n * @memberof CardComponent\n */\n @Input() selected = false;\n\n safeErrors: SafeHtml[];\n\n classes = '';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private domSanitizer: DomSanitizer\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnChanges(): void {\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\n }\n\n ngOnInit(): void {\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\n }\n\n get cardVariant(): CardVariant {\n return this.safeErrors?.length ? 'error' : this.variant;\n }\n\n get isSelected(): boolean {\n // educative, premium, ai variants shouldn't have any selected/interactive states\n return this.selected && this.variant !== 'educative' && this.variant !== 'premium' && this.variant !== 'ai';\n }\n}\n","<div class=\"card-container\" [ngClass]=\"[classes, isSelected ? 'selected' : '']\" [attr.theme]=\"applicationTheme\" tabindex=\"0\" >\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CardComponent } from './card.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [CardComponent],\n})\nexport class CardComponentModule {}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { errorType } from './validation-error.model';\nimport { NgControl } from '@angular/forms';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-validation-error',\n templateUrl: './validation-error.component.html',\n styleUrls: ['./validation-error.component.scss'],\n})\nexport class ValidationErrorComponent {\n @Input() ngControl: NgControl;\n\n @Input() label: string | undefined | null;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ValidationErrorComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof ValidationErrorComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n getErrorValue(type: errorType): number {\n const ngControlErrors: any = this.ngControl.errors;\n switch (type) {\n case 'maxlength':\n return ngControlErrors.maxlength.requiredLength;\n case 'minlength':\n return ngControlErrors.minlength.requiredLength;\n case 'max':\n return ngControlErrors.max.max;\n case 'min':\n return ngControlErrors.min.min;\n default:\n return 0;\n }\n }\n\n translationContextErrors = 'ERRORS.';\n}\n","<div class=\"errors\" *ngIf=\"ngControl?.hasError('maxlength')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MAX_LENGTH' | uiTranslate : language : { maxlength: getErrorValue('maxlength') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('minlength')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MIN_LENGTH' | uiTranslate : language : { maxlength: getErrorValue('minlength') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('min')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MIN' | uiTranslate : language : { min: getErrorValue('min') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('max')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MAX' | uiTranslate : language : { max: getErrorValue('max') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('required') && ngControl?.touched\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + (label ? 'REQUIRED_FIELD' : 'REQUIRED') | uiTranslate : language : { label } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('email')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'EMAIL_INCORRECT' | uiTranslate : language }}</span>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'hasValidationError',\n standalone: true,\n})\nexport class HasValidationErrorPipe implements PipeTransform {\n /**\n * List of the error types that are handled\n */\n private readonly errorTypes = ['maxlength', 'minlength', 'min', 'max', 'required', 'email'];\n\n /**\n * Checks if the error on the NgControl is in the list of handled error types\n * @param value\n */\n transform(value: Record<string, any> | null | undefined): boolean {\n return value ? !!Object.keys(value).filter(key => this.errorTypes.includes(key)).length : false;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class CheckboxComponent implements OnInit, ControlValueAccessor, DoCheck, OnChanges {\n /**\n * Determines whether the checkbox is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() disabled = false;\n\n /**\n * Determines whether the checkbox is checked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() checked = false;\n\n /**\n * Determines whether the checkbox is indeterminate.\n * It can be used to represent a checkbox with three states, e.g. a checkbox that represents a nested list of checkable items.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() indeterminate = false;\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null;\n\n /**\n * Name value will be applied to the input element if present.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() name = '';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() label = '';\n\n /**\n * Determines whether the checkbox is a multiple choice cell.\n * Default: false\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() multiple = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof CheckboxComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Defines if checkbox has error\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() hasError = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof CheckboxComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof CheckboxComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof CheckboxComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Event emitted when the checkbox's checked value changes.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Output() changed = new EventEmitter<boolean>();\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n classMultiple: string;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(): void {\n this.setCompanyColor();\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n emitChange(event: MatCheckboxChange): void {\n this.changed.emit(event.checked);\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit() {\n this.classMultiple = this.setClass();\n this.setCompanyColor();\n }\n\n toggleChecked(): void {\n this.checked = !this.checked;\n this.changed.emit(this.checked);\n this.onTouch();\n this.onChange(this.checked);\n if (!this.disabled) {\n this.indeterminate = false;\n this.classMultiple = this.setClass();\n }\n }\n\n setClass(): string {\n if (this.multiple) {\n return this.checked || this.indeterminate ? 'multiple-checked' : 'multiple-unchecked';\n }\n return '';\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private setCompanyColor(): void {\n this.companyColor = this.companyColor ? this.companyColor : this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n}\n","<div [class]=\"multiple ? 'checkbox-container' : ''\" [ngClass]=\"classMultiple\" [attr.theme]=\"applicationTheme\" [attr.hasError]=\"hasError\">\n <mat-checkbox\n #checkbox\n (mouseleave)=\"checkbox.disableRipple = true\"\n (mouseenter)=\"checkbox.disableRipple = false\"\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [ngClass]=\"{ 'disable-ripple': checkbox.disableRipple }\"\n (click)=\"toggleChecked()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n class=\"checkbox\"\n >\n <span class=\"label\">{{ label }}</span>\n <ng-content select=\"[checkbox-label]\"></ng-content>\n </mat-checkbox>\n\n <mat-hint class=\"error\" *ngIf=\"ngControl?.errors | hasValidationError\">\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ValidationErrorComponent } from './validation-error.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [ValidationErrorComponent],\n exports: [ValidationErrorComponent],\n imports: [CommonModule, IconComponentModule, UiTranslatePipe],\n})\nexport class ValidationErrorModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CheckboxComponent } from './checkbox.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, MatCheckboxModule, FormsModule, ReactiveFormsModule, MatInputModule, IconComponentModule, UiTranslatePipe, ValidationErrorModule, HasValidationErrorPipe],\n exports: [CheckboxComponent],\n})\nexport class CheckboxComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit, Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonColor } from '../button/button.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DialogComponent implements OnInit, OnChanges {\n\n /**\n * Dialog title\n *\n * @memberof DialogComponent\n */\n @Input() title? = '';\n\n /**\n * Show close button\n *\n * @memberof DialogComponent\n */\n @Input() showCloseButton = true;\n\n /**\n * Fuction called before dialgo is closed\n *\n * @memberof DialogComponent\n */\n @Input() canCloseFn: () => boolean = () => true;\n\n /**\n * Secondary button label\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonLabel? = '';\n\n /**\n * Primary button label\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonLabel? = '';\n\n /**\n * Secondary button type\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonType: ButtonColor = 'secondary';\n\n /**\n * Primary button type\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonType: ButtonColor = 'primary';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof DialogComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Color of the dialog.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DialogComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n /**\n *\n * Disable primary button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disablePrimaryButton = false;\n /**\n *\n * Disable close button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disableClose = false;\n\n /**\n *\n * Disable button when canCloseFn is used\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() shouldDisableButtons = true;\n\n @Output() closeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() secondaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() primaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<DialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: { applicationTheme: ApplicationTheme }\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n disableButtons = false;\n protected readonly translationContext = 'DIALOG.';\n\n ngOnInit(): void {\n this.areButtonsDisabled();\n if (this.data?.applicationTheme) {\n this.applicationTheme = this.data.applicationTheme;\n }\n if (this.applicationTheme !== 'classic') {\n this.secondaryButtonType = 'ghost';\n this.companyColor = this.companyColor || '#D410AA';\n } else {\n this.companyColor = this.companyColor || '#46A997';\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['canCloseFn']) {\n this.dialogRef.disableClose = !this.canCloseFn();\n this.areButtonsDisabled();\n }\n }\n\n //Disable primary button when canClose is false\n areButtonsDisabled() {\n if (this.canCloseFn() === false && this.shouldDisableButtons) {\n this.disableButtons = true;\n } else {\n this.disableButtons = false;\n }\n }\n\n //Close modal\n dismiss(): void {\n if (this.canCloseFn()) {\n this.dialogRef.disableClose = false;\n this.dialogRef.close();\n }\n }\n\n onClose(event: Event): void {\n this.closeEvent.emit(event);\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClickEvent.emit(event);\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClickEvent.emit(event);\n }\n}\n","<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div mat-dialog-title class=\"dialog-title\">\n <h3 class=\"bold\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\nexport type DialogSize = 'small' | 'large';\n@Injectable()\nexport class DialogService {\n constructor(\n private matDialog: MatDialog,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {}\n\n open(\n dialogComponent: ComponentType<any>,\n applicationTheme: ApplicationTheme = 'light',\n size: DialogSize = 'small',\n panelClass: string = '',\n extraData?: any\n ): MatDialogRef<any> {\n // Open the dialog using UI custom styles\n return this.matDialog.open(dialogComponent, {\n data: {\n applicationTheme: this.defaultAppTheme ?? applicationTheme,\n ...extraData,\n },\n panelClass:\n applicationTheme === 'classic'\n ? ['ui-dialog-wrapper', panelClass, size]\n : ['ui-dialog-wrapper', panelClass, applicationTheme, size],\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [DialogComponent],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, UiTranslatePipe],\n exports: [DialogComponent],\n providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }, { provide: MatDialogRef, useValue: {} }, DialogService],\n})\nexport class DialogComponentModule {}\n","export enum ElevationType {\n DEFAULT = 'default',\n MODAL = 'modal',\n HOVER_STATE = 'hover-state',\n NOTIFICATION = 'notification',\n PAGE_CARD = 'page-card',\n}\n\nexport type Elevation = 'default' | 'modal' | 'hover-state' | 'notification' | 'page-card';\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';\nimport { Elevation, ElevationType } from './elevation-shadow.constant';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-elevation-shadow',\n templateUrl: './elevation-shadow.component.html',\n styleUrls: ['./elevation-shadow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElevationShadowComponent {\n /**\n * The type of elevation shadow.\n * Default: default.\n * @description Types: Page Card, Notification and Hover State only for Dark and Light theme.\n *\n * @type {ElevationType}\n * @memberof ElevationShadowComponent\n */\n @Input() elevationType: Elevation = ElevationType.DEFAULT;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ElevationShadowComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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","<div class=\"elevation-shadow\" [ngClass]=\"elevationType\" [attr.theme]=\"applicationTheme\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ElevationShadowComponent } from './elevation-shadow.component';\n\n@NgModule({\n declarations: [ElevationShadowComponent],\n imports: [CommonModule],\n exports: [ElevationShadowComponent],\n})\nexport class ElevationShadowComponentModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[digitsOnly]',\n})\nexport class DigitsOnlyDirective {\n constructor(private el: ElementRef) {}\n\n @Input() allowNegative = false;\n @Input() allowDecimal = false;\n @Input() allowOnlyDigits = false;\n regex: RegExp;\n\n @HostListener('keypress', ['$event'])\n onKeyPress(event: KeyboardEvent) {\n this.validate(event, event.key);\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: Event) {\n const pastedText = <ClipboardEvent>event && (<ClipboardEvent>event)?.clipboardData?.getData('text/plain'); // Non-IE browsers\n this.validate(event, pastedText || '');\n }\n\n validate(event: Event, text: string) {\n if (this.allowOnlyDigits) {\n const txtInput = this.el.nativeElement;\n const newValue =\n txtInput.value.substring(0, txtInput.selectionStart) + text + txtInput.value.substring(txtInput.selectionEnd);\n if (!this.regex) {\n this.regex = // eslint-disable-next-line no-eval\n eval(\n `/^${this.allowNegative ? '-?' : ''}${this.allowDecimal ? '((\\\\d+\\\\.?)|(\\\\.?))\\\\d*' : '\\\\d*'}$/g`\n ) as RegExp;\n }\n if (!newValue.match(this.regex)) {\n event.preventDefault();\n return;\n }\n }\n }\n}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FieldType } from '../../components/field/field.model';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-field',\n templateUrl: './field.component.html',\n styleUrls: ['./field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldComponent implements OnInit, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-field';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() placeholder? = '';\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() value = '';\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() hintMessage = '';\n\n /**\n * Input type\n *\n * @type {FieldType}\n * @memberof FieldComponent\n */\n @HostBinding('attr.field-class')\n @Input()\n type: FieldType = 'text';\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof FieldComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * allow only digits in input\n *\n * @type {Boolean}\n * @memberof FieldComponent\n */\n @Input() allowOnlyDigits = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof FieldComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof FieldComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Show loading button. Only for text\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() loading = false;\n\n /**\n * Show icon when field is valid\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() isValid = false;\n\n /**\n * Max characters number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() maxCharacters = 255;\n\n /**\n * Trim text on blur\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() trimOnBlur = false;\n /**\n * Trim text on submit\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() trimOnSubmit = false;\n /**\n * Max rows for multi-line type\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() maxRows = 0;\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Set maximum number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() max: number | undefined;\n\n /**\n * Set minimum number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() min: number | undefined;\n\n /**\n * Sets textarea height. Default 110\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() textareaHeight = 110;\n\n @Output() validateEvent = new EventEmitter<string>();\n @Output() fieldBlur = new EventEmitter<void>();\n\n get getPasswordIcon(): IconName {\n if (this.applicationTheme === 'classic') {\n return this.showPassword ? 'Eye-hide' : 'Eye-view';\n } else {\n if (!this.isActiveField && !this.isActiveHover) {\n return this.showPassword ? 'View-in-line' : 'Hide-in-line';\n } else {\n return this.showPassword ? 'View-filled' : 'Hide-filled';\n }\n }\n }\n\n isActiveField = false;\n isActiveHover = false;\n\n protected readonly translationContext = 'FIELD.';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n showClose: boolean;\n showPassword: boolean;\n currentType: string;\n errorsLength: boolean;\n\n ngOnInit(): void {\n this.setSearchInput();\n this.currentType = this.getType();\n }\n\n validate(): void {\n this.validateEvent.emit(this.value);\n }\n\n //set search input initial value\n setSearchInput(): void {\n if (this.type === 'search' || this.type === 'collapsed-search') {\n this.matIconRegistry.addSvgIcon('Search', this.domSanitizer.bypassSecurityTrustResourceUrl('/icons/Search.svg'));\n } else {\n this.showClose = false;\n }\n }\n\n //change type for reveal password\n getType(): string {\n if (this.type === 'password' && this.showPassword) {\n return 'text';\n }\n return this.type;\n }\n\n //Clear input value\n clearValue(): void {\n this.value = '';\n this.onChange(this.value);\n this.onChangeInputSearch();\n }\n\n //toggle for password\n showPasswordClick() {\n this.showPassword = !this.showPassword;\n this.currentType = this.getType();\n }\n\n //Set options for search input\n onChangeInputSearch() {\n if (this.type === 'search' || this.type === 'collapsed-search') {\n if (!this.value) {\n this.showClose = false;\n }\n if (this.value) {\n this.showClose = true;\n }\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which which are not empty\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0 ? true : false;\n }\n return false;\n }\n\n //Save input value\n onInput(event: any) {\n this.value = event.target.value;\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(this.type === 'number' ? +this.value : this.value);\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onFieldClick(event: MouseEvent): void {\n if (this.type === 'collapsed-search') {\n this.type = 'search';\n } else {\n event.stopPropagation();\n }\n }\n\n onActive(state: boolean, action: string): void {\n if (action === 'hover') {\n this.isActiveHover = state;\n } else if (action === 'focus') {\n this.isActiveField = state;\n\n if (!state && this.trimOnBlur) {\n this.clearSpace();\n }\n }\n }\n\n onSubmit(): void {\n if (this.trimOnSubmit) {\n this.clearSpace();\n }\n }\n\n private clearSpace(): void {\n this.value = this.value.trim();\n this.onChange(this.value);\n }\n\n onBlur(): void {\n this.fieldBlur.emit();\n }\n\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n}\n","<ng-container>\n <mat-form-field\n [ngStyle]=\"{ '--textarea-height': (textareaHeight - 10) + 'px', '--textarea-height-container': textareaHeight + 'px' }\"\n (click)=\"onFieldClick($event)\"\n #uiField\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, textarea: type === 'textarea', 'multi-line': type === 'multi-line' }\"\n (mouseenter)=\"onActive(true, 'hover')\"\n (mouseleave)=\"onActive(false, 'hover')\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <mat-label *ngIf=\"label && ((type !== 'search' && applicationTheme === 'classic') || (applicationTheme !== 'classic'))\">{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <mat-icon *ngIf=\"type === 'search' || type === 'collapsed-search'\" matIconPrefix class=\"search-icon\" [svgIcon]=\"'Search'\"></mat-icon>\n <input\n *ngIf=\"type !== 'textarea' && type !== 'multi-line'; else textarea\"\n matInput\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\n (input)=\"onInput($event)\"\n [id]=\"id!\"\n (keyup)=\"onChangeInputSearch()\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled || loading\"\n [type]=\"currentType\"\n (keyup.enter)=\"onSubmit()\"\n [max]=\"max\"\n [min]=\"min\"\n [name]=\"fieldName!\"\n digitsOnly\n [allowOnlyDigits]=\"allowOnlyDigits\"\n (focusin)=\"onActive(true, 'focus')\"\n />\n\n <ng-template #textarea>\n <textarea\n matInput\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\n (input)=\"onInput($event)\"\n [id]=\"id!\"\n (keyup)=\"onChangeInputSearch()\"\n (keyup.enter)=\"onSubmit()\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [type]=\"currentType\"\n [name]=\"fieldName!\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"type === 'multi-line' ? 1 : 5\"\n [cdkAutosizeMaxRows]=\"type === 'multi-line' ? maxRows : 5 \"\n (focusin)=\"onActive(true, 'focus')\"\n ></textarea>\n </ng-template>\n\n <div class=\"options\" *ngIf=\"type === 'search' || type === 'password' || type === 'validation-text'\">\n <div class=\"options-container\">\n <ui-button\n *ngIf=\"showClose\"\n variant=\"secondary\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n [label]=\"('COMMON.CLEAR') | uiTranslate : language\"\n (buttonClickEvent)=\"clearValue()\"\n [ariaLabel]=\"ariaLabel + '--' + ('COMMON.CLEAR') | uiTranslate : language\"\n ></ui-button>\n <ui-icon\n [size]=\"'24'\"\n class=\"password\"\n *ngIf=\"type === 'password'\"\n [name]=\"getPasswordIcon\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"showPasswordClick()\"\n ></ui-icon>\n\n <ng-container\n *ngIf=\"type === 'validation-text' && (applicationTheme === 'dark' || applicationTheme === 'light') && value.length\"\n >\n <ui-button\n *ngIf=\"!isValid\"\n class=\"validation\"\n [variant]=\"'text'\"\n [applicationTheme]=\"'light'\"\n [label]=\"'Validate'\"\n [loading]=\"loading\"\n (click)=\"validate()\"\n [disabled]=\"disabled\"\n [size]=\"'small'\"\n ></ui-button>\n <ui-icon class=\"valid\" [color]=\"'white'\" applicationTheme=\"light\" [name]=\"'Check'\" *ngIf=\"isValid\"></ui-icon>\n </ng-container>\n </div>\n </div>\n <mat-hint class=\"info\" *ngIf=\"type === 'textarea' && !errorsLength && !(ngControl?.errors | hasValidationError)\">{{ value.length }} / {{ maxCharacters }}</mat-hint>\n <mat-hint class=\"info\" *ngIf=\"hintMessage && !errorsLength && !(ngControl?.errors | hasValidationError) && type !== 'textarea'\">{{ hintMessage }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-template [ngIf]=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-template>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ButtonComponentModule } from '../../components/button/button.component.module';\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\nimport { DigitsOnlyDirective } from '../../directives/digits-only.directive';\nimport { FieldComponent } from './field.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [FieldComponent, DigitsOnlyDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatIconModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [FieldComponent],\n})\nexport class FieldComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressBarComponent implements OnChanges {\n /**\n * Color of the progress bar.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof ProgressBarComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null;\n\n /**\n * Progress value of the progress bar.\n * Defaults to zero.\n *\n * @type {number}\n * @memberof ProgressBarComponent\n */\n @Input() progress = 0;\n\n /**\n * Mode of the progress bar.\n * Mode must be one of these values: determinate, indeterminate, buffer, query.\n * Defaults to 'determinate'.\n *\n * @type {ProgressBarMode}\n * @memberof ProgressBarComponent\n */\n @Input() mode: ProgressBarMode = 'determinate';\n\n /**\n * Buffer value of the progress bar.\n * Defaults to zero.\n *\n * @type {number}\n * @memberof ProgressBarComponent\n */\n @Input() buffer = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ProgressBarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 ngOnChanges(changes: SimpleChanges): void {\n if (!changes['companyColor']) {\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n }\n}\n","<mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"\n [bufferValue]=\"buffer\"\n aria-label=\"Progress bar\"\n title=\"progress-bar\"\n class=\"progress-bar\"\n [attr.theme]=\"applicationTheme\"\n></mat-progress-bar>\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[uiDragDrop]'\n})\nexport class DragDropDirective {\n constructor() { }\n\n @HostBinding('class.file-over') file: boolean;\n @Output() fileDropped = new EventEmitter<any>();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.file = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.file = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.file = false;\n let files: FileList;\n if (!!event.dataTransfer) {\n files = event.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n forwardRef, Optional, Inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploadComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ]),\n trigger('inOutAnimationProgress', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ]),\n trigger('inOutAnimationChange', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ])\n ]\n})\nexport class FileUploadComponent implements OnInit, OnChanges, ControlValueAccessor {\n @HostBinding() class = 'ui-file-upload';\n\n /**\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() maxFileSizeMB: number;\n\n /**\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() minFileSizeMB: number;\n\n /**\n * Supported files for input field\n *\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() supportedFileTypes?: string;\n\n /**\n * Upload progress\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() uploadProgress: number;\n\n /**\n * File upload errors\n *\n * @type {string[]}\n * @memberof FileUploadComponent\n */\n @Input() errors?: string[] | null;\n\n /**\n * File upload disabled\n *\n * @type {boolean}\n * @memberof FileUploadComponent\n */\n @Input() disabled = false;\n\n /**\n * Existing file information\n *\n * @type {(File | null)}\n * @memberof FileUploadComponent\n */\n @Input() file: File | null = null;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof FileUploadComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Color of the file upload.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() companyColor: string | null = '';\n\n @HostBinding('style.--color')\n compColor: string;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof FileUploadComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof FileUploadComponent\n */\n @Input() ariaRequired = false;\n\n @Output() OnDrop: EventEmitter<File> = new EventEmitter<File>();\n\n protected readonly translationContext = 'FILE_UPLOAD.';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {\n };\n\n /**\n * @ignore\n */\n onTouch = () => {\n };\n\n isMissedMinSize = false;\n progress = false;\n success = false;\n browse: boolean;\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 ngOnInit(): void {\n this.browse = true;\n }\n\n //When file is dropped\n onFileDropped(files: FileList) {\n this.emitFile(files);\n }\n\n //When input changes\n onChangeUpload(event: Event) {\n const element = event.currentTarget as HTMLInputElement;\n this.emitFile(element.files || new FileList());\n }\n\n //Emit drop file\n emitFile(files: FileList) {\n const [file] = Array.from(files);\n this.file = file;\n this.errors = null;\n this.onTouch();\n this.isMissedMinSize =\n !file?.size && !this.minFileSizeMB ? true : this.fileSizeToMB(file?.size ?? 0) <= this.minFileSizeMB;\n if (!this.isMissedMinSize) {\n this.onChange(this.file);\n this.OnDrop.emit(file);\n }\n }\n\n //Show progress-bar\n showProgress(): boolean {\n this.browse = false;\n return !!(this.file && !this.errors && !this.isMissedMinSize);\n }\n\n //Show success elements\n showSuccess(): boolean {\n return !!(this.file && this.uploadProgress === 100 && !this.errors && !this.isMissedMinSize);\n }\n\n //Show browse when there are error\n showBrowse(): boolean {\n return !!(this.errors || this.isMissedMinSize);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['uploadProgress'] || changes['file']) {\n this.progress = this.showProgress();\n this.success = this.showSuccess();\n this.browse = this.showBrowse();\n }\n if (changes['errors']) {\n this.progress = this.showProgress();\n this.success = this.showSuccess();\n this.browse = this.showBrowse();\n }\n if (changes['applicationTheme']) {\n this.compColor = this.getCompanyColor();\n }\n }\n\n writeValue(value?: File): void {\n if (value) {\n this.file = value || null;\n } else {\n this.file = null;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private getCompanyColor(): string {\n return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');\n }\n\n private fileSizeToMB(fileSize: number): number {\n return fileSize / 1024 / 1024;\n }\n}\n","<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ 'upload-errors': !!errors || isMissedMinSize, 'upload-file-container-disabled': disabled }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"(browse && !(success && !!file && progress))\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n\n <div class=\"errors\" *ngIf=\"!!errors || isMissedMinSize\">\n <ng-container *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"><ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>{{ error }}</span>\n </ng-container>\n\n <span *ngIf=\"isMissedMinSize\">\n <ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\n {{ translationContext + 'MIN_SIZE_ERROR' | uiTranslate : language : { min: minFileSizeMB } }}\n </span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n [disabled]=\"disabled\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}\n <label for=\"fileDrop\"\n class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\">{{ maxFileSizeMB }}{{ (translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n <span *ngIf=\"minFileSizeMB\" class=\"upload-text\">{{ minFileSizeMB }}{{ (translationContext + 'MIN_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}&nbsp;<label\n for=\"fileDrop\"\n class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\"\n [companyColor]=\"compColor\"\n [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n\n <ng-template #iconTpl>\n <ui-icon *ngIf=\"applicationTheme === 'classic'; else rebrandedIconTpl\" class=\"upload-icon\"\n name=\"File-upload\"></ui-icon>\n <ng-template #rebrandedIconTpl>\n <ui-icon class=\"upload-icon\"\n name=\"Upload\"\n [size]=\"'24'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </ng-template>\n <ng-template #rebrandedDnDCopyTpl>\n <p>{{ (translationContext + 'DRAG_AND_DROP') | uiTranslate : language }}</p>\n </ng-template>\n </div>\n <div\n *ngIf=\"!!supportedFileTypes\"\n [attr.theme]=\"applicationTheme\"\n class=\"upload-supported-files\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { ProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n imports: [CommonModule, MatProgressBarModule],\n exports: [ProgressBarComponent],\n providers: [],\n})\nexport class ProgressBarComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { DragDropDirective } from '../../directives/drag-drop.directive';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { FileUploadComponent } from './file-upload.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [FileUploadComponent, DragDropDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n ProgressBarComponentModule,\n UiTranslatePipe,\n ],\n exports: [FileUploadComponent],\n})\nexport class FileUploadComponentModule {}\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { IconName, IconSize } from '../../components/icon/icon.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-icon-label',\n templateUrl: './icon-label.component.html',\n styleUrls: ['./icon-label.component.scss']\n})\nexport class IconLabelComponent implements OnInit {\n\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconLabelComponent\n */\n @Input() iconSize: IconSize = '16';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconLabelComponent\n */\n @Input() iconName: IconName;\n\n /**\n * Label\n *\n * @memberof IconLabelComponent\n */\n @Input() text = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconLabelComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 ngOnInit(): void {}\n}\n","<ui-icon [name]=\"iconName\" [size]=\"iconSize\" aria-hidden=\"true\"></ui-icon>\n<span>{{ text }}</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { IconLabelComponent } from './icon-label.component';\n\n@NgModule({\n declarations: [IconLabelComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [IconLabelComponent],\n providers: [],\n})\nexport class IconLabelComponentModule {}\n","export enum LogoTypeEnum {\n DEFAULT = 'default',\n POWEREDBY = 'poweredby',\n REVERSE = 'reverse',\n PRIMARY_BRANDMARK_PINK = 'primary-brandmark-pink',\n PRIMARY_LOCKUP_PINK = 'primary-lockup-pink',\n PRIMARY_WORDMARK_PINK = 'primary-wordmark-pink',\n SECONDARY_BRANDMARK_BLACK = 'secondary-brandmark-black',\n SECONDARY_BRANDMARK_CREAM = 'secondary-brandmark-cream',\n SECONDARY_LOCKUP_BLACK = 'secondary-lockup-black',\n SECONDARY_LOCKUP_CREAM = 'secondary-lockup-cream',\n SECONDARY_WORDMARK_BLACK = 'secondary-wordmark-black',\n SECONDARY_WORDMARK_CREAM = 'secondary-wordmark-cream',\n}\n\nexport enum LogoPathEnum {\n DEFAULT = '/images/testgorilla.svg',\n POWEREDBY = '/images/poweredbyTG.svg',\n REVERSE = '/images/reverseTG.svg',\n PRIMARY_BRANDMARK_PINK = '/images/rebrand-logo/primary_brandmark_pink.svg',\n PRIMARY_LOCKUP_PINK = '/images/rebrand-logo/primary_lockup_pink.svg',\n PRIMARY_WORDMARK_PINK = '/images/rebrand-logo/primary_wordmark_pink.svg',\n SECONDARY_BRANDMARK_BLACK = '/images/rebrand-logo/secondary_brandmark_black.svg',\n SECONDARY_BRANDMARK_CREAM = '/images/rebrand-logo/secondary_brandmark_cream.svg',\n SECONDARY_LOCKUP_BLACK = '/images/rebrand-logo/secondary_lockup_black.svg',\n SECONDARY_LOCKUP_CREAM = '/images/rebrand-logo/secondary_lockup_cream.svg',\n SECONDARY_WORDMARK_BLACK = '/images/rebrand-logo/secondary_wordmark_black.svg',\n SECONDARY_WORDMARK_CREAM = '/images/rebrand-logo/secondary_wordmark_cream.svg',\n REBRAND_POWEREDBY = '/images/rebrand-logo/powered-by.svg',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { LogoPathEnum, LogoTypeEnum } from './logo.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LogoComponent implements OnInit, OnChanges {\n /**\n * Logo type\n *\n * @type {LogoTypeEnum}\n * @memberof LogoComponent\n */\n @Input() type: LogoTypeEnum = LogoTypeEnum.DEFAULT;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof LogoComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Label. Only for ppoweredby type\n *\n * @type {string}\n * @memberof LogoComponent\n */\n @Input() label = 'POWERED BY';\n\n /**\n * Set logo width\n * @default 200\n * @type {number}\n * @memberof LogoComponent\n */\n @Input() width = 200;\n\n /**\n *\n * Allow change logo width\n *\n * @type {string}\n * @memberof LogoComponent\n */\n @Input() allowResizing = false;\n\n protected readonly LogoTypeEnum = LogoTypeEnum;\n\n /**\n * @ignore\n */\n logoURL: String;\n\n /**\n * @ignore\n */\n setURL = () => {\n if (this.applicationTheme === 'classic') {\n switch (this.type) {\n case LogoTypeEnum.POWEREDBY: {\n this.logoURL = LogoPathEnum.POWEREDBY;\n break;\n }\n case LogoTypeEnum.REVERSE: {\n this.logoURL = LogoPathEnum.REVERSE;\n break;\n }\n default: {\n this.logoURL = LogoPathEnum.DEFAULT;\n break;\n }\n }\n } else {\n switch (this.type) {\n case LogoTypeEnum.PRIMARY_BRANDMARK_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_BRANDMARK_PINK;\n break;\n }\n case LogoTypeEnum.PRIMARY_LOCKUP_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\n break;\n }\n case LogoTypeEnum.PRIMARY_WORDMARK_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_WORDMARK_PINK;\n break;\n }\n case LogoTypeEnum.SECONDARY_BRANDMARK_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_BRANDMARK_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_CREAM;\n break;\n }\n case LogoTypeEnum.SECONDARY_LOCKUP_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_LOCKUP_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_CREAM;\n break;\n }\n case LogoTypeEnum.SECONDARY_WORDMARK_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_WORDMARK_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_CREAM;\n break;\n }\n case LogoTypeEnum.POWEREDBY: {\n this.logoURL = LogoPathEnum.REBRAND_POWEREDBY;\n break;\n }\n default: {\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\n break;\n }\n }\n }\n };\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 /**\n * @ignore\n */\n ngOnInit(): void {\n this.setURL();\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n this.setURL();\n if (changes['width']) {\n this.changeWidth(changes['width'].currentValue);\n }\n }\n\n private changeWidth(changedWidth: number): void {\n if (changedWidth >= 200 || this.allowResizing) {\n this.width = changedWidth;\n } else {\n this.width = 200;\n }\n }\n}\n","<ng-container *ngIf=\"applicationTheme === 'classic'; else rebrandLogo\">\n <img [attr.src]=\"logoURL\" [alt]=\"type\">\n</ng-container>\n\n<ng-template #rebrandLogo>\n <div *ngIf=\"label && type === LogoTypeEnum.POWEREDBY; else others\" class=\"logo-label\" [style.width]=\"width + 'px'\">\n <h3 class=\"bold\">{{ label }}</h3>\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\n </div>\n\n <ng-template #others>\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\n </ng-template>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LogoComponent } from './logo.component';\nimport { NgIf } from '@angular/common';\n\n@NgModule({\n declarations: [LogoComponent],\n imports: [NgIf],\n exports: [LogoComponent],\n})\nexport class LogoComponentModule {}\n","import { booleanAttribute, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { AccordionVariant, ToggleIconPosition } from './accordion.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\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: boolean = false;\n\n /**\n *\n * Sets background color of content to none\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() noBackgroundColor: boolean = 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 class=\"accordion-wrapper\" [class.disabled]=\"disabled\" [ngClass]=\"variant\" [tabIndex]=\"0\" [attr.theme]=\"applicationTheme\">\n <mat-expansion-panel [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\">\n <mat-expansion-panel-header [class.custom-height]=\"allowCustomHeader\" [class.left-toggle]=\"toggleIconPosition === 'left'\">\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 \"../icon/icon.component.module\";\nimport { ButtonComponentModule } from \"../button/button.component.module\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\n\n\n\n@NgModule({\n declarations: [\n AccordionComponent\n ],\n exports: [\n AccordionComponent\n ],\n imports: [\n CommonModule,\n IconComponentModule,\n ButtonComponentModule,\n MatTooltipModule,\n MatExpansionModule\n ]\n})\nexport class AccordionComponentModule { }\n","import { IconSize } from '../icon/icon.model';\n\nexport enum AvatarSize {\n SMALL = 'small',\n SMALL_MEDIUM = 'smallMedium',\n MEDIUM = 'medium',\n LARGE = 'large',\n}\n\nexport const iconSize: Record<string, IconSize> = {\n small: '16',\n medium: '24',\n large: '80',\n};\n\nexport enum AvatarBackgroundColor {\n PINK = '#FFE6FA',\n BLUE ='#D9E8FF',\n GREEN = '#E2F4B3',\n ORANGE = '#FFE1B3',\n RED = '#FFAC9A',\n}\n\nexport type BackgroundAvatarColorType = 'red' | 'blue' | 'green' | 'orange' | 'pink';\n\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nameInitials',\n})\nexport class NameInitialsPipe implements PipeTransform {\n transform(value: string): string {\n const initials = value.split(' ').filter(Boolean);\n if (initials.length > 1) {\n return initials\n .map((initial, i) => (i === 0 || i === initials.length - 1 ? initial[0].toUpperCase() : ''))\n .join('');\n } else {\n const firstLetters = value.substring(0, 2);\n return `${firstLetters[0]?.toUpperCase() ?? ''}${firstLetters[1]?.toLowerCase() ?? ''}`;\n }\n }\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport {\n AvatarSize,\n BackgroundAvatarColorType,\n iconSize,\n AvatarBackgroundColor\n} from './avatar.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AvatarComponent {\n /**\n * Input property for specifying the size of the avatar.\n * @type {AvatarSize}\n * @default AvatarSize.SMALL\n * @memberof AvatarComponent\n */\n @Input() size = AvatarSize.SMALL;\n /**\n * Input property for specifying the URL of the image to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() imageUrl = '';\n\n /**\n * Input property for specifying the initials to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() name = '';\n\n /**\n * Input property for specifying the tooltip text for edit.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() tooltipText = '';\n\n /**\n * Input property that makes avatar editable.\n * @type {boolean}\n * @memberof AvatarComponent\n */\n @Input() allowEdit = false;\n\n /**\n *\n * Defines the application theme where\n *\n * @type {ApplicationTheme}\n * @memberof AvatarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the background color\n *\n * @type {BackgroundAvatarColorType}\n * @memberof AvatarComponent\n */\n @Input() set backgroundColor(colorName: BackgroundAvatarColorType) {\n this.backgroundAvatarColor = AvatarBackgroundColor[colorName.toUpperCase() as keyof typeof AvatarBackgroundColor];\n }\n\n /**\n * Event emitted when the edit button is clicked.\n * @type {Event}\n * @memberof AvatarComponent\n */\n @Output() editClick = new EventEmitter<Event>();\n\n protected backgroundAvatarColor: string;\n protected readonly iconSize = iconSize;\n protected readonly avatarSize = AvatarSize;\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 onEditClick(event: Event): void {\n this.editClick.emit(event);\n }\n}\n","<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n <span *ngIf=\"name && !imageUrl\">\n {{ name | nameInitials }}\n </span>\n <img *ngIf=\"imageUrl\" [attr.src]=\"imageUrl\" [alt]=\"'profile-image'\">\n <ui-icon [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\" [applicationTheme]=\"applicationTheme\" [size]=\"iconSize[size]\" *ngIf=\"!imageUrl && !name\" [name]=\"'User-profile'\"></ui-icon>\n <div class=\"edit-avatar\" *ngIf=\"size === avatarSize.LARGE && allowEdit\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar.component';\nimport { NameInitialsPipe } from '../../pipes/name-initials.pipe';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ButtonComponentModule } from '../button/button.component.module';\n\n@NgModule({\n declarations: [AvatarComponent, NameInitialsPipe],\n imports: [CommonModule, IconComponentModule, MatTooltipModule, ButtonComponentModule],\n exports: [AvatarComponent],\n})\nexport class AvatarComponentModule {}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { IRoute, MenuItem } from \"../navbar.model\";\nimport { NgClass, NgForOf, NgIf, NgTemplateOutlet } from \"@angular/common\";\nimport { IconComponentModule } from \"../../icon/icon.component.module\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { UiTranslatePipe } from \"../../../pipes/ui-translate.pipe\";\nimport { LanguageService } from \"../../../utils/localization/language.service\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { AccordionComponentModule } from \"../../accordion/accordion.component.module\";\nimport { AvatarComponentModule } from \"../../avatar/avatar.component.module\";\nimport { ButtonComponentModule } from \"../../button/button.component.module\";\nimport { AvatarSize } from \"../../avatar/avatar.model\";\nimport { ApplicationTheme } from \"../../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-mobile-navbar-side-sheet',\n templateUrl: './mobile-navbar-side-sheet.component.html',\n styleUrls: ['./mobile-navbar-side-sheet.component.scss'],\n standalone: true,\n imports: [\n NgForOf,\n NgClass,\n IconComponentModule,\n MatIconModule,\n MatMenuModule,\n UiTranslatePipe,\n MatButtonModule,\n AccordionComponentModule,\n NgIf,\n NgTemplateOutlet,\n AvatarComponentModule,\n ButtonComponentModule,\n ],\n})\nexport class MobileNavbarSideSheetComponent {\n @Input() routes: IRoute[] = [];\n @Input() activedRoute = '';\n @Input() email = '';\n @Input() userName = '';\n @Input() menuItems: MenuItem[] = [];\n @Input() language = LanguageService.defaultLanguage;\n @Input() contentTemplateRef: TemplateRef<any>;\n @Input() isDesktop = false;\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\n\n protected readonly translationContext = 'NAVBAR.';\n protected avatarSize = AvatarSize;\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n}\n","<div class=\"mobile-navbar-container\">\n <ng-container *ngIf=\"isDesktop\" [ngTemplateOutlet]=\"userInfo\"></ng-container>\n\n <div class=\"routes\">\n <div *ngFor=\"let route of routes\" (click)=\"navigate(route.id)\" class=\"route\"\n [ngClass]=\"{'active': activedRoute === route.id}\">\n <span>{{ route.title }}</span>\n </div>\n </div>\n\n <div class=\"settings\">\n <ng-container *ngFor=\"let e of menuItems\">\n <div *ngIf=\"e\" class=\"menu-item\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n </ng-container>\n </div>\n</div>\n\n\n<div class=\"bottom-content\" [ngClass]=\"{ 'desktop': isDesktop }\">\n <ng-container *ngIf=\"!isDesktop\" [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n <ng-container *ngIf=\"isDesktop; else tablet\">\n <div class=\"menu-item\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT') | uiTranslate : language\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n </ng-container>\n\n <ng-template #tablet>\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n </ng-template>\n</div>\n\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name\">{{ userName }}</span>\n <span class=\"user-email\">{{ email }}</span>\n </div>\n <ui-button\n *ngIf=\"!isDesktop\"\n [tooltip]=\"(translationContext + 'LOG_OUT') | uiTranslate : language\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n </div>\n </div>\n</ng-template>\n","export enum ScreenBreakpoints {\n MOBILE = 600,\n TABLET = 1023,\n}\n","import { ApplicationRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { SideSheetConfig } from './side-sheet.model';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SideSheetService {\n private componentRef$ = new Subject<SideSheetConfig | null>();\n\n constructor(private applicationRef: ApplicationRef) {}\n\n open<T>(config: SideSheetConfig): T {\n const { componentRef, ...configFields } = config;\n const rootViewContainerRef = this.applicationRef.components[0].injector.get(ViewContainerRef);\n const componentReference = rootViewContainerRef.createComponent(config.componentRef);\n this.componentRef$.next({ ...configFields, componentRef: componentReference });\n return componentReference.instance as T;\n }\n\n close(): void {\n this.componentRef$.next(null);\n }\n\n getComponentRef(): Observable<SideSheetConfig | null> {\n return this.componentRef$.asObservable();\n }\n}\n","import {\n Component,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { SideSheetService } from './side-sheet.service';\nimport { SideSheetConfig, SideSheetPosition } from './side-sheet.model';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-side-sheet',\n templateUrl: './side-sheet.component.html',\n styleUrls: ['./side-sheet.component.scss'],\n})\nexport class SideSheetComponent implements OnInit {\n /**\n * Set position. Defaults \"end\"\n *\n * @type {SideSheetPosition}\n * @memberof SideSheetComponent\n */\n @Input() position: SideSheetPosition = 'end';\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof SideSheetComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SideSheetComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n @ViewChild('drawer') drawer: MatDrawer;\n @ViewChild('container', { read: ViewContainerRef, static: false }) container: ViewContainerRef;\n\n protected title = '';\n protected showBackButton = false;\n protected showTitleTooltip = false;\n protected showLogo = false;\n protected componentRef$ = this.sideSheetService.getComponentRef();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private sideSheetService: SideSheetService,\n private destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.setComponentRef();\n }\n\n private setComponentRef(): void {\n this.componentRef$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(config => {\n if (config && config.componentRef && this.container && this.drawer) {\n this.setConfig(config);\n this.drawer.toggle();\n this.container.clear();\n this.container.insert(config.componentRef.hostView);\n } else if (!config) {\n this.drawer.toggle();\n this.container.clear();\n }\n });\n }\n\n private setConfig(config: SideSheetConfig): void {\n this.title = config.title ?? '';\n this.showLogo = config.showLogo ?? false;\n this.showBackButton = config.showBackButton ?? false;\n this.showTitleTooltip = config.showTitleTooltip ?? false;\n\n if (config.closed) {\n config.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n void this.drawer.close();\n });\n }\n }\n\n protected onClose(): void {\n this.drawer.toggle();\n }\n\n onOpenChange(isOpened: boolean): void {\n this.openChange.emit(isOpened);\n }\n}\n","<ng-container>\n <mat-drawer-container class=\"side-sheet-container\" [attr.theme]=\"applicationTheme\" [hasBackdrop]=\"true\">\n <mat-drawer (closedStart)=\"onOpenChange(false)\" (openedStart)=\"onOpenChange(true)\" #drawer [mode]=\"'over'\" [autoFocus]=\"false\" class=\"side-sheet-content\" [position]=\"position\">\n <div class=\"header\">\n <div class=\"title\">\n <ui-button\n *ngIf=\"showBackButton\"\n [variant]=\"'icon-button'\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-filled'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.BACK') | uiTranslate : language\"\n (click)=\"onClose()\"\n ></ui-button>\n <span\n *ngIf=\"title\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n [matTooltipClass]=\"applicationTheme\"\n >{{ title }}</span>\n <ui-logo *ngIf=\"showLogo\"></ui-logo>\n </div>\n <ui-button\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose()\"\n ></ui-button>\n </div>\n <ng-container #container></ng-container>\n </mat-drawer>\n <mat-drawer-content>\n <ng-content></ng-content>\n </mat-drawer-content>\n </mat-drawer-container>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { IRoute, MenuItem, MenuState, ScreenSize } from './navbar.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { map, ReplaySubject, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { SideSheetService } from '../side-sheet/side-sheet.service';\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { ScreenBreakpoints } from '../../models/screen-breakpoints.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LogoTypeEnum } from '../logo/logo.model';\nimport { AvatarSize } from '../avatar/avatar.model';\n\n@Component({\n selector: 'ui-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavbarComponent {\n /**\n * Routes object\n *\n * @type {IRoute}\n * @memberof NavbarComponent\n * @ignore\n */\n @Input() routes: IRoute[] = [];\n\n /**\n * Actived route id\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() activedRoute = '';\n\n /**\n * User first name and last name\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() userName = '';\n\n /**\n * User email\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() email = '';\n\n /**\n * Menu items to show in menu above the Log out button\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() menuItems: MenuItem[] = [];\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof NavbarComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof NavbarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * It's ng-content for mobile version\n *\n * @type {ApplicationTheme}\n * @memberof NavbarComponent\n */\n @Input() contentTemplateRef: TemplateRef<any>;\n\n /**\n * Mobile breakpoint\n * @type {number}\n * @memberof NavbarComponent\n */\n @Input() set mobileBreakpoint(value: number) {\n if (value) {\n this._mobileBreakpoint$.next(value);\n }\n }\n\n /**\n *\n * Show avatar with user initials\n *\n * @type {boolean}\n * @memberof NavbarComponent\n */\n @Input() isAvatar = true;\n\n /**\n * Sets class for the menu\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() menuClass = '';\n\n /**\n * @ignore\n */\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * @ignore\n */\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * @ignore\n */\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\n @Output() menuState: EventEmitter<MenuState> = new EventEmitter<MenuState>();\n\n protected screenSize: ScreenSize = 'desktop';\n protected readonly translationContext = 'NAVBAR.';\n private readonly _mobileBreakpoint$ = new ReplaySubject<number>(1);\n private readonly _tabletBreakpoint$ = new ReplaySubject<number>(1);\n private readonly mobileBreakpointObs$ = this._mobileBreakpoint$.pipe(startWith(ScreenBreakpoints.MOBILE));\n private readonly tabletBreakpointObs$ = this._tabletBreakpoint$.pipe(startWith(ScreenBreakpoints.TABLET));\n protected readonly isMobile$ = this.mobileBreakpointObs$.pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\n .pipe(\n map(v => v.matches),\n tap(isMobile => isMobile ? this.screenSize = 'mobile' : 'desktop')\n ))\n );\n protected readonly isTablet$ = this.tabletBreakpointObs$.pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\n .pipe(\n map(v => v.matches),\n tap(isTablet => isTablet ? this.screenSize = 'tablet' : 'desktop')\n )\n )\n );\n protected isOpened = false;\n protected logoType = LogoTypeEnum;\n\n constructor(\n private readonly breakpointObserver: BreakpointObserver,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private sideSheetService: SideSheetService,\n private destroyRef: DestroyRef,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n openMobileMenu(): void {\n const isSideSheetClosed$ = new Subject<void>();\n const navbarSideSheetComponent = this.sideSheetService.open<MobileNavbarSideSheetComponent>({\n componentRef: MobileNavbarSideSheetComponent,\n showLogo: true,\n closed: isSideSheetClosed$,\n });\n\n navbarSideSheetComponent.userName = this.userName;\n navbarSideSheetComponent.menuItems = this.menuItems;\n navbarSideSheetComponent.activedRoute = this.activedRoute;\n navbarSideSheetComponent.routes = this.routes;\n navbarSideSheetComponent.email = this.email;\n navbarSideSheetComponent.language = this.language;\n navbarSideSheetComponent.contentTemplateRef = this.contentTemplateRef;\n navbarSideSheetComponent.applicationTheme = this.applicationTheme;\n\n navbarSideSheetComponent.logoutEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.logoutEvent.emit();\n isSideSheetClosed$.next();\n });\n\n navbarSideSheetComponent.menuItemClicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.menuItemClicked.emit(value);\n isSideSheetClosed$.next();\n });\n\n navbarSideSheetComponent.navigateEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.navigateEvent.emit(value);\n isSideSheetClosed$.next();\n });\n }\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n\n onChangeMenuState(isOpened: boolean, screenSize: ScreenSize) {\n this.isOpened = isOpened;\n this.menuState.emit({ isOpened, screenSize });\n }\n\n protected readonly AvatarSize = AvatarSize;\n}\n","<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n\n <div class=\"custom-toolbar row\">\n\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"(isMobile$ | async) ? logoType.DEFAULT : (isTablet$ | async) ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\" [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a *ngFor=\"let route of routes\" (click)=\"navigate(route.id)\"\n [ngClass]=\"{ 'active': activedRoute === route.id }\">\n <ui-badge *ngIf=\"route?.badgeOptions\" [label]=\"route.badgeOptions!.text\" [rebrandColor]=\"route.badgeOptions!.color\"></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button mat-button class=\"profile-menu\" [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\" [name]=\"userName\" [size]=\"AvatarSize.SMALL_MEDIUM\"></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n\n <button *ngFor=\"let e of menuItems\" mat-menu-item (click)=\"clickMenuItem(e.id)\">\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ (translationContext + 'LOG_OUT') | uiTranslate : language }}\n </button>\n\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [language]=\"language\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n\n </mat-menu>\n</ui-side-sheet>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SideSheetComponent } from './side-sheet.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { LogoComponentModule } from \"../logo/logo.component.module\";\n\n@NgModule({\n declarations: [SideSheetComponent],\n exports: [SideSheetComponent],\n imports: [\n CommonModule,\n IconComponentModule,\n ButtonComponentModule,\n MatTooltipModule,\n MatSidenavModule,\n UiTranslatePipe,\n LogoComponentModule,\n ],\n})\nexport class SideSheetComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { LogoComponentModule } from '../logo/logo.component.module';\nimport { NavbarComponent } from './navbar.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { AvatarComponentModule } from \"../avatar/avatar.component.module\";\nimport { SideSheetComponentModule } from \"../side-sheet/side-sheet.component.module\";\nimport { ButtonComponentModule } from \"../button/button.component.module\";\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { BadgeComponentModule } from \"../badge/badge.component.module\";\n\n@NgModule({\n declarations: [NavbarComponent],\n imports: [\n CommonModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatRippleModule,\n MatMenuModule,\n LogoComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n AvatarComponentModule,\n SideSheetComponentModule,\n ButtonComponentModule,\n MobileNavbarSideSheetComponent,\n BadgeComponentModule\n ],\n exports: [NavbarComponent],\n})\nexport class NavbarComponentModule {}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './deprecated-paginator.component.html',\n styleUrls: ['./deprecated-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeprecatedPaginatorComponent implements OnInit {\n // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/16865\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/17004\n\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n readonly pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Default page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() defaultPageSize = 25;\n\n /**\n * @ignore\n */\n @Output() paginatorChangedEvent: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n /**\n * @ignore\n */\n ngOnInit(): void {}\n\n constructor() {}\n\n paginatorChanged(paginator: PageEvent) {\n this.paginatorChangedEvent.emit(paginator);\n }\n}\n","<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { DeprecatedPaginatorComponent } from './deprecated-paginator.component';\n\n@NgModule({\n declarations: [DeprecatedPaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [DeprecatedPaginatorComponent],\n providers: [],\n})\nexport class DeprecatedPaginatorComponentModule {}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n} from '@angular/core';\nimport { MatRadioButton } from '@angular/material/radio';\nimport { RadioButtonEventType } from './radio-button.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\nimport { ControlValueAccessor, NgControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ui-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements OnInit, OnChanges, ControlValueAccessor {\n /**\n * Determines whether the radio button is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Determines whether the radio button is checked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n //@Input() selected = false;\n\n _selected = false;\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(selected: boolean) {\n this._selected = selected;\n }\n\n /**\n * Determines whether the radio button can be unchecked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() allowUnselect = false;\n\n /**\n * Determines the radio button color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n * Used to group radios for unique selection.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() name = '';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() label = '';\n\n /**\n * Determines whether the radio button is a multiple choice cell.\n * Default: false\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() multiple = false;\n\n /**\n * Determines value of the radio button.\n * Default: false\n *\n * @type {any}\n * @memberof RadioButtonComponent\n */\n @Input() value: any;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof RadioButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Defines if checkbox has error\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() hasError = false;\n\n /**\n * Event emitted when the checked state of the radio button changes.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Output() changeRadio = new EventEmitter<RadioButtonEventType>();\n\n classMultiple: string;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Optional() @Self() public ngControl: NgControl,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n this.classMultiple = this.setClass();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected']) {\n this.classMultiple = this.setClass();\n }\n }\n\n //Click method\n clickRadio(element: MatRadioButton, event: MouseEvent) {\n //event.preventDefault();\n if (this.allowUnselect) {\n element.checked = !element.checked;\n this._selected = element.checked;\n this.classMultiple = this.setClass();\n this.selected = element.checked;\n this.changeRadio.emit({ optionName: element.value, optionChecked: element.checked });\n } else {\n this.changeRadio.emit({ optionName: element.value, optionChecked: true });\n }\n if (this.disabled) {\n this._selected = false;\n this.changeRadio.emit({ optionName: '', optionChecked: false });\n }\n this.onChange(this._selected)\n }\n\n writeValue(value: any): void {\n if (typeof value === 'boolean') {\n this.selected = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n //Set class for multiple radio\n setClass(): string {\n if (this.multiple) {\n return this._selected ? 'multiple-checked' : 'multiple-unchecked';\n }\n return '';\n }\n}\n","<div [class]=\"multiple ? 'radio-container' : ''\"\n [class.multiple-disabled]=\"disabled && multiple\"\n [ngClass]=\"classMultiple\"\n [attr.theme]=\"applicationTheme\"\n [attr.hasError]=\"hasError\">\n <mat-radio-button\n #radio\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [value]=\"value\"\n class=\"radio-button\"\n (click)=\"clickRadio(radio, $event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <span class=\"label\"\n (click)=\"clickRadio(radio, $event)\"\n >{{ label }}</span>\n <ng-content select=\"[radio-label]\"></ng-content>\n </mat-radio-button>\n</div>\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { RadioButtonComponent } from './radio-button.component';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [RadioButtonComponent],\n imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule],\n exports: [RadioButtonComponent],\n})\nexport class RadioButtonComponentModule {}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { IconName } from '../../components/icon/icon.model';\nimport { SnackbarType, SnackbarVariant } from '../../components/snackbar/snackbar.model';\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LinkTargetType } from '../alert-banner/alert-banner.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n animations: [\n trigger('openClose', [\n transition(':enter', [\n style({ bottom: '-55px', opacity: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, bottom: '10px' })),\n ]),\n transition(':leave', [\n style({ bottom: '10px', opacity: 1 }),\n animate('0.2s ease-in', style({ bottom: '-55px', opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class SnackbarComponent implements OnInit {\n /**\n * Background color of the button while in active state\n *\n * @type {SnackbarType}\n * @memberof SnackbarComponent\n */\n @Input() snackbarType: SnackbarType = 'success';\n\n /**\n * Snackbar message\n *\n * @memberof SnackbarComponent\n */\n @Input() message = '';\n\n /**\n * Snackbar message from html\n *\n * @memberof SnackbarComponent\n */\n @Input() set html(value: string) {\n if (value) {\n this.safeHtml = this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n }\n\n /**\n * Set the time that the snackbar will be visible\n *\n * @memberof SnackbarComponent\n */\n @Input() seconds = 5;\n\n /**\n * Include dismmiss button\n *\n * @memberof SnackbarComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Static or fixed position\n *\n * @memberof SnackbarComponent\n */\n @Input() fixed = true;\n\n /**\n * Link text that will appended at the end of message\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n * The language to be used\n *\n * @type {string}\n * @memberof SnackbarComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The variant to be used\n *\n * @type {SnackbarVariant}\n * @memberof SnackbarComponent\n */\n @Input() variant: SnackbarVariant = 'desktop';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SnackbarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @memberof SnackbarComponent\n */\n @Input() closeButtonTooltip = '';\n\n iconName: IconName;\n showSnackbar = true;\n milisenconds: number;\n visible = false;\n timer?: number;\n timerStartedAt = 0;\n timerPausedAt = 0;\n position: string;\n safeHtml: SafeHtml;\n\n translationContext = 'SNACKBAR.';\n protected readonly maxCharacters = 70;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(MAT_SNACK_BAR_DATA) private data: any,\n private snackbarRef: MatSnackBarRef<SnackbarComponent>,\n private domSanitizer: DomSanitizer,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n this.snackbarType = data.snackbarType ?? 'success';\n this.message = data.message ?? '';\n this.safeHtml = data.html ? this.domSanitizer.bypassSecurityTrustHtml(data.html) : '';\n }\n\n ngOnInit(): void {\n this.milisenconds = this.seconds * 1000;\n this.iconName = alertBarsUtil.setIcon(this.snackbarType);\n this.show();\n this.position = alertBarsUtil.setPosition(this.fixed);\n }\n\n //Show snackbar\n show() {\n this.timerStartedAt = Date.now();\n this.visible = true;\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds);\n }\n\n //Hide snackbar\n hide() {\n this.visible = false;\n this.timerPausedAt = 0;\n this.timerStartedAt = 0;\n clearTimeout(this.timer);\n this.timer = undefined;\n this.snackbarRef.dismiss();\n }\n\n //Pause timer when mouse enter\n onMouseEnter() {\n this.visible = true;\n this.timerPausedAt = Date.now();\n clearTimeout(this.timer);\n }\n\n //Continue timer when mouse leave\n onMouseLeave() {\n const diff = this.timerPausedAt - this.timerStartedAt;\n if (diff <= 0) {\n return this.hide();\n }\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds - diff);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n this.snackbarRef.dismiss();\n }\n}\n","<ng-container>\n <div\n [ngClass]=\"snackbarType + ' ' + position\"\n [@openClose]\n *ngIf=\"visible\"\n class=\"snackbar-container\"\n [attr.theme]=\"applicationTheme\"\n [class.mobile]=\"variant === 'mobile'\"\n [class.desktop]=\"variant === 'desktop'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div class=\"snackbar-text\" [matTooltip]=\"message.length > maxCharacters ? message : ''\">\n <ui-icon *ngIf=\"applicationTheme === 'classic'\" [name]=\"iconName\" size=\"24\"></ui-icon>\n {{ message.length > maxCharacters ? (message | slice : 0 : maxCharacters) + '..' : message }}\n <div *ngIf=\"safeHtml\" [innerHTML]=\"safeHtml\"></div>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [label]=\"(translationContext + 'DISMISS') | uiTranslate : language\"\n [applicationTheme]=\"applicationTheme !== 'classic'? 'light' : 'classic'\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic'\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n </div>\n</ng-container>\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnackbarComponent } from './snackbar.component';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Injectable()\nexport class SnackbarService {\n constructor(private snackBar: MatSnackBar) {}\n\n error(message: string, applicationTheme?: ApplicationTheme, html?: string) {\n const componentRef = this.snackBar.openFromComponent(SnackbarComponent, {\n data: {\n snackbarType: 'error',\n message,\n html,\n },\n });\n if (applicationTheme) {\n componentRef.instance.applicationTheme = applicationTheme;\n }\n return componentRef;\n }\n\n success(message: string, applicationTheme?: ApplicationTheme, html?: string) {\n const componentRef = this.snackBar.openFromComponent(SnackbarComponent, {\n data: {\n snackbarType: 'success',\n message,\n html,\n },\n });\n if (applicationTheme) {\n componentRef.instance.applicationTheme = applicationTheme;\n }\n return componentRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SnackbarComponent } from './snackbar.component';\nimport { SnackbarService } from './snackbar.service';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [SnackbarComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe, MatSnackBarModule, MatTooltipModule],\n exports: [SnackbarComponent],\n providers: [SnackbarService],\n})\nexport class SnackbarComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// TODO: Check type (backend could return a number)\ntype DataPropertyGetterType = string;\n\n@Pipe({\n name: 'dataPropertyGetter',\n standalone: true,\n})\nexport class DataPropertyGetterPipe implements PipeTransform {\n transform(obj: object, keyName: string = '') {\n return this.getDeepVal(obj, keyName);\n }\n\n private getDeepVal(obj: any, path: string) {\n if (typeof obj === 'undefined' || obj === null) {\n return '';\n }\n const splittedPath = path.split(/[\\.\\[\\]\\\"\\']{1,2}/);\n for (let i = 0, l = splittedPath.length; i < l; i++) {\n if (splittedPath[i] === '') {\n continue;\n }\n obj = obj[splittedPath[i]];\n if (typeof obj === 'undefined' || obj === null) {\n return '';\n }\n }\n return obj;\n }\n}\n","import { Type } from '@angular/core';\n\nexport type IDataSource = {\n [key: string]: any;\n};\n\nexport interface ITableColumn<T> {\n headerName: string;\n headerTooltip?: string;\n field?: string;\n type?: ColumnTypeEnum;\n function?: (v: T) => string;\n renderer?: (v: T) => IComponentRenderer | string;\n sortable?: boolean;\n styles?: IColumnStyles;\n}\n\nexport interface IComponentRenderer {\n component: Type<any>;\n inputs?: any;\n outputs?: { [key: string]: any };\n}\n\nexport interface IDetailRowDataParams<T, TDetail> {\n data: T;\n setDetailDataSource(rowData: TDetail[]): void;\n}\n\nexport interface ITableDetailColumn<T, TDetail> {\n columnDefs: ITableColumn<TDetail>[];\n setDetailRowData: (params: IDetailRowDataParams<T, TDetail>) => void;\n}\n\nexport interface IColumnStyles {\n alignment?: ColumnAlignmentEnum;\n width?: string;\n 'min-width'?: string;\n padding?: string;\n}\n\nexport enum ColumnTypeEnum {\n FIELD = 'field',\n FUNCTION = 'function',\n RENDERER = 'renderer',\n}\n\nexport enum ColumnAlignmentEnum {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n","import { ComponentRef, Directive, EventEmitter, Input, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IComponentRenderer } from '../deprecated-table.model';\n\n@Directive({\n selector: '[dynamicComponent]',\n standalone: true,\n})\nexport class DynamicComponentDirective implements OnDestroy {\n private subscription = new Subscription();\n private compRef: ComponentRef<any>;\n\n @Input() set dynamicComponent(componentRenderer: IComponentRenderer) {\n if (componentRenderer.component) {\n this.compRef = this.vcr.createComponent(componentRenderer.component);\n\n if (componentRenderer.inputs) {\n Object.keys(componentRenderer.inputs).map(\n inputName => (this.compRef.instance[inputName] = componentRenderer.inputs[inputName])\n );\n }\n\n if (componentRenderer.outputs) {\n Object.keys(componentRenderer.outputs).map(output => {\n this.subscription.add(\n (this.compRef.instance[output] as EventEmitter<any>).subscribe(componentRenderer.outputs?.[output])\n );\n });\n }\n }\n }\n\n constructor(private vcr: ViewContainerRef) {}\n\n ngOnDestroy() {\n if (this.compRef) {\n this.compRef.destroy();\n }\n this.subscription.unsubscribe();\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\nimport { ColumnTypeEnum, IDataSource, ITableColumn, ITableDetailColumn } from './deprecated-table.model';\n\n@Component({\n selector: 'ui-deprecated-table',\n templateUrl: './deprecated-table.component.html',\n styleUrls: ['./deprecated-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('expandDetail', [\n state('collapsed, void', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class DeprecatedTableComponent<T extends IDataSource, TDetail extends IDataSource> implements OnInit {\n /**\n * @ignore\n */\n @ViewChild(MatSort) set matSort(matSort: MatSort) {\n this.dataSource.sort = matSort;\n this.dataSource.sortingDataAccessor = (item, property) => this.dataPropertyGetterPipe.transform(item, property);\n }\n\n /**\n * @ignore\n */\n @Input() tableDetails = false;\n\n /**\n * Data to be rendered\n *\n * @ignore\n * @type {IDataSource}\n * @memberof TableComponent\n */\n @Input() set tableData(data: T[] | null) {\n if (data?.length) {\n this.setTableDataSource(data);\n }\n }\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {ITableColumn}\n * @memberof TableComponent\n */\n @Input() tableColumns: ITableColumn<T>[] = [];\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {ITableColumn}\n * @memberof TableComponent\n */\n @Input() tableDetailColumns: ITableDetailColumn<T, TDetail>;\n\n /**\n * @ignore\n */\n @Output() onSortEvent: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /**\n * @ignore\n */\n @Output() onRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * @ignore\n */\n @Output() onDetailRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * @ignore\n */\n dataSource = new MatTableDataSource<any>([]);\n\n /**\n * @ignore\n */\n dataSourceDetail = new MatTableDataSource<any>([]);\n\n /**\n * @ignore\n */\n elementDetail: any;\n\n /**\n * @ignore\n */\n columnsToDisplay: string[] = [];\n\n /**\n * @ignore\n */\n columnsDetailToDisplay: string[] = [];\n\n /**\n * @ignore\n */\n DataType = ColumnTypeEnum;\n\n ngOnInit(): void {\n this.columnsToDisplay = this.tableColumns.map((tableColumn: ITableColumn<T>) => tableColumn.headerName);\n if (this.tableDetailColumns) {\n this.columnsDetailToDisplay = this.tableDetailColumns.columnDefs.map(\n (tableColumn: ITableColumn<TDetail>) => tableColumn.headerName\n );\n }\n }\n\n constructor(private dataPropertyGetterPipe: DataPropertyGetterPipe) {}\n\n onSort(sortParams: Sort) {\n const columnSort = this.tableColumns.find((column: ITableColumn<T>) => column.headerName === sortParams.active);\n if (columnSort?.field) {\n sortParams.active = columnSort?.field;\n }\n this.onSortEvent.emit(sortParams);\n }\n\n onRowClick(rowParams: any) {\n this.onRowClickEvent.emit(rowParams);\n }\n\n onDetailRowClick(rowParams: any) {\n this.onDetailRowClickEvent.emit(rowParams);\n }\n\n toggleRow(element: T) {\n this.elementDetail = this.elementDetail === element ? null : element;\n if (this.elementDetail) {\n this.tableDetailColumns.setDetailRowData({\n data: element,\n setDetailDataSource: this.setTableDetailDataSource.bind(this),\n });\n }\n }\n\n /**\n * @ignore\n */\n private setTableDataSource(data: T[]) {\n this.dataSource = new MatTableDataSource<any>(data);\n }\n\n /**\n * @ignore\n */\n private setTableDetailDataSource(rowData: TDetail[]) {\n this.dataSourceDetail = new MatTableDataSource<any>(rowData);\n }\n}\n","<table *ngIf=\"!tableDetails\" mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns; let i = index\" [matColumnDef]=\"tableColumn.headerName\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.field || ''\"\n arrowPosition=\"after\" [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"[tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : '', onRowClickEvent.observed && i === tableColumns.length - 1 ? 'row-detail': '']\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n <mat-icon *ngIf=\"onRowClickEvent.observed && i === tableColumns.length - 1\" class=\"row-detail-icon\">navigate_next</mat-icon>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnsToDisplay;\" [ngClass]=\"{'row-clickable': onRowClickEvent.observed}\"></tr>\n</table>\n\n<table *ngIf=\"tableDetails\" mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\"\n multiTemplateDataRows>\n <ng-container *ngFor=\"let tableColumn of tableColumns; let i = index\" [matColumnDef]=\"tableColumn.headerName\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.field || ''\"\n arrowPosition=\"after\" [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"[tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : '', i === 0 ? 'row-expand' : '']\">\n <mat-icon *ngIf=\"i === 0\" class=\"row-expand-icon\">{{ element === elementDetail ? 'expand_less' : 'expand_more' }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"columnsToDisplay.length\">\n <div class=\"element-detail\" *ngIf=\"dataSourceDetail.data.length\"\n [@expandDetail]=\"element === elementDetail ? 'expanded' : 'collapsed'\">\n <table mat-table [dataSource]=\"dataSourceDetail\">\n <ng-container *ngFor=\"let tableColumn of tableDetailColumns.columnDefs\"\n [matColumnDef]=\"tableColumn.headerName\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" arrowPosition=\"after\"\n [ngStyle]=\"{width: tableColumn.styles?.width}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n {{tableColumn.headerName | uppercase}}\n </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onDetailRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : ''\"\n [ngStyle]=\"{padding: tableColumn.styles?.padding}\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsDetailToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let rowDetail; columns: columnsDetailToDisplay;\"></tr>\n </table>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let element; columns: columnsToDisplay;\" class=\"element-row\"\n [ngClass]=\"{'expanded-row': elementDetail === element, 'row-clickable': tableDetails}\"\n (click)=\"toggleRow(element)\">\n </tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\n</table>\n\n<ng-template #tableDataTpl let-element=\"element\" let-tableColumn=\"tableColumn\">\n <div class=\"align-wrapper\">\n <ng-container [ngSwitch]=\"tableColumn.type\">\n <ng-container *ngSwitchCase=\"DataType.FIELD\">\n {{element | dataPropertyGetter: tableColumn.field}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.FUNCTION\">\n {{tableColumn.function?.(element)}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.RENDERER\">\n <ng-template\n [dynamicComponent]=\"tableColumn.renderer?.(element)\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{element | dataPropertyGetter: tableColumn.field}}\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #tableHeader let-tableColumn=\"tableColumn\">\n <div class=\"tooltip\" [ngStyle]=\"{'justify-content': tableColumn.styles?.alignment}\" [ngClass]=\"tableColumn.styles?.alignment\">\n <span>{{tableColumn.headerName | uppercase}}</span>\n <mat-icon *ngIf=\"tableColumn.headerTooltip\" [matTooltip]=\"tableColumn.headerTooltip\" class=\"tooltip-icon\" (click)=\"$event.stopPropagation()\">help</mat-icon>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DynamicComponentDirective } from './directives/dynamic-component.directive';\nimport { DeprecatedTableComponent } from './deprecated-table.component';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\n\n@NgModule({\n declarations: [DeprecatedTableComponent],\n imports: [\n CommonModule,\n MatTableModule,\n MatSortModule,\n MatIconModule,\n MatTooltipModule,\n DynamicComponentDirective,\n DataPropertyGetterPipe,\n ],\n exports: [DeprecatedTableComponent],\n providers: [DataPropertyGetterPipe],\n})\nexport class DeprecatedTableComponentModule {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter, Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild\n} from '@angular/core';\nimport { debounceTime, map, ReplaySubject } from 'rxjs';\nimport { IconColor, IconName } from '../icon/icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent implements AfterViewInit, OnInit {\n /**\n * Tag's label\n *\n * @memberof TagComponent\n */\n @Input() set label(value: string) {\n this.labelText = value;\n if (this.labelElement) {\n this.isLabelEllipseActive();\n }\n }\n\n /**\n * Icon\n *\n * @type {string}\n * @memberof TagComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * Whether to allow the tag to be closed.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() allowClose = false;\n\n /**\n * Whether the tag is in read-only mode.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() readOnly = false;\n\n /**\n * Whether the tag is selected.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isSelected = false;\n\n /**\n * Display icon when is selected\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n * Specifies whether the element is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isDisabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TagComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof TagComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof TagComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Event triggered when the tag should be closed.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() close = new EventEmitter<void>();\n\n /**\n * Event triggered when a press action occurs.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() press = new EventEmitter<boolean>();\n\n /**\n * Subject that needs to be triggered when Label input changes, to check if it's truncated\n * @private\n * @type {void}\n * @memberof TagComponent\n */\n private checkLabelEllipsis$ = new ReplaySubject<void>(1);\n\n /**\n * Observable that indicates if the Label is truncated\n * debounceTime is used to wait for view to be initialized after receiving a new Label input\n * @protected\n * @type {boolean}\n * @memberof TagComponent\n */\n protected isEllipseActiveObs$ = this.checkLabelEllipsis$.pipe(\n debounceTime(100),\n map(() => {\n const el = this.labelElement.nativeElement;\n return el.offsetWidth < el.scrollWidth;\n })\n );\n protected labelText = '';\n protected isHovered = false;\n protected shrink = false;\n protected iconToPass: IconName;\n protected iconColor: IconColor;\n\n @ViewChild('labelElement') labelElement: ElementRef<HTMLElement>;\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 ngOnInit(): void {\n this.iconToPass = this.icon;\n this.iconColor = 'black';\n }\n\n ngAfterViewInit(): void {\n this.isLabelEllipseActive();\n }\n\n onPress(): void {\n if (!this.readOnly && !this.allowClose) {\n this.isSelected = this.showIconWhenSelected ? !this.isSelected : false;\n this.press.emit(this.isSelected);\n }\n }\n\n setHoverState(state: boolean) {\n this.isHovered = state;\n if (this.applicationTheme !== 'classic') {\n if (state) {\n this.iconToPass = `${this.icon}-filled` as IconName;\n } else {\n this.iconToPass = this.icon;\n }\n this.iconColor = this.isHovered ? 'white' : 'black';\n }\n }\n\n setShrinkState(state: boolean) {\n this.shrink = state;\n }\n\n onClose(): void {\n this.close.emit();\n }\n\n private isLabelEllipseActive(): void {\n this.checkLabelEllipsis$.next();\n }\n\n get tabIndex(): number {\n return this.isDisabled || this.readOnly ? -1 : 0;\n }\n\n get filled(): boolean {\n return this.readOnly || this.allowClose || this.isSelected;\n }\n}\n","<div class=\"tag-wrapper\" [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\">\n <div\n [tabindex]=\"tabIndex\"\n class=\"tag-container\"\n [attr.data-testid]=\"'tag--container'\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{\n filled: filled,\n readonly: readOnly,\n disabled: isDisabled,\n outlined: !isSelected,\n shrink\n }\"\n (click)=\"onPress()\"\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\n <ui-icon [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\" [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n </div>\n</div>\n","export enum TooltipPositionType {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right'\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { TooltipPositionType } from './tooltip.model';\nimport { TooltipPosition } from '@angular/material/tooltip';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-tooltip',\n templateUrl: './tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent implements OnInit {\n /**\n * Allows the user to define the position of the tooltip relative to the parent element.\n *\n * @type {TooltipPositionType}\n * @memberof TooltipComponent\n */\n @Input() position: TooltipPositionType = TooltipPositionType.TOP;\n\n /**\n * Disables the display of the tooltip.\n *\n * @type {boolean}\n * @memberof TooltipComponent\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * The message to be displayed in the tooltip.\n *\n * @type {string}\n * @memberof TooltipComponent\n */\n @Input() message = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TooltipComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n templateRef: any;\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 matPosition: TooltipPosition;\n\n ngOnInit() {\n this.setPosition();\n }\n\n //set position\n setPosition(): void {\n switch (this.position) {\n case TooltipPositionType.TOP:\n this.matPosition = 'above';\n break;\n case TooltipPositionType.BOTTOM:\n this.matPosition = 'below';\n break;\n default:\n this.matPosition = this.position;\n break;\n }\n }\n}\n","<div\n [matTooltip]=\"message\"\n [matTooltipDisabled]=\"disabled\"\n [matTooltipPosition]=\"matPosition\"\n [matTooltipClass]=\"applicationTheme\"\n aria-label=\"tooltip\"\n>\n <ng-content></ng-content>\n <ng-container *ngIf=\"templateRef\">\n <div [class]=\"'template-tooltip'\">\n <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TooltipComponent } from './tooltip.component';\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [TooltipComponent],\n imports: [MatTooltipModule, CommonModule],\n exports: [TooltipComponent],\n})\nexport class TooltipComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TagComponent } from './tag.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { TooltipComponentModule } from '../tooltip/tooltip.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from \"@angular/material/input\";\n\n@NgModule({\n declarations: [TagComponent],\n imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule],\n exports: [TagComponent],\n providers: [],\n})\nexport class TagComponentModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FloatLabelType } from '@angular/material/form-field';\nimport { OptionType } from './dropdown.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent implements OnInit, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-dropdown';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() name: string;\n /**\n * Placeholder to be shown if no value has been selected.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() placeholder: string;\n\n /**\n * Unique id of the element.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() value?: string;\n\n /**\n * Whether the component is in an error state.\n *\n * @type {string[]}\n * @memberof DropdownComponent\n */\n @Input() errors?: string[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() disabled = false;\n\n /**\n * List of options.\n *\n * @type {OptionType}\n * @memberof DropdownComponent\n */\n @Input() valueList: OptionType[] = [];\n\n /**\n * Whether the user should be allowed to clear the values.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowClear = true;\n\n /**\n * This will allow the user to select multiple values at once.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowMultipleSelection? = false;\n\n /**\n * Whether the component is required.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() required = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof DropdownComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DropdownComponent\n */\n @HostBinding('attr.theme')\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() valueField = '';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n this.errors = [];\n this.valueList = [];\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n floatLabel: FloatLabelType;\n classError: string;\n errorsLength: boolean;\n showCheck: boolean;\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.errorsLength = this.setErrorsLength();\n }\n\n clearValue(event: Event): void {\n event?.stopPropagation();\n this.value = '';\n this.onChange(this.value);\n }\n\n //Save select value\n onChangeOption(event: any) {\n this.value = event.value;\n this.errorsLength = this.setErrorsLength();\n this.onTouch();\n this.onChange(this.value);\n }\n\n //Set errors length for validation\n setErrorsLength(): boolean {\n if (!!this.errors) {\n return this.errors.length > 0 ? true : false;\n }\n return false;\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ng-container>\n <mat-form-field\n appearance=\"outline\"\n [attr.theme]=\"applicationTheme\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'without-label': !label }\"\n >\n <mat-label>{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <mat-select\n #matSelect\n [id]=\"id!\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [panelClass]=\"'ui-dropdown-list' + ' ' + applicationTheme\"\n [disabled]=\"disabled\"\n [multiple]=\"!!allowMultipleSelection\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (selectionChange)=\"onChangeOption($event)\"\n [attr.name]=\"name\">\n <div class=\"mat-option-section\" *ngFor=\"let section of valueList\">\n <span *ngIf=\"section.sectionTitle\" class=\"section-title\">{{ section.sectionTitle }}</span>\n <mat-option *ngIf=\"section\" #matOption [value]=\"valueField ? section[valueField] : textField && !valueField ? section : section.value\">\n {{ textField ? section[textField] : section.displayValue ?? section.value }}\n </mat-option>\n </div>\n </mat-select>\n <ui-button *ngIf=\"allowClear && !matSelect.empty\" variant=\"secondary\" [justIcon]=\"true\" class=\"clear\" [iconName]=\"applicationTheme === 'classic' ? 'Close' : 'Close-filled'\" [label]=\"('COMMON.CLEAR') | uiTranslate : language\" (click)=\"clearValue($event)\"></ui-button>\n <ui-icon class=\"chevron-icon\" *ngIf=\"!matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-filled'\"></ui-icon>\n <ui-icon class=\"chevron-icon\" *ngIf=\"matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_up' : 'Arrow-chevron-up-filled'\"></ui-icon>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"></ui-icon>{{ error }}\n </div>\n </ng-container>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { DropdownComponent } from './dropdown.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatSelectModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [DropdownComponent],\n})\nexport class DropdownComponentModule {}\n","import { Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { SpinnerSize } from './spinner.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent implements OnInit, OnChanges {\n /**\n * The size variant of the spinner. Can be 'small' or 'large'.\n * Defaults to 'large'.\n * @default 'large'\n * @type {SpinnerSize}\n * @memberof SpinnerComponent\n */\n @Input() size: SpinnerSize = 'large';\n\n /**\n * Set position fixed on page\n * Defaults to 'true'.\n * @default 'true'\n * @type {SpinnerSize}\n * @memberof SpinnerComponent\n */\n @Input() isLoader = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SpinnerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n classes: string;\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 ngOnChanges(): void {\n this.setSpinnerClasses();\n }\n\n ngOnInit(): void {\n this.setSpinnerClasses();\n }\n\n setSpinnerClasses(): void {\n this.classes = `${this.size === 'large' ? 'large' : 'small'} ${this.isLoader ? 'loader' : ''} ${this.applicationTheme}`;\n }\n}\n","<div class=\"spinner-container\" [ngClass]=\"classes\" [attr.theme]=\"applicationTheme\">\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\n </svg>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\nimport { NgClass } from '@angular/common';\n\n@NgModule({\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent],\n imports: [NgClass],\n})\nexport class SpinnerComponentModule {}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData } from './confirm-dialog.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class ConfirmDialogComponent {\n confirmMessage: string;\n confirmButtonText: string | undefined;\n cancelButtonText: string | undefined;\n title: string | undefined;\n lang = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ConfirmDialogData\n ) {\n this.confirmMessage = data.message;\n this.confirmButtonText = data.confirmButtonText;\n this.cancelButtonText = data.cancelButtonText;\n this.title = data.title;\n this.lang = data.language ?? LanguageService.defaultLanguage;\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n}\n","<ng-container>\n <ui-dialog\n [title]=\"title ?? (('COMMON.CONFIRM') | uiTranslate : lang)\"\n [primaryButtonLabel]=\"confirmButtonText ?? (('COMMON.YES') | uiTranslate : lang)\"\n [secondaryButtonLabel]=\"cancelButtonText ?? (('COMMON.CANCEL') | uiTranslate : lang)\"\n (primaryButtonClickEvent)=\"dialogRef.close(true)\"\n (secondaryButtonClickEvent)=\"dialogRef.close(false)\"\n primaryButtonType=\"primary\"\n secondaryButtonType=\"outlined\"\n [applicationTheme]=\"applicationTheme\"\n [showCloseButton]=\"false\"\n >\n <div class=\"message\">{{ confirmMessage }}</div>\n </ui-dialog>\n\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { DialogComponentModule } from '../dialog/dialog.component.module';\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: {} },\n { provide: MatDialogRef, useValue: {} },\n ],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, UiTranslatePipe]\n})\nexport class ConfirmDialogComponentModule {}\n","import { Directive, Injectable } from '@angular/core';\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MatDateFormats,\n NativeDateAdapter,\n} from '@angular/material/core';\nimport { formatDate } from '@angular/common';\n\n@Injectable()\nexport class CustomDateAdapter extends NativeDateAdapter {\n override format(date: Date): string {\n return formatDate(date, 'MM/yyyy', 'en-US');\n }\n}\n\nconst FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/YYYY',\n },\n display: {\n dateInput: 'MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Directive({\n selector: '[appNoDateFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDateAdapter,\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: FORMATS,\n },\n ],\n standalone: true,\n})\nexport class NoDateFormatDirective {}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NgControl } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-datepicker';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() placeholder? = '';\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() value?: string | Date;\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is date range\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() isRange: boolean;\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() hintMessage: string;\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof DatepickerComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof DatepickerComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Set full width DatepickerComponent\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Set min date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() minDate: Date | undefined;\n\n /**\n * Set max date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() maxDate: Date | undefined;\n\n /**\n * Show and pick date without day\n * @default false\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() monthPicker = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DatepickerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Prevent user input\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() preventUserInput = false;\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n /**\n * Event emitted when the value is change - when used outside of form\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Output() changed = new EventEmitter<Date | string>();\n\n range = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n errorsLength: boolean;\n protected translationContext = 'DATEPICKER.';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n private sanitizer: DomSanitizer,\n @Optional() @Self() public ngControl: NgControl\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get hint(): string {\n if (this.hintMessage === undefined) {\n return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : this.monthPicker ? 'MM/YYYY' : 'MM/DD/YYYY';\n }\n\n return this.hintMessage;\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit() {\n document.body.setAttribute('theme', this.applicationTheme);\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(): void {\n if (this.isRange) {\n this.setRange();\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which which are not empty\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0 ? true : false;\n }\n return false;\n }\n\n onValueChange(value: Date | string) {\n this.writeValue(value);\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(value);\n this.changed.emit(value);\n }\n\n writeValue(value?: Date | string): void {\n this.value = value;\n if (this.isRange) {\n this.setRange();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n dateRangeChange(start: string, end: string) {\n this.onValueChange(this.getRange(start, end));\n }\n\n setMonthAndYear(normalizedMonthAndYear: any, datepicker: MatDatepicker<Date>) {\n const ctrlValue = typeof this.value === 'string' ? new Date(this.value) : this.value || new Date();\n\n ctrlValue.setMonth(normalizedMonthAndYear.getMonth());\n ctrlValue.setFullYear(normalizedMonthAndYear.getFullYear());\n\n datepicker.close();\n\n this.onValueChange(new Date(ctrlValue));\n }\n\n private setRange() {\n if (typeof this.value === 'string') {\n const [start, end] = this.value?.split('-');\n if (start) {\n this.range.controls.start.setValue(new Date(start));\n }\n if (end) {\n this.range.controls.end.setValue(new Date(end));\n }\n }\n\n if (!this.value) {\n this.range.controls.start.setValue(null);\n this.range.controls.end.setValue(null);\n }\n }\n\n private getRange(start: string, end: string): string {\n return `${start}-${end}`;\n }\n\n onInput(event: Event) {\n const target = event.target as EventTarget & { value: string };\n const [month, year] = target.value.split('/');\n const date = new Date().getDate();\n const fullDateString = `${month}/${date}/${year}`;\n const fullDate = new Date(fullDateString);\n this.onValueChange(fullDate);\n }\n}\n","<ng-container>\n <mat-form-field\n *ngIf=\"!monthPicker; else dateYearPicker\"\n #uiDatepicker\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n <ng-container *ngIf=\"!isRange\">\n <input *ngIf=\"!isRange\" matInput\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [readonly]=\"preventUserInput\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </ng-container>\n\n <ng-container *ngIf=\"isRange\">\n <mat-date-range-input *ngIf=\"isRange\" [formGroup]=\"range\" [rangePicker]=\"rangePicker\" [min]=\"minDate\" [max]=\"maxDate\" >\n <input matStartDate #dateRangeStart formControlName=\"start\" [placeholder]=\"(translationContext + 'START_DATE') | uiTranslate : language\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n <input matEndDate #dateRangeEnd formControlName=\"end\" [placeholder]=\"(translationContext + 'END_DATE') | uiTranslate : language\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n </ng-container>\n\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n\n <ng-template #dateYearPicker>\n <mat-form-field\n appNoDateFormat\n #uiDatepicker\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n\n <ng-container >\n <input matInput\n [id]=\"id!\"\n (blur)=\"onTouch()\"\n [placeholder]=\"placeholder!\"\n [matDatepicker]=\"dp\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [readonly]=\"preventUserInput\"\n (change)=\"onInput($event)\"\n (dateChange)=\"onValueChange($event.value)\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"dp\">\n <ui-icon *ngIf=\"applicationTheme !== 'classic'\" matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker panelClass=\"month-picker\" #dp startView=\"multi-year\" (monthSelected)=\"setMonthAndYear($event, dp)\"></mat-datepicker>\n </ng-container>\n\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n\n </mat-form-field>\n </ng-template>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatepickerComponent } from './datepicker.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { NoDateFormatDirective } from './no-date-format.directive';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\n\n@NgModule({\n declarations: [DatepickerComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n UiTranslatePipe,\n NoDateFormatDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n ],\n exports: [DatepickerComponent],\n})\nexport class DatepickerComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'halfStar',\n})\nexport class HalfStarPipe implements PipeTransform {\n /**\n * @description Used to indicate whether display half-star icon.\n * Returns true if the rounded value of the current element\n * is equal to it's index, and value is not integer (e.g. index = 4, value = 3.5),\n * @param index the index of the current element\n * @param value the value of the current element\n */\n transform(index: number, value: number): boolean {\n return Math.ceil(value) === index && !Number.isInteger(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\nexport type RatingComponentTheme = 'stars' | 'block';\n\n@Component({\n selector: 'ui-rating',\n templateUrl: './rating.component.html',\n styleUrls: ['./rating.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RatingComponent {\n private readonly MIN_LENGTH = 0;\n private readonly DEFAULT_LENGTH = 5;\n protected items: number[] = [];\n protected hoverIndex: number;\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 * The value representing the rating.\n * @type {number}\n * @memberof RatingComponent\n */\n @Input() value: number;\n\n /**\n * The theme of the rating component. Defaults \"block\".\n * @type {RatingComponentTheme}\n * @memberof RatingComponent\n */\n @Input() theme: RatingComponentTheme = 'block';\n\n /**\n * A flag indicating whether the rating component is disabled.\n * @type {boolean}\n * @memberof RatingComponent\n */\n @Input() disabled = false;\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof RatingComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof RatingComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * The width of the rating bar.\n * @type {number}\n * @memberof RatingComponent\n */\n @Input() barWidth = 35;\n\n @Input() set length(length: number) {\n this.items = Array(Math.max(length, this.MIN_LENGTH))\n .fill(0)\n .map((x, i) => i);\n }\n\n @Output() valueChange = new EventEmitter<number>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n this.length = this.DEFAULT_LENGTH;\n\n }\n\n protected select(index: number): void {\n this.value = this.value === index + 1 ? 0 : index + 1;\n this.valueChange.emit(this.value);\n }\n\n protected onHover(index: number): void {\n this.hoverIndex = index + 1;\n }\n}\n","<div class=\"rating\"\n (mouseleave)=\"onHover(-1)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n>\n <ng-container *ngIf=\"theme === 'block';else stars\">\n <div class=\"rating-item\" [attr.theme]=\"applicationTheme\" *ngFor=\"let item of items\" (click)=\"select(item)\" (mouseenter)=\"onHover(item)\"\n [ngClass]=\"{ 'rating-item-selected': item < value, 'rating-item-hover': item < hoverIndex }\"\n [ngStyle]=\"{'width.px': barWidth}\">\n </div>\n </ng-container>\n\n <ng-template #stars>\n <div class=\"star-container\" [attr.theme]=\"applicationTheme\">\n <div\n #star\n class=\"star\"\n [tabIndex]=\"0\"\n (mouseenter)=\"onHover(item)\"\n (mouseleave)=\"onHover(-1)\"\n [ngClass]=\"{\n filled: value > i,\n hover: item < hoverIndex && (value ? item >= value : true),\n disabled,\n 'filled-half': i + 1 | halfStar : value\n }\"\n *ngFor=\"let item of items; index as i\"\n (click)=\"select(item); star.blur()\"\n ></div>\n </div>\n </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RatingComponent } from './rating.component';\nimport { HalfStarPipe } from './half-star.pipe';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [RatingComponent, HalfStarPipe],\n imports: [CommonModule, MatInputModule],\n exports: [RatingComponent],\n})\nexport class RatingComponentModule {}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-scale',\n templateUrl: './scale.component.html',\n styleUrls: ['./scale.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScaleComponent {\n private readonly MIN_LENGTH = 1;\n private readonly DEFAULT_LENGTH = 5;\n protected items: number[] = [];\n\n /**\n * The value representing the selected item of the scale.\n * @type {number}\n * @memberof ScaleComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * The max number of items in the scale.\n * @type {number}\n * @memberof ScaleComponent\n */\n @Input() set length(length: number) {\n this.items = Array(Math.max(length, this.MIN_LENGTH))\n .fill(0)\n .map((_, i) => i);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ScaleComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n this.length = this.DEFAULT_LENGTH;\n }\n\n protected select(index: number): void {\n this.selectedIndex = index;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n}\n","<div class=\"scale\"\n [ngClass]=\"{ 'scale-classic': applicationTheme === 'classic' }\">\n <div class=\"scale-item\" *ngFor=\"let item of items\" (click)=\"select(item)\"\n [ngClass]=\"{ 'scale-item-selected': item === selectedIndex }\">\n {{ item + 1 }}\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScaleComponent } from './scale.component';\n\n\n@NgModule({\n declarations: [ScaleComponent],\n imports: [CommonModule],\n exports: [ScaleComponent]\n})\nexport class ScaleComponentModule {\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, OnInit, Output } from '@angular/core';\nimport { debounceTime, startWith, Subject } from 'rxjs';\n\n/**\n * Checks if element ellipsis\n */\n@Directive({\n selector: '[uiEllipseText]',\n standalone: true,\n})\nexport class EllipseTextDirective implements OnInit {\n checkEllipsis$ = new Subject<void>();\n @Output() onChangeTextState = new EventEmitter<boolean>();\n @HostListener('window:resize')\n resize(): void {\n this.checkEllipsis$.next();\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n this.checkEllipsis$.pipe(startWith(null), debounceTime(100)).subscribe(() => {\n const textElement = this.el.nativeElement as HTMLElement;\n this.onChangeTextState.emit(textElement.clientWidth < textElement.scrollWidth);\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RegisterFn } from './toggle.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from \"../../utils/localization/language.service\";\n\n@Component({\n selector: 'ui-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleComponent implements ControlValueAccessor, OnChanges, OnInit {\n /**\n * The `selected` property determines the current state of the toggle switch.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() selected = false;\n\n /**\n * The `disabled` property determines whether the toggle switch is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() disabled = false;\n\n /**\n * Toggle label\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() label = '';\n\n /**\n * Message\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() message = '';\n\n /**\n * Max width of the toggle container\n *\n * @type {number}\n * @memberof ToggleComponent\n */\n @HostBinding('style.--max-width')\n @Input()\n maxWidth: number | undefined;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ToggleComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The `toggle` event is triggered when the state of the toggle switch changes. It returns the new state.\n *\n * @type {event}\n * @memberof ToggleComponent\n */\n @Output() toggle = new EventEmitter<boolean>();\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof ToggleComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * disable/enable click on toggle\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() preventClick = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof ToggleComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The loading state\n *\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() loading = false;\n\n protected showLabelTooltip = false\n protected classes: string;\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 ngOnChanges(): void {\n this.setClasses();\n }\n\n ngOnInit(): void {\n this.setClasses();\n }\n\n onToggle(): void {\n if (this.preventClick) {\n this.toggle.emit(this.selected);\n }\n if (!this.disabled && !this.preventClick) {\n this.selected = !this.selected;\n this.toggle.emit(this.selected);\n this.onChange(this.selected);\n }\n }\n\n writeValue(state: boolean): void {\n if (state) {\n this.selected = state;\n }\n }\n\n registerOnChange(fn: RegisterFn): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: RegisterFn): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n changeTextState(state: boolean): void {\n this.showLabelTooltip = state;\n }\n\n private onChange: RegisterFn = () => {\n };\n private onTouched: RegisterFn = () => {\n };\n\n private setClasses(): void {\n this.classes = `${this.disabled ? 'disabled' : ''} ${this.applicationTheme} ${this.loading ? 'loading' : ''} ${!this.label ? 'small-toggle' : ''}`;\n }\n}\n","<div class=\"toggle\" [ngClass]=\"classes\">\n <div\n [style.--max-width]=\"maxWidth + 'px'\"\n [tabIndex]=\"0\"\n class=\"toggle-container\"\n [ngClass]=\"{ 'active': selected }\"\n (click)=\"onToggle()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <div\n class=\"label\"\n uiEllipseText\n [matTooltipShowDelay]=\"800\"\n [matTooltip]=\"showLabelTooltip ? label : ''\"\n (onChangeTextState)=\"changeTextState($event)\"\n >\n {{ label }}\n </div>\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\n </div>\n\n <ng-template #loadingTemplate>\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\n </ng-template>\n </div>\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToggleComponent } from './toggle.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\nimport { MatInputModule } from '@angular/material/input';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { SpinnerComponentModule } from \"../spinner/spinner.module\";\n\n@NgModule({\n declarations: [ToggleComponent],\n imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule],\n exports: [ToggleComponent],\n})\nexport class ToggleComponentModule {}\n","import { inject, InjectionToken } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs';\nimport { ScreenBreakpoints } from '../models/screen-breakpoints.model';\n\nexport const IS_MOBILE_TOKEN = new InjectionToken('Is mobile', {\n factory: () => {\n const breakpointObserver = inject(BreakpointObserver);\n return breakpointObserver.observe(`(max-width: ${ScreenBreakpoints.MOBILE}px)`).pipe(map(v => v.matches));\n },\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { HtmlDescription, StepperPosition } from '../stepper/stepper.model';\n\n@Component({\n selector: 'ui-step',\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepComponent {\n /**\n * Input property for the label of the step.\n *\n * @memberof StepComponent\n */\n @Input() label: string;\n\n /**\n * Input property indicating whether the step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() isVisited: boolean;\n\n /**\n * Input property indicating whether the form has been submitted.\n *\n * @memberof StepComponent\n */\n @Input() submitted: boolean;\n\n /**\n * Input property for the icon associated with the step.\n *\n * @memberof StepComponent\n */\n @Input() icon: IconName | undefined = '';\n\n /**\n * Input property for the index of the step.\n *\n * @memberof StepComponent\n */\n @Input() index: number;\n\n /**\n * Input property indicating whether the step is currently selected.\n *\n * @memberof StepComponent\n */\n @Input() selected: boolean;\n\n /**\n * Input property indicating whether the step is the last step in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() isLast: boolean;\n\n /**\n * Input property indicating the selected index in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * Input property indicating whether the step is disabled.\n *\n * @memberof StepComponent\n */\n @Input() disabled = false;\n\n /**\n * Input property indicating whether the previous step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() prevStepIsVisited: boolean | undefined = false;\n\n /**\n * Input property indicating whether the component is in mobile mode.\n *\n * @memberof StepComponent\n */\n @Input() mobileMode = false;\n\n /**\n * Input property indicating whether the final icon should be displayed.\n *\n * @memberof StepComponent\n */\n @Input() finalIcon = false;\n\n /**\n * Input property indicating to display icon when step is selected.\n *\n * @memberof StepComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepComponent\n */\n @Input() position: StepperPosition;\n\n /**\n *\n * Step description\n *\n * @type {HtmlDescription[]}\n * @memberof StepComponent\n */\n @Input() htmlDescription: HtmlDescription[] = [];\n\n /**\n *\n * Sets bold font weight for label\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() boldLabel = false;\n\n /**\n *\n * Template for the step description\n *\n * @type {TemplateRef}\n * @memberof StepComponent\n */\n @Input() descriptionTpl?: TemplateRef<any>;\n\n /**\n *\n * Tooltip for the step label\n *\n * @type {string}\n * @memberof StepComponent\n */\n @Input() labelTooltip?: string;\n\n /**\n *\n * Always show step icon instead of number\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() alwaysShowIcon = false;\n\n /**\n *\n * Context for the step template\n *\n * @type {any}\n * @memberof StepComponent\n */\n @Input() context: any;\n\n /**\n * Event emitted when the step was clicked.\n * @type {number}\n * @memberof StepComponent\n */\n @Output() stepSelected = new EventEmitter<number>();\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 get hasLastStepDefaultIcon(): boolean {\n return !this.showIconWhenSelected || (this.showIconWhenSelected && !this.selected);\n }\n\n protected onStepSelected(index: number): void {\n this.stepSelected.emit(index);\n }\n}\n","<div\n *ngIf=\"!mobileMode; else mobile\"\n class=\"step-container\"\n [tabIndex]=\"0\"\n [ngClass]=\"{\n 'visited-next': isVisited && index > selectedIndex,\n 'visited-prev': isVisited && index < selectedIndex,\n 'active': selected,\n 'last-step': finalIcon && hasLastStepDefaultIcon && !alwaysShowIcon,\n 'disabled': disabled,\n 'vertical': position === 'vertical'\n }\"\n [attr.theme]=\"applicationTheme\"\n (click)=\"onStepSelected(index)\"\n>\n <div class=\"step-icon\">\n <div class=\"line\" *ngIf=\"index\" [ngClass]=\"{ visited: prevStepIsVisited }\"></div>\n <div class=\"icon-wrapper\" *ngIf=\"!finalIcon; else lastStep\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isVisited && !selected && !alwaysShowIcon\">\n <ui-icon [size]=\"'24'\" [name]=\"'Check'\"\n [color]=\"isVisited && index < selectedIndex ? 'white' : applicationTheme === 'classic' ? 'petrol' : 'rebrand-black'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"(selected && !!icon) || alwaysShowIcon\">\n <ui-icon [size]=\"'24'\" [name]=\"icon!\" [color]=\"isLast && !selected ? 'rebrand-black' : 'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ index + 1 }}\n </ng-container>\n </ng-container>\n </div>\n\n <ng-template #lastStep>\n <img\n *ngIf=\"hasLastStepDefaultIcon && !alwaysShowIcon; else stepIcon\"\n [alt]=\"'step-finish-image'\"\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\n >\n\n <ng-template #stepIcon>\n <div class=\"icon-wrapper\">\n <ui-icon *ngIf=\"icon || (icon && alwaysShowIcon); else stepIndex\" [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n <ng-template #stepIndex>\n {{ index + 1 }}\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n </div>\n\n <div class=\"steps-label\">\n <div class=\"step-label\" [ngClass]=\"{'step-bold-label': boldLabel}\" *ngIf=\"label\" [matTooltip]=\"labelTooltip ?? ''\">\n {{ label }}\n </div>\n\n <div *ngFor=\"let description of htmlDescription\" class=\"step-description\">\n <div>{{description.text}}</div>\n <ui-icon *ngIf=\"description.iconName\" [name]=\"description.iconName\" [size]=\"'24'\" [matTooltip]=\"description.iconTooltip ?? ''\" ></ui-icon>\n </div>\n\n <ng-container *ngIf=\"descriptionTpl\" [ngTemplateOutlet]=\"descriptionTpl\" [ngTemplateOutletContext]=\"{ $implicit: context, label, isVisited, submitted, index, selected, isLast, selectedIndex, disabled, prevStepIsVisited, mobileMode, finalIcon, showIconWhenSelected, position }\"></ng-container>\n </div>\n\n</div>\n\n<ng-template #mobile>\n <div class=\"mobile-step-container\"\n [ngClass]=\"{ 'active': selected, 'disabled': disabled, 'visited': isVisited }\"\n (click)=\"onStepSelected(index)\"\n [attr.theme]=\"applicationTheme\"\n >\n <div class=\"step\">\n <ng-container *ngIf=\"!finalIcon; else lastStep\">\n <div [ngSwitch]=\"true\" class=\"icon\">\n <ng-container *ngSwitchCase=\"isVisited && !selected\">\n <ui-icon [size]=\"'16'\" [name]=\"'Check'\" [color]=\"'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"selected && !!icon\">\n <ui-icon [size]=\"'16'\" [name]=\"icon!\" [color]=\"'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ index + 1 }}\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #lastStep>\n <img *ngIf=\"hasLastStepDefaultIcon; else stepIcon\"\n [alt]=\"'step-finish-image'\"\n [width]=\"24\"\n [height]=\"24\"\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\n >\n\n <ng-template #stepIcon>\n <div class=\"icon\">\n <ui-icon *ngIf=\"icon; else stepIndex\" [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n <ng-template #stepIndex>\n {{ index + 1 }}\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n <span class=\"label\">{{ label }}</span>\n </div>\n </div>\n</ng-template>\n","export type RadialProgressSize = 'large' | 'small';\n\nexport enum RadialProgressSizeValue {\n LARGE = 64,\n SMALL = 40,\n}\n\nexport enum RadialProgressSizeEnum {\n LARGE = 'large',\n SMALL = 'small',\n}\n\nexport type RadialProgressVariant = 'number' | 'icon-button';\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output, SimpleChanges\n} from '@angular/core';\nimport {\n RadialProgressSize,\n RadialProgressSizeEnum,\n RadialProgressSizeValue,\n RadialProgressVariant\n} from './radial-progress.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-radial-progress',\n templateUrl: './radial-progress.component.html',\n styleUrls: ['./radial-progress.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadialProgressComponent {\n /**\n * The size of the component. Defaults to 'small'.\n * @type {RadialProgressSize}\n * @memberof RadialProgressComponent\n */\n @Input() size: RadialProgressSize = RadialProgressSizeEnum.SMALL;\n /**\n * The current value of the progress. Defaults to 0.\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() value = 0;\n /**\n * The value of the total progress. Used to set the cap and used for percentage calculations. Defaults to 0.\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() total = 0;\n\n /**\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() variant: RadialProgressVariant = 'number';\n\n /**\n * Icon for icon button\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * The tooltip that is displayed on hover. Required for icon-button\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() buttonTooltip = '';\n\n /**\n * Color of the progress bar.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof RadialProgressComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() buttonClicked = new EventEmitter<Event>();\n\n protected radialProgressSize = RadialProgressSizeEnum;\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 ngOnChanges(changes: SimpleChanges): void {\n if (!changes['companyColor']) {\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n }\n\n protected get progressSize(): number {\n return this.size === RadialProgressSizeEnum.SMALL ? RadialProgressSizeValue.SMALL : RadialProgressSizeValue.LARGE;\n }\n\n protected get percentage(): number {\n return Math.round(this.total ? (this.value * 100) / this.total : 0);\n }\n\n protected onButtonClick(ev: Event): void {\n this.buttonClicked.emit(ev);\n }\n}\n","<div\n class=\"radial-progress-container\"\n [attr.theme]=\"applicationTheme\"\n [style.width]=\"progressSize + 'px'\"\n [style.height]=\"progressSize + 'px'\"\n>\n <div class=\"background\"></div>\n\n <mat-progress-spinner [strokeWidth]=\"8\" [diameter]=\"progressSize\" [value]=\"percentage\"></mat-progress-spinner>\n\n <div class=\"inner-container\">\n <ng-container *ngIf=\"variant === 'icon-button' && size !== 'small'; else number\">\n <ui-button\n [tooltip]=\"buttonTooltip\"\n [iconName]=\"icon\"\n [variant]=\"'icon-button'\"\n (click)=\"onButtonClick($event)\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-button>\n </ng-container>\n\n <ng-template #number>\n <div *ngIf=\"size === radialProgressSize.LARGE\">{{ percentage }}%</div>\n </ng-template>\n </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input, OnChanges } from '@angular/core';\nimport { StepperPosition } from \"../components/stepper/stepper.model\";\n\nconst MARGINS = 36;\nconst PADDING = 16;\n\n/**\n * Directive is used to draw lines between steps\n */\n@Directive({\n selector: '[stepLineElement]',\n})\nexport class StepLineElementDirective implements OnChanges {\n @Input() stepLineElement: HTMLElement;\n @Input() position: StepperPosition = 'horizontal';\n\n @HostListener('window:resize.out-zone', ['$event'])\n resize(): void {\n this.setSize();\n }\n\n constructor(private el: ElementRef) {}\n\n setSize(): void {\n if (this.position === 'horizontal') {\n this.el.nativeElement.style.width = `calc(100% + ${this.stepLineElement.getBoundingClientRect().width / 2 - PADDING}px)`;\n this.el.nativeElement.style.height = `0`;\n this.el.nativeElement.style.top = '45px';\n this.el.nativeElement.style.left = `-${this.stepLineElement.getBoundingClientRect().width / 2 - MARGINS}px`;\n } else {\n this.el.nativeElement.style.height = `calc(100% + ${this.stepLineElement.getBoundingClientRect().height / 2 - PADDING}px)`;\n this.el.nativeElement.style.width = '0';\n this.el.nativeElement.style.top = `-${this.stepLineElement.getBoundingClientRect().height / 2 - 30}px`;\n this.el.nativeElement.style.left = '34px';\n }\n }\n\n ngOnChanges(): void {\n queueMicrotask(() => {\n this.setSize();\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport { Step, StepperPosition } from './stepper.model';\nimport { Observable } from 'rxjs';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepperComponent {\n /**\n *\n * Auto selects first step as visited\n * Defaults to true\n *\n * @memberof StepperComponent\n */\n @Input() firstStepAutoSelect = true;\n /**\n * Input property to set the steps for the stepper.\n * The first step will be marked as visited automatically.\n *\n * @memberof StepperComponent\n */\n @Input() set steps(itemSteps: Step[]) {\n this.itemSteps = itemSteps;\n if (itemSteps.length && this.firstStepAutoSelect) {\n const [first, ...other] = itemSteps;\n first.isVisited = true;\n this.itemSteps = [first, ...other];\n }\n\n }\n\n /**\n * Input property to set the selected index of the stepper.\n * Default value is 0.\n *\n * @memberof StepperComponent\n */\n @Input() selectedIndex = 0;\n\n /**\n * Input property indicating whether the final icon should be displayed.\n * Default value is false.\n *\n * @memberof StepperComponent\n */\n @Input() lastStepFinalIcon = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof StepperComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepperComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepperComponent\n */\n @Input() position: StepperPosition = 'horizontal';\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof StepperComponent\n */\n @Input() ariaRequired = false;\n\n @Output() selectionChange = new EventEmitter<{ selectedIndex: number; previousIndex: number; step: Step }>();\n\n private isOpened = false;\n protected itemSteps: Step[] = [];\n protected progressValue = 0;\n protected translationContext = 'STEPPER.';\n\n get isOpen(): boolean {\n return this.isOpened;\n }\n\n set isOpen(value: boolean) {\n this.isOpened = value;\n }\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected onSelect(changedIndex: number, step: Step): void {\n if (!step.isVisited && this.selectedIndex !== changedIndex) {\n step.isVisited = true;\n }\n this.selectionChange.emit({ selectedIndex: changedIndex, previousIndex: this.selectedIndex, step });\n\n this.selectedIndex = changedIndex;\n this.onCloseStepList();\n }\n\n protected showStepsToggle(): void {\n this.isOpen = !this.isOpen;\n }\n\n protected onCloseStepList(): void {\n this.isOpen = false;\n }\n}\n","<ng-container>\n <div class=\"stepper-wrapper\" [ngClass]=\"position\" [attr.theme]=\"applicationTheme\" *ngIf=\"(position === 'horizontal' && !(isMobile$ | async)) || (position === 'vertical'); else mobile\">\n <ng-container *ngFor=\"let step of itemSteps; index as i, last as isLast\">\n <div class=\"step\" #stepElement>\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [prevStepIsVisited]=\"itemSteps[i - 1]?.isVisited && step.isVisited\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n [htmlDescription]=\"step.htmlDescription ?? []\"\n [boldLabel]=\"!!step.boldLabel\"\n [position]=\"position\"\n [descriptionTpl]=\"step.descriptionTpl\"\n [labelTooltip]=\"step.labelTooltip\"\n [alwaysShowIcon]=\"!!step.alwaysShowIcon\"\n [context]=\"step.context\"\n ></ui-step>\n </div>\n <div *ngIf=\"!isLast\" class=\"separator-line\" [ngClass]=\"{ visited: step.isVisited && !!this.itemSteps[i + 1]?.isVisited }\">\n <div [stepLineElement]=\"stepElement\" [position]=\"position\" class=\"line\"></div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #mobile>\n <div class=\"mobile-stepper-wrapper\">\n <div class=\"stepper\">\n <div class=\"progress-step\">\n <ui-radial-progress [applicationTheme]=\"applicationTheme\" [value]=\"selectedIndex + 1\" [total]=\"itemSteps.length\"></ui-radial-progress>\n </div>\n\n <div class=\"step-info\">\n <div class=\"current-step\">\n <span>{{ selectedIndex + 1 }}/{{ itemSteps.length }} </span>\n <span>{{ itemSteps[selectedIndex].label }}</span>\n </div>\n <div class=\"next-step\">\n <span *ngIf=\"itemSteps.length !== selectedIndex + 1 else finalStep\">{{ (('COMMON.NEXT') | uiTranslate : language) + ':'}} {{ itemSteps[selectedIndex + 1].label }}</span>\n <ng-template #finalStep>\n <span>{{ (translationContext + 'FINAL_STEP') | uiTranslate : language }}</span>\n </ng-template>\n </div>\n </div>\n\n <div class=\"open-steps\" (click)=\"showStepsToggle()\" [ngClass]=\"{ opened: isOpen }\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [size]=\"'24'\" [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"></ui-icon>\n </div>\n </div>\n\n <div *ngIf=\"isOpen\">\n <div class=\"step-list\">\n <div class=\"step\" *ngFor=\"let step of itemSteps; index as i, last as isLast\">\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? ( i > selectedIndex + 1 && !step.isVisited)\"\n [mobileMode]=\"true\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n ></ui-step>\n </div>\n </div>\n <div class=\"overlay\" (click)=\"onCloseStepList()\"></div>\n </div>\n </div>\n </ng-template>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepComponent } from './step.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [StepComponent],\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\n exports: [StepComponent],\n})\nexport class StepComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadialProgressComponent } from './radial-progress.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ButtonComponentModule } from '../button/button.component.module';\n\n@NgModule({\n declarations: [RadialProgressComponent],\n exports: [RadialProgressComponent],\n imports: [CommonModule, MatProgressSpinnerModule, ButtonComponentModule],\n})\nexport class RadialProgressComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { StepComponentModule } from '../step/step.component.module';\nimport { StepLineElementDirective } from '../../directives/step-line-element.directive';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RadialProgressComponentModule } from '../radial-progress/radial-progress.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [StepperComponent, StepLineElementDirective],\n imports: [\n CommonModule,\n IconComponentModule,\n StepComponentModule,\n MatProgressSpinnerModule,\n RadialProgressComponentModule,\n UiTranslatePipe,\n MatInputModule,\n ],\n exports: [StepperComponent],\n})\nexport class StepperComponentModule {}\n","export class AutocompleteUtils {\n static transformDisplayValue(value: any, textField: string): any {\n return AutocompleteUtils.isPrimitive(value) ? value : value?.[textField];\n }\n\n static filterItems(items: any, inputValue: string, textField?: string): any {\n if (!AutocompleteUtils.isPrimitive(items) && textField) {\n return items.filter((item: any) => item[textField].toLowerCase().includes(inputValue.toLowerCase()));\n } else {\n return items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase()));\n }\n }\n\n static isPrimitive(value: any): boolean {\n if (Array.isArray(value)) {\n return value.some(item => typeof item !== 'object');\n } else {\n return typeof value !== 'object';\n }\n }\n\n static isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n /// NEW\n static throwInvalidSetupError(): void {\n throw new Error(\n `AutocompleteComponent textField/valueField properties are not provided!\\n\n Items list that has non primitive values requires textField & valueField to be passed.`\n );\n }\n\n static excludeSuggestions(items: any[], excludeItems: any[], valueField?: string): any[] {\n if (AutocompleteUtils.isPrimitive(items)) {\n return items?.filter(item => !excludeItems.find(excludeItem => excludeItem === item));\n } else {\n return valueField\n ? items?.filter(item => !excludeItems.find(excludeItem => excludeItem[valueField] === item[valueField]))\n : [];\n }\n }\n\n static shouldBeObject(value: any, textField: string, valueField: string): boolean {\n return !!valueField && !!textField && typeof value !== 'object';\n }\n\n static createValueItem(value: any, textField: string, valueField: string): any {\n return AutocompleteUtils.shouldBeObject(value, textField, valueField)\n ? { [textField]: value, [valueField]: value }\n : value;\n }\n\n static findDuplicate(value: any, selectedValue: any, lookupKey?: string): any {\n if (AutocompleteUtils.isArray(value)) {\n return value.find((v: any) => {\n if (!AutocompleteUtils.isPrimitive(v) && lookupKey) {\n return v[lookupKey] === selectedValue[lookupKey];\n }\n return v === selectedValue;\n });\n } else {\n return value === selectedValue;\n }\n }\n\n static countMatchingWords(words: string[], query: string): number {\n const lowerCaseQuery = query.toLowerCase();\n const matchingWords = words.filter(word => word.toLowerCase().includes(lowerCaseQuery));\n return matchingWords.length;\n }\n}\n","export type AutocompleteType = 'single' | 'multi' | 'large';\n\nexport enum Autocomplete {\n SINGLE = 'single',\n MULTI = 'multi',\n LARGE = 'large',\n}\n\nexport enum Padding {\n AUTOCOMPLETE_CONTAINER = 40,\n DROPDOWN_CONTAINER = 60,\n}\n\nexport const AMOUNT_TAG_WIDTH = 33;\n\nexport enum Timeout {\n VIEW_INITIALIZED_AFTER_ACTION = 150,\n VIEW_INITIALIZED_COMPONENT_LOAD = 600,\n}\n\nexport enum DropdownVariation {\n AUTOCOMPLETE = 'autocomplete',\n DROPDOWN = 'dropdown',\n}\n","import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\n\n/**\n * the SelectTextDirective provides a dynamic way to highlight or style specific text within an element.\n */\n@Directive({\n selector: '[selectText]',\n})\nexport class SelectTextDirective implements OnChanges {\n @Input() selectText: string | null;\n\n constructor(private el: ElementRef) {}\n\n /**\n * this method utilizes setTimeout to defer the execution until the next tick of the event loop.\n * The text content of the element is modified by wrapping occurrences of the specified selectText with a <span> element,\n * applying a bold font-weight style.\n */\n private setTextColor(): void {\n const textElement = this.el.nativeElement as HTMLElement;\n setTimeout(() => {\n const { textContent } = textElement;\n if (this.selectText && textContent) {\n textElement.innerHTML = textContent.replace(\n new RegExp(this.selectText, 'gmi'),\n match => `<span style=\"font-weight: bold\" >${match}</span>`\n );\n } else if (textElement.textContent) {\n textElement.textContent = textContent;\n }\n }, 0);\n }\n\n ngOnChanges(): void {\n this.setTextColor();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\n\n/**\n * the TransformItemPipe is designed to selectively extract and return values from objects based on a specified field,\n * providing a way to transform and display data a template.\n */\n@Pipe({\n name: 'transformItem',\n})\nexport class TransformItemPipe implements PipeTransform {\n transform(value: any, field: string): any {\n if (AutocompleteUtils.isPrimitive(value)) {\n return value;\n } else if (!AutocompleteUtils.isPrimitive(value) && field && (value[field] || value[0][field])) {\n return value[field] || value[0][field];\n } else {\n AutocompleteUtils.throwInvalidSetupError();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * The purpose of this pipe is to determine if the value is present in the values array.\n * If values is an array, the method uses the includes method to check for inclusion.\n * If values is not an array, it checks for strict equality between value and values.\n */\n@Pipe({\n name: 'includes',\n})\nexport class IncludesPipe implements PipeTransform {\n transform(value: any, values: any, valueField?: string): boolean {\n return Array.isArray(values)\n ? !!values?.find(v => (valueField ? v?.[valueField] === value?.[valueField] : value === v))\n : valueField\n ? value?.[valueField] === values?.[valueField]\n : value === values;\n }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges, OnDestroy,\n Optional,\n Output,\n PLATFORM_ID,\n Renderer2,\n Self,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { map, ReplaySubject, startWith } from 'rxjs';\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\nimport {\n AMOUNT_TAG_WIDTH,\n Autocomplete,\n AutocompleteType,\n DropdownVariation,\n Padding,\n Timeout\n} from './autocomplete.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { isPlatformBrowser } from '@angular/common';\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n\n@Component({\n selector: 'ui-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class AutocompleteComponent implements ControlValueAccessor, OnChanges, AfterViewInit, DoCheck, OnDestroy {\n /**\n * @property itemsList\n * @description The list of items to display in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() itemsList: any[] = [];\n\n /**\n * @property suggestionsList\n * @description The list of suggestions to display in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() suggestionsList: any[] = [];\n\n /**\n * @property disabled\n * @description If `true`, the autocomplete is disabled.\n * @memberof AutocompleteComponent\n */\n @Input() disabled = false;\n\n /**\n * @property allowAdd\n * @description If `true`, allows adding new values to the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() allowAdd = true;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() valueField = '';\n\n /**\n * @property label\n * @description The label for the autocomplete input.\n * @memberof AutocompleteComponent\n */\n @Input() label = '';\n\n /**\n * @property value\n * @description The selected value(s) in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() set itemValue(v: any) {\n this.value = AutocompleteUtils.isArray(v) ? v : v ? [v] : [];\n }\n\n /**\n * @property type\n * @description The type of the autocomplete ('single', 'multi', etc.).\n * @memberof AutocompleteComponent\n */\n @Input() type: AutocompleteType = 'multi';\n\n /**\n * @property minCharactersSearch\n * @description The minimum characters to trigger search.\n * @memberof AutocompleteComponent\n */\n @Input() minCharactersSearch = 3;\n\n /**\n * @property variant\n * @description The variant of Autocomplete\n * @memberof AutocompleteComponent\n */\n @Input({ required: true }) variant = DropdownVariation.AUTOCOMPLETE;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof AutocompleteComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Return full object if true\n * @property valuePrimitive\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() valuePrimitive = false;\n\n /**\n * Indicator of the autocomplete width\n * @property fullWidth\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @HostBinding('class.full-width')\n @Input() fullWidth = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof AutocompleteComponent\n */\n @HostBinding('attr.theme')\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Autocomplete is required or not\n *\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() required: boolean;\n\n /**\n * Input field errors\n *\n * @type {string[]}\n * @memberof AutocompleteComponent\n */\n @Input() set errors(errors: string[]) {\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n }\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof AutocompleteComponent\n */\n @Input() companyColor: string | null = '#FFF2FC';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof AutocompleteComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof AutocompleteComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Sets dropdown list to virtual scroll mode\n *\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input({ transform: booleanAttribute }) virtualScroll = false;\n\n /**\n * @property compareWith\n * @description Custom comparison logic for the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() compareWith: (a: any, b: any) => boolean;\n\n /**\n * @property dropdownPanelClass\n * @description Sets class on autocomplete dropdown\n * @memberof AutocompleteComponent\n */\n @Input() dropdownPanelClass = '';\n\n /**\n * @property closeOnScroll\n * @description Defines if dropdown should be closed on page scroll\n * @memberof AutocompleteComponent\n */\n @Input() closeOnScroll = false;\n\n @Output() selectionChange = new EventEmitter<any>();\n @Output() searchTextChange = new EventEmitter<string>();\n\n @ViewChild('formField') formFieldElement: ElementRef<HTMLElement>;\n @ViewChild('tagContainer') tagContainer: ElementRef<HTMLElement>;\n @ViewChild('trigger') autocomplete: MatAutocompleteTrigger;\n @ViewChild(CdkVirtualScrollViewport, { static: false }) cdkVirtualScrollViewPort: CdkVirtualScrollViewport;\n @ViewChild('autocomplete') matAutocomplete: MatAutocomplete;\n protected safeErrors: SafeHtml[] = [];\n protected value: any;\n protected inputValue: any = '';\n protected isInputFocus = false;\n protected autocompleteType = Autocomplete;\n protected isOverLapping = false;\n protected isOverlapChecking = true;\n protected overlapIndex = 0;\n protected inputOpacity = 1;\n protected inputValueSearch$ = new ReplaySubject<string>(1);\n protected userInput$ = new ReplaySubject<string>(1);\n protected filteredItemsList$ = this.inputValueSearch$.pipe(\n startWith(''),\n map(inputValue =>\n inputValue.length ? AutocompleteUtils.filterItems(this.itemsList, inputValue, this.textField) : null\n )\n );\n protected filteredSuggestionList$ = this.inputValueSearch$.pipe(\n map(inputValue =>\n inputValue.length ? AutocompleteUtils.filterItems(this.suggestionsList, inputValue, this.textField) : null\n )\n );\n\n scrollEvent = (event: any): void => {\n const isNotAutocompleteScroll =\n !event.target?.id?.includes('mat-autocomplete-') &&\n !event.target?.parentElement?.id?.includes('mat-autocomplete-') &&\n !event.target?.classList?.contains('mat-mdc-autocomplete-trigger');\n\n if (this.autocomplete.panelOpen && isNotAutocompleteScroll) {\n this.autocomplete.closePanel();\n }\n };\n\n protected searchResult$ = this.inputValueSearch$.pipe(map(inputValue => !!inputValue.trim()));\n protected translationContext = 'AUTOCOMPLETE.';\n protected readonly AutocompleteUtils = AutocompleteUtils;\n private readonly isPlatform = isPlatformBrowser(this.platformId);\n private observer: MutationObserver;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n private readonly domSanitizer: DomSanitizer,\n @Optional() @Self() public ngControl: NgControl,\n private renderer2: Renderer2,\n @Inject(PLATFORM_ID) private platformId: any,\n private el: ElementRef\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n this.subscriberDisplayChange();\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(changes: SimpleChanges): void {\n this.itemsList = AutocompleteUtils.excludeSuggestions(this.itemsList, this.suggestionsList, this.valueField);\n this.initValue();\n\n if (this.isPlatform && changes['companyColor']) {\n this.setCompanyColorVariable();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngAfterViewInit(): void {\n if (this.type !== Autocomplete.LARGE) {\n this.checkOverlap(Timeout.VIEW_INITIALIZED_COMPONENT_LOAD, true);\n }\n this.isPlatform && this.setCompanyColorVariable();\n if (this.closeOnScroll) {\n window.addEventListener('scroll', this.scrollEvent, true);\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnDestroy(): void {\n window.removeEventListener('scroll', this.scrollEvent, true);\n\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n onChange = (_: any) => {\n };\n onTouch = () => {\n };\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: any): void {\n if (this.valuePrimitive && this.textField && this.valueField) {\n if (this.type === Autocomplete.SINGLE) {\n this.value = this.itemsList.find(item => item[this.valueField] === value);\n } else {\n this.value = [this.itemsList.find(item => item[this.valueField] === value)];\n }\n } else {\n this.value = value;\n }\n this.initValue();\n this.cdr.markForCheck();\n }\n\n protected onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const inputValue = event.option.value;\n const itemValue = AutocompleteUtils.createValueItem(inputValue, this.textField, this.valueField);\n this.addNewValue(itemValue);\n\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n\n queueMicrotask(() => {\n if (this.type !== this.autocompleteType.SINGLE) {\n this.inputValue = '';\n } else {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\n }\n this.cdr.markForCheck();\n });\n\n this.onUpdate();\n }\n\n protected onOptionRemoved(option: any): void {\n setTimeout(() => this.autocomplete.closePanel(), 0);\n const foundValue = this.value.find((v: any) => this.compareWith ? this.compareWith(v, option) : v === option);\n\n if (foundValue) {\n this.value = this.value.filter((v: any) => this.compareWith ? !this.compareWith(v, option) : v !== option);\n }\n\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n\n if (!this.value.length) {\n this.inputValue = '';\n }\n\n this.onUpdate();\n }\n\n protected onInputChange(event: Event): void {\n const inputValue = (event.target as HTMLInputElement).value;\n this.userInput$.next(inputValue);\n if (inputValue.length >= this.minCharactersSearch) {\n this.inputValueSearch$.next(inputValue);\n this.searchTextChange.emit(inputValue);\n const findValue = [...this.suggestionsList, ...this.itemsList].find(v => inputValue === (this.textField ? v[this.textField] : v));\n const count = AutocompleteUtils.countMatchingWords([...this.suggestionsList, ...this.itemsList], this.inputValue);\n if (findValue && !count) {\n this.onOptionSelected({ option: { value: findValue } } as MatAutocompleteSelectedEvent);\n }\n } else {\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n }\n }\n\n protected onClear(): void {\n this.inputValue = '';\n this.value = AutocompleteUtils.isArray(this.value) ? [] : '';\n this.isOverLapping = false;\n this.overlapIndex = 0;\n this.onUpdate();\n this.matAutocomplete?.options.forEach(option => option.deselect());\n this.onTouch();\n }\n\n protected refillInput(): void {\n setTimeout(() => {\n if (this.value && this.type === this.autocompleteType.SINGLE && !this.inputValue) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\n } else if (!this.inputValue && this.value?.length) {\n this.inputValue = ' ';\n } else if (this.inputValue && this.type === Autocomplete.SINGLE && this.value && Object.keys(this.value).length) {\n this.inputValue = AutocompleteUtils.transformDisplayValue((AutocompleteUtils.isArray(this.value)\n ? this.value[0]\n : this.value),\n this.textField);\n } else if (this.inputValue) {\n this.inputValue = ' ';\n }\n\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n this.isInputFocus = false;\n this.onTouch();\n }, 0);\n }\n\n protected gotoUp() {\n if (this.cdkVirtualScrollViewPort) {\n this.cdkVirtualScrollViewPort.scrollToIndex(0);\n this.cdkVirtualScrollViewPort.checkViewportSize();\n }\n }\n\n protected onFocus(): void {\n this.isInputFocus = true;\n\n const inputValue = AutocompleteUtils.isArray(this.inputValue) ? this.inputValue[0] : this.inputValue;\n\n if (AutocompleteUtils.isPrimitive(inputValue)) {\n if (typeof inputValue !== 'number' && inputValue?.match(/^\\s+/gm)) {\n this.inputValue = inputValue.trimStart();\n }\n } else {\n if (inputValue[this.textField]?.match(/^\\s+/gm)) {\n this.inputValue = inputValue[this.textField].trimStart();\n }\n }\n }\n\n private checkOverlap(delay = Timeout.VIEW_INITIALIZED_AFTER_ACTION, init = false): void {\n this.isOverLapping = false;\n this.isOverlapChecking = true;\n this.inputOpacity = 0;\n\n setTimeout(() => {\n const inputWidth = this.inputWidth;\n const tags = this.tagContainer?.nativeElement.querySelectorAll('.value-tag');\n if (tags) {\n let width = 0;\n let firstTagWidth = 0;\n\n tags.forEach((tag: any, index: number) => {\n width += tag.getBoundingClientRect().width;\n\n if (!index) {\n firstTagWidth = width;\n }\n\n if (!this.isOverLapping && width > inputWidth) {\n this.isOverLapping = true;\n this.overlapIndex = index;\n }\n\n if ((firstTagWidth + AMOUNT_TAG_WIDTH) > inputWidth) {\n this.overlapIndex = 0;\n }\n });\n this.isOverlapChecking = false;\n if (init) {\n if (this.type === this.autocompleteType.SINGLE) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\n } else if (this.value?.length) {\n this.inputValue = ' ';\n }\n }\n this.cdr.markForCheck();\n }\n this.inputOpacity = 1;\n }, delay);\n }\n\n private onUpdate(): void {\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n if (!this.valuePrimitive) {\n this.onChange(this.value);\n } else {\n if (this.type === Autocomplete.SINGLE) {\n this.onChange(this.value[this.valueField]);\n } else {\n this.onChange(this.value.map((v: any) => v[this.valueField]));\n }\n }\n this.selectionChange.emit(this.value);\n }\n\n private initValue(): void {\n if (this.type === this.autocompleteType.SINGLE && this.variant !== DropdownVariation.DROPDOWN) {\n if (AutocompleteUtils.isArray(this.value)) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\n } else {\n this.inputValue = this.value ? AutocompleteUtils.transformDisplayValue(this.value, this.textField) : '';\n }\n } else if (this.variant === DropdownVariation.DROPDOWN) {\n this.inputValue = AutocompleteUtils.isArray(this.value) && !this.value?.length\n ? ''\n : this.type === Autocomplete.SINGLE\n ? AutocompleteUtils.transformDisplayValue((AutocompleteUtils.isArray(this.value)\n ? this.value[0]\n : this.value),\n this.textField)\n : ' ';\n } else {\n this.inputValue = this.value && this.value.length ? ' ' : '';\n }\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n }\n\n private addNewValue(newValue: any): void {\n if (this.type !== this.autocompleteType.SINGLE && !this.value) {\n this.value = [];\n }\n\n const foundDuplicate = this.compareWith\n ? this.value.find((v: any) => this.compareWith(v, newValue))\n : AutocompleteUtils.findDuplicate(this.value, newValue, this.textField);\n\n if (this.type !== this.autocompleteType.SINGLE) {\n this.value = foundDuplicate ?\n (this.value.filter((v: any) => this.compareWith\n ? !this.compareWith(v, foundDuplicate)\n : v !== foundDuplicate))\n : [...this.value, newValue];\n } else {\n this.value = newValue;\n }\n }\n\n protected get isDropdown(): boolean {\n return this.variant === DropdownVariation.DROPDOWN;\n }\n\n protected onChevronClick(autocomplete: MatAutocomplete): void {\n if (autocomplete.isOpen) {\n setTimeout(() => {\n this.autocomplete.closePanel();\n }, 0);\n }\n }\n\n protected get inputWidth(): number {\n return (\n this.formFieldElement?.nativeElement.getBoundingClientRect().width -\n (this.isDropdown ? Padding.DROPDOWN_CONTAINER : Padding.AUTOCOMPLETE_CONTAINER)\n );\n }\n\n protected trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n\n /**\n * Adding company color variable to the body to style overlay container that's out of the component scope.\n */\n private setCompanyColorVariable(): void {\n this.renderer2.setProperty(document.body, 'style', `--ui-autocomplete-option-color: ${this.companyColor};`);\n }\n\n private subscriberDisplayChange(): void {\n const autocompleteHostElement = this.el.nativeElement;\n\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'style') {\n const displayStyle = getComputedStyle(autocompleteHostElement).display;\n if (displayStyle !== 'none') {\n this.checkOverlap();\n }\n }\n });\n });\n\n this.observer.observe(autocompleteHostElement, {\n attributes: true,\n attributeFilter: ['style'],\n });\n }\n}\n","<ng-container>\n <div class=\"autocomplete-wrapper\" [ngClass]=\"{ 'full-width': fullWidth, disabled: disabled }\">\n <mat-form-field\n [color]=\"(safeErrors.length || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [appearance]=\"'outline'\"\n [ngClass]=\"{ 'large-size': type === autocompleteType.LARGE, 'hide-bottom-content': !showBottomContent }\"\n >\n <mat-label *ngIf=\"label\">{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <div #formField class=\"input-container\">\n <div\n class=\"selected-items\"\n #tagContainer\n *ngIf=\"\n (type === autocompleteType.LARGE && this.value) ||\n (!(inputValue && this.isInputFocus) && this.value && type !== autocompleteType.SINGLE)\n \"\n >\n <ui-tag\n class=\"value-tag\"\n [id]=\"'ui-tag-' + i\"\n *ngFor=\"let valueItem of value; let i = index\"\n [label]=\"valueItem | transformItem: textField\"\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\n [allowClose]=\"true\"\n [applicationTheme]=\"applicationTheme\"\n [style.display]=\"isOverLapping && i >= overlapIndex ? 'none' : 'block'\"\n [ngClass]=\"{\n 'overlap-tag': isOverlapChecking && overlapIndex && i >= overlapIndex && type === autocompleteType.MULTI\n }\"\n (close)=\"onOptionRemoved(valueItem)\"\n ></ui-tag>\n <ng-container *ngIf=\"isOverLapping\">\n <div *ngIf=\"!overlapIndex; else overlapTag\" class=\"overlap-count\">\n {{ (translationContext + 'SELECTED_AMOUNT') | uiTranslate : language : { numberSelected: (value | slice: overlapIndex).length } }}\n </div>\n <ng-template #overlapTag>\n <ui-tag [applicationTheme]=\"applicationTheme\" [readOnly]=\"true\" [label]=\"'+' + (value | slice: overlapIndex).length\"></ui-tag>\n </ng-template>\n </ng-container>\n </div>\n <input\n #trigger=\"matAutocompleteTrigger\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'unset-margin': this.value && type === autocompleteType.LARGE }\"\n (blur)=\"refillInput()\"\n (focusin)=\"onFocus()\"\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\n matInput\n [type]=\"'text'\"\n [matAutocomplete]=\"autocomplete\"\n (input)=\"onInputChange($event)\"\n [(ngModel)]=\"inputValue\"\n />\n </div>\n\n <ui-icon\n *ngIf=\"value && ((AutocompleteUtils.isPrimitive(value) && value.length) || (!AutocompleteUtils.isPrimitive(value) && (AutocompleteUtils.isArray(value) && value.length || !AutocompleteUtils.isArray(value) && !value.length)))\"\n class=\"remove-selected\"\n [ngClass]=\"{ 'large-input-icon': type === autocompleteType.LARGE }\"\n (click)=\"onClear();$event.preventDefault();$event.stopPropagation()\"\n [size]=\"'24'\"\n [color]=\"applicationTheme === 'classic' ? 'inherit' : 'rebrand-black'\"\n [name]=\"applicationTheme === 'classic' ? 'Close' : 'Close-in-line'\"\n ></ui-icon>\n\n <ui-icon\n class=\"arrow-state\"\n [ngClass]=\"{ opened: autocomplete.isOpen, 'large-input-icon': type === autocompleteType.LARGE }\"\n *ngIf=\"isDropdown\"\n [size]=\"'24'\"\n [name]=\"applicationTheme !== 'classic' ? 'Arrow-chevron-down-in-line' : 'Arrow_down'\"\n (click)=\"onChevronClick(autocomplete)\"\n ></ui-icon>\n\n <mat-autocomplete\n #autocomplete\n [class]=\"applicationTheme + ' ' + dropdownPanelClass\"\n (optionSelected)=\"onOptionSelected($event)\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [hideSingleSelectionIndicator]=\"false\"\n (opened)=\"gotoUp()\"\n >\n <ng-container *ngIf=\"!(searchResult$ | async)\">\n <ng-container *ngIf=\"!isDropdown; else dropdownList\">\n <mat-optgroup [label]=\"(translationContext + 'SUGGESTED') | uiTranslate : language | uppercase\" *ngIf=\"suggestionsList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': suggested | includes: value : valueField }\"\n *ngFor=\"let suggested of suggestionsList\"\n [value]=\"suggested\"\n >\n <span [selectText]=\"userInput$ | async\">{{ suggested | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <mat-optgroup [label]=\"(translationContext + 'SELECTED') | uiTranslate : language | uppercase\" *ngIf=\"value?.length && type !== autocompleteType.SINGLE\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of value\"\n [value]=\"item\"\n >\n <span>{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <mat-optgroup [label]=\"(translationContext + 'SELECTED') | uiTranslate : language | uppercase\" *ngIf=\"value?.length && type === autocompleteType.SINGLE\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [class]=\"'selected-option'\"\n [value]=\"value\"\n >\n <span [selectText]=\"userInput$ | async\">{{ value | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n </ng-container>\n\n <ng-template #dropdownList>\n <cdk-virtual-scroll-viewport *ngIf=\"virtualScroll; else defaultViewPort\" [itemSize]=\"48\" [style.height]=\"'200px'\" class=\"virtual-scroll\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *cdkVirtualFor=\"let item of itemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </cdk-virtual-scroll-viewport>\n\n <ng-template #defaultViewPort>\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of itemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </ng-template>\n\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"filteredSuggestionList$ | async as filteredSuggestionList\">\n <ng-container *ngIf=\"filteredItemsList$ | async as filteredItemsList\">\n <mat-optgroup [label]=\"(translationContext + 'SUGGESTED') | uiTranslate : language | uppercase\" *ngIf=\"filteredSuggestionList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredSuggestionList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <ng-container *ngIf=\"!filteredSuggestionList.length; else showItemListWithGroup\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredItemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </ng-container>\n\n <ng-template #showItemListWithGroup>\n <mat-optgroup [label]=\"(translationContext + 'ALL_ITEMS') | uiTranslate : language | uppercase\" *ngIf=\"filteredItemsList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredItemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n\n <ng-container *ngIf=\"!filteredItemsList.length && !filteredSuggestionList.length && inputValue\">\n <ng-container *ngIf=\"allowAdd; else notFound\">\n <mat-option (mousedown)=$event.preventDefault() [value]=\"inputValue\">\n <span>{{ ('COMMON.ADD') | uiTranslate : language }}</span>\n <span class=\"add-suggestion\">\"{{ inputValue }}\"</span>\n </mat-option>\n </ng-container>\n\n <ng-template #notFound>\n <mat-option [style.pointer-events]=\"'none'\">\n <span>{{ (translationContext + 'NO_RESULTS_FOUND') | uiTranslate : language }}</span>\n </mat-option>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n <mat-hint class=\"error\" *ngIf=\"safeErrors.length || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"safeErrors.length\">\n <div class=\"errors\" *ngFor=\"let error of safeErrors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n\n </mat-hint>\n </mat-form-field>\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\nimport { TagComponentModule } from '../tag/tag.component.module';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { TransformItemPipe } from './transform-Item.pipe';\nimport { IncludesPipe } from './includes.pipe';\nimport { SelectTextDirective } from '../../directives/select-text.directive';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n@NgModule({\n declarations: [AutocompleteComponent, TransformItemPipe, IncludesPipe, SelectTextDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatAutocompleteModule,\n MatInputModule,\n FormsModule,\n TagComponentModule,\n MatChipsModule,\n IconComponentModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n ],\n exports: [AutocompleteComponent],\n providers: [TransformItemPipe, IncludesPipe, SelectTextDirective],\n})\nexport class AutocompleteComponentModule {}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { ButtonVariant, EmptyStateVariant, IllustrationVariant } from './empty-state.model';\n\n@Component({\n selector: 'ui-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n})\nexport class EmptyStateComponent {\n /**\n * @description If the default image should be displayed.\n * @type {boolean}\n * @memberof EmptyStateComponent\n */\n @Input() showIllustration = false;\n /**\n * @description If the default image should be displayed.\n * @type {IllustrationVariant}\n * @memberof EmptyStateComponent\n */\n @Input() illustrationVariant: IllustrationVariant = 'Empty-search';\n /**\n * @description The icon to be displayed in the empty state.\n * @type {IconName}\n * @memberof EmptyStateComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * @description The empty state variant.\n * @type {EmptyStateVariant}\n * @memberof EmptyStateComponent\n */\n @Input() emptyStateVariant: EmptyStateVariant = 'desktop';\n\n /**\n * @description The title of the empty state.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() title = '';\n\n /**\n * @description The body text or description of the empty state.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() bodyText = '';\n\n /**\n * @description Displays primary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() primaryButtonText = '';\n\n /**\n * Primary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() primaryButtonVariant: ButtonVariant = 'pink';\n\n /**\n * @description Displays secondary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() secondaryButtonText = '';\n\n /**\n * Secondary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() secondaryButtonVariant: ButtonVariant = 'black';\n\n /**\n * @description Displays tertiary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() tertiaryButtonText = '';\n\n /**\n * Tertiary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() tertiaryButtonVariant: ButtonVariant = 'ghost';\n\n /**\n * The language to be used\n * @type {Language}\n * @memberof EmptyStateComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof EmptyStateComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Event triggered when the primary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() primaryButtonClick = new EventEmitter<Event>();\n\n /**\n * Event triggered when the secondary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() secondaryButtonClick = new EventEmitter<Event>();\n\n /**\n * Event triggered when the tertiary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() tertiaryButtonClick = new EventEmitter<Event>();\n\n buttonApplicationTheme: ApplicationTheme;\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 ngOnInit() {\n if (this.applicationTheme !== 'classic') {\n this.buttonApplicationTheme = this.applicationTheme;\n }\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClick.emit(event);\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClick.emit(event);\n }\n\n onTertiaryButtonClick(event: Event): void {\n this.tertiaryButtonClick.emit(event);\n }\n\n getVariant(variant: ButtonVariant) {\n if (variant === 'pink') {\n return 'primary';\n } else if (variant === 'black') {\n this.buttonApplicationTheme = 'light';\n return 'secondary';\n } else {\n this.buttonApplicationTheme = 'light';\n return 'ghost';\n }\n }\n}\n","<ng-container>\n <div class=\"empty-state-container\" [attr.theme]=\"applicationTheme\" [class.mobile]=\"emptyStateVariant === 'mobile'\">\n\n <div class=\"illustration\" *ngIf=\"showIllustration\">\n <img *ngIf=\"applicationTheme === 'classic'\" [attr.src]=\"'/images/empty-state-default.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\n <img *ngIf=\"applicationTheme !== 'classic'\" [attr.src]=\"'/icons/rebrand/'+illustrationVariant+'-in-line.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\n </div>\n\n <div class=\"icon\" *ngIf=\"icon\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"icon\" size=\"40\"></ui-icon>\n </div>\n\n <div class=\"text-content\">\n <div class=\"title\">{{ title ? title : ('COMMON.NO_RESULTS') | uiTranslate : language }}</div>\n <div class=\"body-text\" *ngIf=\"bodyText\">{{ bodyText }}</div>\n </div>\n\n <div class=\"actions\">\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"primaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(primaryButtonVariant) : 'primary'\" [label]=\"primaryButtonText\" (buttonClickEvent)=\"onPrimaryButtonClick($event)\"></ui-button>\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"secondaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(secondaryButtonVariant) : 'secondary'\" [label]=\"secondaryButtonText\" (buttonClickEvent)=\"onSecondaryButtonClick($event)\"></ui-button>\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"tertiaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(tertiaryButtonVariant) : 'tertiary'\" [label]=\"tertiaryButtonText\" (buttonClickEvent)=\"onTertiaryButtonClick($event)\"></ui-button>\n </div>\n </div>\n</ng-container>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { EmptyStateComponent } from './empty-state.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [EmptyStateComponent],\n imports: [CommonModule, IconComponentModule, NgOptimizedImage, ButtonComponentModule, UiTranslatePipe],\n exports: [EmptyStateComponent],\n})\nexport class EmptyStateComponentModule {}\n","import { TemplateRef, Type } from '@angular/core';\n\nexport interface TableConfig<T = any> {\n columns: TableColumn<T>[];\n pagination?: Pagination;\n title?: string;\n width?: number;\n sort?: Sort;\n hidePagination?: boolean;\n}\n\nexport interface TableConfigWithPagination<T> extends TableConfig<T> {\n pagination: Pagination;\n}\n\nexport interface TableColumn<T = any> {\n title: string;\n key: string;\n widthPerc?: number;\n minWidthPx?: number;\n allowMultiline?: boolean;\n bold?: boolean;\n showTooltip?: boolean;\n tooltip?: string;\n allowSort?: boolean;\n isSticky?: boolean;\n headerCellTemplate?: TemplateRef<any>;\n rowCellTemplate?: TemplateRef<any>;\n rowCellTemplateClick?: () => any;\n sortHeader?: string;\n hidden?: boolean;\n order?: number;\n fontSize?: '12px' | '14px';\n field?: string;\n type?: ColumnType;\n function?: (v: T) => string;\n renderer?: (v: T) => ComponentRenderer | string;\n styles?: ColumnStyles;\n sortStart?: SortDirection;\n}\n\nexport interface Pagination {\n itemsPerPageOptions: number[];\n itemsPerPage: number;\n currentPage: number;\n totalItems: number;\n}\n\nexport type TableData = Record<string, any>[];\n\nexport interface ColumnEllipse {\n index: number;\n showTooltip: boolean;\n}\n\nexport interface Sort {\n active: string;\n direction: SortDirection;\n defaultSortStart?: SortDirection;\n}\n\nexport type SortDirection = 'asc' | 'desc' | '';\n\nexport interface TableDetailColumn<T, TDetail> {\n columnDefs: TableColumn<TDetail>[];\n setDetailRowData: (params: DetailRowDataParams<T, TDetail>) => void;\n}\n\nexport interface DetailRowDataParams<T, TDetail> {\n data: T;\n\n setDetailDataSource(rowData: TDetail[]): void;\n}\n\nexport enum ColumnType {\n FIELD = 'field',\n FUNCTION = 'function',\n RENDERER = 'renderer',\n}\n\nexport interface ComponentRenderer {\n component: Type<any>;\n inputs?: any;\n outputs?: { [key: string]: any };\n}\n\nexport interface ColumnStyles {\n alignment?: ColumnAlignment;\n width?: string;\n 'min-width'?: string;\n padding?: string;\n}\n\nexport enum ColumnAlignment {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n\nexport type DataSource = {\n [key: string]: any;\n};\n\nexport type ScrollSettings = { scrollEnd: boolean, horizontalScroll: boolean, scrollStart: boolean };\n","import { TableColumn } from '../components/table/table.model';\n\n/**\n * Sorting table columns by order value if set.\n * The rest columns keep the same ordering and displayed after the sorted ones.\n */\nexport const sortByOrder = <T>(columns: TableColumn<T>[]): TableColumn<T>[] => {\n const withOrderColumns = columns.filter((v) => v.order);\n const withoutOrderColumns = columns.filter((v) => !v.order)\n\n if (withOrderColumns.length) {\n const sortedColumns = Array(columns.length);\n withOrderColumns.forEach(column => sortedColumns[column.order! - 1] = column);\n withoutOrderColumns.forEach(column => {\n const emptyIndex = sortedColumns.findIndex(v => !v);\n sortedColumns[emptyIndex] = column;\n });\n return sortedColumns;\n }\n\n return columns;\n};\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { NgxSkeletonLoaderConfigTheme, NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { CommonModule } from '@angular/common';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { Appearance } from './skeleton.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n standalone: true,\n imports: [CommonModule, NgxSkeletonLoaderModule],\n})\nexport class SkeletonComponent {\n @Input() count: number | string = '';\n @Input() set theme(value: NgxSkeletonLoaderConfigTheme) {\n this.theme$.next(value ?? {});\n }\n @Input() set appearance(value: Appearance) {\n this.appearance$.next(value ?? 'line');\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SkeletonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 readonly theme$ = new BehaviorSubject<NgxSkeletonLoaderConfigTheme>({});\n protected readonly appearance$ = new BehaviorSubject<Appearance>('line');\n protected readonly currentTheme$ = combineLatest([this.theme$, this.appearance$]).pipe(\n map(([theme, appearance]) => this.getThemeWithDefaultValues(theme, appearance))\n );\n\n private getThemeWithDefaultValues(\n theme: NgxSkeletonLoaderConfigTheme,\n appearance: Appearance\n ): NgxSkeletonLoaderConfigTheme {\n if (theme && appearance === 'circle') {\n return {\n ...theme,\n height: theme['height'] || theme['width'] || '48px',\n width: theme['width'] || theme['height'] || '48px',\n };\n } else if (theme && appearance !== 'circle' && !theme['height']) {\n return {\n ...theme,\n height: '24px',\n };\n } else {\n return theme;\n }\n }\n}\n","<ngx-skeleton-loader\n [count]=\"count\"\n [theme]=\"currentTheme$ | async\"\n [appearance]=\"(appearance$ | async) || 'line'\"\n></ngx-skeleton-loader>\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { MatPaginatorSelectConfig, PageEvent } from '@angular/material/paginator';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent {\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n @Input() pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() pageSize = 25;\n\n /**\n * Disabled\n *\n * @type {boolean}\n * @memberOf PaginatorComponent\n */\n @Input() disabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PaginatorComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the current page\n * @default 0\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() currentPage = 0;\n\n @Output() paginatorChange: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n selectConfig: MatPaginatorSelectConfig = { panelClass: 'ui-dropdown-list' };\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 onPaginatorChange(paginator: PageEvent) {\n this.paginatorChange.emit(paginator);\n }\n}\n","<mat-paginator\n [disabled]=\"disabled\"\n [length]=\"length\"\n [pageIndex]=\"currentPage ? currentPage : 0\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [attr.theme]=\"applicationTheme\"\n [selectConfig]=\"selectConfig\"\n [color]=\"'accent'\"\n (page)=\"onPaginatorChange($event)\"\n></mat-paginator>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * USAGE:\n * {{ argument | memoizeFunc : method [: context] }}\n *\n * You could provide multiple arguments for the function like that:\n * {{ [argument1, argument2] | memoizeFunc : method [: context] }}\n *\n *\n * FUNCTION WITH CONTEXT\n * We still could have optimization in impure functions with Angular pipes. Just provide context as second parameter\n * to the memoizeFunc pipe.\n *\n * {{ argument | memoizeFunc : method : this }}\n *\n * Alternative variant use 'bind'\n *\n * {{ argument | memoizeFunc : method.bind(this) }}\n *\n * */\n@Pipe({\n name: 'memoizeFunc',\n standalone: true,\n})\nexport class MemoizeFuncPipe implements PipeTransform {\n transform<T, K>(value: T, handler: (value: T) => K, context?: any): K {\n if (context) {\n return handler.call(context, value);\n }\n\n return handler(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentencecase',\n})\nexport class SentenceCasePipe implements PipeTransform {\n transform(value: string | undefined): string {\n if (!value) {\n return '';\n }\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {\n ColumnEllipse,\n ColumnType,\n ComponentRenderer,\n DataSource,\n Pagination,\n ScrollSettings,\n TableColumn,\n TableConfig,\n TableConfigWithPagination,\n TableData,\n TableDetailColumn\n} from './table.model';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { sortByOrder } from '../../utils/table.utils';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Sort } from '@angular/material/sort';\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\n\n@Component({\n selector: 'ui-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('expandDetail', [\n state('collapsed, void', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))\n ])\n ]\n})\nexport class TableComponent<T extends DataSource, TDetail extends DataSource> implements OnChanges, AfterViewInit {\n /**\n * Table configuration\n *\n * @type {TableConfig}\n * @memberof TableComponent\n */\n @Input({ required: true }) set config(config: TableConfig<T>) {\n config.pagination = config.pagination ?? this.defaultPaginationConfig;\n\n this.tableConfig = config as TableConfigWithPagination<T>;\n\n this.columnsTooltipState = config.columns.map((column, index) => ({\n index,\n showTooltip: column.showTooltip ?? false\n }));\n this.displayedColumns = sortByOrder<T>(config.columns.filter(column => !column.hidden)).map(column => column.key);\n }\n\n /**\n * Input property for providing the table data.\n *\n * @type {TableData}\n * @memberof TableComponent\n */\n @Input() set data(tableData: TableData) {\n this.tableData = tableData;\n this.sourceData = tableData;\n }\n\n /**\n * Input property indicating whether the table is in a loading state.\n *\n * @type {boolean}\n * @memberof TableComponent\n * @default false\n */\n @Input() loading = false;\n\n /**\n *\n * Defines the application theme\n * @type {ApplicationTheme}\n * @memberof TableComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {TableDetailColumn}\n * @memberof TableComponent\n */\n @Input() tableDetailColumns: TableDetailColumn<T, TDetail>;\n @Input() tableDetails = false;\n\n /**\n * Disable border radius for table\n *\n * @type {boolean}\n * @memberof TableComponent\n */\n @Input() disableBorderRadius = false;\n\n @Output() onRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() onDetailRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() paginatorChange = new EventEmitter<PageEvent>();\n @Output() sortChange = new EventEmitter<Sort>();\n\n @ViewChild('table') table: ElementRef;\n\n protected tableData: TableData;\n protected sourceData: TableData;\n protected columnsTooltipState: ColumnEllipse[] = [];\n protected tableConfig: TableConfigWithPagination<T>;\n protected displayedColumns: string[] = [];\n protected columnsDetailToDisplay: string[] = [];\n protected skeletonStyleConfig = {\n background: '#F6F6F6',\n 'border-radius': '4px',\n height: '24px'\n };\n protected dataSourceDetail = new MatTableDataSource<any>([]);\n protected elementDetail: any;\n protected readonly DataType = ColumnType;\n protected scrollSettings$ = new BehaviorSubject<ScrollSettings>({ scrollEnd: false, horizontalScroll: false, scrollStart: false });\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private destroyRef: DestroyRef,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit() {\n if (this.applicationTheme !== 'classic') {\n this.skeletonStyleConfig.background = '#F4F4F4';\n }\n document.body.setAttribute('theme', this.applicationTheme);\n\n if (this.tableDetailColumns) {\n this.columnsDetailToDisplay = this.tableDetailColumns.columnDefs.map(\n (tableColumn: TableColumn<TDetail>) => tableColumn.title\n );\n }\n }\n\n ngAfterViewInit() {\n this.hasTableScroll();\n fromEvent(this.table.nativeElement, 'scroll')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.hasTableScroll());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableConfig'] && changes['tableConfig'].currentValue) {\n this.onSortChange(changes['tableConfig'].currentValue.sort);\n }\n }\n\n hasTableScroll(): void {\n const table = this.table.nativeElement;\n const horizontalScroll = table.scrollWidth > table.clientWidth;\n const scrollEnd = table.scrollLeft + table.clientWidth >= table.scrollWidth;\n this.scrollSettings$.next({\n scrollStart: !table.scrollLeft,\n scrollEnd,\n horizontalScroll\n });\n }\n\n callRenderer([rendererFn, element]: [(v: T) => ComponentRenderer | string, T]): any {\n if (rendererFn) {\n return rendererFn(element);\n }\n }\n\n protected onPaginatorChange(event: PageEvent): void {\n this.paginatorChange.emit(event);\n }\n\n protected onChangeColumnSize(columnIndex: number, showTooltip: boolean): void {\n this.columnsTooltipState = this.columnsTooltipState.map(column => {\n if (column.index === columnIndex) {\n column.showTooltip = showTooltip;\n }\n return column;\n });\n }\n\n protected onSortChange(sortState: Sort): void {\n this.sortChange.emit(sortState);\n }\n\n protected onRowClick(rowParams: any): void {\n this.onRowClickEvent.emit(rowParams);\n }\n\n protected onDetailRowClick(rowParams: any): void {\n this.onDetailRowClickEvent.emit(rowParams);\n }\n\n protected toggleRow(element: T): void {\n if (this.tableDetails) {\n this.elementDetail = this.elementDetail === element ? null : element;\n if (this.elementDetail) {\n this.tableDetailColumns.setDetailRowData({\n data: element,\n setDetailDataSource: this.setTableDetailDataSource.bind(this)\n });\n }\n }\n }\n\n private setTableDetailDataSource(rowData: TDetail[]): void {\n this.dataSourceDetail = new MatTableDataSource<any>(rowData);\n }\n\n private defaultPaginationConfig: Pagination = {\n currentPage: 0,\n itemsPerPage: 10,\n itemsPerPageOptions: [10, 25, 50],\n totalItems: 20\n };\n\n trackColumnKey = (index: number, column: TableColumn<T>): string => column.key;\n}\n","<div #tableContainer class=\"table-container\"\n [ngClass]=\"{ 'without-title': !tableConfig?.title, 'disable-border-radius': disableBorderRadius }\"\n [attr.theme]=\"applicationTheme\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title | sentencecase }}</div>\n <div\n #table\n *ngIf=\"scrollSettings$ | async as scrollSettings\"\n class=\"table-wrapper\">\n <table\n class=\"main-table\"\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortStart]=\"tableConfig?.sort?.defaultSortStart ?? 'asc'\"\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n multiTemplateDataRows\n >\n\n <ng-container *ngFor=\"let column of tableConfig.columns; index as i, last as isLast; trackBy: trackColumnKey\">\n <ng-container *ngIf=\"isLast && column.isSticky && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"!scrollSettings?.scrollEnd\">\n <th mat-header-cell\n [start]=\"column.sortStart ?? 'asc'\"\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element, rowIndex}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && column.isSticky && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [stickyEnd]=\"scrollSettings.horizontalScroll ? !scrollSettings.scrollEnd : true\">\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isLast && column.isSticky) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\n <th mat-header-cell\n [start]=\"column.sortStart ?? 'asc'\"\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isLast && column.isSticky) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') ?? ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"element-detail\" *ngIf=\"dataSourceDetail.data.length\"\n [@expandDetail]=\"element === elementDetail ? 'expanded' : 'collapsed'\">\n <table\n mat-table\n [dataSource]=\"dataSourceDetail\"\n [ngClass]=\"{ 'hide-borders': element === tableData[tableData.length - 1] }\"\n >\n <ng-container *ngFor=\"let tableColumn of tableDetailColumns.columnDefs\"\n [matColumnDef]=\"tableColumn.title\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" arrowPosition=\"after\"\n [ngStyle]=\"{width: tableColumn.styles?.width}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n {{ tableColumn.title | uppercase }}\n </th>\n\n <td mat-cell *matCellDef=\"let element\" (click)=\"onDetailRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : ''\"\n [ngStyle]=\"{width: tableColumn.styles?.width }\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsDetailToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let rowDetail; columns: columnsDetailToDisplay;\"></tr>\n </table>\n </div>\n </td>\n </ng-container>\n\n <ng-template #tableDataTpl let-element=\"element\" let-tableColumn=\"tableColumn\">\n <div class=\"align-wrapper\">\n <ng-container [ngSwitch]=\"tableColumn.type\">\n <ng-container *ngSwitchCase=\"DataType.FIELD\">\n {{ element | dataPropertyGetter: tableColumn.key }}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.FUNCTION\">\n {{ tableColumn.function?.(element) }}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.RENDERER\">\n <ng-template\n [dynamicComponent]=\"[tableColumn.renderer, element] | memoizeFunc : callRenderer\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ element | dataPropertyGetter: tableColumn.key }}\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"{'expanded-row': elementDetail === row, 'row-clickable': tableDetails, 'selected': row?.selected, 'last-row': row === tableData[tableData.length - 1] && !elementDetail }\"\n (click)=\"toggleRow(row)\">\n </tr>\n <ng-container *ngIf=\"tableDetails && tableDetailColumns?.columnDefs?.length\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\n </ng-container>\n </table>\n </div>\n\n <ui-paginator\n *ngIf=\"!tableConfig?.hidePagination\"\n [disabled]=\"loading\"\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [currentPage]=\"tableConfig.pagination.currentPage\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginatorComponent } from './paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n@NgModule({\n declarations: [PaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [PaginatorComponent],\n})\nexport class PaginatorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableComponent } from './table.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\nimport { PaginatorComponentModule } from '../paginator/paginator.component.module';\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { MatSortModule } from '@angular/material/sort';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SentenceCasePipe } from './sentence-case.pipe';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\nimport { DynamicComponentDirective } from '../deprecated-table/directives/dynamic-component.directive';\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\n\n@NgModule({\n declarations: [TableComponent, SentenceCasePipe],\n imports: [\n CommonModule,\n MatTableModule,\n MatTooltipModule,\n SkeletonComponent,\n PaginatorComponentModule,\n ButtonComponentModule,\n MatSortModule,\n IconComponentModule,\n EllipseTextDirective,\n DynamicComponentDirective,\n DataPropertyGetterPipe,\n MemoizeFuncPipe,\n ],\n exports: [TableComponent],\n})\nexport class TableComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef, Inject,\n Input, Optional,\n Output\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SliderValue, SliderVariant } from './slider.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderComponent {\n /**\n * The maximum value of the slider.\n *\n * @type {number}\n * @default 100\n */\n @Input() max = 100;\n\n /**\n * The minimum value of the slider.\n *\n * @type {number}\n * @default 0\n */\n @Input() min = 0;\n\n /**\n * A flag indicating whether the slider displays values as percentages.\n *\n * @type {boolean}\n * @default true\n */\n @Input() percentage = false;\n\n /**\n * A flag indicating whether the slider is disabled.\n *\n * @type {boolean}\n * @default true\n */\n @Input() disabled = false;\n\n /**\n * The starting value of the slider.\n *\n * @type {number}\n * @default 0\n */\n @Input() sliderStart = 0;\n\n /**\n * The ending value of the slider.\n *\n * @type {number}\n * @default 100\n */\n @Input() sliderEnd = 100;\n\n /**\n * The label for the slider.\n *\n * @type {string}\n * @default ''\n */\n @Input() label = '';\n\n /**\n * Show slider inputs.\n *\n * @type {boolean}\n * @default true\n */\n @Input() showInputs = true;\n\n /**\n * Step number.\n *\n * @type {number}\n * @default 1\n */\n @Input() step = 1;\n\n /**\n * The language to be used\n *\n * @property language\n * @type {Language}\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SliderComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the variant slider\n *\n * @type {SliderVariant}\n * @memberof SliderComponent\n */\n @Input() variant: SliderVariant = 'range';\n\n @Output() sliderValueChange = new EventEmitter<SliderValue>();\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 private value: SliderValue = { start: 0, end: 100 };\n protected translationContext = 'SLIDER.';\n protected touchedControlName = '';\n\n onChange = (_: any): void => {};\n onTouch = (): void => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.sliderStart = value.start;\n this.sliderEnd = value.end;\n }\n\n protected onValueChange(ev?: number): void {\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\n\n if (ev) {\n value.start = ev;\n value.end = 0;\n }\n\n this.value = value;\n this.onChange(value);\n this.sliderValueChange.emit(value);\n }\n\n protected onInputBlur(inputName: string): void {\n this.touchedControlName = inputName;\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\n\n if (!this.hasError && this.isValueChanged(value)) {\n this.onValueChange();\n }\n }\n\n protected onInputFocus(): void {\n this.touchedControlName = '';\n }\n\n private isValueChanged(value: SliderValue): boolean {\n return this.value.start !== value.start || this.value.end !== value.end;\n }\n\n get hasError(): boolean {\n return (\n this.max < +this.sliderEnd ||\n this.min > +this.sliderStart ||\n this.min > +this.sliderEnd ||\n this.max < +this.sliderStart ||\n +this.sliderEnd < +this.sliderStart\n );\n }\n\n get isBasicSlider(): boolean {\n return this.variant === 'basic';\n }\n}\n","<ng-container>\n <div class=\"slider-container\" [attr.theme]=\"applicationTheme\" [ngClass]=\"{ disabled: disabled, error: hasError && touchedControlName }\">\n <div class=\"slider-label\" *ngIf=\"label\">{{ label }}</div>\n\n <div class=\"slider\">\n <div class=\"min-value\" *ngIf=\"!isBasicSlider\">{{ percentage ? min + '%' : min }}</div>\n <mat-slider\n [disableRipple]=\"applicationTheme !== 'classic'\" #sliderElement discrete [disabled]=\"disabled\" [max]=\"max\" [min]=\"min\" [step]=\"step\" (mouseenter)=\"sliderElement.discrete = true\" (mouseleave)=\"sliderElement.discrete = false\">\n <ng-container *ngIf=\"isBasicSlider; else rangeTemplate\">\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n [(ngModel)]=\"sliderStart\"\n matSliderThumb\n >\n </ng-container>\n\n <ng-template #rangeTemplate>\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange()\"\n [(ngModel)]=\"sliderStart\"\n matSliderStartThumb\n >\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange()\"\n [(ngModel)]=\"sliderEnd\"\n matSliderEndThumb\n >\n\n </ng-template>\n </mat-slider>\n <div class=\"max-value\" *ngIf=\"!isBasicSlider\">{{ percentage ? max + '%' : max }}</div>\n </div>\n\n <div class=\"slider-input\" *ngIf=\"showInputs && !this.isBasicSlider\">\n <mat-form-field [appearance]=\"'outline'\">\n <mat-label>{{ ('COMMON.MIN') | uiTranslate : language }} <span *ngIf=\"percentage\">%</span></mat-label>\n <input\n matInput\n [type]=\"'number'\"\n [(ngModel)]=\"sliderStart\"\n [disabled]=\"disabled\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur('start')\"\n (keydown.enter)=\"onInputBlur('start')\"\n >\n </mat-form-field>\n\n <mat-form-field [appearance]=\"'outline'\">\n <mat-label>{{ ('COMMON.MAX') | uiTranslate : language }} <span *ngIf=\"percentage\">%</span></mat-label>\n <input\n matInput\n [disabled]=\"disabled\"\n [type]=\"'number'\"\n [(ngModel)]=\"sliderEnd\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur('end')\"\n (keydown.enter)=\"onInputBlur('end')\"\n >\n </mat-form-field>\n </div>\n\n <mat-error *ngIf=\"hasError && touchedControlName\">\n <div class=\"validation-error\" *ngIf=\"touchedControlName === 'start' && sliderStart > sliderEnd\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ (translationContext + 'MIN_MORE_THAN_MAX') | uiTranslate : language : { min: sliderStart, max: sliderEnd } }}</span>\n </div>\n\n <div class=\"validation-error\" *ngIf=\"touchedControlName === 'end' && sliderStart > sliderEnd\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ (translationContext + 'MAX_LESS_THAN_MIN') | uiTranslate : language : { min: sliderStart, max: sliderEnd } }}</span>\n </div>\n\n <div class=\"validation-error\" *ngIf=\"sliderStart < min\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ ('COMMON.MIN') | uiTranslate : language }} {{ min }}</span>\n </div>\n <div class=\"validation-error\" *ngIf=\"sliderEnd > max\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ ('COMMON.MAX') | uiTranslate : language }} {{ max }}</span>\n </div>\n </mat-error>\n </div>\n</ng-container>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SliderComponent } from './slider.component';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [SliderComponent],\n imports: [\n CommonModule,\n MatSliderModule,\n FormsModule,\n MatInputModule,\n MatTooltipModule,\n IconComponentModule,\n UiTranslatePipe,\n ],\n exports: [SliderComponent],\n})\nexport class SliderComponentModule {}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n TemplateRef\n} from '@angular/core';\nimport {\n ConnectedPosition,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipPositionType } from \"./tooltip.model\";\n\n@Directive({\n selector: '[uiTooltipTemplate]',\n standalone: true,\n})\nexport class TooltipTemplateDirective implements OnChanges, OnDestroy {\n @Input() tooltipPosition: TooltipPositionType = TooltipPositionType.RIGHT;\n @Input() showTooltip = true;\n @Input('uiTooltipTemplate') templateRef: TemplateRef<any>;\n\n private _overlayRef: OverlayRef;\n\n constructor(\n private _overlay: Overlay,\n private _overlayPositionBuilder: OverlayPositionBuilder,\n private _elementRef: ElementRef,\n ) {\n }\n\n ngOnChanges(): void {\n this.setPosition(this.tooltipPosition);\n }\n\n @HostListener('mouseenter')\n show() {\n if (!this.showTooltip) {\n return;\n }\n\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef<TooltipComponent> = this._overlayRef.attach(new ComponentPortal(TooltipComponent));\n tooltipRef.instance.templateRef = this.templateRef;\n tooltipRef.instance.position = this.tooltipPosition;\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.closeToolTip();\n }\n\n ngOnDestroy() {\n this.closeToolTip();\n }\n\n private closeToolTip() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n private setPosition(position: TooltipPositionType) {\n const positions: Record<string, ConnectedPosition> = {\n [TooltipPositionType.TOP]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -8,\n panelClass: TooltipPositionType.TOP\n },\n [TooltipPositionType.BOTTOM]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 8,\n panelClass: TooltipPositionType.BOTTOM\n },\n [TooltipPositionType.LEFT]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n offsetY: 0,\n panelClass: TooltipPositionType.LEFT\n },\n [TooltipPositionType.RIGHT]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n offsetY: 0,\n panelClass: TooltipPositionType.RIGHT\n }\n };\n\n const fallbackPositions = {\n [TooltipPositionType.TOP]: positions[TooltipPositionType.BOTTOM],\n [TooltipPositionType.BOTTOM]: positions[TooltipPositionType.TOP],\n [TooltipPositionType.LEFT]: positions[TooltipPositionType.RIGHT],\n [TooltipPositionType.RIGHT]: positions[TooltipPositionType.BOTTOM]\n };\n\n const positionConfig = positions[position];\n\n const fallbackPositionConfig = fallbackPositions[position];\n\n const positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(this._elementRef)\n .withPositions([positionConfig, fallbackPositionConfig])\n .withPush(true);\n\n this._overlayRef = this._overlay.create({ positionStrategy });\n }\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { SegmentedBar, SegmentedBarVariant, SegmentedBarWithPercentage } from './segmented-bar.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-segmented-bar',\n templateUrl: './segmented-bar.component.html',\n styleUrls: ['./segmented-bar.component.scss'],\n})\nexport class SegmentedBarComponent {\n /**\n * The width of the segmented bar. Defaults to '100%'.\n * You can use '100%' or '100px' for this field. 100 is just an example\n * @default '100%'\n * @type {string}\n * @memberof SegmentedBarComponent\n */\n @Input() width = '100%';\n\n /**\n * The size variant of the segmented bar. Can be 'small' or 'large'.\n * Defaults to 'large'.\n * @default 'large'\n * @type {SegmentedBarVariant}\n * @memberof SegmentedBarComponent\n */\n @Input() size: SegmentedBarVariant = 'large';\n\n /**\n * The segments to be displayed in the segmented bar.\n * @required true\n * @type {SegmentedBar}\n * @memberof SegmentedBarComponent\n */\n @Input({ required: true }) set segments(segments: SegmentedBar[]) {\n this.segmentList = this.calculatePercentages(segments);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SegmentedBarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof SegmentedBarComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof SegmentedBarComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Groups the tooltips into one template\n *\n * @type {boolean}\n * @memberof SegmentedBarComponent\n */\n @Input() tooltipStats = false;\n\n segmentList: SegmentedBarWithPercentage[] = [];\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 calculatePercentages(segments: SegmentedBar[]): SegmentedBarWithPercentage[] {\n const total = segments.reduce((sum, segment) => sum + segment.value, 0);\n return segments.map(segment => {\n let percentage = (segment.value / total) * 100;\n let percentageLabel = '';\n\n if (percentage === 0) {\n percentageLabel = '0%';\n } else if (percentage > 0 && percentage < 1) {\n percentageLabel = '>1%';\n } else {\n percentageLabel = `${Math.ceil(percentage)}%`;\n }\n\n return { ...segment, percentage: percentageLabel };\n });\n }\n}\n","<div\n class=\"segmented-bar-container\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"'segment-size-' + size\"\n [style.width]=\"width\"\n [uiTooltipTemplate]=\"segmentedStats\"\n [showTooltip]=\"tooltipStats\"\n>\n <ng-container *ngFor=\"let segment of segmentList\">\n <div\n class=\"segmented-bar\"\n *ngIf=\"segment.value\"\n [ngClass]=\"segment.color\"\n [ngStyle]=\"{ flex: segment.value }\"\n [matTooltip]=\"!tooltipStats ? segment.tooltip ?? '' : ''\"\n [matTooltipClass]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"segment.icon\" [applicationTheme]=\"applicationTheme\" [name]=\"segment.icon\"></ui-icon>\n <span>{{ segment.value }}</span>\n </div>\n </ng-container>\n</div>\n<ng-template #segmentedStats>\n <div class=\"stats-container\">\n <div class=\"name-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <div [class]=\"'point ' + segment.color\"></div>\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\n </div>\n </div>\n\n <div class=\"value-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.value }}</span>\n </div>\n </div>\n\n <div class=\"percentage-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.percentage }}</span>\n </div>\n </div>\n\n </div>\n</ng-template>\n\n<ng-template #segmentedStats>\n <div class=\"stats-container\">\n <div class=\"name-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <div [class]=\"'point ' + segment.color\"></div>\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\n </div>\n </div>\n\n <div class=\"value-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.value }}</span>\n </div>\n </div>\n\n <div class=\"percentage-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.percentage }}</span>\n </div>\n </div>\n\n </div>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { SegmentedBarComponent } from './segmented-bar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { TooltipTemplateDirective } from \"../tooltip/tooltip-template.directive\";\nimport { TooltipComponentModule } from \"../tooltip/tooltip.component.module\";\n\n@NgModule({\n declarations: [SegmentedBarComponent],\n imports: [CommonModule, MatTooltipModule, MatInputModule, IconComponentModule, TooltipComponentModule, TooltipTemplateDirective],\n exports: [SegmentedBarComponent],\n})\nexport class SegmentedBarComponentModule {}\n","import { booleanAttribute, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output } from '@angular/core';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { Observable } from 'rxjs';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n})\nexport class PageHeaderComponent {\n /**\n * Flag to determine whether the \"Back\" button should be displayed.\n * @default true\n * @memberof PageHeaderComponent\n */\n @Input({ transform: booleanAttribute }) showBackButton = true;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PageHeaderComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Back button tooltip for mobile variation\n * @property tooltip\n * @memberof PageHeaderComponent\n */\n @Input() tooltip = 'COMMON.BACK';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PageHeaderComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Event triggered when the \"Back\" button is clicked.\n * @memberof PageHeaderComponent\n */\n @Output() back = new EventEmitter<void>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected onBack(): void {\n this.back.emit();\n }\n}\n","<ng-container>\n <div class=\"page-header-container\">\n <div class=\"page-header-content\">\n <ng-container *ngIf=\"!(isMobile$ | async) else mobile\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"showBackButton\"\n (click)=\"onBack()\"\n [variant]=\"'ghost'\"\n [justIcon]=\"true\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\n ></ui-button>\n </ng-container>\n\n <ng-template #mobile>\n <ui-button\n [applicationTheme]=\"applicationTheme\" class=\"mobile-back-btn\" [tooltip]=\"('COMMON.BACK') | uiTranslate : language\"\n [variant]=\"'icon-button'\"\n (click)=\"onBack()\"\n [justIcon]=\"true\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\n ></ui-button>\n </ng-template>\n\n <div class=\"main-content\" [ngClass]=\"{ 'remove-margin': !showBackButton }\">\n <ng-content select=\"[content]\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n </div>\n </div>\n </div>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PageHeaderComponent } from './page-header.component';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [CommonModule, ButtonComponentModule, UiTranslatePipe],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { DividerSize } from './divider.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent {\n /**\n * Divider size\n *\n * @type {DividerSize}\n * @memberof DividerComponent\n */\n @Input() size: DividerSize = 'large';\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @HostBinding('style.--companyColor')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DividerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Text content in the center of the divider\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @Input() label = '';\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","<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DividerComponent } from './divider.component';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@NgModule({\n declarations: [DividerComponent],\n exports: [DividerComponent],\n imports: [CommonModule, MatDividerModule],\n})\nexport class DividerComponentModule {}\n","import {\n booleanAttribute,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { Tab, TabsType } from \"./tabs.model\";\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { Observable } from 'rxjs';\nimport { MatTab, MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'ui-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss']\n})\nexport class TabsComponent {\n /**\n * Color of the Tabs.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof TabsComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null = '#46A997';\n /**\n * Type the Tabs.\n * Defaults underlined.\n *\n * @type {TabsType}\n * @memberof TabsComponent\n */\n @Input() type: TabsType = 'underlined';\n\n /**\n * Animation duration when switching tabs\n *\n * @type {number}\n * @memberof TabsComponent\n */\n @Input() animationDuration = 300;\n\n /**\n * Sets the padding for content and header\n *\n * @type {number}\n * @memberof TabsComponent\n */\n @HostBinding('style.--header-content-padding')\n @Input({ transform: (value: number): string => value + 'px' })\n headerContentPadding = '32px';\n\n /**\n * Sets the dynamic height of the tab\n * @type {boolean}\n * @memberof TabsComponent\n */\n @Input({transform: booleanAttribute}) dynamicHeight = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TabsComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() selectedTabIndex = new EventEmitter<number>();\n @Output() selectedTab = new EventEmitter<Tab>();\n\n @ViewChild('tabGroup', { static: true }) tabGroup: MatTabGroup;\n\n protected tabs: Tab[] = [];\n readonly tabIndex = signal(0);\n protected tabIndexMap: Record<string, number> = {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const tabHeader = (this.tabGroup as any)._tabHeader;\n tabHeader._handleKeydown = async (event: KeyboardEvent) => {\n if (hasModifierKey(event)) {\n return;\n }\n switch (event.keyCode) {\n case ENTER:\n case SPACE:\n const tabLabel = (event.target as HTMLElement).innerText;\n const currentTab = this.tabs[this.tabIndex()];\n const nextTab = this.tabs.find(tab => tab.tabLabel === tabLabel);\n\n if (!nextTab) {\n return;\n }\n\n const canLeave = (await currentTab.canLeave?.({currentTab, nextTab})) ?? true;\n if (currentTab.tabName !== nextTab.tabName && canLeave) {\n const nextTabIndex = this.tabIndexMap[nextTab.tabName];\n tabHeader.focusIndex = nextTabIndex;\n this.tabGroup.selectedIndex = nextTabIndex;\n }\n break;\n default:\n tabHeader._keyManager.onKeydown(event);\n }\n };\n\n (this.tabGroup as any)._handleClick = async (\n tab: MatTab,\n tabHeader: any,\n index: number\n ) => {\n const currentIndex = this.tabGroup.selectedIndex;\n if (tab.disabled || currentIndex === undefined || index === currentIndex) {\n return;\n }\n const currentTab = this.tabs[this.tabIndex()];\n const nextTab = this.tabs[index];\n const canLeave = (await currentTab.canLeave?.({currentTab, nextTab})) ?? true;\n if (this.tabGroup.selectedIndex != index && canLeave) {\n tabHeader.focusIndex = index;\n this.tabGroup.selectedIndex = index;\n }\n };\n });\n }\n\n addTab(tab: Tab): void {\n this.tabs.push(tab);\n this.tabs.forEach((v, index) => this.tabIndexMap[v.tabName] = index);\n }\n\n onTabChange(ev: MatTabChangeEvent): void {\n const selectedTab = this.tabs[ev.index];\n this.tabIndex.set(this.tabIndexMap[selectedTab.tabName]);\n this.selectedTabIndex.emit(ev.index);\n this.selectedTab.emit(selectedTab);\n }\n\n selectTab(tabName: string): void {\n const index = this.tabIndexMap[tabName];\n if (index !== undefined) {\n this.tabIndex.set(index);\n this.selectedTabIndex.emit(index);\n this.selectedTab.emit(this.tabs[index]);\n }\n }\n\n indexOf(tabName: string): number {\n return this.tabIndexMap[tabName] ?? -1;\n }\n\n trackByTabName(index: number, tab: Tab): string {\n return tab.tabName;\n }\n\n removeTab(tabName: string): void {\n const index = this.tabIndexMap[tabName];\n if (index !== undefined) {\n this.tabs.splice(index, 1);\n delete this.tabIndexMap[tabName];\n this.tabs.forEach((v, index) => this.tabIndexMap[v.tabName] = index);\n }\n }\n}\n","<mat-tab-group\n #tabGroup\n headerPosition=\"above\"\n class=\"tabs-container\"\n [ngClass]=\"'tabs-type-' + ((isMobile$ | async) ? 'underlined' : type)\"\n [attr.theme]=\"applicationTheme\"\n [dynamicHeight]=\"dynamicHeight\"\n [selectedIndex]=\"tabIndex()\"\n [animationDuration]=\"animationDuration\"\n (selectedTabChange)=\"onTabChange($event)\"\n>\n <mat-tab *ngFor=\"let tab of tabs; trackBy: trackByTabName\" [disabled]=\"tab.disabled ?? false\">\n <ng-template mat-tab-label>\n <a class=\"tab-name\" [tabindex]=\"0\" [href]=\"tab?.linkUrl ? tab.linkUrl : '#' \" (click)=\"$event.preventDefault()\">\n <ui-icon [size]=\"'24'\" [tabindex]=\"1\" class=\"left-icon\" [name]=\"tab.iconLeft!\" *ngIf=\"tab?.iconLeft\"></ui-icon>\n <span class=\"label\">{{ tab.tabLabel }}</span>\n <ui-icon [size]=\"'24'\" [tabindex]=\"2\" class=\"right-icon\" [name]=\"tab.iconRight!\" *ngIf=\"tab?.iconRight\"></ui-icon>\n </a>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplateRef\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import { booleanAttribute, Directive, Host, Input, OnChanges, OnDestroy, TemplateRef } from '@angular/core';\nimport { TabsComponent } from \"./tabs.component\";\nimport { IconName } from '../icon/icon.model';\nimport { Tab } from './tabs.model';\n\n@Directive({\n selector: '[uiTab]'\n})\nexport class TabDirective implements OnChanges, OnDestroy {\n @Input({ required: true }) tabLabel: string;\n @Input({ required: true }) tabName: string;\n @Input() iconLeft: IconName;\n @Input() iconRight: IconName;\n @Input({ transform: booleanAttribute }) disabled: boolean;\n @Input() canLeave?: (ctx?: {currentTab: Tab, nextTab: Tab}) => boolean | Promise<boolean>;\n @Input() linkUrl?: string;\n\n constructor(\n @Host() private tabsComponent: TabsComponent,\n private template: TemplateRef<any>,\n ) {\n }\n\n ngOnChanges(): void {\n this.addTab();\n }\n\n private addTab(): void {\n this.tabsComponent.addTab({\n tabLabel: this.tabLabel,\n tabName: this.tabName,\n iconLeft: this.iconLeft,\n iconRight: this.iconRight,\n disabled: this.disabled,\n contentTemplateRef: this.template,\n canLeave: this.canLeave,\n linkUrl: this.linkUrl,\n })\n }\n\n ngOnDestroy(): void {\n this.tabsComponent.removeTab(this.tabName);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './tabs.component';\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { TabDirective } from './tab.directive';\n\n\n\n@NgModule({\n declarations: [\n TabsComponent,\n TabDirective\n ],\n imports: [\n CommonModule,\n MatTabsModule,\n IconComponentModule\n ],\n exports: [TabsComponent, TabDirective]\n})\nexport class TabsComponentModule { }\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter, Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { OverflowMenuButtonsType } from './overflow-menu.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-overflow-menu',\n templateUrl: './overflow-menu.component.html',\n styleUrls: ['./overflow-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class OverflowMenuComponent implements OnInit {\n /**\n * Menu buttons\n *\n * @type {OverflowMenuButtonsType[]}\n * @memberof OverflowMenuComponent\n */\n @Input() buttons: OverflowMenuButtonsType[];\n\n /**\n * Menu icon trigger\n *\n * @memberof OverflowMenuComponent\n */\n @Input() iconTrigger: IconName = 'Menu-ellipsis';\n\n /**\n * Label menu\n *\n * @memberof OverflowMenuComponent\n */\n @Input() menuLabel = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof OverflowMenuComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof OverflowMenuComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof OverflowMenuComponent\n */\n @Input() ariaRequired = false;\n\n @Output() selectItem: EventEmitter<string> = new EventEmitter<string>();\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 ngOnInit(): void {}\n\n onSelectItem(event: Event, value: string) {\n if (!!value) {\n this.selectItem.emit(value);\n }\n }\n}\n","<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <ui-button\n [matMenuTriggerFor]=\"menu\"\n [label]=\"menuLabel\"\n [variant]=\"'menuTrigger'\"\n [size]=\"applicationTheme === 'classic' ? 'small' : 'big'\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n (keydown.tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [applicationTheme]=\"applicationTheme\"\n [ariaLabel]=\"ariaLabel\"\n [ariaRequired]=\"ariaRequired\"\n class=\"overflow-menu-opener\"\n ></ui-button>\n <mat-menu #menu=\"matMenu\" class=\"overflow-menu\" [overlapTrigger]=\"false\" backdropClass=\"overflow-menu-backdrop\">\n <ng-container *ngFor=\"let button of buttons\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"button.icon\"\n [label]=\"button.label\"\n [value]=\"button.value\"\n (buttonClickEvent)=\"onSelectItem($event, button.value)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"ariaLabel + '--' + button.label\"\n [ngClass]=\"{'destructive': !!button.isDestructive} \"\n [disabled]=\"button.disabled ?? false\"\n ></ui-button>\n </ng-template>\n </ng-container>\n\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { OverflowMenuComponent } from './overflow-menu.component';\n\n@NgModule({\n declarations: [OverflowMenuComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, MatMenuModule],\n exports: [OverflowMenuComponent],\n})\nexport class OverflowMenuComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output\n} from '@angular/core';\nimport { SegmentedButton } from './segmented-button.model';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-segmented-button',\n templateUrl: './segmented-button.component.html',\n styleUrls: ['./segmented-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButtonComponent implements ControlValueAccessor {\n /**\n * Input property to set the buttons for the segmented button.\n * @type SegmentedButton\n * @memberof SegmentedButtonComponent\n */\n @Input({ required: true }) buttonConfig: SegmentedButton[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof SegmentedButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Indicator of the Segmented Button width\n *\n * @memberof SegmentedButtonComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Selected button\n *\n * @memberof SegmentedButtonComponent\n */\n @Input() set value(v: any) {\n this._value = v;\n this.onChange(v);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SegmentedButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() buttonSelected = new EventEmitter<any>();\n\n protected _value: any;\n\n get value(): any {\n return this._value;\n }\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 onChange = (v: any) => {};\n onTouch = () => {};\n\n writeValue(obj: any): void {\n this.value = obj;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n manualChangeValue({ value }: any) {\n this.value = value;\n this.buttonSelected.emit(value);\n }\n}\n","<mat-button-toggle-group\n class=\"segmented-button-container\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ disabled, 'full-width': fullWidth }\"\n [value]=\"value\"\n (change)=\"manualChangeValue($event)\"\n>\n <mat-button-toggle\n [disableRipple]=\"true\"\n *ngFor=\"let button of buttonConfig\"\n [value]=\"button.value\"\n [ngClass]=\"{ disabled: button.disabled }\"\n [matTooltip]=\"button.tooltip ?? ''\"\n >\n <ng-container *ngIf=\"button.template; else label\" [ngTemplateOutlet]=\"button.template\"></ng-container>\n <ng-template #label>{{ button.label }}</ng-template>\n </mat-button-toggle>\n</mat-button-toggle-group>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SegmentedButtonComponent } from './segmented-button.component';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { FormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [SegmentedButtonComponent],\n exports: [SegmentedButtonComponent],\n imports: [CommonModule, MatButtonToggleModule, FormsModule, MatTooltipModule],\n})\nexport class SegmentedButtonComponentModule {}\n","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ui-password-criteria',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordComponent implements ControlValueAccessor {\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof PasswordComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show criteria for password. Defaults true\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() showCriteria = true;\n\n /**\n * Password is required or not\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() required = false;\n\n @Output() passwordChange = new EventEmitter<string>();\n\n @Output() allCriteriaPassed = new EventEmitter<boolean>();\n\n protected formControl = new FormControl('', Validators.required);\n protected criteriaPassed: { [key: string]: boolean } = {};\n protected showError: boolean;\n protected progressValue: number;\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(private readonly destroyRef: DestroyRef) {\n this.formControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.checkCriteria();\n });\n }\n\n checkCriteria(): void {\n const password = this.formControl.value ?? '';\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.passwordChange.emit(password);\n this.allCriteriaPassed.emit(passedCount === Object.keys(this.criteriaPassed).length);\n this.onChange(password);\n }\n\n countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n onChange = (v: any) => {};\n onTouch = () => {};\n\n writeValue(obj: any): void {\n this.formControl.setValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<div class=\"password-criteria-container\">\n\n <ui-field [applicationTheme]=\"'dark'\"\n [formControl]=\"formControl\"\n [type]=\"'password'\"\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate : language) + (required ? ' *' : '')\"\n (keydown.enter)=\"showError = true\"\n (focusout)=\"showError = true\"\n ></ui-field>\n\n <div class=\"criteria-container\" *ngIf=\"showCriteria\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\n applicationTheme=\"dark\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate : language }}</span>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordComponent } from './password.component';\nimport { FieldComponentModule } from '../field/field.component.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PasswordComponent],\n exports: [PasswordComponent],\n imports: [\n CommonModule,\n FieldComponentModule,\n ReactiveFormsModule,\n IconComponentModule,\n ProgressBarComponentModule,\n UiTranslatePipe,\n ],\n})\nexport class PasswordComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'joinStrings' })\nexport class JoinStringsPipe implements PipeTransform {\n transform(value: string[], separator?: string): string {\n return value.filter(Boolean).join(separator ? separator : ' - ');\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatInput } from '@angular/material/input';\nimport { MatSelect } from '@angular/material/select';\nimport { parsePhoneNumber } from 'libphonenumber-js';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n delay,\n filter,\n first,\n map,\n Observable,\n startWith,\n Subject,\n take,\n tap,\n} from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { UICountry } from './phone-input.model';\n\n@Component({\n selector: 'ui-phone-input',\n templateUrl: './phone-input.component.html',\n styleUrls: ['./phone-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n useValue: { overlayPanelClass: 'phone-number-autocomplete' },\n },\n ],\n})\nexport class PhoneInputComponent implements OnInit, OnDestroy, ControlValueAccessor, DoCheck {\n /**\n * Phone number\n *\n * @type {string}\n * @memberof PhoneInputComponent\n */\n @Input()\n set value(value: string) {\n this.initialValue = this.initialValue || value;\n try {\n const parsed = parsePhoneNumber(value);\n const formatted = parsed.formatInternational();\n this.selectedCountry = this.getCountryByAlpha2Code(parsed.country!) || this.selectedCountry;\n this.form.patchValue({ phone_number: formatted.replace(this.selectedCountry.callingCode, '') });\n } catch (err) {\n if (value?.length <= 4) {\n this.selectedCountry = this.getCountryByCallingCode(value) || this.selectedCountry;\n }\n this.form.patchValue({ phone_number: value?.replace(this.selectedCountry?.callingCode, '') });\n }\n this.stateChanges.next();\n }\n\n /**\n * Country list for select\n *\n * @type {UICountry[]}\n * @memberof PhoneInputComponent\n */\n @Input() set countryList(countryList: UICountry[]) {\n this.loadCountries$.next(countryList);\n this.selectedCountry = this.selectedCountry ?? countryList[0];\n }\n\n /**\n * Placeholder input\n *\n * @type {text}\n * @memberof PhoneInputComponent\n */\n @Input()\n set placeholder(value: string) {\n this.internalPlaceholder = value;\n this.stateChanges.next();\n }\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @HostBinding('attr.disabled')\n @Input()\n disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @Input() required: boolean;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PhoneInputComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Indicator of the phone input width\n * @property fullWidth\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @Input() fullWidth = false;\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof PhoneInputComponent\n */\n @Input() set errors(errors: string[]) {\n if (errors) {\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n }\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof PhoneInputComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof PhoneInputComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PhoneInputComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n static nextId = 0;\n\n private countries = new BehaviorSubject<UICountry[]>([]);\n protected countries$ = this.countries.asObservable();\n form: UntypedFormGroup = this.fb.group({\n phone_number: new UntypedFormControl(),\n });\n protected controlType = 'phone-number';\n protected userAriaDescribedBy?: string;\n protected loadCountries$ = new BehaviorSubject<UICountry[]>([]);\n protected countryCode = new BehaviorSubject<string>('US');\n protected stateChanges = new Subject<void>();\n protected focused: boolean;\n protected selectFilterCtrl = new UntypedFormControl('');\n protected errorsLength: boolean;\n protected readonly countryFlagSrc = 'assets/svg-country-flags/';\n\n @ViewChild(MatInput, { read: ElementRef, static: true })\n public input: ElementRef<HTMLElement>;\n @ViewChild(MatSelect, { read: ElementRef, static: true })\n public select: ElementRef<HTMLElement>;\n\n @HostBinding()\n id = `phone-number${PhoneInputComponent.nextId++}`;\n\n @HostBinding('class.floated')\n get shouldLabelFloat(): boolean {\n return true;\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n\n get empty(): boolean {\n return !!this.form.value;\n }\n\n get errorState(): boolean {\n return this.errorMatcher.isErrorState(this.ngControl.control as UntypedFormControl, null);\n }\n\n get value(): string {\n return this.getNumberWithCountryCode();\n }\n\n get placeholder() {\n return this.internalPlaceholder;\n }\n\n private initialValue: string;\n private readonly DEFAULT_COUNTRY_CODE = 'US';\n private internalPlaceholder: string;\n protected selectedCountry: UICountry;\n private unsubscribeAll$ = new Subject<void>();\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n private errorMatcher: ErrorStateMatcher,\n private fb: UntypedFormBuilder,\n private focusMonitor: FocusMonitor,\n private ref: ChangeDetectorRef,\n private sanitizer: DomSanitizer,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.ref.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.loadCountries();\n this.preSelectCountry();\n this.subscribeToFocusEvents();\n }\n\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0;\n }\n return false;\n }\n\n setDescribedByIds(ids: string[]): void {\n this.userAriaDescribedBy = ids.join(' ');\n }\n\n onChange: (value: string) => void;\n onTouch: () => void;\n\n writeValue(phoneNumber: string): void {\n if (phoneNumber) {\n this.value = phoneNumber;\n }\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n this.disabled = isDisabled;\n this.stateChanges.next();\n this.ref.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.input);\n this.focusMonitor.stopMonitoring(this.select);\n this.stateChanges.complete();\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n onOptionsSelected(value: UICountry) {\n this.setCountry(value);\n }\n\n onInput(value: string) {\n this.value = (this.selectedCountry?.callingCode ?? '') + value;\n this.onChange(this.value);\n }\n\n filteredCountryTrackByMethod(index: number, el: UICountry): string {\n return el.alpha2Code;\n }\n\n private getNumberWithCountryCode() {\n const nationalNumber = this.form.value?.phone_number as string;\n return nationalNumber ? (this.selectedCountry?.callingCode ?? '') + nationalNumber : '';\n }\n\n private subscribeToFocusEvents() {\n const selectAndInputFocus$ = combineLatest([\n this.focusMonitor.monitor(this.select),\n this.focusMonitor.monitor(this.input),\n ]).pipe(takeUntil(this.unsubscribeAll$), debounceTime(10));\n\n selectAndInputFocus$.subscribe(([selectFocus, inputFocus]) => {\n this.focused = !!(selectFocus || inputFocus);\n this.stateChanges.next();\n });\n\n selectAndInputFocus$.pipe(take(1)).subscribe(() => {\n this.onTouch();\n });\n }\n\n private preSelectCountry() {\n this.setDisabledState(true);\n combineLatest([\n this.countries$.pipe(\n filter(countries => countries.length > 0),\n first()\n ),\n this.countryCode,\n ])\n .pipe(\n map(([countries, selectedCountry]) => {\n if (!this.initialValue) {\n const country =\n this.getCountryByAlpha2Code(selectedCountry) || this.getCountryByAlpha2Code(this.DEFAULT_COUNTRY_CODE);\n this.setCountry(country as UICountry);\n } else {\n this.value = this.initialValue;\n }\n\n this.setDisabledState(false);\n this.ref.markForCheck();\n })\n )\n .subscribe();\n }\n\n private setCountry(country: UICountry | null): void {\n if (country) {\n this.selectedCountry = country;\n }\n this.value = this.getNumberWithCountryCode();\n }\n\n private getCountryByAlpha2Code(alpha2Code: string) {\n return this.countries.value.find(country => country.alpha2Code === alpha2Code);\n }\n\n private getCountryByCallingCode(callingCode: string) {\n return this.countries.value.find(country => country.callingCode === callingCode);\n }\n\n private loadCountries(): void {\n const searchText$: Observable<string> = this.selectFilterCtrl.valueChanges.pipe(debounceTime(100), startWith(''));\n\n combineLatest([this.loadCountries$, searchText$])\n .pipe(\n takeUntil(this.unsubscribeAll$),\n tap(([countries, searchText]) => {\n const searchTextLowerCase = searchText.toLowerCase();\n const filteredCountries = countries\n .filter(\n option =>\n option.name.toLowerCase().includes(searchTextLowerCase) ||\n option.alpha2Code.toLowerCase().includes(searchTextLowerCase) ||\n option.callingCode.toLowerCase().includes(searchTextLowerCase)\n )\n .sort((optionA, optionB) => (optionB.name.startsWith(searchText) ? 1 : -1));\n this.countries.next(filteredCountries);\n }),\n delay(1),\n tap(() => {\n const countryFound = this.getCountryByAlpha2Code(this.selectedCountry?.alpha2Code);\n this.selectedCountry = countryFound || this.selectedCountry;\n this.ref.markForCheck();\n })\n )\n .subscribe();\n }\n\n disableClick(ev: Event) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n}\n","<mat-form-field\n [formGroup]=\"form\"\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ disabled: form.disabled || disabled, 'full-width': fullWidth }\"\n>\n <mat-label>{{ 'COMMON.PHONE_NUMBER' | uiTranslate : language }} <span *ngIf=\"required\">*</span></mat-label>\n\n <div matPrefix class=\"country\">\n <button class=\"selected-flag\" matPrefix *ngIf=\"selectedCountry\">\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + selectedCountry?.alpha2Code?.toLowerCase() + '.svg'\"\n [alt]=\"'Country flag ' + selectedCountry?.alpha2Code?.toLowerCase()\">\n </button>\n <mat-select\n #select\n (selectionChange)=\"onOptionsSelected($event.value)\"\n [value]=\"selectedCountry\"\n [disableOptionCentering]=\"true\"\n [panelClass]=\"'phone-number-select' + ' ' + applicationTheme\"\n [ngClass]=\"{ opened: select.panelOpen }\"\n >\n <mat-select-trigger>{{ selectedCountry?.callingCode }}</mat-select-trigger>\n <mat-option>\n <ngx-mat-select-search\n [formControl]=\"selectFilterCtrl\"\n ngDefaultControl\n placeholderLabel=\"\"\n noEntriesFoundLabel=\"\"\n >\n <ui-icon ngxMatSelectSearchClear size=\"24\" [name]=\"'Close-in-line'\"></ui-icon>\n </ngx-mat-select-search>\n </mat-option>\n <mat-option *ngFor=\"let country of countries$ | async; trackBy: filteredCountryTrackByMethod\" [value]=\"country\">\n <div class=\"country-option\">\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + country?.alpha2Code?.toLowerCase()! + '.svg'\"\n [alt]=\"'Country flag ' + country?.alpha2Code?.toLowerCase()!\">\n <small>{{ $any([country?.name, '(' + country?.callingCode + ')']) | joinStrings : ' ' }}</small>\n </div>\n </mat-option>\n </mat-select>\n </div>\n\n <input\n (input)=\"onInput(form.get('phone_number')!.value)\"\n formControlName=\"phone_number\"\n (click)=\"disableClick($event)\"\n [ngStyle]=\"{ opacity: disabled ? 0.5 : 1 }\"\n [required]=\"required\"\n matInput\n type=\"text\"\n />\n\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : ('COMMON.PHONE_NUMBER' | uiTranslate : language)\" [language]=\"language\"></ui-validation-error>\n\n </mat-hint>\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PhoneInputComponent } from './phone-input.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatIconModule } from '@angular/material/icon';\nimport { JoinStringsPipe } from './join-strings.pipe';\nimport { MatInputModule } from '@angular/material/input';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SpinnerComponentModule } from '../spinner/spinner.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [PhoneInputComponent, JoinStringsPipe],\n exports: [PhoneInputComponent],\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatIconModule,\n MatInputModule,\n NgxMatSelectSearchModule,\n IconComponentModule,\n SpinnerComponentModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n})\nexport class PhoneInputComponentModule {}\n","export enum Color {\n // Teal colors\n TGO_TEAL_60B = '#1C443C',\n TGO_TEAL_30B = '#31766A',\n TGO_TEAL_DEFAULT = '#46A997',\n TGO_TEAL_30W = '#7EC3B6',\n TGO_TEAL_60W = '#B5DDD5',\n TGO_TEAL_SECONDARY = '#CBD6CB',\n TGO_TEAL_90W = '#ECF6F5',\n\n // Petrol colors\n TGO_PETROL_60B = '#102930',\n TGO_PETROL_30B = '#1B4754',\n TGO_PETROL_DEFAULT = '#276678',\n TGO_PETROL_30W = '#6894A0',\n TGO_PETROL_60W = '#A9C2C9',\n TGO_PETROL_SECONDARY = '#C8D7DE',\n TGO_PETROL_90W = '#E9F0F1',\n\n // Error colors\n TGO_ERROR_60B = '#513131',\n TGO_ERROR_30B = '#8E5655',\n TGO_ERROR_60W = '#E3C3C6',\n TGO_ERROR_SECONDARY = '#F0DAD9',\n TGO_ERROR_DEFAULT = '#CB7B7A',\n\n // Warning colors\n TGO_WARNING_SECONDARY = '#F0D6BB',\n TGO_WARNING_DEFAULT = '#CCA45F',\n\n // Black colors - grayscale\n TGO_BLACK = '#000000',\n TGO_DARK = '#888888',\n TGO_MEDIUM = '#E0E0E0',\n TGO_GREY = '#EDEDED',\n TGO_LIGHT = '#F6F6F6',\n TGO_WHITE = '#FFFFFF',\n\n // Brand colors\n BRAND_60 = '#A90686',\n BRAND_50 = '#D410AA',\n BRAND_40 = '#FF54DA',\n BRAND_30 = '#FFB3EE',\n BRAND_20 = '#FFE6FA',\n BRAND_10 = '#FFF2FC',\n\n // Grayscale colors\n GRAYSCALE_50 = '#666666',\n GRAYSCALE_40 = '#919191',\n GRAYSCALE_30 = '#D3D3D3',\n GRAYSCALE_20 = '#E9E9E9',\n GRAYSCALE_10 = '#F4F4F4',\n\n // Additional colors\n BLACK = '#242424',\n\n // Accent colors\n ACCENT_20 = '#FFF5ED',\n ACCENT_10 = '#FFFAF6',\n\n // Informative colors\n INFORMATIVE_50 = '#1A47AA',\n INFORMATIVE_40 = '#0165FC',\n INFORMATIVE_30 = '#277CFD',\n INFORMATIVE_20 = '#99C1FE',\n INFORMATIVE_10 = '#D9E8FF',\n\n // Success colors\n SUCCESS_50 = '#88B901',\n SUCCESS_40 = '#A0D900',\n SUCCESS_30 = '#C6E866',\n SUCCESS_20 = '#E2F4B3',\n SUCCESS_10 = '#F5FAE3',\n\n // Error additional colors\n ERROR_50 = '#E02800',\n ERROR_40 = '#FF3003',\n ERROR_30 = '#FF6E4F',\n ERROR_20 = '#FFAC9A',\n ERROR_10 = '#FFEAE6',\n\n // Warning additional colors\n WARNING_50 = '#D07D00',\n WARNING_40 = '#FF9A03',\n WARNING_30 = '#FFC268',\n WARNING_20 = '#FFE1B3',\n WARNING_10 = '#FFF5E6',\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-password-strength',\n templateUrl: './password-strength.component.html',\n styleUrls: ['./password-strength.component.scss'],\n})\nexport class PasswordStrengthComponent {\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PasswordStrengthComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PasswordStrengthComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The password that needs to be checked\n * @property password\n * @type {string}\n * @memberof PasswordStrengthComponent\n */\n @Input() set password(value: string) {\n this._password = value;\n this.checkCriteria(this._password);\n }\n\n /**\n * Event that outputs validation check result\n * @property validationCheck\n * @type {boolean}\n * @memberof PasswordStrengthComponent\n */\n @Output() validationCheck = new EventEmitter<boolean>();\n\n protected progressValue: number;\n protected criteriaPassed: { [key: string]: boolean } = {};\n private _password = '';\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (this.defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n checkCriteria(password: string): void {\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.validationCheck.emit(passedCount === Object.keys(this.criteriaPassed).length);\n }\n\n private countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n\n get infoIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Info' : 'Info-in-line';\n }\n\n get checkIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Round-check' : 'Check-round-in-line';\n }\n}\n","<div class=\"criteria-container\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate : language }}</span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordStrengthComponent } from './password-strength.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PasswordStrengthComponent],\n imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe],\n exports: [PasswordStrengthComponent],\n})\nexport class PasswordStrengthComponentModule {}\n","/* eslint-disable */\n\n/* Components */\n// Alert Banner\nexport * from './components/alert-banner/alert-banner.component';\nexport * from './components/alert-banner/alert-banner.component.module';\n// Button\nexport * from './components/button/button.component';\nexport * from './components/button/button.component.module';\nexport * from './components/button/button.model';\n// Card\nexport * from './components/card/card.component';\nexport * from './components/card/card.component.module';\nexport * from './components/card/card.model';\n// Checkbox\nexport * from './components/checkbox/checkbox.component';\nexport * from './components/checkbox/checkbox.component.module';\n// Dialog\nexport * from './components/dialog/dialog.component';\nexport * from './components/dialog/dialog.component.module';\nexport * from './components/dialog/dialog.service';\n// Elevation shadow\nexport * from './components/elevation-shadow/elevation-shadow.component';\nexport * from './components/elevation-shadow/elevation-shadow.component.module';\nexport * from './components/elevation-shadow/elevation-shadow.constant';\n// Field\nexport * from './components/field/field.component';\nexport * from './components/field/field.component.module';\nexport * from './components/field/field.model';\n// File upload\nexport * from './components/file-upload/file-upload.component';\nexport * from './components/file-upload/file-upload.component.module';\n// Icon\nexport * from './components/icon/icon.component';\nexport * from './components/icon/icon.component.module';\nexport * from './components/icon/icon.model';\n// Icon + label\nexport * from './components/icon-label/icon-label.component';\nexport * from './components/icon-label/icon-label.component.module';\n// Logo\nexport * from './components/logo/logo.component';\nexport * from './components/logo/logo.component.module';\nexport * from './components/logo/logo.model';\n// Navbar\nexport * from './components/navbar/navbar.component';\nexport * from './components/navbar/navbar.component.module';\nexport * from './components/navbar/navbar.model';\n// Deprecated Paginator\nexport * from './components/deprecated-paginator/deprecated-paginator.component';\nexport * from './components/deprecated-paginator/deprecated-paginator.component.module';\n// Progress bar\nexport * from './components/progress-bar/progress-bar.component';\nexport * from './components/progress-bar/progress-bar.component.module';\n// Radio button\nexport * from './components/radio-button/radio-button.component';\nexport * from './components/radio-button/radio-button.component.module';\n// Snackbar\nexport * from './components/snackbar/snackbar.component';\nexport * from './components/snackbar/snackbar.component.module';\nexport * from './components/snackbar/snackbar.model';\nexport * from './components/snackbar/snackbar.service';\n// Deprecated Table\nexport * from './pipes/data-property-getter';\nexport * from './components/deprecated-table/deprecated-table.component';\nexport * from './components/deprecated-table/deprecated-table.component.module';\nexport * from './components/deprecated-table/deprecated-table.model';\n// Tag\nexport * from './components/tag/tag.component';\nexport * from './components/tag/tag.component.module';\nexport * from './components/tag/tag.model';\n// Tooltip\nexport * from './components/tooltip/tooltip.component';\nexport * from './components/tooltip/tooltip.component.module';\nexport * from './components/tooltip/tooltip.model';\n// Dropdown\nexport * from './components/dropdown/dropdown.component';\nexport * from './components/dropdown/dropdown.component.module';\nexport * from './components/dropdown/dropdown.model';\n// Spinner\nexport * from './components/spinner/spinner.component';\nexport * from './components/spinner/spinner.module';\nexport * from './components/spinner/spinner.model'\n// Confirm Dialog\nexport * from './components/confirm-dialog/confirm-dialog.component';\nexport * from './components/confirm-dialog/confirm-dialog.component.module';\n// Datepicker\nexport * from './components/datepicker/datepicker.component'\nexport * from './components/datepicker/datepicker.component.module'\n// Rating\nexport * from './components/rating/rating.component'\nexport * from './components/rating/rating.component.module'\n// Scale\nexport * from './components/scale/scale.component'\nexport * from './components/scale/scale.component.module'\n// Tag\nexport * from './components/tag/tag.component'\nexport * from './components/tag/tag.component.module'\n// Toggle\nexport * from './components/toggle/toggle.component'\nexport * from './components/toggle/toggle.component.module'\n// Avatar\nexport * from './components/avatar/avatar.component'\nexport * from './components/avatar/avatar.component.module'\nexport * from './components/avatar/avatar.model'\n// Stepper\nexport * from './components/stepper/stepper.component'\nexport * from './components/stepper/stepper.component.module'\n// Step\nexport * from './components/step/step.component'\nexport * from './components/step/step.component.module'\n// Input Autocomplete\nexport * from './components/autocomplete/autocomplete.component'\nexport * from './components/autocomplete/autocomplete.component.module'\nexport * from './components/autocomplete/autocomplete.model'\n// Badge\nexport * from './components/badge/badge.component'\nexport * from './components/badge/badge.component.module'\nexport * from './components/badge/badge.model'\n// Radial Progress\nexport * from './components/radial-progress/radial-progress.component'\nexport * from './components/radial-progress/radial-progress.component.module'\nexport * from './components/radial-progress/radial-progress.model'\n// Empty State\nexport * from './components/empty-state/empty-state.component'\nexport * from './components/empty-state/empty-state.component.module'\nexport * from './components/empty-state/empty-state.model'\n// Table\nexport * from './components/table/table.component';\nexport * from './components/table/table.component.module';\nexport * from './components/table/table.model'\n// Paginator\nexport * from './components/paginator/paginator.component';\nexport * from './components/paginator/paginator.component.module';\n// Skeleton\nexport * from './components/skeleton/skeleton.component';\n// Side Sheet\nexport * from './components/side-sheet/side-sheet.component';\nexport * from './components/side-sheet/side-sheet.component.module';\nexport * from './components/side-sheet/side-sheet.service';\nexport * from './components/side-sheet/side-sheet.model';\n// Slider\nexport * from './components/slider/slider.component';\nexport * from './components/slider/slider.component.module';\nexport * from './components/slider/slider.model';\n// Segmented Bar\nexport * from './components/segmented-bar/segmented-bar.component';\nexport * from './components/segmented-bar/segmented-bar.component.module';\nexport * from './components/segmented-bar/segmented-bar.model';\n// Page Header\nexport * from './components/page-header/page-header.component';\nexport * from './components/page-header/page-header.component.module';\n// Accordion\nexport * from './components/accordion/accordion.component';\nexport * from './components/accordion/accordion.component.module';\nexport * from './components/accordion/accordion.model'\n// Divider\nexport * from './components/divider/divider.component';\nexport * from './components/divider/divider.model';\nexport * from './components/divider/divider.component.module';\n// Tabs\nexport * from './components/tabs/tabs.component.module';\nexport * from './components/tabs/tabs.component';\nexport * from './components/tabs/tabs.model';\nexport * from './components/tabs/tab.directive';\n// Language\nexport * from './utils/localization/language.model';\n//Overflow Menu\nexport * from './components/overflow-menu/overflow-menu.component.module';\nexport * from './components/overflow-menu/overflow-menu.component';\n//Application Theme\nexport * from './models/application-theme.model';\n// Segmented Button\nexport * from './components/segmented-button/segmented-button.component';\nexport * from './components/segmented-button/segmented-button.model';\nexport * from './components/segmented-button/segmented-button.component.module';\n// Password Criteria\nexport * from './components/password-criteria/password.component';\nexport * from './components/password-criteria/password.component.module';\n// Phone Input\nexport * from './components/phone-input/phone-input.component';\nexport * from './components/phone-input/phone-input.component.module';\nexport * from './components/phone-input/phone-input.model';\n// Colors\nexport * from './models/colors.model';\n// Password Strength\nexport * from './components/password-strength/password-strength.component';\nexport * from './components/password-strength/password-strength.component.module';\n// Icons service\nexport * from './services/icons.service';\n// Is Mobile Token\nexport * from './providers/is-mobile';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3.IconsService","i1","i2.IconComponent","i3.IconComponent","i5","i6.BadgeComponent","daDk","itIt","jaJp","nbNo","plPl","ptBr","svSe","i3.ButtonComponent","i4.IconComponent","i5.UiTranslatePipe","i3.UiTranslatePipe","i3","i4","i5.ValidationErrorComponent","i6.HasValidationErrorPipe","i4.UiTranslatePipe","i8.IconComponent","i9.ButtonComponent","i10.ValidationErrorComponent","i11.DigitsOnlyDirective","i12.UiTranslatePipe","i13.HasValidationErrorPipe","i3.ProgressBarComponent","i4.DragDropDirective","i1.IconComponent","i4.NameInitialsPipe","i1.AvatarComponent","i2.ButtonComponent","i1.SideSheetService","i6.LogoComponent","i7.UiTranslatePipe","i2.SideSheetService","i6","i7","i8.LogoComponent","i9.IconComponent","i10.AvatarComponent","i11.SideSheetComponent","i12.ButtonComponent","i13.MobileNavbarSideSheetComponent","i14.BadgeComponent","i15.UiTranslatePipe","i4.ButtonComponent","i5.IconComponent","i1.DataPropertyGetterPipe","i7.DynamicComponentDirective","i5.ButtonComponent","i8.ValidationErrorComponent","i9.UiTranslatePipe","i10.HasValidationErrorPipe","i2.DialogComponent","i6.IconComponent","i8.NoDateFormatDirective","i9.ValidationErrorComponent","i10.UiTranslatePipe","i11.HasValidationErrorPipe","i2.HalfStarPipe","i3.EllipseTextDirective","i5.SpinnerComponent","i3.StepComponent","i4.RadialProgressComponent","i5.StepLineElementDirective","i6.UiTranslatePipe","i8.TagComponent","i12.SelectTextDirective","i13.UiTranslatePipe","i14.HasValidationErrorPipe","i15.TransformItemPipe","i16.IncludesPipe","i4.SkeletonComponent","i5.PaginatorComponent","i7.IconComponent","i8.EllipseTextDirective","i9.DynamicComponentDirective","i10.DataPropertyGetterPipe","i11.MemoizeFuncPipe","i12.SentenceCasePipe","i4.TooltipTemplateDirective","i1.TabsComponent","i2.FieldComponent","i5.ProgressBarComponent","i8","i10.IconComponent","i11.ValidationErrorComponent","i14.JoinStringsPipe"],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui.mjs","sources":["../../../projects/tgo-canopy-ui/utils/alert-bars.utils.ts","../../../projects/tgo-canopy-ui/utils/localization/language.model.ts","../../../projects/tgo-canopy-ui/utils/localization/language.service.ts","../../../projects/tgo-canopy-ui/utils/color-contrast.ts","../../../projects/tgo-canopy-ui/components/icon/icon.config.ts","../../../projects/tgo-canopy-ui/services/icons.service.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.html","../../../projects/tgo-canopy-ui/components/badge/badge.model.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.html","../../../projects/tgo-canopy-ui/components/button/button.component.ts","../../../projects/tgo-canopy-ui/components/button/button.component.html","../../../projects/tgo-canopy-ui/pipes/ui-translate.pipe.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.html","../../../projects/tgo-canopy-ui/components/icon/icon.component.module.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.module.ts","../../../projects/tgo-canopy-ui/components/button/button.component.module.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.module.ts","../../../projects/tgo-canopy-ui/components/card/card.component.ts","../../../projects/tgo-canopy-ui/components/card/card.component.html","../../../projects/tgo-canopy-ui/components/card/card.component.module.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.html","../../../projects/tgo-canopy-ui/pipes/has-validation-error.pipe.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.html","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.module.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.module.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.html","../../../projects/tgo-canopy-ui/components/dialog/dialog.service.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.constant.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.html","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.module.ts","../../../projects/tgo-canopy-ui/directives/digits-only.directive.ts","../../../projects/tgo-canopy-ui/components/field/field.component.ts","../../../projects/tgo-canopy-ui/components/field/field.component.html","../../../projects/tgo-canopy-ui/components/field/field.component.module.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.html","../../../projects/tgo-canopy-ui/directives/drag-drop.directive.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.html","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.module.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.html","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.module.ts","../../../projects/tgo-canopy-ui/components/logo/logo.model.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.html","../../../projects/tgo-canopy-ui/components/logo/logo.component.module.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.html","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.module.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.model.ts","../../../projects/tgo-canopy-ui/pipes/name-initials.pipe.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.html","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html","../../../projects/tgo-canopy-ui/models/screen-breakpoints.model.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.service.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.html","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.html","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.module.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.html","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.module.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.html","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.service.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.module.ts","../../../projects/tgo-canopy-ui/pipes/data-property-getter.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.model.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/directives/dynamic-component.directive.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.html","../../../projects/tgo-canopy-ui/components/deprecated-table/deprecated-table.component.module.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.model.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.module.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.module.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.html","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.module.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.html","../../../projects/tgo-canopy-ui/components/spinner/spinner.module.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.html","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/datepicker/no-date-format.directive.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.html","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.module.ts","../../../projects/tgo-canopy-ui/components/rating/half-star.pipe.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.html","../../../projects/tgo-canopy-ui/components/rating/rating.component.module.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.html","../../../projects/tgo-canopy-ui/components/scale/scale.component.module.ts","../../../projects/tgo-canopy-ui/directives/ellipse-text.directive.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.html","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.module.ts","../../../projects/tgo-canopy-ui/providers/is-mobile.ts","../../../projects/tgo-canopy-ui/components/step/step.component.ts","../../../projects/tgo-canopy-ui/components/step/step.component.html","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.model.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.html","../../../projects/tgo-canopy-ui/directives/step-line-element.directive.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.html","../../../projects/tgo-canopy-ui/components/step/step.component.module.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.module.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.module.ts","../../../projects/tgo-canopy-ui/utils/autocomplete-utils.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.model.ts","../../../projects/tgo-canopy-ui/directives/select-text.directive.ts","../../../projects/tgo-canopy-ui/components/autocomplete/transform-Item.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/includes.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.html","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.module.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.html","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.model.ts","../../../projects/tgo-canopy-ui/utils/table.utils.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.ts","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.html","../../../projects/tgo-canopy-ui/pipes/memoize-func.pipe.ts","../../../projects/tgo-canopy-ui/components/table/sentence-case.pipe.ts","../../../projects/tgo-canopy-ui/components/table/table.component.ts","../../../projects/tgo-canopy-ui/components/table/table.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.component.module.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.html","../../../projects/tgo-canopy-ui/components/slider/slider.component.module.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip-template.directive.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.html","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.html","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.module.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.html","../../../projects/tgo-canopy-ui/components/divider/divider.component.module.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.html","../../../projects/tgo-canopy-ui/components/tabs/tab.directive.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.module.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.html","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.module.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.html","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.module.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.html","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.module.ts","../../../projects/tgo-canopy-ui/components/phone-input/join-strings.pipe.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.html","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.module.ts","../../../projects/tgo-canopy-ui/models/colors.model.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.html","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.module.ts","../../../projects/tgo-canopy-ui/public-api.ts","../../../projects/tgo-canopy-ui/testgorilla-tgo-ui.ts"],"sourcesContent":["import { IconName } from '../components/icon/icon.model';\nimport { AlertVariant } from './alert-bar.model';\n\nexport const alertBarsUtil = {\n //Set css class and iconName according type\n setIcon: (alertType: string): IconName => {\n if (alertType === 'success') {\n return 'Round-check';\n }\n if (alertType === 'info') {\n return 'Info';\n }\n if (alertType === 'warning') {\n return 'Warning';\n }\n if (alertType === 'error') {\n return 'Error';\n }\n return '';\n },\n\n //Set cssClass for fixed or static position\n setPosition: (fixed: boolean): string => {\n if (fixed === true) {\n return 'fixed';\n } else {\n return 'static';\n }\n },\n\n //Set css class for alertbanner\n setCssClass: (fullWidth: boolean, type: string, position: string, variant: AlertVariant = 'banner'): string => {\n const isFullWidth = !!fullWidth ? 'full-width' : '';\n const _type = variant === 'banner' ? type : (type === 'error' || type === 'success') ? 'info' : type;\n return `${_type} ${position} ${isFullWidth} ${variant}`;\n },\n};\n","export enum Language {\n en = 'en',\n es = 'es',\n nl = 'nl',\n fr = 'fr',\n de = 'de',\n 'it-it' = 'it-it',\n 'ja-jp' = 'ja-jp',\n 'pt-br' = 'pt-br',\n 'da-dk' = 'da-dk',\n 'nb-no' = 'nb-no',\n 'pl-pl' = 'pl-pl',\n 'sv-se' = 'sv-se',\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from './language.model';\n//This type enforces all translations are present when some translation needs to live in the frontend\nexport type TranslationMap = { [key in Language]: string };\n\n//This function retrieves all languages from the enum. It is used to initialize transloco\nexport const getAvailableLangs = () => Object.values(Language);\n\n//This type is intended for UI uses only\nexport type UILanguage = { code: Language | string; label: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LanguageService {\n static readonly defaultLanguage = Language.en;\n\n readonly defaultLanguageList: UILanguage[] = [\n { code: Language.en, label: 'English' },\n { code: Language.es, label: 'Spanish' },\n { code: Language.de, label: 'German' },\n { code: Language.fr, label: 'French' },\n { code: Language.nl, label: 'Dutch' },\n { code: Language['it-it'], label: 'Italian' },\n { code: Language['ja-jp'], label: 'Japanese' },\n { code: Language['pt-br'], label: 'Portuguese' },\n { code: Language['da-dk'], label: 'Danish' },\n { code: Language['nb-no'], label: 'Norwegian' },\n { code: Language['pl-pl'], label: 'Polish' },\n { code: Language['sv-se'], label: 'Swedish' },\n ];\n}\n","/**\n * Function for adjusting the lightness of a color based on different events (hover, pressed, disabled).\n * Accepts a hex color, transforms it to HSL, and based on color's L and event darkens or lightens it.\n * Used to manage different colors based on application configuration\n *\n * @param hexColor color in hex format\n * @param typeEvent interaction event\n * @param theme\n */\nexport const adjustLightness = (hexColor: string, typeEvent: 'hover' | 'pressed' | 'disabled', theme: 'new' | 'classic' = 'new'): string => {\n const hexRegex = /^#([0-9A-F]{3}){1,2}$/i;\n if (hexColor && !hexRegex.test(hexColor)) {\n throw new Error('Invalid HEX color format');\n }\n\n const hslColor = hexToHsl(hexColor);\n const lightness = hslColor.l * 100;\n\n if (theme === 'new') {\n if (lightness > 70 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness < 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 70 && lightness > 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n }\n } else {\n if (lightness > 70 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness < 30 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'hover') {\n hslColor.l = clamp(hslColor.l - 10 / 100);\n } else if (lightness > 70 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l - 20 / 100);\n } else if (lightness < 30 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l + 30 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'pressed') {\n hslColor.l = clamp(hslColor.l - 20 / 100);\n } else if (lightness > 70 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 10 / 100);\n } else if (lightness < 30 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 50 / 100);\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'disabled') {\n hslColor.l = clamp(hslColor.l + 20 / 100);\n }\n }\n\n return hslToHex(hslColor);\n};\n\n/**\n * Transforms hex color to HSL in object variation.\n * @param hexColor string value with hex color\n */\nexport const hexToHsl = (hexColor: string): { h: number; s: number; l: number } => {\n const rgbColor = parseInt(hexColor.slice(1), 16);\n const r = ((rgbColor >> 16) & 255) / 255;\n const g = ((rgbColor >> 8) & 255) / 255;\n const b = (rgbColor & 255) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h = 0;\n let s;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // grayscale\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h, s, l };\n};\n\n/**\n * Transforms HSL color, represented as an object and transforms it to hex string.\n * @param hslColor accepts the HSL color like an object.\n */\nexport const hslToHex = (hslColor: { h: number; s: number; l: number }): string => {\n const { h, s, l } = hslColor;\n\n const hueToRgb = (p: number, q: number, t: number): number => {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n const r = hueToRgb(p, q, h + 1 / 3);\n const g = hueToRgb(p, q, h);\n const b = hueToRgb(p, q, h - 1 / 3);\n\n const rgbColor = (Math.round(r * 255) << 16) | (Math.round(g * 255) << 8) | Math.round(b * 255);\n\n return `#${rgbColor.toString(16).padStart(6, '0')}`;\n};\n\n/**\n * Restricts the value to be within the range [0, 1].\n * @param value\n */\nconst clamp = (value: number): number => Math.min(Math.max(value, 0), 1);\n","// Data of all tgoIcons\nexport const tgoIcons = [\n 'Add',\n 'Archive',\n 'Arrow_down',\n 'Arrow_left',\n 'Arrow_right',\n 'Arrow_up',\n 'Assessment',\n 'Attempts',\n 'Book',\n 'Calendar',\n 'Candidates',\n 'Chat-notifications',\n 'Chat',\n 'Check',\n 'Clone',\n 'Close',\n 'Code',\n 'Company',\n 'Copy',\n 'Custom-questions',\n 'Delete',\n 'Devices',\n 'Document',\n 'Download',\n 'Edit',\n 'Email-message',\n 'Empty-placeholder',\n 'Error',\n 'Essay',\n 'Eye-hide',\n 'Eye-view',\n 'Feedback-1',\n 'Feedback-2',\n 'Feedback-3',\n 'Feedback-4',\n 'Feedback-5',\n 'File-attach',\n 'File-upload',\n 'Filter',\n 'Folder',\n 'Format-add-file',\n 'Format-add-table',\n 'Format-align-L',\n 'Format-align-R',\n 'Format-align-center',\n 'Format-align-justify',\n 'Format-bold',\n 'Format-code-active',\n 'Format-code-block',\n 'Format-edit-table',\n 'Format-format',\n 'Format-function',\n 'Format-italics',\n 'Format-list-bulleted',\n 'Format-list-numbered',\n 'Format-picker',\n 'Format-quote',\n 'Format-subscript',\n 'Format-superscript',\n 'Format-text-direction-L',\n 'Format-text-direction-R',\n 'Format-text-size',\n 'Format-underline',\n 'Format-variable',\n 'Full-screen',\n 'Gender-female',\n 'Gender-male',\n 'Help-2',\n 'Help',\n 'Image',\n 'Info',\n 'Integration',\n 'Language',\n 'Layout',\n 'Learn',\n 'Level',\n 'Light-bulb',\n 'Link',\n 'Loading-spinner',\n 'Localisation',\n 'Location',\n 'Lock',\n 'Log-out',\n 'Menu-burger',\n 'Menu-ellipsis',\n 'Microphone',\n 'Minus',\n 'Mouse-cursor',\n 'Mouse-grab-cursor',\n 'Mouse',\n 'Multi-choice',\n 'Notifications',\n 'Password',\n 'Path',\n 'Plan-billing',\n 'Plus',\n 'Premium',\n 'Promotion',\n 'Question-count',\n 'Refer',\n 'Reset',\n 'Review',\n 'Round-check-filled',\n 'Round-check',\n 'Search',\n 'Secure-checkout',\n 'Send',\n 'Settings',\n 'Social-facebook',\n 'Social-instagram',\n 'Social-linkedin',\n 'Sorting-down-1',\n 'Sorting-down',\n 'Speedometer',\n 'Star-filled',\n 'Star-half',\n 'Star-outline',\n 'Support',\n 'Sync',\n 'Team',\n 'Test',\n 'Thunder',\n 'Timer',\n 'Type',\n 'Unarchive',\n 'Unlock',\n 'Upgrade',\n 'Upload',\n 'User-access',\n 'User-add',\n 'User-invite',\n 'User-profile',\n 'User-reject',\n 'User-switch',\n 'Video-pause',\n 'Video-play',\n 'Video-record',\n 'Video',\n 'Volume',\n 'Warning',\n 'Zoom-in',\n 'Zoom-out',\n 'Fire',\n 'Gift',\n 'Grab',\n 'Share',\n 'Sparkles',\n 'Video-stop',\n 'Minimize',\n 'Employee',\n 'Money-bag',\n 'Suitcase',\n 'Google',\n 'Fast-forward',\n 'Fast-rewind',\n 'Skip-next',\n 'Skip-previous',\n 'TestGorilla',\n] as const;\n\nexport const tgoRebrandIcons = [\n 'Archive-filled',\n 'Archive-in-line',\n 'Add-in-line',\n 'Add-filled',\n 'Arrow-chevron-down-filled',\n 'Arrow-chevron-down-in-line',\n 'Arrow-chevron-left-filled',\n 'Arrow-chevron-left-in-line',\n 'Arrow-chevron-right-filled',\n 'Arrow-chevron-right-in-line',\n 'Arrow-chevron-up-filled',\n 'Arrow-chevron-up-in-line',\n 'Arrow-down-filled',\n 'Arrow-down-in-line',\n 'Arrow-up-filled',\n 'Arrow-up-in-line',\n 'Assessment-filled',\n 'Assessment-in-line',\n 'Attach-filled',\n 'Attach-in-line',\n 'Attempts-filled',\n 'Attempts-in-line',\n 'Book-filled',\n 'Book-in-line',\n 'Calendar-filled',\n 'Calendar-in-line',\n 'Candidates-filled',\n 'Candidates-in-line',\n 'Chat-filled',\n 'Chat-in-line',\n 'Check-filled',\n 'Check-in-line',\n 'Check-round-filled',\n 'Check-round-in-line',\n 'Clone-filled',\n 'Clone-in-line',\n 'Close-filled',\n 'Close-in-line',\n 'Code-filled',\n 'Code-in-line',\n 'Company-filled',\n 'Company-in-line',\n 'Copy-filled',\n 'Copy-in-line',\n 'Delete-filled',\n 'Delete-in-line',\n 'Devices-filled',\n 'Devices-in-line',\n 'Document-filled',\n 'Document-in-line',\n 'Download-filled',\n 'Download-in-line',\n 'Edit-filled',\n 'Edit-in-line',\n 'Edit-text-filled',\n 'Edit-text-in-line',\n 'Employee-filled',\n 'Employee-in-line',\n 'Error-filled',\n 'Error-in-line',\n 'Essay-filled',\n 'Essay-in-line',\n 'Experience-filled',\n 'Experience-in-line',\n 'Facebook-filled',\n 'Facebook-in-line',\n 'Fast-forward-filled',\n 'Fast-forward-in-line',\n 'Fast-rewind-filled',\n 'Fast-rewind-in-line',\n 'Filter-filled',\n 'Filter-in-line',\n 'Fire-filled',\n 'Fire-in-line',\n 'Folder-filled',\n 'Folder-in-line',\n 'Full-screen-filled',\n 'Full-screen-in-line',\n 'Gender-male-filled',\n 'Gender-male-in-line',\n 'Gender-female-filled',\n 'Gender-female-in-line',\n 'Gift-filled',\n 'Gift-in-line',\n 'Google-filled',\n 'Google-in-line',\n 'Grab-filled',\n 'Grab-in-line',\n 'Help-filled',\n 'Help-in-line',\n 'Hide-filled',\n 'Hide-in-line',\n 'Image-filled',\n 'Image-in-line',\n 'Info-filled',\n 'Info-in-line',\n 'Instagram-filled',\n 'Instagram-in-line',\n 'Integration-filled',\n 'Integration-in-line',\n 'Invite-filled',\n 'Invite-in-line',\n 'Language-filled',\n 'Language-in-line',\n 'Layout-filled',\n 'Layout-in-line',\n 'Learn-filled',\n 'Learn-in-line',\n 'Level-filled',\n 'Level-in-line',\n 'Light-bulb-filled',\n 'Light-bulb-in-line',\n 'Link-filled',\n 'Link-in-line',\n 'Linkedin-filled',\n 'Linkedin-in-line',\n 'Localization-filled',\n 'Localization-in-line',\n 'Location-filled',\n 'Location-in-line',\n 'Lock-filled',\n 'Lock-in-line',\n 'Logout-filled',\n 'Logout-in-line',\n 'Menu-burger-filled',\n 'Menu-burger-in-line',\n 'Menu-ellipsis-filled',\n 'Menu-ellipsis-in-line',\n 'Mic-filled',\n 'Mic-in-line',\n 'Minimize-filled',\n 'Minimize-in-line',\n 'Minus-filled',\n 'Minus-in-line',\n 'Mouse-filled',\n 'Mouse-in-line',\n 'Multi-choice-filled',\n 'Multi-choice-in-line',\n 'Notification-bell-filled',\n 'Notification-bell-in-line',\n 'Password-filled',\n 'Password-in-line',\n 'Path-filled',\n 'Path-in-line',\n 'Pause-filled',\n 'Pause-in-line',\n 'Plan-billing-filled',\n 'Plan-billing-in-line',\n 'Play-filled',\n 'Play-in-line',\n 'Plus-filled',\n 'Plus-in-line',\n 'Premium-filled',\n 'Premium-in-line',\n 'Premium-circle-in-line',\n 'Question-count-filled',\n 'Question-count-in-line',\n 'Question-filled',\n 'Question-in-line',\n 'Record-filled',\n 'Record-in-line',\n 'Reject-filled',\n 'Refer-in-line',\n 'Refer-filled',\n 'Reject-in-line',\n 'Reset-filled',\n 'Reset-in-line',\n 'Review-emoji-1-filled',\n 'Review-emoji-1-in-line',\n 'Review-emoji-2-filled',\n 'Review-emoji-2-in-line',\n 'Review-emoji-3-filled',\n 'Review-emoji-3-in-line',\n 'Review-emoji-4-filled',\n 'Review-emoji-4-in-line',\n 'Review-emoji-5-filled',\n 'Review-emoji-5-in-line',\n 'Review-filled',\n 'Review-half-star-filled',\n 'Review-half-star-in-line',\n 'Review-in-line',\n 'Review-star-filled',\n 'Review-star-in-line',\n 'Search-filled',\n 'Search-in-line',\n 'Secure-filled',\n 'Secure-in-line',\n 'Send-filled',\n 'Send-in-line',\n 'Settings-filled',\n 'Settings-in-line',\n 'Share-filled',\n 'Share-in-line',\n 'Skip-next-filled',\n 'Skip-next-in-line',\n 'Skip-previous-filled',\n 'Skip-previous-in-line',\n 'Sparkle-filled',\n 'Sparkle-in-line',\n 'Speedometer-filled',\n 'Speedometer-in-line',\n 'Stop-filled',\n 'Stop-in-line',\n 'Switch-filled',\n 'Switch-in-line',\n 'Sync-filled',\n 'Sync-in-line',\n 'Team-filled',\n 'Team-in-line',\n 'Test-filled',\n 'Test-in-line',\n 'Timer-filled',\n 'Timer-in-line',\n 'Type-filled',\n 'Type-in-line',\n 'Unarchive-filled',\n 'Unarchive-in-line',\n 'Unlock-filled',\n 'Unlock-in-line',\n 'Upgrade-filled',\n 'Upgrade-in-line',\n 'Upload-filled',\n 'Upload-in-line',\n 'User-access-filled',\n 'User-access-in-line',\n 'User-add-filled',\n 'User-add-in-line',\n 'User-profile-filled',\n 'User-profile-in-line',\n 'Video-filled',\n 'Video-in-line',\n 'View-filled',\n 'View-in-line',\n 'Volume-filled',\n 'Volume-in-line',\n 'Warning-filled',\n 'Warning-in-line',\n 'Zoom-in-filled',\n 'Zoom-in-in-line',\n 'Zoom-out-filled',\n 'Zoom-out-in-line',\n 'TestGorilla-filled',\n 'TestGorilla-in-line',\n] as const;\n\nexport const groupedIcons = {\n directional: [\n 'Arrow-chevron-down-filled',\n 'Arrow-chevron-down-in-line',\n 'Arrow-chevron-left-filled',\n 'Arrow-chevron-left-in-line',\n 'Arrow-chevron-right-filled',\n 'Arrow-chevron-right-in-line',\n 'Arrow-chevron-up-filled',\n 'Arrow-chevron-up-in-line',\n 'Arrow-down-filled',\n 'Arrow-down-in-line',\n 'Arrow-up-filled',\n 'Arrow-up-in-line',\n 'Fast-forward-filled',\n 'Fast-forward-in-line',\n 'Fast-rewind-filled',\n 'Fast-rewind-in-line',\n 'Minus-filled',\n 'Minus-in-line',\n 'Plus-filled',\n 'Plus-in-line',\n 'Skip-next-filled',\n 'Skip-next-in-line',\n 'Skip-previous-filled',\n 'Skip-previous-in-line',\n ],\n assessment: [\n 'Assessment-filled',\n 'Assessment-in-line',\n 'Attempts-filled',\n 'Attempts-in-line',\n 'Candidates-filled',\n 'Candidates-in-line',\n 'Code-filled',\n 'Code-in-line',\n 'Essay-filled',\n 'Essay-in-line',\n 'Language-filled',\n 'Language-in-line',\n 'Learn-filled',\n 'Learn-in-line',\n 'Level-filled',\n 'Level-in-line',\n 'Localization-filled',\n 'Localization-in-line',\n 'Mic-filled',\n 'Mic-in-line',\n 'Multi-choice-filled',\n 'Multi-choice-in-line',\n 'Question-count-filled',\n 'Question-count-in-line',\n 'Question-filled',\n 'Question-in-line',\n 'Speedometer-filled',\n 'Speedometer-in-line',\n 'Test-filled',\n 'Test-in-line',\n 'Timer-filled',\n 'Timer-in-line',\n 'Type-filled',\n 'Type-in-line',\n 'Video-filled',\n 'Video-in-line',\n ],\n status: [\n 'Check-filled',\n 'Check-in-line',\n 'Check-round-filled',\n 'Check-round-in-line',\n 'Error-filled',\n 'Error-in-line',\n 'Help-filled',\n 'Help-in-line',\n 'Info-filled',\n 'Info-in-line',\n 'Refer-in-line',\n 'Refer-filled',\n 'Review-emoji-1-filled',\n 'Review-emoji-1-in-line',\n 'Review-emoji-2-filled',\n 'Review-emoji-2-in-line',\n 'Review-emoji-3-filled',\n 'Review-emoji-3-in-line',\n 'Review-emoji-4-filled',\n 'Review-emoji-4-in-line',\n 'Review-emoji-5-filled',\n 'Review-emoji-5-in-line',\n 'Review-half-star-filled',\n 'Review-half-star-in-line',\n 'Review-star-filled',\n 'Review-star-in-line',\n 'Warning-filled',\n 'Warning-in-line',\n ],\n social: [\n 'Facebook-filled',\n 'Facebook-in-line',\n 'Google-filled',\n 'Google-in-line',\n 'Instagram-filled',\n 'Instagram-in-line',\n 'Linkedin-filled',\n 'Linkedin-in-line',\n 'TestGorilla-filled',\n 'TestGorilla-in-line',\n ],\n actions: [\n 'Archive-filled',\n 'Archive-in-line',\n 'Attach-filled',\n 'Attach-in-line',\n 'Clone-filled',\n 'Clone-in-line',\n 'Close-filled',\n 'Close-in-line',\n 'Copy-filled',\n 'Copy-in-line',\n 'Delete-filled',\n 'Delete-in-line',\n 'Download-filled',\n 'Download-in-line',\n 'Edit-filled',\n 'Edit-in-line',\n 'Edit-text-filled',\n 'Edit-text-in-line',\n 'Filter-filled',\n 'Filter-in-line',\n 'Full-screen-filled',\n 'Full-screen-in-line',\n 'Grab-filled',\n 'Grab-in-line',\n 'Hide-filled',\n 'Hide-in-line',\n 'Invite-filled',\n 'Invite-in-line',\n 'Link-filled',\n 'Link-in-line',\n 'Lock-filled',\n 'Lock-in-line',\n 'Logout-filled',\n 'Logout-in-line',\n 'Menu-burger-filled',\n 'Menu-burger-in-line',\n 'Menu-ellipsis-filled',\n 'Menu-ellipsis-in-line',\n 'Minimize-filled',\n 'Minimize-in-line',\n 'Pause-filled',\n 'Pause-in-line',\n 'Play-filled',\n 'Play-in-line',\n 'Record-filled',\n 'Record-in-line',\n 'Reject-filled',\n 'Reject-in-line',\n 'Reset-filled',\n 'Reset-in-line',\n 'Review-filled',\n 'Review-half-star-filled',\n 'Search-filled',\n 'Search-in-line',\n 'Send-filled',\n 'Send-in-line',\n 'Settings-filled',\n 'Settings-in-line',\n 'Share-filled',\n 'Share-in-line',\n 'Stop-filled',\n 'Stop-in-line',\n 'Switch-filled',\n 'Switch-in-line',\n 'Unarchive-filled',\n 'Unarchive-in-line',\n 'Unlock-filled',\n 'Unlock-in-line',\n 'Upgrade-filled',\n 'Upgrade-in-line',\n 'Upload-filled',\n 'Upload-in-line',\n 'User-add-filled',\n 'User-add-in-line',\n 'View-filled',\n 'View-in-line',\n 'Zoom-in-filled',\n 'Zoom-in-in-line',\n 'Zoom-out-filled',\n 'Zoom-out-in-line',\n ],\n communication: [\n 'Book-filled',\n 'Book-in-line',\n 'Calendar-filled',\n 'Calendar-in-line',\n 'Chat-filled',\n 'Chat-in-line',\n 'Company-filled',\n 'Company-in-line',\n 'Devices-filled',\n 'Devices-in-line',\n 'Document-filled',\n 'Document-in-line',\n 'Employee-filled',\n 'Employee-in-line',\n 'Experience-filled',\n 'Experience-in-line',\n 'Fire-filled',\n 'Fire-in-line',\n 'Folder-filled',\n 'Folder-in-line',\n 'Gender-female-filled',\n 'Gender-female-in-line',\n 'Gender-male-filled',\n 'Gender-male-in-line',\n 'Gift-filled',\n 'Gift-in-line',\n 'Image-filled',\n 'Image-in-line',\n 'Integration-filled',\n 'Integration-in-line',\n 'Layout-filled',\n 'Layout-in-line',\n 'Light-bulb-filled',\n 'Light-bulb-in-line',\n 'Location-filled',\n 'Location-in-line',\n 'Mouse-filled',\n 'Mouse-in-line',\n 'Notification-bell-filled',\n 'Notification-bell-in-line',\n 'Password-filled',\n 'Password-in-line',\n 'Path-filled',\n 'Path-in-line',\n 'Plan-billing-filled',\n 'Plan-billing-in-line',\n 'Premium-filled',\n 'Premium-in-line',\n 'Premium-circle-in-line',\n 'Secure-filled',\n 'Secure-in-line',\n 'Sparkle-filled',\n 'Sparkle-in-line',\n 'Sync-filled',\n 'Sync-in-line',\n 'Team-filled',\n 'Team-in-line',\n 'User-access-filled',\n 'User-access-in-line',\n 'User-profile-filled',\n 'User-profile-in-line',\n 'Volume-filled',\n 'Volume-in-line',\n ],\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconsService {\n private _loadedIcons: any[] = [];\n\n addIcon(icon: any): void {\n this._loadedIcons = [...this._loadedIcons, icon];\n }\n\n isIconLoaded(icon: any): boolean {\n return this._loadedIcons.includes(icon);\n }\n}\n","import {\n Component,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { tgoIcons, tgoRebrandIcons } from './icon.config';\nimport { IconColor, IconName, IconSize } from './icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconsService } from '../../services/icons.service';\n\n@Component({\n selector: 'ui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent implements OnInit {\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconComponent\n */\n @HostBinding('style.--icon-size')\n @Input() size: IconSize = '16';\n\n /**\n * Icon css class\n *\n * @memberof IconComponent\n */\n @Input() cssClass = '';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconComponent\n */\n @Input() name: IconName;\n\n /**\n * Icon color\n *\n * @type {IconColor}\n * @memberof IconComponent\n */\n @Input() color?: IconColor = 'black';\n\n /**\n * Icon filled\n *\n * @type {boolean}\n * @memberof IconComponent\n */\n @Input() filled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n customCssClass: string;\n filename: IconName | undefined;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private matIconRegistry: MatIconRegistry,\n private domSanitzer: DomSanitizer,\n private iconsService: IconsService\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.customCssClass = this.setCssClass();\n this.addIcon();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['size'] || changes['cssClass'] || changes['color'] ) {\n this.customCssClass = this.setCssClass();\n }\n if (changes['name'] || changes['filled'] || changes['applicationTheme']) {\n this.addIcon();\n }\n }\n\n //set css class for size\n setCssClass(): string {\n return `${this.cssClass} size-${this.size} ${this.color}`;\n }\n\n //Add icon to matIcon registry\n addIcon() {\n let filename: IconName | undefined;\n\n if (this.filled || this.name?.includes('filled')) {\n this.name = this.name.replace(/-in-line/, '') as IconName;\n filename =\n this.applicationTheme === 'classic'\n ? tgoIcons.find(icon => icon === this.filledIconName)\n : tgoRebrandIcons.find(icon => icon === this.filledIconName);\n } else {\n filename =\n this.applicationTheme === 'classic'\n ? (this.name?.replace(/-filled|-in-line/, '') as IconName)\n : (this.inlineIconFileName as IconName);\n }\n\n if (!filename) {\n filename = tgoIcons.find(icon => icon === this.name);\n }\n\n this.name = filename as IconName;\n const path = this.applicationTheme === 'classic' ? '/icons/' : '/icons/rebrand/';\n\n if (filename && !this.iconsService.isIconLoaded(filename)) {\n this.matIconRegistry.addSvgIcon(\n filename,\n this.domSanitzer.bypassSecurityTrustResourceUrl(`${path}${filename}.svg`)\n );\n this.iconsService.addIcon(filename);\n }\n }\n\n get filledIconName() {\n return this.name?.includes('filled') ? this.name : `${this.name}-filled`;\n }\n\n get inlineIconName() {\n return this.name?.includes('in-line') ? this.name : `${this.name}-in-line`;\n }\n\n get inlineIconFileName() {\n return this.name?.includes('filled') ? this.name.replace('filled', 'in-line') : this.inlineIconName;\n }\n}\n","<mat-icon [svgIcon]=\"name\" [attr.class]=\"customCssClass\"></mat-icon>\n","export type BadgeVariant = 'primary' | 'secondary' | 'notification';\nexport type BadgeColor =\n | 'red'\n | 'grey-medium'\n | 'teal'\n | 'yellow'\n | 'petrol'\n | 'teal-60w'\n | 'petrol-90w'\n | 'petrol-60w'\n | 'grey-dark'\n | 'blue-20'\n | 'blue-40';\n\nexport enum BadgeColorEnum {\n RED = 'red',\n GREY_MEDIUM = 'grey-medium',\n TEAL = 'teal',\n YELLOW = 'yellow',\n PETROL = 'petrol',\n TEAL_60W = 'teal-60w',\n PETROL_90W = 'petrol-90w',\n PETROL_60W = 'petrol-60w',\n GREY_DARK = 'grey-dark',\n BLUE_20 = 'blue-20',\n BLUE_40 = 'blue-40',\n}\n\nexport type RebrandBadgeColor =\n | 'success'\n | 'warning'\n | 'negative'\n | 'info'\n | 'brand'\n | 'neutral'\n | 'blue-20'\n | 'blue-40';\n\nexport enum RebrandBadgeColorEnum {\n SUCCESS = 'success',\n WARNING = 'warning',\n NEGATIVE = 'negative',\n INFO = 'info',\n BRAND = 'brand',\n NEUTRAL = 'neutral',\n BLUE_40 = 'blue-40',\n BLUE_20 = 'blue-20',\n}\n\nexport enum BadgeVariantEnum {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n NOTIFICATION = 'notification',\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { IconColor, IconName } from '../icon/icon.model';\nimport {\n BadgeColor,\n BadgeColorEnum,\n BadgeVariant,\n BadgeVariantEnum,\n RebrandBadgeColor,\n RebrandBadgeColorEnum,\n} from './badge.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n})\nexport class BadgeComponent {\n /**\n * The label to be displayed on the badge.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() label = '';\n\n /**\n * The icon name to be displayed on the badge.\n * @type {IconName}\n * @memberof BadgeComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * The color of the badge. Defaults to 'petrol'.\n * @type {BadgeColor}\n * @memberof BadgeComponent\n */\n @Input() color: BadgeColor = 'petrol';\n\n /**\n * The variant of the badge. Defaults to 'primary'.\n * @type {BadgeVariant}\n * @memberof BadgeComponent\n */\n @Input() variant: BadgeVariant = 'primary';\n\n /**\n * The amount of notifications to be displayed on the badge.\n * @type {number}\n * @memberof BadgeComponent\n */\n @Input() notificationsAmount = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof BadgeComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The color of the badge on new theme. Defaults to 'brand'.\n * @type {RebrandBadgeColor}\n * @memberof BadgeComponent\n */\n @Input() rebrandColor: RebrandBadgeColor = 'brand';\n\n protected badgeVariant = BadgeVariantEnum;\n private darkColors: string[] = [\n BadgeColorEnum.GREY_MEDIUM,\n BadgeColorEnum.PETROL_90W,\n BadgeColorEnum.TEAL_60W,\n BadgeColorEnum.PETROL_60W,\n RebrandBadgeColorEnum.SUCCESS,\n RebrandBadgeColorEnum.INFO,\n RebrandBadgeColorEnum.BRAND,\n RebrandBadgeColorEnum.NEUTRAL,\n RebrandBadgeColorEnum.NEGATIVE,\n RebrandBadgeColorEnum.WARNING,\n RebrandBadgeColorEnum.BLUE_20,\n ];\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 get iconColor(): IconColor {\n return this.darkColors.includes(this.isClassicTheme ? this.color : this.rebrandColor) ? 'black' : 'white';\n }\n\n protected get isClassicTheme(): boolean {\n return this.applicationTheme === 'classic';\n }\n}\n","<div [class]=\"'badge-container-' + variant\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"(label.length > 25) ? label : ''\"\n [matTooltipClass]=\"applicationTheme\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"badgeVariant.PRIMARY\">\n <ui-icon *ngIf=\"icon\" class=\"badge-icon\" [name]=\"icon\" [color]=\"iconColor\" ></ui-icon>\n </ng-container>\n <div *ngSwitchCase=\"badgeVariant.SECONDARY\" class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n <div *ngSwitchCase=\"badgeVariant.NOTIFICATION\" class=\"number-notification\">{{ notificationsAmount }}</div>\n </ng-container>\n <div class=\"label\" *ngIf=\"label && variant !== badgeVariant.NOTIFICATION\">{{ label.length > 25 ? (label | slice : 0 : 25) + '...' : label }}</div>\n</div>\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding, Inject,\n Input,\n OnInit, Optional,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport {\n ButtonBadgeConfig,\n ButtonColor,\n ButtonIconPosition,\n ButtonSize,\n ButtonState,\n ButtonType,\n IconButtonSize,\n LinkUrlTarget\n} from './button.model';\nimport { adjustLightness } from '../../utils/color-contrast';\nimport { MatButton } from '@angular/material/button';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent implements OnInit, AfterViewInit {\n @HostBinding('style.pointer-events')\n get enabled(): string {\n return this.disabled ? 'none' : 'all';\n }\n\n @ViewChild('tooltipElement') tooltipElement: ElementRef<HTMLElement>;\n\n /**\n * Define button height\n *\n * @type {ButtonSize}\n * @memberof ButtonComponent\n */\n @Input() size: ButtonSize = 'big';\n /**\n * Background color of the button while in active state\n *\n * @type {ButtonColor}\n * @memberof ButtonComponent\n */\n @HostBinding('attr.btn-variant')\n @Input()\n variant: ButtonColor = 'primary';\n\n /**\n * Text content to appear on the button\n *\n * @memberof ButtonComponent\n */\n @Input() label = '';\n\n /**\n * Positioning of the icon (when existant)\n *\n * @type {ButtonIconPosition}\n * @memberof ButtonComponent\n */\n @Input() iconPosition?: ButtonIconPosition = 'right';\n\n /**\n * Define if button has only icon without text\n *\n * @memberof ButtonComponent\n */\n @Input() justIcon = false;\n\n /**\n * Name of ui-icon\n *\n * @type {IconName}\n * @memberof ButtonComponent\n */\n @Input() iconName: IconName = '';\n\n /**\n * Indicator if the button should be disabled\n *\n * @memberof ButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Indicator if the loading icon should be shown\n *\n * @memberof ButtonComponent\n */\n @Input() loading = false;\n\n /**\n * Indicator of the button width\n *\n * @memberof ButtonComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Url of button if it is a link\n *\n * @memberof ButtonComponent\n */\n @Input() url?: string;\n\n /**\n * Url's target of button if it is a link\n *\n * @type {@type {LinkUrlTarget}}\n * @memberof ButtonComponent\n */\n @Input() urlTarget?: LinkUrlTarget;\n\n /**\n * Button value\n *\n * @memberof ButtonComponent\n */\n @Input() value?: string;\n\n /**\n * @property tooltip\n * @description The tooltip that is displayed on hover. Required for icon-button type\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() tooltip = '';\n\n /**\n * @property isPremium\n * @description The icon that is displayed for Premium button\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() isPremium = false;\n\n /**\n * The type of the button.\n *\n * @type {ButtonType}\n * @memberof ButtonComponent\n * @default 'button'\n */\n @Input() type: ButtonType = 'button';\n\n /**\n * Color of the button.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() companyColor: string | null = '';\n\n /**\n * Config for the button badge variation\n * @type {ButtonBadgeConfig}\n * @property badgeType Type of badge on the button\n * @property badgeLabel Label text for the badge\n * @property badgeNotificationAmount The amount for notification in the badge\n */\n @Input() buttonBadgeConfig: ButtonBadgeConfig | undefined;\n\n /**\n *\n * Defines the application theme where buttons is used\n *\n * @type {ApplicationTheme}\n * @memberof ButtonComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Disabled button scale on click\n *\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() disabledScaleOnClick = false;\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof ButtonComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof ButtonComponent\n */\n @Input() ariaRequired = false;\n\n @Output() buttonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output() buttonHoverEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('buttonElement', { static: false }) buttonElement: MatButton;\n\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('style.--color')\n get compColor() {\n return this.getCompanyColor;\n }\n\n classCss: string;\n styleCss: any;\n isButtonLink: boolean;\n isLabel: boolean;\n buttonState: ButtonState;\n hover = false;\n iconButtonSize: IconButtonSize = '40';\n allowButtonTypeForPremium: ButtonColor[] = ['secondary', 'primary', 'ghost', 'outlined', 'destructive'];\n isFilledIcon: boolean;\n coloredIcons = ['Google-in-line', 'Google', 'Google-filled'];\n\n get typeIncluded(): boolean {\n return this.allowButtonTypeForPremium.includes(this.variant);\n }\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 ngOnInit(): void {\n this.classCss = this.setCssClass();\n this.styleCss = this.setCssStyle();\n this.isButtonLink = this.showButtonLink();\n this.isLabel = this.showLabel();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['disabled']) {\n this.buttonState = 'default';\n }\n if (!this.applicationTheme) {\n this.applicationTheme = 'light';\n }\n if (changes['type']) {\n this.isButtonLink = this.showButtonLink();\n }\n if (changes['loading']) {\n this.isLabel = this.showLabel();\n }\n if (\n changes['type'] ||\n changes['fullWidth'] ||\n changes['iconName'] ||\n changes['justIcon'] ||\n changes['iconPosition'] ||\n changes['disabled'] ||\n changes['companyColor'] ||\n changes['applicationTheme']\n ) {\n this.classCss = this.setCssClass();\n this.styleCss = this.setCssStyle();\n }\n if (changes['variant']?.currentValue === 'icon-button' || (changes['variant']?.currentValue === 'menuTrigger' && this.applicationTheme !== 'classic')) {\n this.iconButtonSize = this.setIconButtonSize();\n }\n\n this.isFilledIcon = this.applicationTheme !== 'classic' && (this.variant === 'primary' || this.variant === 'secondary');\n }\n\n ngAfterViewInit(): void {\n this.tooltipElement.nativeElement.onclick = ev => {\n ev.preventDefault();\n ev.stopPropagation();\n };\n if (this.variant === 'icon-button' && !this.tooltip) {\n throw new Error('ui-button ButtonComponent\\n [tooltip] is required for [type] icon-button!');\n } else if (this.variant === 'destructive' && !this.iconName && !this.loading && this.applicationTheme !== 'classic') {\n throw new Error('ui-button ButtonComponent\\n [icon] is required for [type] destructive');\n }\n }\n\n buttonClick(event: Event): void {\n this.buttonClickEvent.emit(event);\n }\n\n buttonHover(event: Event): void {\n if (event.type === 'mouseenter') {\n this.hover = true;\n this.buttonHoverEvent.emit(event);\n this.buttonState = 'hover';\n if (this.shouldChangeFilledStatus && this.iconName) {\n this.iconName = this.iconName.replace(/-in-line|-filled/, '') + '-filled' as IconName;\n }\n } else {\n this.hover = false;\n if (this.shouldChangeFilledStatus && this.iconName) {\n this.iconName = this.iconName.replace(/-in-line|-filled/, '') + '-in-line' as IconName;\n }\n this.buttonState = 'default';\n }\n\n this.styleCss = this.setCssStyle();\n }\n\n //Show or hide label\n showLabel(): boolean {\n return !this.loading;\n }\n\n //Set css class according inputs\n setCssClass(): string {\n const width = this.fullWidth ? 'full-width' : '';\n const hasIcon = this.iconName === null ? '' : 'icon';\n const justIcon = this.justIcon || this.variant === 'icon-button' ? 'only-icon' : '';\n const iconPosition = this.iconPosition === undefined ? '' : this.iconPosition;\n const disabled = this.disabled && this.variant === 'primary' ? 'primary-disabled' : '';\n const variant = this.variant === 'ghost' && this.applicationTheme === 'classic' ? 'outlined' : this.variant;\n const companyColor = this.companyColor ? 'has-company-color' : '';\n return `${this.size} ${iconPosition} ${variant} ${width} ${hasIcon} ${justIcon} ${disabled} ${companyColor} ${this.applicationTheme}-theme`;\n }\n\n setCssStyle(): any {\n this.buttonState = this.disabled ? 'disabled' : this.buttonState;\n const styleObj: any = {};\n\n if (this.variant === 'primary' && this.applicationTheme !== 'classic' && (this.buttonState === 'hover' || this.buttonState === 'pressed')) {\n styleObj['background-color'] = adjustLightness(this.getCompanyColor, this.buttonState);\n } else if (this.variant === 'primary' && this.applicationTheme === 'classic' && this.buttonState !== 'default') {\n styleObj['background-color'] = adjustLightness(this.getCompanyColor, this.buttonState, 'classic');\n } else if (this.getCompanyColor && (this.variant === 'link' || this.variant === 'tertiary' || this.variant === 'icon-button')) {\n styleObj['color'] = this.getCompanyColor;\n }\n return styleObj;\n }\n\n //Show or hide spinner\n get showSpinner(): boolean {\n const isNotTab = this.variant !== 'tab';\n const isNotLink = this.variant !== 'link';\n const isLoading = this.loading === true;\n return isLoading && isNotTab && isNotLink;\n }\n\n //Show button with <button> or <a> tag\n showButtonLink(): boolean {\n return this.variant !== 'link';\n }\n\n setIconButtonSize(): IconButtonSize {\n return this.size === 'big' ? '40' : this.size === 'small' ? '24' : '32';\n }\n\n onPressed(ev: Event): void {\n if (ev.type === 'mousedown') {\n this.buttonState = 'pressed';\n } else {\n this.buttonState = this.hover ? 'hover' : 'default';\n }\n\n this.styleCss = this.setCssStyle();\n }\n\n focus(): void {\n this.buttonElement.focus();\n }\n\n get getCompanyColor(): string {\n return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');\n }\n\n get shouldChangeFilledStatus(): boolean {\n return this.applicationTheme !== 'classic' && this.variant !== 'primary' && this.variant !== 'secondary' && !this.coloredIcons.includes(this.iconName);\n }\n}\n","<div #tooltipElement class=\"tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"applicationTheme\"\n></div>\n<div\n class=\"button-wrapper\"\n [ngClass]=\"{ 'full-width': fullWidth, 'rounded-icon': applicationTheme !== 'classic' && iconName && !label, link: !isButtonLink }\"\n [matTooltip]=\"tooltip\"\n [matTooltipClass]=\"applicationTheme\"\n>\n <div class=\"button-container\"\n [ngClass]=\"{ 'disabled': disabled, 'button-scale': applicationTheme !== 'classic' && !disabledScaleOnClick }\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <span *ngIf=\"isPremium && typeIncluded\" class=\"right-top\">\n <img [attr.src]=\"'/images/premium.svg'\" [alt]=\"'premium-icon'\">\n </span>\n <ui-badge\n *ngIf=\"buttonBadgeConfig?.badgeType\"\n [rebrandColor]=\"buttonBadgeConfig?.rebrandColor ?? 'brand'\"\n [variant]=\"buttonBadgeConfig!.badgeType!\"\n [label]=\"buttonBadgeConfig?.badgeLabel ?? ''\"\n [notificationsAmount]=\"buttonBadgeConfig?.badgeNotificationAmount ?? 0\"\n class=\"right-top\"\n [ngClass]=\"{ 'badge-primary': buttonBadgeConfig?.badgeType === 'primary', 'badge-notification': buttonBadgeConfig?.badgeType === 'notification' }\"\n ></ui-badge>\n <button\n [style]=\"'--icon-button-size:' + iconButtonSize + 'px'\"\n [ngClass]=\"classCss\"\n [ngStyle]=\"styleCss\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick($event)\"\n (mouseleave)=\"buttonHover($event)\"\n (mouseenter)=\"buttonHover($event)\"\n (mousedown)=\"onPressed($event)\"\n (mouseup)=\"onPressed($event)\"\n *ngIf=\"isButtonLink\"\n [type]=\"type\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n #buttonElement\n mat-flat-button>\n <ng-container *ngIf=\"showSpinner; else icons\">\n <span class=\"spinner-wrapper\">\n <mat-spinner class=\"position-spinner\" aria-label=\"loading\" mode=\"indeterminate\" diameter=\"24\"></mat-spinner>\n </span>\n </ng-container>\n <ng-template #icons>\n <span class=\"icon-only-wrapper\" *ngIf=\"justIcon && !!iconName\">\n <span\n class=\"icon only\"\n role=\"label\"\n [attr.aria-label]=\"label\"\n >\n <ui-icon\n [color]=\"'inherit'\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"iconName\"\n [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"\n ></ui-icon>\n </span>\n </span>\n\n <span class=\"icon-label-wrapper\" [ngClass]=\"{'center-text': iconName === ''}\" *ngIf=\"!justIcon\">\n <span\n class=\"icon\"\n *ngIf=\"iconPosition === 'left' && !!iconName\"\n aria-hidden=\"true\"\n >\n <ui-icon\n [color]=\"'inherit'\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"iconName\"\n [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"\n ></ui-icon>\n </span>\n <span *ngIf=\"isLabel\" class=\"label\">{{ label }}</span>\n <span class=\"icon\" *ngIf=\"iconPosition === 'right' && !!iconName\" aria-hidden=\"true\"><ui-icon\n [color]=\"'inherit'\" [applicationTheme]=\"applicationTheme\" [name]=\"iconName\" [filled]=\"isFilledIcon\"\n [size]=\"size === 'small' ? '16' : '24'\"></ui-icon></span>\n </span>\n </ng-template>\n </button>\n <a\n #buttonElement\n [ngClass]=\"classCss\"\n [ngStyle]=\"styleCss\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick($event)\"\n (mouseenter)=\"buttonHover($event)\"\n (mouseleave)=\"buttonHover($event)\"\n (mousedown)=\"onPressed($event)\"\n (mouseup)=\"onPressed($event)\"\n [disableRipple]=\"true\"\n *ngIf=\"!isButtonLink\"\n [href]=\"url\"\n [target]=\"urlTarget\"\n mat-flat-button>\n <span class=\"icon-label-wrapper\">\n {{ label }}\n </span>\n </a>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport en from '../assets/i18n/en.json';\nimport es from '../assets/i18n/es.json';\nimport de from '../assets/i18n/de.json';\nimport * as daDk from '../assets/i18n/da-dk.json';\nimport fr from '../assets/i18n/fr.json';\nimport * as itIt from '../assets/i18n/it-it.json';\nimport * as jaJp from '../assets/i18n/ja-jp.json';\nimport * as nbNo from '../assets/i18n/nb-no.json';\nimport nl from '../assets/i18n/nl.json';\nimport * as plPl from '../assets/i18n/pl-pl.json';\nimport * as ptBr from '../assets/i18n/pt-br.json';\nimport * as svSe from '../assets/i18n/sv-se.json';\n\n/**\n * Used for translations\n */\n@Pipe({\n name: 'uiTranslate',\n standalone: true,\n})\nexport class UiTranslatePipe implements PipeTransform {\n protected readonly LANGS: { [key: string]: any } = {\n en,\n es,\n de,\n 'da-dk': daDk,\n fr,\n 'it-it': itIt,\n 'ja-jp': jaJp,\n 'nb-no': nbNo,\n nl,\n 'pl-pl': plPl,\n 'pt-br': ptBr,\n 'sv-se': svSe,\n };\n /**\n * Finds the translation by keys with interpolation if provided\n * @param translateKey key, can have multiple keys separated with '.' eg ('KEY', 'FIRST_LVL_KEY.SECOND_LVL_KEY')\n * @param activeLang current active language\n * @param interpolationData data that will be used to replace interpolations in translated variant\n * For example, for translate text like this\n * 'You have {{attemptsAmount}} attempts left\n * the interpolation object should be { attemptsAmount: 10 }\n */\n transform(translateKey: string, activeLang: string, interpolationData?: any): string {\n const currentLangObject = JSON.parse(JSON.stringify(this.LANGS[activeLang]));\n const enLangObject = JSON.parse(JSON.stringify(this.LANGS['en']));\n const keys = translateKey.split('.');\n const translation = keys.reduce((acc, currentKey) => acc && acc[currentKey], currentLangObject);\n\n if (translation && interpolationData) {\n return this.interpolate(translation, interpolationData);\n }\n\n const englishTranslation = keys.reduce((acc, currentKey) => acc && acc[currentKey], enLangObject);\n return this.interpolate(englishTranslation, interpolationData);\n }\n\n /**\n * Used to find and replace interpolation in text\n * @param translation the translation text\n * @param interpolationData the interpolation object\n */\n private interpolate(translation: string, interpolationData: { [key: string]: any }): string {\n return translation?.replace(/{{(.*?)}}/g, (match: string, group: string) => {\n const value = interpolationData[group.trim()] as string;\n return value ?? match;\n });\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { IconName } from '../../components/icon/icon.model';\nimport { AlertBarType, AlertVariant } from '../../utils/alert-bar.model';\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\nimport { LinkTargetType } from './alert-banner.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-alert-banner',\n templateUrl: './alert-banner.component.html',\n styleUrls: ['./alert-banner.component.scss'],\n animations: [\n trigger('openClose', [\n transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),\n transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertBannerComponent implements OnInit {\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private domSanitizer: DomSanitizer\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Alert Banner type\n *\n * @type {AlertBarType}\n * @memberof AlertBannerComponent\n */\n @Input() alertType: AlertBarType = 'success';\n\n /**\n * Alert Banner variant\n *\n * @type {AlertVariant}\n * @memberof AlertBannerComponent\n */\n @Input() alertVariant: AlertVariant = 'banner';\n\n /**\n * Alert banner message\n *\n * @memberof AlertBannerComponent\n */\n @Input() set message(msg: string) {\n this._message = this.domSanitizer.bypassSecurityTrustHtml(msg);\n }\n\n /**\n * Include dismmiss button\n *\n * @memberof AlertBannerComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Include shadow or not\n *\n * @memberof AlertBannerComponent\n */\n @Input() shadow = false;\n\n /**\n * Link text that will appended at the end of message\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof AlertBannerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Sets the full width\n *\n * @type {boolean}\n * @memberof AlertBannerComponent\n */\n @Input() isFullWidth: boolean | undefined;\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @memberof AlertBannerComponent\n */\n @Input() closeButtonTooltip = '';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof AlertBannerComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n @HostBinding('class.display-none') get isDismissed() {\n return this.dismissAlertBanner;\n }\n\n iconName: IconName;\n visible = true;\n fullWidth: boolean;\n fixed: boolean;\n position: string;\n cssClass: string;\n _message: SafeHtml = '';\n dismissAlertBanner = false;\n\n ngOnInit(): void {\n this.iconName = alertBarsUtil.setIcon(this.alertType);\n this.position = alertBarsUtil.setPosition(this.fixed);\n this.fixed = this.alertVariant === 'banner' ? true : false;\n this.fullWidth = this.isFullWidth ?? this.alertVariant === 'banner';\n this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position, this.alertVariant);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n setTimeout(() => {\n this.dismissAlertBanner = true;\n }, 200);\n }\n}\n","<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\" [attr.theme]=\"applicationTheme\" [class.shadow]=\"alertVariant === 'callout' && shadow ? true : false\">\n <div class=\"alert-text\">\n <ui-icon class=\"left-icon\" [name]=\"iconName\" size=\"24\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"_message\"></span>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic' && alertVariant !== 'callout'\"\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule, MatIconModule, HttpClientModule],\n exports: [IconComponent],\n providers: [HttpClientModule],\n})\nexport class IconComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from './badge.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [BadgeComponent],\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\n exports: [BadgeComponent],\n})\nexport class BadgeComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\nimport { ButtonComponent } from './button.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BadgeComponentModule } from '../badge/badge.component.module';\n\n@NgModule({\n declarations: [ButtonComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n IconComponentModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n BadgeComponentModule,\n ],\n exports: [ButtonComponent],\n providers: [],\n})\nexport class ButtonComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { AlertBannerComponent } from './alert-banner.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [AlertBannerComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe],\n exports: [AlertBannerComponent],\n})\nexport class AlertBannerComponentModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CardSize, CardVariant } from './card.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent implements OnChanges, OnInit {\n /**\n * Card size. Defaults \"medium\".\n *\n * @type {CardSize}\n * @memberof CardComponent\n */\n @Input() size: CardSize = 'medium';\n\n /**\n * Card variants. Defaults \"default\".\n *\n * @type {CardVariant}\n * @memberof CardComponent\n */\n @Input() variant: CardVariant = 'default';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof CardComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Show errors below card.\n *\n * @type {string[]}\n * @memberof CardComponent\n */\n @Input() set errors(errors: string[]) {\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n }\n\n /**\n * Marks card as selected\n *\n * @type {boolean}\n * @memberof CardComponent\n */\n @Input() selected = false;\n\n safeErrors: SafeHtml[];\n\n classes = '';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private domSanitizer: DomSanitizer\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnChanges(): void {\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\n }\n\n ngOnInit(): void {\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\n }\n\n get cardVariant(): CardVariant {\n return this.safeErrors?.length ? 'error' : this.variant;\n }\n\n get isSelected(): boolean {\n // educative, premium, ai variants shouldn't have any selected/interactive states\n return this.selected && this.variant !== 'educative' && this.variant !== 'premium' && this.variant !== 'ai';\n }\n}\n","<div class=\"card-container\" [ngClass]=\"[classes, isSelected ? 'selected' : '']\" [attr.theme]=\"applicationTheme\" tabindex=\"0\" >\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CardComponent } from './card.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [CardComponent],\n})\nexport class CardComponentModule {}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { errorType } from './validation-error.model';\nimport { NgControl } from '@angular/forms';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-validation-error',\n templateUrl: './validation-error.component.html',\n styleUrls: ['./validation-error.component.scss'],\n})\nexport class ValidationErrorComponent {\n @Input() ngControl: NgControl;\n\n @Input() label: string | undefined | null;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ValidationErrorComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof ValidationErrorComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n getErrorValue(type: errorType): number {\n const ngControlErrors: any = this.ngControl.errors;\n switch (type) {\n case 'maxlength':\n return ngControlErrors.maxlength.requiredLength;\n case 'minlength':\n return ngControlErrors.minlength.requiredLength;\n case 'max':\n return ngControlErrors.max.max;\n case 'min':\n return ngControlErrors.min.min;\n default:\n return 0;\n }\n }\n\n translationContextErrors = 'ERRORS.';\n}\n","<div class=\"errors\" *ngIf=\"ngControl?.hasError('maxlength')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MAX_LENGTH' | uiTranslate : language : { maxlength: getErrorValue('maxlength') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('minlength')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MIN_LENGTH' | uiTranslate : language : { maxlength: getErrorValue('minlength') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('min')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MIN' | uiTranslate : language : { min: getErrorValue('min') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('max')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'MAX' | uiTranslate : language : { max: getErrorValue('max') } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('required') && ngControl?.touched\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + (label ? 'REQUIRED_FIELD' : 'REQUIRED') | uiTranslate : language : { label } }}</span>\n</div>\n\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('email')\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span>{{ translationContextErrors + 'EMAIL_INCORRECT' | uiTranslate : language }}</span>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'hasValidationError',\n standalone: true,\n})\nexport class HasValidationErrorPipe implements PipeTransform {\n /**\n * List of the error types that are handled\n */\n private readonly errorTypes = ['maxlength', 'minlength', 'min', 'max', 'required', 'email'];\n\n /**\n * Checks if the error on the NgControl is in the list of handled error types\n * @param value\n */\n transform(value: Record<string, any> | null | undefined): boolean {\n return value ? !!Object.keys(value).filter(key => this.errorTypes.includes(key)).length : false;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\n\n@Component({\n selector: 'ui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class CheckboxComponent implements OnInit, ControlValueAccessor, DoCheck, OnChanges {\n /**\n * Determines whether the checkbox is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() disabled = false;\n\n /**\n * Determines whether the checkbox is checked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() checked = false;\n\n /**\n * Determines whether the checkbox is indeterminate.\n * It can be used to represent a checkbox with three states, e.g. a checkbox that represents a nested list of checkable items.\n * Default: false.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() indeterminate = false;\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null;\n\n /**\n * Name value will be applied to the input element if present.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() name = '';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() label = '';\n\n /**\n * Determines whether the checkbox is a multiple choice cell.\n * Default: false\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() multiple = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof CheckboxComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof CheckboxComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Defines if checkbox has error\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Input() hasError = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof CheckboxComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof CheckboxComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof CheckboxComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Event emitted when the checkbox's checked value changes.\n *\n * @type {boolean}\n * @memberof CheckboxComponent\n */\n @Output() changed = new EventEmitter<boolean>();\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n classMultiple: string;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(): void {\n this.setCompanyColor();\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n emitChange(event: MatCheckboxChange): void {\n this.changed.emit(event.checked);\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit() {\n this.classMultiple = this.setClass();\n this.setCompanyColor();\n }\n\n toggleChecked(): void {\n this.checked = !this.checked;\n this.changed.emit(this.checked);\n this.onTouch();\n this.onChange(this.checked);\n if (!this.disabled) {\n this.indeterminate = false;\n this.classMultiple = this.setClass();\n }\n }\n\n setClass(): string {\n if (this.multiple) {\n return this.checked || this.indeterminate ? 'multiple-checked' : 'multiple-unchecked';\n }\n return '';\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private setCompanyColor(): void {\n this.companyColor = this.companyColor ? this.companyColor : this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n}\n","<div [class]=\"multiple ? 'checkbox-container' : ''\" [ngClass]=\"classMultiple\" [attr.theme]=\"applicationTheme\" [attr.hasError]=\"hasError\">\n <mat-checkbox\n #checkbox\n (mouseleave)=\"checkbox.disableRipple = true\"\n (mouseenter)=\"checkbox.disableRipple = false\"\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [ngClass]=\"{ 'disable-ripple': checkbox.disableRipple }\"\n (click)=\"toggleChecked()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n class=\"checkbox\"\n >\n <span class=\"label\">{{ label }}</span>\n <ng-content select=\"[checkbox-label]\"></ng-content>\n </mat-checkbox>\n\n <mat-hint class=\"error\" *ngIf=\"ngControl?.errors | hasValidationError\">\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ValidationErrorComponent } from './validation-error.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [ValidationErrorComponent],\n exports: [ValidationErrorComponent],\n imports: [CommonModule, IconComponentModule, UiTranslatePipe],\n})\nexport class ValidationErrorModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CheckboxComponent } from './checkbox.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, MatCheckboxModule, FormsModule, ReactiveFormsModule, MatInputModule, IconComponentModule, UiTranslatePipe, ValidationErrorModule, HasValidationErrorPipe],\n exports: [CheckboxComponent],\n})\nexport class CheckboxComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit, Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonColor } from '../button/button.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DialogComponent implements OnInit, OnChanges {\n\n /**\n * Dialog title\n *\n * @memberof DialogComponent\n */\n @Input() title? = '';\n\n /**\n * Show close button\n *\n * @memberof DialogComponent\n */\n @Input() showCloseButton = true;\n\n /**\n * Fuction called before dialgo is closed\n *\n * @memberof DialogComponent\n */\n @Input() canCloseFn: () => boolean = () => true;\n\n /**\n * Secondary button label\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonLabel? = '';\n\n /**\n * Primary button label\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonLabel? = '';\n\n /**\n * Secondary button type\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonType: ButtonColor = 'secondary';\n\n /**\n * Primary button type\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonType: ButtonColor = 'primary';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof DialogComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Color of the dialog.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DialogComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n /**\n *\n * Disable primary button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disablePrimaryButton = false;\n /**\n *\n * Disable close button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disableClose = false;\n\n /**\n *\n * Disable button when canCloseFn is used\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() shouldDisableButtons = true;\n\n @Output() closeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() secondaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() primaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<DialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: { applicationTheme: ApplicationTheme }\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n disableButtons = false;\n protected readonly translationContext = 'DIALOG.';\n\n ngOnInit(): void {\n this.areButtonsDisabled();\n if (this.data?.applicationTheme) {\n this.applicationTheme = this.data.applicationTheme;\n }\n if (this.applicationTheme !== 'classic') {\n this.secondaryButtonType = 'ghost';\n this.companyColor = this.companyColor || '#D410AA';\n } else {\n this.companyColor = this.companyColor || '#46A997';\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['canCloseFn']) {\n this.dialogRef.disableClose = !this.canCloseFn();\n this.areButtonsDisabled();\n }\n }\n\n //Disable primary button when canClose is false\n areButtonsDisabled() {\n if (this.canCloseFn() === false && this.shouldDisableButtons) {\n this.disableButtons = true;\n } else {\n this.disableButtons = false;\n }\n }\n\n //Close modal\n dismiss(): void {\n if (this.canCloseFn()) {\n this.dialogRef.disableClose = false;\n this.dialogRef.close();\n }\n }\n\n onClose(event: Event): void {\n this.closeEvent.emit(event);\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClickEvent.emit(event);\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClickEvent.emit(event);\n }\n}\n","<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div mat-dialog-title class=\"dialog-title\">\n <h3 class=\"bold\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\nexport type DialogSize = 'small' | 'large';\n@Injectable()\nexport class DialogService {\n constructor(\n private matDialog: MatDialog,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {}\n\n open(\n dialogComponent: ComponentType<any>,\n applicationTheme: ApplicationTheme = 'light',\n size: DialogSize = 'small',\n panelClass: string = '',\n extraData?: any\n ): MatDialogRef<any> {\n // Open the dialog using UI custom styles\n return this.matDialog.open(dialogComponent, {\n data: {\n applicationTheme: this.defaultAppTheme ?? applicationTheme,\n ...extraData,\n },\n panelClass:\n applicationTheme === 'classic'\n ? ['ui-dialog-wrapper', panelClass, size]\n : ['ui-dialog-wrapper', panelClass, applicationTheme, size],\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [DialogComponent],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, UiTranslatePipe],\n exports: [DialogComponent],\n providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }, { provide: MatDialogRef, useValue: {} }, DialogService],\n})\nexport class DialogComponentModule {}\n","export enum ElevationType {\n DEFAULT = 'default',\n MODAL = 'modal',\n HOVER_STATE = 'hover-state',\n NOTIFICATION = 'notification',\n PAGE_CARD = 'page-card',\n}\n\nexport type Elevation = 'default' | 'modal' | 'hover-state' | 'notification' | 'page-card';\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';\nimport { Elevation, ElevationType } from './elevation-shadow.constant';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-elevation-shadow',\n templateUrl: './elevation-shadow.component.html',\n styleUrls: ['./elevation-shadow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElevationShadowComponent {\n /**\n * The type of elevation shadow.\n * Default: default.\n * @description Types: Page Card, Notification and Hover State only for Dark and Light theme.\n *\n * @type {ElevationType}\n * @memberof ElevationShadowComponent\n */\n @Input() elevationType: Elevation = ElevationType.DEFAULT;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ElevationShadowComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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","<div class=\"elevation-shadow\" [ngClass]=\"elevationType\" [attr.theme]=\"applicationTheme\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ElevationShadowComponent } from './elevation-shadow.component';\n\n@NgModule({\n declarations: [ElevationShadowComponent],\n imports: [CommonModule],\n exports: [ElevationShadowComponent],\n})\nexport class ElevationShadowComponentModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[digitsOnly]',\n})\nexport class DigitsOnlyDirective {\n constructor(private el: ElementRef) {}\n\n @Input() allowNegative = false;\n @Input() allowDecimal = false;\n @Input() allowOnlyDigits = false;\n regex: RegExp;\n\n @HostListener('keypress', ['$event'])\n onKeyPress(event: KeyboardEvent) {\n this.validate(event, event.key);\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: Event) {\n const pastedText = <ClipboardEvent>event && (<ClipboardEvent>event)?.clipboardData?.getData('text/plain'); // Non-IE browsers\n this.validate(event, pastedText || '');\n }\n\n validate(event: Event, text: string) {\n if (this.allowOnlyDigits) {\n const txtInput = this.el.nativeElement;\n const newValue =\n txtInput.value.substring(0, txtInput.selectionStart) + text + txtInput.value.substring(txtInput.selectionEnd);\n if (!this.regex) {\n this.regex = // eslint-disable-next-line no-eval\n eval(\n `/^${this.allowNegative ? '-?' : ''}${this.allowDecimal ? '((\\\\d+\\\\.?)|(\\\\.?))\\\\d*' : '\\\\d*'}$/g`\n ) as RegExp;\n }\n if (!newValue.match(this.regex)) {\n event.preventDefault();\n return;\n }\n }\n }\n}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FieldType } from '../../components/field/field.model';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-field',\n templateUrl: './field.component.html',\n styleUrls: ['./field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldComponent implements OnInit, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-field';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() placeholder? = '';\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() value = '';\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() hintMessage = '';\n\n /**\n * Input type\n *\n * @type {FieldType}\n * @memberof FieldComponent\n */\n @HostBinding('attr.field-class')\n @Input()\n type: FieldType = 'text';\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof FieldComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * allow only digits in input\n *\n * @type {Boolean}\n * @memberof FieldComponent\n */\n @Input() allowOnlyDigits = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof FieldComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof FieldComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof FieldComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Show loading button. Only for text\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() loading = false;\n\n /**\n * Show icon when field is valid\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() isValid = false;\n\n /**\n * Max characters number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() maxCharacters = 255;\n\n /**\n * Trim text on blur\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() trimOnBlur = false;\n /**\n * Trim text on submit\n *\n * @type {boolean}\n * @memberof FieldComponent\n */\n @Input() trimOnSubmit = false;\n /**\n * Max rows for multi-line type\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() maxRows = 0;\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Set maximum number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() max: number | undefined;\n\n /**\n * Set minimum number\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() min: number | undefined;\n\n /**\n * Sets textarea height. Default 110\n *\n * @type {number}\n * @memberof FieldComponent\n */\n @Input() textareaHeight = 110;\n\n @Output() validateEvent = new EventEmitter<string>();\n @Output() fieldBlur = new EventEmitter<void>();\n\n get getPasswordIcon(): IconName {\n if (this.applicationTheme === 'classic') {\n return this.showPassword ? 'Eye-hide' : 'Eye-view';\n } else {\n if (!this.isActiveField && !this.isActiveHover) {\n return this.showPassword ? 'View-in-line' : 'Hide-in-line';\n } else {\n return this.showPassword ? 'View-filled' : 'Hide-filled';\n }\n }\n }\n\n isActiveField = false;\n isActiveHover = false;\n\n protected readonly translationContext = 'FIELD.';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n showClose: boolean;\n showPassword: boolean;\n currentType: string;\n errorsLength: boolean;\n\n ngOnInit(): void {\n this.setSearchInput();\n this.currentType = this.getType();\n }\n\n validate(): void {\n this.validateEvent.emit(this.value);\n }\n\n //set search input initial value\n setSearchInput(): void {\n if (this.type === 'search' || this.type === 'collapsed-search') {\n this.matIconRegistry.addSvgIcon('Search', this.domSanitizer.bypassSecurityTrustResourceUrl('/icons/Search.svg'));\n } else {\n this.showClose = false;\n }\n }\n\n //change type for reveal password\n getType(): string {\n if (this.type === 'password' && this.showPassword) {\n return 'text';\n }\n return this.type;\n }\n\n //Clear input value\n clearValue(): void {\n this.value = '';\n this.onChange(this.value);\n this.onChangeInputSearch();\n }\n\n //toggle for password\n showPasswordClick() {\n this.showPassword = !this.showPassword;\n this.currentType = this.getType();\n }\n\n //Set options for search input\n onChangeInputSearch() {\n if (this.type === 'search' || this.type === 'collapsed-search') {\n if (!this.value) {\n this.showClose = false;\n }\n if (this.value) {\n this.showClose = true;\n }\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which which are not empty\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0 ? true : false;\n }\n return false;\n }\n\n //Save input value\n onInput(event: any) {\n this.value = event.target.value;\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(this.type === 'number' ? +this.value : this.value);\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onFieldClick(event: MouseEvent): void {\n if (this.type === 'collapsed-search') {\n this.type = 'search';\n } else {\n event.stopPropagation();\n }\n }\n\n onActive(state: boolean, action: string): void {\n if (action === 'hover') {\n this.isActiveHover = state;\n } else if (action === 'focus') {\n this.isActiveField = state;\n\n if (!state && this.trimOnBlur) {\n this.clearSpace();\n }\n }\n }\n\n onSubmit(): void {\n if (this.trimOnSubmit) {\n this.clearSpace();\n }\n }\n\n private clearSpace(): void {\n this.value = this.value.trim();\n this.onChange(this.value);\n }\n\n onBlur(): void {\n this.fieldBlur.emit();\n }\n\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n}\n","<ng-container>\n <mat-form-field\n [ngStyle]=\"{ '--textarea-height': (textareaHeight - 10) + 'px', '--textarea-height-container': textareaHeight + 'px' }\"\n (click)=\"onFieldClick($event)\"\n #uiField\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, textarea: type === 'textarea', 'multi-line': type === 'multi-line' }\"\n (mouseenter)=\"onActive(true, 'hover')\"\n (mouseleave)=\"onActive(false, 'hover')\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <mat-label *ngIf=\"label && ((type !== 'search' && applicationTheme === 'classic') || (applicationTheme !== 'classic'))\">{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <mat-icon *ngIf=\"type === 'search' || type === 'collapsed-search'\" matIconPrefix class=\"search-icon\" [svgIcon]=\"'Search'\"></mat-icon>\n <input\n *ngIf=\"type !== 'textarea' && type !== 'multi-line'; else textarea\"\n matInput\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\n (input)=\"onInput($event)\"\n [id]=\"id!\"\n (keyup)=\"onChangeInputSearch()\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled || loading\"\n [type]=\"currentType\"\n (keyup.enter)=\"onSubmit()\"\n [max]=\"max\"\n [min]=\"min\"\n [name]=\"fieldName!\"\n digitsOnly\n [allowOnlyDigits]=\"allowOnlyDigits\"\n (focusin)=\"onActive(true, 'focus')\"\n />\n\n <ng-template #textarea>\n <textarea\n matInput\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\n (input)=\"onInput($event)\"\n [id]=\"id!\"\n (keyup)=\"onChangeInputSearch()\"\n (keyup.enter)=\"onSubmit()\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [type]=\"currentType\"\n [name]=\"fieldName!\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"type === 'multi-line' ? 1 : 5\"\n [cdkAutosizeMaxRows]=\"type === 'multi-line' ? maxRows : 5 \"\n (focusin)=\"onActive(true, 'focus')\"\n ></textarea>\n </ng-template>\n\n <div class=\"options\" *ngIf=\"type === 'search' || type === 'password' || type === 'validation-text'\">\n <div class=\"options-container\">\n <ui-button\n *ngIf=\"showClose\"\n variant=\"secondary\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n [label]=\"('COMMON.CLEAR') | uiTranslate : language\"\n (buttonClickEvent)=\"clearValue()\"\n [ariaLabel]=\"ariaLabel + '--' + ('COMMON.CLEAR') | uiTranslate : language\"\n ></ui-button>\n <ui-icon\n [size]=\"'24'\"\n class=\"password\"\n *ngIf=\"type === 'password'\"\n [name]=\"getPasswordIcon\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"showPasswordClick()\"\n ></ui-icon>\n\n <ng-container\n *ngIf=\"type === 'validation-text' && (applicationTheme === 'dark' || applicationTheme === 'light') && value.length\"\n >\n <ui-button\n *ngIf=\"!isValid\"\n class=\"validation\"\n [variant]=\"'text'\"\n [applicationTheme]=\"'light'\"\n [label]=\"'Validate'\"\n [loading]=\"loading\"\n (click)=\"validate()\"\n [disabled]=\"disabled\"\n [size]=\"'small'\"\n ></ui-button>\n <ui-icon class=\"valid\" [color]=\"'white'\" applicationTheme=\"light\" [name]=\"'Check'\" *ngIf=\"isValid\"></ui-icon>\n </ng-container>\n </div>\n </div>\n <mat-hint class=\"info\" *ngIf=\"type === 'textarea' && !errorsLength && !(ngControl?.errors | hasValidationError)\">{{ value.length }} / {{ maxCharacters }}</mat-hint>\n <mat-hint class=\"info\" *ngIf=\"hintMessage && !errorsLength && !(ngControl?.errors | hasValidationError) && type !== 'textarea'\">{{ hintMessage }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-template [ngIf]=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-template>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ButtonComponentModule } from '../../components/button/button.component.module';\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\nimport { DigitsOnlyDirective } from '../../directives/digits-only.directive';\nimport { FieldComponent } from './field.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [FieldComponent, DigitsOnlyDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatIconModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [FieldComponent],\n})\nexport class FieldComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressBarComponent implements OnChanges {\n /**\n * Color of the progress bar.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof ProgressBarComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null;\n\n /**\n * Progress value of the progress bar.\n * Defaults to zero.\n *\n * @type {number}\n * @memberof ProgressBarComponent\n */\n @Input() progress = 0;\n\n /**\n * Mode of the progress bar.\n * Mode must be one of these values: determinate, indeterminate, buffer, query.\n * Defaults to 'determinate'.\n *\n * @type {ProgressBarMode}\n * @memberof ProgressBarComponent\n */\n @Input() mode: ProgressBarMode = 'determinate';\n\n /**\n * Buffer value of the progress bar.\n * Defaults to zero.\n *\n * @type {number}\n * @memberof ProgressBarComponent\n */\n @Input() buffer = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ProgressBarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 ngOnChanges(changes: SimpleChanges): void {\n if (!changes['companyColor']) {\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n }\n}\n","<mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"\n [bufferValue]=\"buffer\"\n aria-label=\"Progress bar\"\n title=\"progress-bar\"\n class=\"progress-bar\"\n [attr.theme]=\"applicationTheme\"\n></mat-progress-bar>\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[uiDragDrop]'\n})\nexport class DragDropDirective {\n constructor() { }\n\n @HostBinding('class.file-over') file: boolean;\n @Output() fileDropped = new EventEmitter<any>();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.file = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.file = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.file = false;\n let files: FileList;\n if (!!event.dataTransfer) {\n files = event.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n forwardRef, Optional, Inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploadComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ]),\n trigger('inOutAnimationProgress', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ]),\n trigger('inOutAnimationChange', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '196px' }),\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\n ])\n ])\n ]\n})\nexport class FileUploadComponent implements OnInit, OnChanges, ControlValueAccessor {\n @HostBinding() class = 'ui-file-upload';\n\n /**\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() maxFileSizeMB: number;\n\n /**\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() minFileSizeMB: number;\n\n /**\n * Supported files for input field\n *\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() supportedFileTypes?: string;\n\n /**\n * Upload progress\n *\n * @type {number}\n * @memberof FileUploadComponent\n */\n @Input() uploadProgress: number;\n\n /**\n * File upload errors\n *\n * @type {string[]}\n * @memberof FileUploadComponent\n */\n @Input() errors?: string[] | null;\n\n /**\n * File upload disabled\n *\n * @type {boolean}\n * @memberof FileUploadComponent\n */\n @Input() disabled = false;\n\n /**\n * Existing file information\n *\n * @type {(File | null)}\n * @memberof FileUploadComponent\n */\n @Input() file: File | null = null;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof FileUploadComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Color of the file upload.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() companyColor: string | null = '';\n\n @HostBinding('style.--color')\n compColor: string;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof FileUploadComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof FileUploadComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof FileUploadComponent\n */\n @Input() ariaRequired = false;\n\n @Output() OnDrop: EventEmitter<File> = new EventEmitter<File>();\n\n protected readonly translationContext = 'FILE_UPLOAD.';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {\n };\n\n /**\n * @ignore\n */\n onTouch = () => {\n };\n\n isMissedMinSize = false;\n progress = false;\n success = false;\n browse: boolean;\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 ngOnInit(): void {\n this.browse = true;\n }\n\n //When file is dropped\n onFileDropped(files: FileList) {\n this.emitFile(files);\n }\n\n //When input changes\n onChangeUpload(event: Event) {\n const element = event.currentTarget as HTMLInputElement;\n this.emitFile(element.files || new FileList());\n }\n\n //Emit drop file\n emitFile(files: FileList) {\n const [file] = Array.from(files);\n this.file = file;\n this.errors = null;\n this.onTouch();\n this.isMissedMinSize =\n !file?.size && !this.minFileSizeMB ? true : this.fileSizeToMB(file?.size ?? 0) <= this.minFileSizeMB;\n if (!this.isMissedMinSize) {\n this.onChange(this.file);\n this.OnDrop.emit(file);\n }\n }\n\n //Show progress-bar\n showProgress(): boolean {\n this.browse = false;\n return !!(this.file && !this.errors && !this.isMissedMinSize);\n }\n\n //Show success elements\n showSuccess(): boolean {\n return !!(this.file && this.uploadProgress === 100 && !this.errors && !this.isMissedMinSize);\n }\n\n //Show browse when there are error\n showBrowse(): boolean {\n return !!(this.errors || this.isMissedMinSize);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['uploadProgress'] || changes['file']) {\n this.progress = this.showProgress();\n this.success = this.showSuccess();\n this.browse = this.showBrowse();\n }\n if (changes['errors']) {\n this.progress = this.showProgress();\n this.success = this.showSuccess();\n this.browse = this.showBrowse();\n }\n if (changes['applicationTheme']) {\n this.compColor = this.getCompanyColor();\n }\n }\n\n writeValue(value?: File): void {\n if (value) {\n this.file = value || null;\n } else {\n this.file = null;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private getCompanyColor(): string {\n return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');\n }\n\n private fileSizeToMB(fileSize: number): number {\n return fileSize / 1024 / 1024;\n }\n}\n","<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ 'upload-errors': !!errors || isMissedMinSize, 'upload-file-container-disabled': disabled }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"(browse && !(success && !!file && progress))\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n\n <div class=\"errors\" *ngIf=\"!!errors || isMissedMinSize\">\n <ng-container *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"><ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>{{ error }}</span>\n </ng-container>\n\n <span *ngIf=\"isMissedMinSize\">\n <ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\n {{ translationContext + 'MIN_SIZE_ERROR' | uiTranslate : language : { min: minFileSizeMB } }}\n </span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n [disabled]=\"disabled\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}\n <label for=\"fileDrop\"\n class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\">{{ maxFileSizeMB }}{{ (translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n <span *ngIf=\"minFileSizeMB\" class=\"upload-text\">{{ minFileSizeMB }}{{ (translationContext + 'MIN_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}&nbsp;<label\n for=\"fileDrop\"\n class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\"\n [companyColor]=\"compColor\"\n [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n\n <ng-template #iconTpl>\n <ui-icon *ngIf=\"applicationTheme === 'classic'; else rebrandedIconTpl\" class=\"upload-icon\"\n name=\"File-upload\"></ui-icon>\n <ng-template #rebrandedIconTpl>\n <ui-icon class=\"upload-icon\"\n name=\"Upload\"\n [size]=\"'24'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </ng-template>\n <ng-template #rebrandedDnDCopyTpl>\n <p>{{ (translationContext + 'DRAG_AND_DROP') | uiTranslate : language }}</p>\n </ng-template>\n </div>\n <div\n *ngIf=\"!!supportedFileTypes\"\n [attr.theme]=\"applicationTheme\"\n class=\"upload-supported-files\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { ProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n imports: [CommonModule, MatProgressBarModule],\n exports: [ProgressBarComponent],\n providers: [],\n})\nexport class ProgressBarComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { DragDropDirective } from '../../directives/drag-drop.directive';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { FileUploadComponent } from './file-upload.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [FileUploadComponent, DragDropDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n ProgressBarComponentModule,\n UiTranslatePipe,\n ],\n exports: [FileUploadComponent],\n})\nexport class FileUploadComponentModule {}\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { IconName, IconSize } from '../../components/icon/icon.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-icon-label',\n templateUrl: './icon-label.component.html',\n styleUrls: ['./icon-label.component.scss']\n})\nexport class IconLabelComponent implements OnInit {\n\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconLabelComponent\n */\n @Input() iconSize: IconSize = '16';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconLabelComponent\n */\n @Input() iconName: IconName;\n\n /**\n * Label\n *\n * @memberof IconLabelComponent\n */\n @Input() text = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconLabelComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 ngOnInit(): void {}\n}\n","<ui-icon [name]=\"iconName\" [size]=\"iconSize\" aria-hidden=\"true\"></ui-icon>\n<span>{{ text }}</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { IconLabelComponent } from './icon-label.component';\n\n@NgModule({\n declarations: [IconLabelComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [IconLabelComponent],\n providers: [],\n})\nexport class IconLabelComponentModule {}\n","export enum LogoTypeEnum {\n DEFAULT = 'default',\n POWEREDBY = 'poweredby',\n REVERSE = 'reverse',\n PRIMARY_BRANDMARK_PINK = 'primary-brandmark-pink',\n PRIMARY_LOCKUP_PINK = 'primary-lockup-pink',\n PRIMARY_WORDMARK_PINK = 'primary-wordmark-pink',\n SECONDARY_BRANDMARK_BLACK = 'secondary-brandmark-black',\n SECONDARY_BRANDMARK_CREAM = 'secondary-brandmark-cream',\n SECONDARY_LOCKUP_BLACK = 'secondary-lockup-black',\n SECONDARY_LOCKUP_CREAM = 'secondary-lockup-cream',\n SECONDARY_WORDMARK_BLACK = 'secondary-wordmark-black',\n SECONDARY_WORDMARK_CREAM = 'secondary-wordmark-cream',\n}\n\nexport enum LogoPathEnum {\n DEFAULT = '/images/testgorilla.svg',\n POWEREDBY = '/images/poweredbyTG.svg',\n REVERSE = '/images/reverseTG.svg',\n PRIMARY_BRANDMARK_PINK = '/images/rebrand-logo/primary_brandmark_pink.svg',\n PRIMARY_LOCKUP_PINK = '/images/rebrand-logo/primary_lockup_pink.svg',\n PRIMARY_WORDMARK_PINK = '/images/rebrand-logo/primary_wordmark_pink.svg',\n SECONDARY_BRANDMARK_BLACK = '/images/rebrand-logo/secondary_brandmark_black.svg',\n SECONDARY_BRANDMARK_CREAM = '/images/rebrand-logo/secondary_brandmark_cream.svg',\n SECONDARY_LOCKUP_BLACK = '/images/rebrand-logo/secondary_lockup_black.svg',\n SECONDARY_LOCKUP_CREAM = '/images/rebrand-logo/secondary_lockup_cream.svg',\n SECONDARY_WORDMARK_BLACK = '/images/rebrand-logo/secondary_wordmark_black.svg',\n SECONDARY_WORDMARK_CREAM = '/images/rebrand-logo/secondary_wordmark_cream.svg',\n REBRAND_POWEREDBY = '/images/rebrand-logo/powered-by.svg',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { LogoPathEnum, LogoTypeEnum } from './logo.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LogoComponent implements OnInit, OnChanges {\n /**\n * Logo type\n *\n * @type {LogoTypeEnum}\n * @memberof LogoComponent\n */\n @Input() type: LogoTypeEnum = LogoTypeEnum.DEFAULT;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof LogoComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Label. Only for ppoweredby type\n *\n * @type {string}\n * @memberof LogoComponent\n */\n @Input() label = 'POWERED BY';\n\n /**\n * Set logo width\n * @default 200\n * @type {number}\n * @memberof LogoComponent\n */\n @Input() width = 200;\n\n /**\n *\n * Allow change logo width\n *\n * @type {string}\n * @memberof LogoComponent\n */\n @Input() allowResizing = false;\n\n protected readonly LogoTypeEnum = LogoTypeEnum;\n\n /**\n * @ignore\n */\n logoURL: String;\n\n /**\n * @ignore\n */\n setURL = () => {\n if (this.applicationTheme === 'classic') {\n switch (this.type) {\n case LogoTypeEnum.POWEREDBY: {\n this.logoURL = LogoPathEnum.POWEREDBY;\n break;\n }\n case LogoTypeEnum.REVERSE: {\n this.logoURL = LogoPathEnum.REVERSE;\n break;\n }\n default: {\n this.logoURL = LogoPathEnum.DEFAULT;\n break;\n }\n }\n } else {\n switch (this.type) {\n case LogoTypeEnum.PRIMARY_BRANDMARK_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_BRANDMARK_PINK;\n break;\n }\n case LogoTypeEnum.PRIMARY_LOCKUP_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\n break;\n }\n case LogoTypeEnum.PRIMARY_WORDMARK_PINK: {\n this.logoURL = LogoPathEnum.PRIMARY_WORDMARK_PINK;\n break;\n }\n case LogoTypeEnum.SECONDARY_BRANDMARK_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_BRANDMARK_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_CREAM;\n break;\n }\n case LogoTypeEnum.SECONDARY_LOCKUP_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_LOCKUP_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_CREAM;\n break;\n }\n case LogoTypeEnum.SECONDARY_WORDMARK_BLACK: {\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_BLACK;\n break;\n }\n case LogoTypeEnum.SECONDARY_WORDMARK_CREAM: {\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_CREAM;\n break;\n }\n case LogoTypeEnum.POWEREDBY: {\n this.logoURL = LogoPathEnum.REBRAND_POWEREDBY;\n break;\n }\n default: {\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\n break;\n }\n }\n }\n };\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 /**\n * @ignore\n */\n ngOnInit(): void {\n this.setURL();\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n this.setURL();\n if (changes['width']) {\n this.changeWidth(changes['width'].currentValue);\n }\n }\n\n private changeWidth(changedWidth: number): void {\n if (changedWidth >= 200 || this.allowResizing) {\n this.width = changedWidth;\n } else {\n this.width = 200;\n }\n }\n}\n","<ng-container *ngIf=\"applicationTheme === 'classic'; else rebrandLogo\">\n <img [attr.src]=\"logoURL\" [alt]=\"type\">\n</ng-container>\n\n<ng-template #rebrandLogo>\n <div *ngIf=\"label && type === LogoTypeEnum.POWEREDBY; else others\" class=\"logo-label\" [style.width]=\"width + 'px'\">\n <h3 class=\"bold\">{{ label }}</h3>\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\n </div>\n\n <ng-template #others>\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\n </ng-template>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LogoComponent } from './logo.component';\nimport { NgIf } from '@angular/common';\n\n@NgModule({\n declarations: [LogoComponent],\n imports: [NgIf],\n exports: [LogoComponent],\n})\nexport class LogoComponentModule {}\n","import { booleanAttribute, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { AccordionVariant, ToggleIconPosition } from './accordion.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\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: boolean = false;\n\n /**\n *\n * Sets background color of content to none\n *\n * @type {boolean}\n * @memberof AccordionComponent\n */\n @Input() noBackgroundColor: boolean = 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 class=\"accordion-wrapper\" [class.disabled]=\"disabled\" [ngClass]=\"variant\" [tabIndex]=\"0\" [attr.theme]=\"applicationTheme\">\n <mat-expansion-panel [expanded]=\"open\"\n [class.bgcolor-none]=\"noBackgroundColor\"\n (opened)=\"toggle(true)\"\n (closed)=\"toggle(false)\">\n <mat-expansion-panel-header [class.custom-height]=\"allowCustomHeader\" [class.left-toggle]=\"toggleIconPosition === 'left'\">\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 \"../icon/icon.component.module\";\nimport { ButtonComponentModule } from \"../button/button.component.module\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\n\n\n\n@NgModule({\n declarations: [\n AccordionComponent\n ],\n exports: [\n AccordionComponent\n ],\n imports: [\n CommonModule,\n IconComponentModule,\n ButtonComponentModule,\n MatTooltipModule,\n MatExpansionModule\n ]\n})\nexport class AccordionComponentModule { }\n","import { IconSize } from '../icon/icon.model';\n\nexport enum AvatarSize {\n SMALL = 'small',\n SMALL_MEDIUM = 'smallMedium',\n MEDIUM = 'medium',\n LARGE = 'large',\n}\n\nexport const iconSize: Record<string, IconSize> = {\n small: '16',\n medium: '24',\n large: '80',\n};\n\nexport enum AvatarBackgroundColor {\n PINK = '#FFE6FA',\n BLUE ='#D9E8FF',\n GREEN = '#E2F4B3',\n ORANGE = '#FFE1B3',\n RED = '#FFAC9A',\n}\n\nexport type BackgroundAvatarColorType = 'red' | 'blue' | 'green' | 'orange' | 'pink';\n\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nameInitials',\n})\nexport class NameInitialsPipe implements PipeTransform {\n transform(value: string): string {\n const initials = value.split(' ').filter(Boolean);\n if (initials.length > 1) {\n return initials\n .map((initial, i) => (i === 0 || i === initials.length - 1 ? initial[0].toUpperCase() : ''))\n .join('');\n } else {\n const firstLetters = value.substring(0, 2);\n return `${firstLetters[0]?.toUpperCase() ?? ''}${firstLetters[1]?.toLowerCase() ?? ''}`;\n }\n }\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport {\n AvatarSize,\n BackgroundAvatarColorType,\n iconSize,\n AvatarBackgroundColor\n} from './avatar.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AvatarComponent {\n /**\n * Input property for specifying the size of the avatar.\n * @type {AvatarSize}\n * @default AvatarSize.SMALL\n * @memberof AvatarComponent\n */\n @Input() size = AvatarSize.SMALL;\n /**\n * Input property for specifying the URL of the image to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() imageUrl = '';\n\n /**\n * Input property for specifying the initials to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() name = '';\n\n /**\n * Input property for specifying the tooltip text for edit.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() tooltipText = '';\n\n /**\n * Input property that makes avatar editable.\n * @type {boolean}\n * @memberof AvatarComponent\n */\n @Input() allowEdit = false;\n\n /**\n *\n * Defines the application theme where\n *\n * @type {ApplicationTheme}\n * @memberof AvatarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the background color\n *\n * @type {BackgroundAvatarColorType}\n * @memberof AvatarComponent\n */\n @Input() set backgroundColor(colorName: BackgroundAvatarColorType) {\n this.backgroundAvatarColor = AvatarBackgroundColor[colorName.toUpperCase() as keyof typeof AvatarBackgroundColor];\n }\n\n /**\n * Event emitted when the edit button is clicked.\n * @type {Event}\n * @memberof AvatarComponent\n */\n @Output() editClick = new EventEmitter<Event>();\n\n protected backgroundAvatarColor: string;\n protected readonly iconSize = iconSize;\n protected readonly avatarSize = AvatarSize;\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 onEditClick(event: Event): void {\n this.editClick.emit(event);\n }\n}\n","<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n <span *ngIf=\"name && !imageUrl\">\n {{ name | nameInitials }}\n </span>\n <img *ngIf=\"imageUrl\" [attr.src]=\"imageUrl\" [alt]=\"'profile-image'\">\n <ui-icon [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\" [applicationTheme]=\"applicationTheme\" [size]=\"iconSize[size]\" *ngIf=\"!imageUrl && !name\" [name]=\"'User-profile'\"></ui-icon>\n <div class=\"edit-avatar\" *ngIf=\"size === avatarSize.LARGE && allowEdit\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar.component';\nimport { NameInitialsPipe } from '../../pipes/name-initials.pipe';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ButtonComponentModule } from '../button/button.component.module';\n\n@NgModule({\n declarations: [AvatarComponent, NameInitialsPipe],\n imports: [CommonModule, IconComponentModule, MatTooltipModule, ButtonComponentModule],\n exports: [AvatarComponent],\n})\nexport class AvatarComponentModule {}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { IRoute, MenuItem } from \"../navbar.model\";\nimport { NgClass, NgForOf, NgIf, NgTemplateOutlet } from \"@angular/common\";\nimport { IconComponentModule } from \"../../icon/icon.component.module\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { UiTranslatePipe } from \"../../../pipes/ui-translate.pipe\";\nimport { LanguageService } from \"../../../utils/localization/language.service\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { AccordionComponentModule } from \"../../accordion/accordion.component.module\";\nimport { AvatarComponentModule } from \"../../avatar/avatar.component.module\";\nimport { ButtonComponentModule } from \"../../button/button.component.module\";\nimport { AvatarSize } from \"../../avatar/avatar.model\";\nimport { ApplicationTheme } from \"../../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-mobile-navbar-side-sheet',\n templateUrl: './mobile-navbar-side-sheet.component.html',\n styleUrls: ['./mobile-navbar-side-sheet.component.scss'],\n standalone: true,\n imports: [\n NgForOf,\n NgClass,\n IconComponentModule,\n MatIconModule,\n MatMenuModule,\n UiTranslatePipe,\n MatButtonModule,\n AccordionComponentModule,\n NgIf,\n NgTemplateOutlet,\n AvatarComponentModule,\n ButtonComponentModule,\n ],\n})\nexport class MobileNavbarSideSheetComponent {\n @Input() routes: IRoute[] = [];\n @Input() activedRoute = '';\n @Input() email = '';\n @Input() userName = '';\n @Input() menuItems: MenuItem[] = [];\n @Input() language = LanguageService.defaultLanguage;\n @Input() contentTemplateRef: TemplateRef<any>;\n @Input() isDesktop = false;\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\n\n protected readonly translationContext = 'NAVBAR.';\n protected avatarSize = AvatarSize;\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n}\n","<div class=\"mobile-navbar-container\">\n <ng-container *ngIf=\"isDesktop\" [ngTemplateOutlet]=\"userInfo\"></ng-container>\n\n <div class=\"routes\">\n <div *ngFor=\"let route of routes\" (click)=\"navigate(route.id)\" class=\"route\"\n [ngClass]=\"{'active': activedRoute === route.id}\">\n <span>{{ route.title }}</span>\n </div>\n </div>\n\n <div class=\"settings\">\n <ng-container *ngFor=\"let e of menuItems\">\n <div *ngIf=\"e\" class=\"menu-item\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n </ng-container>\n </div>\n</div>\n\n\n<div class=\"bottom-content\" [ngClass]=\"{ 'desktop': isDesktop }\">\n <ng-container *ngIf=\"!isDesktop\" [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n <ng-container *ngIf=\"isDesktop; else tablet\">\n <div class=\"menu-item\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT') | uiTranslate : language\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n </ng-container>\n\n <ng-template #tablet>\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n </ng-template>\n</div>\n\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name\">{{ userName }}</span>\n <span class=\"user-email\">{{ email }}</span>\n </div>\n <ui-button\n *ngIf=\"!isDesktop\"\n [tooltip]=\"(translationContext + 'LOG_OUT') | uiTranslate : language\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n </div>\n </div>\n</ng-template>\n","export enum ScreenBreakpoints {\n MOBILE = 600,\n TABLET = 1023,\n}\n","import { ApplicationRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { SideSheetConfig } from './side-sheet.model';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SideSheetService {\n private componentRef$ = new Subject<SideSheetConfig | null>();\n\n constructor(private applicationRef: ApplicationRef) {}\n\n open<T>(config: SideSheetConfig): T {\n const { componentRef, ...configFields } = config;\n const rootViewContainerRef = this.applicationRef.components[0].injector.get(ViewContainerRef);\n const componentReference = rootViewContainerRef.createComponent(config.componentRef);\n this.componentRef$.next({ ...configFields, componentRef: componentReference });\n return componentReference.instance as T;\n }\n\n close(): void {\n this.componentRef$.next(null);\n }\n\n getComponentRef(): Observable<SideSheetConfig | null> {\n return this.componentRef$.asObservable();\n }\n}\n","import {\n Component,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { SideSheetService } from './side-sheet.service';\nimport { SideSheetConfig, SideSheetPosition } from './side-sheet.model';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-side-sheet',\n templateUrl: './side-sheet.component.html',\n styleUrls: ['./side-sheet.component.scss'],\n})\nexport class SideSheetComponent implements OnInit {\n /**\n * Set position. Defaults \"end\"\n *\n * @type {SideSheetPosition}\n * @memberof SideSheetComponent\n */\n @Input() position: SideSheetPosition = 'end';\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof SideSheetComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SideSheetComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n @ViewChild('drawer') drawer: MatDrawer;\n @ViewChild('container', { read: ViewContainerRef, static: false }) container: ViewContainerRef;\n\n protected title = '';\n protected showBackButton = false;\n protected showTitleTooltip = false;\n protected showLogo = false;\n protected componentRef$ = this.sideSheetService.getComponentRef();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private sideSheetService: SideSheetService,\n private destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.setComponentRef();\n }\n\n private setComponentRef(): void {\n this.componentRef$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(config => {\n if (config && config.componentRef && this.container && this.drawer) {\n this.setConfig(config);\n this.drawer.toggle();\n this.container.clear();\n this.container.insert(config.componentRef.hostView);\n } else if (!config) {\n this.drawer.toggle();\n this.container.clear();\n }\n });\n }\n\n private setConfig(config: SideSheetConfig): void {\n this.title = config.title ?? '';\n this.showLogo = config.showLogo ?? false;\n this.showBackButton = config.showBackButton ?? false;\n this.showTitleTooltip = config.showTitleTooltip ?? false;\n\n if (config.closed) {\n config.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n void this.drawer.close();\n });\n }\n }\n\n protected onClose(): void {\n this.drawer.toggle();\n }\n\n onOpenChange(isOpened: boolean): void {\n this.openChange.emit(isOpened);\n }\n}\n","<ng-container>\n <mat-drawer-container class=\"side-sheet-container\" [attr.theme]=\"applicationTheme\" [hasBackdrop]=\"true\">\n <mat-drawer (closedStart)=\"onOpenChange(false)\" (openedStart)=\"onOpenChange(true)\" #drawer [mode]=\"'over'\" [autoFocus]=\"false\" class=\"side-sheet-content\" [position]=\"position\">\n <div class=\"header\">\n <div class=\"title\">\n <ui-button\n *ngIf=\"showBackButton\"\n [variant]=\"'icon-button'\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-filled'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.BACK') | uiTranslate : language\"\n (click)=\"onClose()\"\n ></ui-button>\n <span\n *ngIf=\"title\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n [matTooltipClass]=\"applicationTheme\"\n >{{ title }}</span>\n <ui-logo *ngIf=\"showLogo\"></ui-logo>\n </div>\n <ui-button\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose()\"\n ></ui-button>\n </div>\n <ng-container #container></ng-container>\n </mat-drawer>\n <mat-drawer-content>\n <ng-content></ng-content>\n </mat-drawer-content>\n </mat-drawer-container>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { IRoute, MenuItem, MenuState, ScreenSize } from './navbar.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { map, ReplaySubject, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { SideSheetService } from '../side-sheet/side-sheet.service';\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { ScreenBreakpoints } from '../../models/screen-breakpoints.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LogoTypeEnum } from '../logo/logo.model';\nimport { AvatarSize } from '../avatar/avatar.model';\n\n@Component({\n selector: 'ui-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavbarComponent {\n /**\n * Routes object\n *\n * @type {IRoute}\n * @memberof NavbarComponent\n * @ignore\n */\n @Input() routes: IRoute[] = [];\n\n /**\n * Actived route id\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() activedRoute = '';\n\n /**\n * User first name and last name\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() userName = '';\n\n /**\n * User email\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() email = '';\n\n /**\n * Menu items to show in menu above the Log out button\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() menuItems: MenuItem[] = [];\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof NavbarComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof NavbarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * It's ng-content for mobile version\n *\n * @type {ApplicationTheme}\n * @memberof NavbarComponent\n */\n @Input() contentTemplateRef: TemplateRef<any>;\n\n /**\n * Mobile breakpoint\n * @type {number}\n * @memberof NavbarComponent\n */\n @Input() set mobileBreakpoint(value: number) {\n if (value) {\n this._mobileBreakpoint$.next(value);\n }\n }\n\n /**\n *\n * Show avatar with user initials\n *\n * @type {boolean}\n * @memberof NavbarComponent\n */\n @Input() isAvatar = true;\n\n /**\n * Sets class for the menu\n *\n * @type {string}\n * @memberof NavbarComponent\n */\n @Input() menuClass = '';\n\n /**\n * @ignore\n */\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * @ignore\n */\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * @ignore\n */\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\n @Output() menuState: EventEmitter<MenuState> = new EventEmitter<MenuState>();\n\n protected screenSize: ScreenSize = 'desktop';\n protected readonly translationContext = 'NAVBAR.';\n private readonly _mobileBreakpoint$ = new ReplaySubject<number>(1);\n private readonly _tabletBreakpoint$ = new ReplaySubject<number>(1);\n private readonly mobileBreakpointObs$ = this._mobileBreakpoint$.pipe(startWith(ScreenBreakpoints.MOBILE));\n private readonly tabletBreakpointObs$ = this._tabletBreakpoint$.pipe(startWith(ScreenBreakpoints.TABLET));\n protected readonly isMobile$ = this.mobileBreakpointObs$.pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\n .pipe(\n map(v => v.matches),\n tap(isMobile => isMobile ? this.screenSize = 'mobile' : 'desktop')\n ))\n );\n protected readonly isTablet$ = this.tabletBreakpointObs$.pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\n .pipe(\n map(v => v.matches),\n tap(isTablet => isTablet ? this.screenSize = 'tablet' : 'desktop')\n )\n )\n );\n protected isOpened = false;\n protected logoType = LogoTypeEnum;\n\n constructor(\n private readonly breakpointObserver: BreakpointObserver,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private sideSheetService: SideSheetService,\n private destroyRef: DestroyRef,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n openMobileMenu(): void {\n const isSideSheetClosed$ = new Subject<void>();\n const navbarSideSheetComponent = this.sideSheetService.open<MobileNavbarSideSheetComponent>({\n componentRef: MobileNavbarSideSheetComponent,\n showLogo: true,\n closed: isSideSheetClosed$,\n });\n\n navbarSideSheetComponent.userName = this.userName;\n navbarSideSheetComponent.menuItems = this.menuItems;\n navbarSideSheetComponent.activedRoute = this.activedRoute;\n navbarSideSheetComponent.routes = this.routes;\n navbarSideSheetComponent.email = this.email;\n navbarSideSheetComponent.language = this.language;\n navbarSideSheetComponent.contentTemplateRef = this.contentTemplateRef;\n navbarSideSheetComponent.applicationTheme = this.applicationTheme;\n\n navbarSideSheetComponent.logoutEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.logoutEvent.emit();\n isSideSheetClosed$.next();\n });\n\n navbarSideSheetComponent.menuItemClicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.menuItemClicked.emit(value);\n isSideSheetClosed$.next();\n });\n\n navbarSideSheetComponent.navigateEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.navigateEvent.emit(value);\n isSideSheetClosed$.next();\n });\n }\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n\n onChangeMenuState(isOpened: boolean, screenSize: ScreenSize) {\n this.isOpened = isOpened;\n this.menuState.emit({ isOpened, screenSize });\n }\n\n protected readonly AvatarSize = AvatarSize;\n}\n","<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n\n <div class=\"custom-toolbar row\">\n\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"(isMobile$ | async) ? logoType.DEFAULT : (isTablet$ | async) ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\" [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a *ngFor=\"let route of routes\" (click)=\"navigate(route.id)\"\n [ngClass]=\"{ 'active': activedRoute === route.id }\">\n <ui-badge *ngIf=\"route?.badgeOptions\" [label]=\"route.badgeOptions!.text\" [rebrandColor]=\"route.badgeOptions!.color\"></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button mat-button class=\"profile-menu\" [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\" [name]=\"userName\" [size]=\"AvatarSize.SMALL_MEDIUM\"></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n\n <button *ngFor=\"let e of menuItems\" mat-menu-item (click)=\"clickMenuItem(e.id)\">\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ (translationContext + 'LOG_OUT') | uiTranslate : language }}\n </button>\n\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [language]=\"language\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n\n </mat-menu>\n</ui-side-sheet>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SideSheetComponent } from './side-sheet.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { LogoComponentModule } from \"../logo/logo.component.module\";\n\n@NgModule({\n declarations: [SideSheetComponent],\n exports: [SideSheetComponent],\n imports: [\n CommonModule,\n IconComponentModule,\n ButtonComponentModule,\n MatTooltipModule,\n MatSidenavModule,\n UiTranslatePipe,\n LogoComponentModule,\n ],\n})\nexport class SideSheetComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { LogoComponentModule } from '../logo/logo.component.module';\nimport { NavbarComponent } from './navbar.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { AvatarComponentModule } from \"../avatar/avatar.component.module\";\nimport { SideSheetComponentModule } from \"../side-sheet/side-sheet.component.module\";\nimport { ButtonComponentModule } from \"../button/button.component.module\";\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { BadgeComponentModule } from \"../badge/badge.component.module\";\n\n@NgModule({\n declarations: [NavbarComponent],\n imports: [\n CommonModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatRippleModule,\n MatMenuModule,\n LogoComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n AvatarComponentModule,\n SideSheetComponentModule,\n ButtonComponentModule,\n MobileNavbarSideSheetComponent,\n BadgeComponentModule\n ],\n exports: [NavbarComponent],\n})\nexport class NavbarComponentModule {}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './deprecated-paginator.component.html',\n styleUrls: ['./deprecated-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeprecatedPaginatorComponent implements OnInit {\n // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/16865\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/17004\n\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n readonly pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Default page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() defaultPageSize = 25;\n\n /**\n * @ignore\n */\n @Output() paginatorChangedEvent: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n /**\n * @ignore\n */\n ngOnInit(): void {}\n\n constructor() {}\n\n paginatorChanged(paginator: PageEvent) {\n this.paginatorChangedEvent.emit(paginator);\n }\n}\n","<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { DeprecatedPaginatorComponent } from './deprecated-paginator.component';\n\n@NgModule({\n declarations: [DeprecatedPaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [DeprecatedPaginatorComponent],\n providers: [],\n})\nexport class DeprecatedPaginatorComponentModule {}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n} from '@angular/core';\nimport { MatRadioButton } from '@angular/material/radio';\nimport { RadioButtonEventType } from './radio-button.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\nimport { ControlValueAccessor, NgControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ui-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements OnInit, OnChanges, ControlValueAccessor {\n /**\n * Determines whether the radio button is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Determines whether the radio button is checked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n //@Input() selected = false;\n\n _selected = false;\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(selected: boolean) {\n this._selected = selected;\n }\n\n /**\n * Determines whether the radio button can be unchecked.\n * Default: false.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() allowUnselect = false;\n\n /**\n * Determines the radio button color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n * Used to group radios for unique selection.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() name = '';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() label = '';\n\n /**\n * Determines whether the radio button is a multiple choice cell.\n * Default: false\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() multiple = false;\n\n /**\n * Determines value of the radio button.\n * Default: false\n *\n * @type {any}\n * @memberof RadioButtonComponent\n */\n @Input() value: any;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof RadioButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof RadioButtonComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Defines if checkbox has error\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Input() hasError = false;\n\n /**\n * Event emitted when the checked state of the radio button changes.\n *\n * @type {boolean}\n * @memberof RadioButtonComponent\n */\n @Output() changeRadio = new EventEmitter<RadioButtonEventType>();\n\n classMultiple: string;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Optional() @Self() public ngControl: NgControl,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n this.classMultiple = this.setClass();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected']) {\n this.classMultiple = this.setClass();\n }\n }\n\n //Click method\n clickRadio(element: MatRadioButton, event: MouseEvent) {\n //event.preventDefault();\n if (this.allowUnselect) {\n element.checked = !element.checked;\n this._selected = element.checked;\n this.classMultiple = this.setClass();\n this.selected = element.checked;\n this.changeRadio.emit({ optionName: element.value, optionChecked: element.checked });\n } else {\n this.changeRadio.emit({ optionName: element.value, optionChecked: true });\n }\n if (this.disabled) {\n this._selected = false;\n this.changeRadio.emit({ optionName: '', optionChecked: false });\n }\n this.onChange(this._selected)\n }\n\n writeValue(value: any): void {\n if (typeof value === 'boolean') {\n this.selected = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n //Set class for multiple radio\n setClass(): string {\n if (this.multiple) {\n return this._selected ? 'multiple-checked' : 'multiple-unchecked';\n }\n return '';\n }\n}\n","<div [class]=\"multiple ? 'radio-container' : ''\"\n [class.multiple-disabled]=\"disabled && multiple\"\n [ngClass]=\"classMultiple\"\n [attr.theme]=\"applicationTheme\"\n [attr.hasError]=\"hasError\">\n <mat-radio-button\n #radio\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [value]=\"value\"\n class=\"radio-button\"\n (click)=\"clickRadio(radio, $event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <span class=\"label\"\n (click)=\"clickRadio(radio, $event)\"\n >{{ label }}</span>\n <ng-content select=\"[radio-label]\"></ng-content>\n </mat-radio-button>\n</div>\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { RadioButtonComponent } from './radio-button.component';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [RadioButtonComponent],\n imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule],\n exports: [RadioButtonComponent],\n})\nexport class RadioButtonComponentModule {}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { IconName } from '../../components/icon/icon.model';\nimport { SnackbarType, SnackbarVariant } from '../../components/snackbar/snackbar.model';\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LinkTargetType } from '../alert-banner/alert-banner.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n animations: [\n trigger('openClose', [\n transition(':enter', [\n style({ bottom: '-55px', opacity: 0 }),\n animate('0.2s ease-out', style({ opacity: 1, bottom: '10px' })),\n ]),\n transition(':leave', [\n style({ bottom: '10px', opacity: 1 }),\n animate('0.2s ease-in', style({ bottom: '-55px', opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class SnackbarComponent implements OnInit {\n /**\n * Background color of the button while in active state\n *\n * @type {SnackbarType}\n * @memberof SnackbarComponent\n */\n @Input() snackbarType: SnackbarType = 'success';\n\n /**\n * Snackbar message\n *\n * @memberof SnackbarComponent\n */\n @Input() message = '';\n\n /**\n * Snackbar message from html\n *\n * @memberof SnackbarComponent\n */\n @Input() set html(value: string) {\n if (value) {\n this.safeHtml = this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n }\n\n /**\n * Set the time that the snackbar will be visible\n *\n * @memberof SnackbarComponent\n */\n @Input() seconds = 5;\n\n /**\n * Include dismmiss button\n *\n * @memberof SnackbarComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Static or fixed position\n *\n * @memberof SnackbarComponent\n */\n @Input() fixed = true;\n\n /**\n * Link text that will appended at the end of message\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n * The language to be used\n *\n * @type {string}\n * @memberof SnackbarComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The variant to be used\n *\n * @type {SnackbarVariant}\n * @memberof SnackbarComponent\n */\n @Input() variant: SnackbarVariant = 'desktop';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SnackbarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @memberof SnackbarComponent\n */\n @Input() closeButtonTooltip = '';\n\n iconName: IconName;\n showSnackbar = true;\n milisenconds: number;\n visible = false;\n timer?: number;\n timerStartedAt = 0;\n timerPausedAt = 0;\n position: string;\n safeHtml: SafeHtml;\n\n translationContext = 'SNACKBAR.';\n protected readonly maxCharacters = 70;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(MAT_SNACK_BAR_DATA) private data: any,\n private snackbarRef: MatSnackBarRef<SnackbarComponent>,\n private domSanitizer: DomSanitizer,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n this.snackbarType = data.snackbarType ?? 'success';\n this.message = data.message ?? '';\n this.safeHtml = data.html ? this.domSanitizer.bypassSecurityTrustHtml(data.html) : '';\n }\n\n ngOnInit(): void {\n this.milisenconds = this.seconds * 1000;\n this.iconName = alertBarsUtil.setIcon(this.snackbarType);\n this.show();\n this.position = alertBarsUtil.setPosition(this.fixed);\n }\n\n //Show snackbar\n show() {\n this.timerStartedAt = Date.now();\n this.visible = true;\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds);\n }\n\n //Hide snackbar\n hide() {\n this.visible = false;\n this.timerPausedAt = 0;\n this.timerStartedAt = 0;\n clearTimeout(this.timer);\n this.timer = undefined;\n this.snackbarRef.dismiss();\n }\n\n //Pause timer when mouse enter\n onMouseEnter() {\n this.visible = true;\n this.timerPausedAt = Date.now();\n clearTimeout(this.timer);\n }\n\n //Continue timer when mouse leave\n onMouseLeave() {\n const diff = this.timerPausedAt - this.timerStartedAt;\n if (diff <= 0) {\n return this.hide();\n }\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds - diff);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n this.snackbarRef.dismiss();\n }\n}\n","<ng-container>\n <div\n [ngClass]=\"snackbarType + ' ' + position\"\n [@openClose]\n *ngIf=\"visible\"\n class=\"snackbar-container\"\n [attr.theme]=\"applicationTheme\"\n [class.mobile]=\"variant === 'mobile'\"\n [class.desktop]=\"variant === 'desktop'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div class=\"snackbar-text\" [matTooltip]=\"message.length > maxCharacters ? message : ''\">\n <ui-icon *ngIf=\"applicationTheme === 'classic'\" [name]=\"iconName\" size=\"24\"></ui-icon>\n {{ message.length > maxCharacters ? (message | slice : 0 : maxCharacters) + '..' : message }}\n <div *ngIf=\"safeHtml\" [innerHTML]=\"safeHtml\"></div>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [label]=\"(translationContext + 'DISMISS') | uiTranslate : language\"\n [applicationTheme]=\"applicationTheme !== 'classic'? 'light' : 'classic'\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic'\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n </div>\n</ng-container>\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnackbarComponent } from './snackbar.component';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Injectable()\nexport class SnackbarService {\n constructor(private snackBar: MatSnackBar) {}\n\n error(message: string, applicationTheme?: ApplicationTheme, html?: string) {\n const componentRef = this.snackBar.openFromComponent(SnackbarComponent, {\n data: {\n snackbarType: 'error',\n message,\n html,\n },\n });\n if (applicationTheme) {\n componentRef.instance.applicationTheme = applicationTheme;\n }\n return componentRef;\n }\n\n success(message: string, applicationTheme?: ApplicationTheme, html?: string) {\n const componentRef = this.snackBar.openFromComponent(SnackbarComponent, {\n data: {\n snackbarType: 'success',\n message,\n html,\n },\n });\n if (applicationTheme) {\n componentRef.instance.applicationTheme = applicationTheme;\n }\n return componentRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SnackbarComponent } from './snackbar.component';\nimport { SnackbarService } from './snackbar.service';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [SnackbarComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe, MatSnackBarModule, MatTooltipModule],\n exports: [SnackbarComponent],\n providers: [SnackbarService],\n})\nexport class SnackbarComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// TODO: Check type (backend could return a number)\ntype DataPropertyGetterType = string;\n\n@Pipe({\n name: 'dataPropertyGetter',\n standalone: true,\n})\nexport class DataPropertyGetterPipe implements PipeTransform {\n transform(obj: object, keyName: string = '') {\n return this.getDeepVal(obj, keyName);\n }\n\n private getDeepVal(obj: any, path: string) {\n if (typeof obj === 'undefined' || obj === null) {\n return '';\n }\n const splittedPath = path.split(/[\\.\\[\\]\\\"\\']{1,2}/);\n for (let i = 0, l = splittedPath.length; i < l; i++) {\n if (splittedPath[i] === '') {\n continue;\n }\n obj = obj[splittedPath[i]];\n if (typeof obj === 'undefined' || obj === null) {\n return '';\n }\n }\n return obj;\n }\n}\n","import { Type } from '@angular/core';\n\nexport type IDataSource = {\n [key: string]: any;\n};\n\nexport interface ITableColumn<T> {\n headerName: string;\n headerTooltip?: string;\n field?: string;\n type?: ColumnTypeEnum;\n function?: (v: T) => string;\n renderer?: (v: T) => IComponentRenderer | string;\n sortable?: boolean;\n styles?: IColumnStyles;\n}\n\nexport interface IComponentRenderer {\n component: Type<any>;\n inputs?: any;\n outputs?: { [key: string]: any };\n}\n\nexport interface IDetailRowDataParams<T, TDetail> {\n data: T;\n setDetailDataSource(rowData: TDetail[]): void;\n}\n\nexport interface ITableDetailColumn<T, TDetail> {\n columnDefs: ITableColumn<TDetail>[];\n setDetailRowData: (params: IDetailRowDataParams<T, TDetail>) => void;\n}\n\nexport interface IColumnStyles {\n alignment?: ColumnAlignmentEnum;\n width?: string;\n 'min-width'?: string;\n padding?: string;\n}\n\nexport enum ColumnTypeEnum {\n FIELD = 'field',\n FUNCTION = 'function',\n RENDERER = 'renderer',\n}\n\nexport enum ColumnAlignmentEnum {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n","import { ComponentRef, Directive, EventEmitter, Input, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IComponentRenderer } from '../deprecated-table.model';\n\n@Directive({\n selector: '[dynamicComponent]',\n standalone: true,\n})\nexport class DynamicComponentDirective implements OnDestroy {\n private subscription = new Subscription();\n private compRef: ComponentRef<any>;\n\n @Input() set dynamicComponent(componentRenderer: IComponentRenderer) {\n if (componentRenderer.component) {\n this.compRef = this.vcr.createComponent(componentRenderer.component);\n\n if (componentRenderer.inputs) {\n Object.keys(componentRenderer.inputs).map(\n inputName => (this.compRef.instance[inputName] = componentRenderer.inputs[inputName])\n );\n }\n\n if (componentRenderer.outputs) {\n Object.keys(componentRenderer.outputs).map(output => {\n this.subscription.add(\n (this.compRef.instance[output] as EventEmitter<any>).subscribe(componentRenderer.outputs?.[output])\n );\n });\n }\n }\n }\n\n constructor(private vcr: ViewContainerRef) {}\n\n ngOnDestroy() {\n if (this.compRef) {\n this.compRef.destroy();\n }\n this.subscription.unsubscribe();\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\nimport { ColumnTypeEnum, IDataSource, ITableColumn, ITableDetailColumn } from './deprecated-table.model';\n\n@Component({\n selector: 'ui-deprecated-table',\n templateUrl: './deprecated-table.component.html',\n styleUrls: ['./deprecated-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('expandDetail', [\n state('collapsed, void', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class DeprecatedTableComponent<T extends IDataSource, TDetail extends IDataSource> implements OnInit {\n /**\n * @ignore\n */\n @ViewChild(MatSort) set matSort(matSort: MatSort) {\n this.dataSource.sort = matSort;\n this.dataSource.sortingDataAccessor = (item, property) => this.dataPropertyGetterPipe.transform(item, property);\n }\n\n /**\n * @ignore\n */\n @Input() tableDetails = false;\n\n /**\n * Data to be rendered\n *\n * @ignore\n * @type {IDataSource}\n * @memberof TableComponent\n */\n @Input() set tableData(data: T[] | null) {\n if (data?.length) {\n this.setTableDataSource(data);\n }\n }\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {ITableColumn}\n * @memberof TableComponent\n */\n @Input() tableColumns: ITableColumn<T>[] = [];\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {ITableColumn}\n * @memberof TableComponent\n */\n @Input() tableDetailColumns: ITableDetailColumn<T, TDetail>;\n\n /**\n * @ignore\n */\n @Output() onSortEvent: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /**\n * @ignore\n */\n @Output() onRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * @ignore\n */\n @Output() onDetailRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * @ignore\n */\n dataSource = new MatTableDataSource<any>([]);\n\n /**\n * @ignore\n */\n dataSourceDetail = new MatTableDataSource<any>([]);\n\n /**\n * @ignore\n */\n elementDetail: any;\n\n /**\n * @ignore\n */\n columnsToDisplay: string[] = [];\n\n /**\n * @ignore\n */\n columnsDetailToDisplay: string[] = [];\n\n /**\n * @ignore\n */\n DataType = ColumnTypeEnum;\n\n ngOnInit(): void {\n this.columnsToDisplay = this.tableColumns.map((tableColumn: ITableColumn<T>) => tableColumn.headerName);\n if (this.tableDetailColumns) {\n this.columnsDetailToDisplay = this.tableDetailColumns.columnDefs.map(\n (tableColumn: ITableColumn<TDetail>) => tableColumn.headerName\n );\n }\n }\n\n constructor(private dataPropertyGetterPipe: DataPropertyGetterPipe) {}\n\n onSort(sortParams: Sort) {\n const columnSort = this.tableColumns.find((column: ITableColumn<T>) => column.headerName === sortParams.active);\n if (columnSort?.field) {\n sortParams.active = columnSort?.field;\n }\n this.onSortEvent.emit(sortParams);\n }\n\n onRowClick(rowParams: any) {\n this.onRowClickEvent.emit(rowParams);\n }\n\n onDetailRowClick(rowParams: any) {\n this.onDetailRowClickEvent.emit(rowParams);\n }\n\n toggleRow(element: T) {\n this.elementDetail = this.elementDetail === element ? null : element;\n if (this.elementDetail) {\n this.tableDetailColumns.setDetailRowData({\n data: element,\n setDetailDataSource: this.setTableDetailDataSource.bind(this),\n });\n }\n }\n\n /**\n * @ignore\n */\n private setTableDataSource(data: T[]) {\n this.dataSource = new MatTableDataSource<any>(data);\n }\n\n /**\n * @ignore\n */\n private setTableDetailDataSource(rowData: TDetail[]) {\n this.dataSourceDetail = new MatTableDataSource<any>(rowData);\n }\n}\n","<table *ngIf=\"!tableDetails\" mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\">\n <ng-container *ngFor=\"let tableColumn of tableColumns; let i = index\" [matColumnDef]=\"tableColumn.headerName\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.field || ''\"\n arrowPosition=\"after\" [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"[tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : '', onRowClickEvent.observed && i === tableColumns.length - 1 ? 'row-detail': '']\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n <mat-icon *ngIf=\"onRowClickEvent.observed && i === tableColumns.length - 1\" class=\"row-detail-icon\">navigate_next</mat-icon>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnsToDisplay;\" [ngClass]=\"{'row-clickable': onRowClickEvent.observed}\"></tr>\n</table>\n\n<table *ngIf=\"tableDetails\" mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSort($event)\"\n multiTemplateDataRows>\n <ng-container *ngFor=\"let tableColumn of tableColumns; let i = index\" [matColumnDef]=\"tableColumn.headerName\">\n <ng-container *ngIf=\"tableColumn.sortable; else notSortable\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" [mat-sort-header]=\"tableColumn.field || ''\"\n arrowPosition=\"after\" [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-container>\n <ng-template #notSortable>\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{width: tableColumn.styles?.width, minWidth: tableColumn.styles?.['min-width']}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n <ng-container *ngTemplateOutlet=\"tableHeader; context: {tableColumn}\"></ng-container>\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"[tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : '', i === 0 ? 'row-expand' : '']\">\n <mat-icon *ngIf=\"i === 0\" class=\"row-expand-icon\">{{ element === elementDetail ? 'expand_less' : 'expand_more' }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"columnsToDisplay.length\">\n <div class=\"element-detail\" *ngIf=\"dataSourceDetail.data.length\"\n [@expandDetail]=\"element === elementDetail ? 'expanded' : 'collapsed'\">\n <table mat-table [dataSource]=\"dataSourceDetail\">\n <ng-container *ngFor=\"let tableColumn of tableDetailColumns.columnDefs\"\n [matColumnDef]=\"tableColumn.headerName\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" arrowPosition=\"after\"\n [ngStyle]=\"{width: tableColumn.styles?.width}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n {{tableColumn.headerName | uppercase}}\n </th>\n <td mat-cell *matCellDef=\"let element\" (click)=\"onDetailRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : ''\"\n [ngStyle]=\"{padding: tableColumn.styles?.padding}\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsDetailToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let rowDetail; columns: columnsDetailToDisplay;\"></tr>\n </table>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let element; columns: columnsToDisplay;\" class=\"element-row\"\n [ngClass]=\"{'expanded-row': elementDetail === element, 'row-clickable': tableDetails}\"\n (click)=\"toggleRow(element)\">\n </tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\n</table>\n\n<ng-template #tableDataTpl let-element=\"element\" let-tableColumn=\"tableColumn\">\n <div class=\"align-wrapper\">\n <ng-container [ngSwitch]=\"tableColumn.type\">\n <ng-container *ngSwitchCase=\"DataType.FIELD\">\n {{element | dataPropertyGetter: tableColumn.field}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.FUNCTION\">\n {{tableColumn.function?.(element)}}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.RENDERER\">\n <ng-template\n [dynamicComponent]=\"tableColumn.renderer?.(element)\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{element | dataPropertyGetter: tableColumn.field}}\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #tableHeader let-tableColumn=\"tableColumn\">\n <div class=\"tooltip\" [ngStyle]=\"{'justify-content': tableColumn.styles?.alignment}\" [ngClass]=\"tableColumn.styles?.alignment\">\n <span>{{tableColumn.headerName | uppercase}}</span>\n <mat-icon *ngIf=\"tableColumn.headerTooltip\" [matTooltip]=\"tableColumn.headerTooltip\" class=\"tooltip-icon\" (click)=\"$event.stopPropagation()\">help</mat-icon>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DynamicComponentDirective } from './directives/dynamic-component.directive';\nimport { DeprecatedTableComponent } from './deprecated-table.component';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\n\n@NgModule({\n declarations: [DeprecatedTableComponent],\n imports: [\n CommonModule,\n MatTableModule,\n MatSortModule,\n MatIconModule,\n MatTooltipModule,\n DynamicComponentDirective,\n DataPropertyGetterPipe,\n ],\n exports: [DeprecatedTableComponent],\n providers: [DataPropertyGetterPipe],\n})\nexport class DeprecatedTableComponentModule {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter, Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild\n} from '@angular/core';\nimport { debounceTime, map, ReplaySubject } from 'rxjs';\nimport { IconColor, IconName } from '../icon/icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent implements AfterViewInit, OnInit {\n /**\n * Tag's label\n *\n * @memberof TagComponent\n */\n @Input() set label(value: string) {\n this.labelText = value;\n if (this.labelElement) {\n this.isLabelEllipseActive();\n }\n }\n\n /**\n * Icon\n *\n * @type {string}\n * @memberof TagComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * Whether to allow the tag to be closed.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() allowClose = false;\n\n /**\n * Whether the tag is in read-only mode.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() readOnly = false;\n\n /**\n * Whether the tag is selected.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isSelected = false;\n\n /**\n * Display icon when is selected\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n * Specifies whether the element is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isDisabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TagComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof TagComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof TagComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Event triggered when the tag should be closed.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() close = new EventEmitter<void>();\n\n /**\n * Event triggered when a press action occurs.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() press = new EventEmitter<boolean>();\n\n /**\n * Subject that needs to be triggered when Label input changes, to check if it's truncated\n * @private\n * @type {void}\n * @memberof TagComponent\n */\n private checkLabelEllipsis$ = new ReplaySubject<void>(1);\n\n /**\n * Observable that indicates if the Label is truncated\n * debounceTime is used to wait for view to be initialized after receiving a new Label input\n * @protected\n * @type {boolean}\n * @memberof TagComponent\n */\n protected isEllipseActiveObs$ = this.checkLabelEllipsis$.pipe(\n debounceTime(100),\n map(() => {\n const el = this.labelElement.nativeElement;\n return el.offsetWidth < el.scrollWidth;\n })\n );\n protected labelText = '';\n protected isHovered = false;\n protected shrink = false;\n protected iconToPass: IconName;\n protected iconColor: IconColor;\n\n @ViewChild('labelElement') labelElement: ElementRef<HTMLElement>;\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 ngOnInit(): void {\n this.iconToPass = this.icon;\n this.iconColor = 'black';\n }\n\n ngAfterViewInit(): void {\n this.isLabelEllipseActive();\n }\n\n onPress(): void {\n if (!this.readOnly && !this.allowClose) {\n this.isSelected = this.showIconWhenSelected ? !this.isSelected : false;\n this.press.emit(this.isSelected);\n }\n }\n\n setHoverState(state: boolean) {\n this.isHovered = state;\n if (this.applicationTheme !== 'classic') {\n if (state) {\n this.iconToPass = `${this.icon}-filled` as IconName;\n } else {\n this.iconToPass = this.icon;\n }\n this.iconColor = this.isHovered ? 'white' : 'black';\n }\n }\n\n setShrinkState(state: boolean) {\n this.shrink = state;\n }\n\n onClose(): void {\n this.close.emit();\n }\n\n private isLabelEllipseActive(): void {\n this.checkLabelEllipsis$.next();\n }\n\n get tabIndex(): number {\n return this.isDisabled || this.readOnly ? -1 : 0;\n }\n\n get filled(): boolean {\n return this.readOnly || this.allowClose || this.isSelected;\n }\n}\n","<div class=\"tag-wrapper\" [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\">\n <div\n [tabindex]=\"tabIndex\"\n class=\"tag-container\"\n [attr.data-testid]=\"'tag--container'\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{\n filled: filled,\n readonly: readOnly,\n disabled: isDisabled,\n outlined: !isSelected,\n shrink\n }\"\n (click)=\"onPress()\"\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\n <ui-icon [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\" [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n </div>\n</div>\n","export enum TooltipPositionType {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right'\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { TooltipPositionType } from './tooltip.model';\nimport { TooltipPosition } from '@angular/material/tooltip';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-tooltip',\n templateUrl: './tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent implements OnInit {\n /**\n * Allows the user to define the position of the tooltip relative to the parent element.\n *\n * @type {TooltipPositionType}\n * @memberof TooltipComponent\n */\n @Input() position: TooltipPositionType = TooltipPositionType.TOP;\n\n /**\n * Disables the display of the tooltip.\n *\n * @type {boolean}\n * @memberof TooltipComponent\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * The message to be displayed in the tooltip.\n *\n * @type {string}\n * @memberof TooltipComponent\n */\n @Input() message = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TooltipComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n templateRef: any;\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 matPosition: TooltipPosition;\n\n ngOnInit() {\n this.setPosition();\n }\n\n //set position\n setPosition(): void {\n switch (this.position) {\n case TooltipPositionType.TOP:\n this.matPosition = 'above';\n break;\n case TooltipPositionType.BOTTOM:\n this.matPosition = 'below';\n break;\n default:\n this.matPosition = this.position;\n break;\n }\n }\n}\n","<div\n [matTooltip]=\"message\"\n [matTooltipDisabled]=\"disabled\"\n [matTooltipPosition]=\"matPosition\"\n [matTooltipClass]=\"applicationTheme\"\n aria-label=\"tooltip\"\n>\n <ng-content></ng-content>\n <ng-container *ngIf=\"templateRef\">\n <div [class]=\"'template-tooltip'\">\n <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TooltipComponent } from './tooltip.component';\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [TooltipComponent],\n imports: [MatTooltipModule, CommonModule],\n exports: [TooltipComponent],\n})\nexport class TooltipComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TagComponent } from './tag.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { TooltipComponentModule } from '../tooltip/tooltip.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from \"@angular/material/input\";\n\n@NgModule({\n declarations: [TagComponent],\n imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule],\n exports: [TagComponent],\n providers: [],\n})\nexport class TagComponentModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FloatLabelType } from '@angular/material/form-field';\nimport { OptionType } from './dropdown.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent implements OnInit, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-dropdown';\n\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() name: string;\n /**\n * Placeholder to be shown if no value has been selected.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() placeholder: string;\n\n /**\n * Unique id of the element.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() value?: string;\n\n /**\n * Whether the component is in an error state.\n *\n * @type {string[]}\n * @memberof DropdownComponent\n */\n @Input() errors?: string[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() disabled = false;\n\n /**\n * List of options.\n *\n * @type {OptionType}\n * @memberof DropdownComponent\n */\n @Input() valueList: OptionType[] = [];\n\n /**\n * Whether the user should be allowed to clear the values.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowClear = true;\n\n /**\n * This will allow the user to select multiple values at once.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowMultipleSelection? = false;\n\n /**\n * Whether the component is required.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() required = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof DropdownComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DropdownComponent\n */\n @HostBinding('attr.theme')\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() valueField = '';\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n this.errors = [];\n this.valueList = [];\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n floatLabel: FloatLabelType;\n classError: string;\n errorsLength: boolean;\n showCheck: boolean;\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.errorsLength = this.setErrorsLength();\n }\n\n clearValue(event: Event): void {\n event?.stopPropagation();\n this.value = '';\n this.onChange(this.value);\n }\n\n //Save select value\n onChangeOption(event: any) {\n this.value = event.value;\n this.errorsLength = this.setErrorsLength();\n this.onTouch();\n this.onChange(this.value);\n }\n\n //Set errors length for validation\n setErrorsLength(): boolean {\n if (!!this.errors) {\n return this.errors.length > 0 ? true : false;\n }\n return false;\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ng-container>\n <mat-form-field\n appearance=\"outline\"\n [attr.theme]=\"applicationTheme\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'without-label': !label }\"\n >\n <mat-label>{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <mat-select\n #matSelect\n [id]=\"id!\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [panelClass]=\"'ui-dropdown-list' + ' ' + applicationTheme\"\n [disabled]=\"disabled\"\n [multiple]=\"!!allowMultipleSelection\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (selectionChange)=\"onChangeOption($event)\"\n [attr.name]=\"name\">\n <div class=\"mat-option-section\" *ngFor=\"let section of valueList\">\n <span *ngIf=\"section.sectionTitle\" class=\"section-title\">{{ section.sectionTitle }}</span>\n <mat-option *ngIf=\"section\" #matOption [value]=\"valueField ? section[valueField] : textField && !valueField ? section : section.value\">\n {{ textField ? section[textField] : section.displayValue ?? section.value }}\n </mat-option>\n </div>\n </mat-select>\n <ui-button *ngIf=\"allowClear && !matSelect.empty\" variant=\"secondary\" [justIcon]=\"true\" class=\"clear\" [iconName]=\"applicationTheme === 'classic' ? 'Close' : 'Close-filled'\" [label]=\"('COMMON.CLEAR') | uiTranslate : language\" (click)=\"clearValue($event)\"></ui-button>\n <ui-icon class=\"chevron-icon\" *ngIf=\"!matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-filled'\"></ui-icon>\n <ui-icon class=\"chevron-icon\" *ngIf=\"matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_up' : 'Arrow-chevron-up-filled'\"></ui-icon>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"></ui-icon>{{ error }}\n </div>\n </ng-container>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { DropdownComponent } from './dropdown.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatSelectModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [DropdownComponent],\n})\nexport class DropdownComponentModule {}\n","import { Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { SpinnerSize } from './spinner.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent implements OnInit, OnChanges {\n /**\n * The size variant of the spinner. Can be 'small' or 'large'.\n * Defaults to 'large'.\n * @default 'large'\n * @type {SpinnerSize}\n * @memberof SpinnerComponent\n */\n @Input() size: SpinnerSize = 'large';\n\n /**\n * Set position fixed on page\n * Defaults to 'true'.\n * @default 'true'\n * @type {SpinnerSize}\n * @memberof SpinnerComponent\n */\n @Input() isLoader = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SpinnerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n classes: string;\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 ngOnChanges(): void {\n this.setSpinnerClasses();\n }\n\n ngOnInit(): void {\n this.setSpinnerClasses();\n }\n\n setSpinnerClasses(): void {\n this.classes = `${this.size === 'large' ? 'large' : 'small'} ${this.isLoader ? 'loader' : ''} ${this.applicationTheme}`;\n }\n}\n","<div class=\"spinner-container\" [ngClass]=\"classes\" [attr.theme]=\"applicationTheme\">\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\n </svg>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\nimport { NgClass } from '@angular/common';\n\n@NgModule({\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent],\n imports: [NgClass],\n})\nexport class SpinnerComponentModule {}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData } from './confirm-dialog.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class ConfirmDialogComponent {\n confirmMessage: string;\n confirmButtonText: string | undefined;\n cancelButtonText: string | undefined;\n title: string | undefined;\n lang = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ConfirmDialogData\n ) {\n this.confirmMessage = data.message;\n this.confirmButtonText = data.confirmButtonText;\n this.cancelButtonText = data.cancelButtonText;\n this.title = data.title;\n this.lang = data.language ?? LanguageService.defaultLanguage;\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n}\n","<ng-container>\n <ui-dialog\n [title]=\"title ?? (('COMMON.CONFIRM') | uiTranslate : lang)\"\n [primaryButtonLabel]=\"confirmButtonText ?? (('COMMON.YES') | uiTranslate : lang)\"\n [secondaryButtonLabel]=\"cancelButtonText ?? (('COMMON.CANCEL') | uiTranslate : lang)\"\n (primaryButtonClickEvent)=\"dialogRef.close(true)\"\n (secondaryButtonClickEvent)=\"dialogRef.close(false)\"\n primaryButtonType=\"primary\"\n secondaryButtonType=\"outlined\"\n [applicationTheme]=\"applicationTheme\"\n [showCloseButton]=\"false\"\n >\n <div class=\"message\">{{ confirmMessage }}</div>\n </ui-dialog>\n\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { DialogComponentModule } from '../dialog/dialog.component.module';\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: {} },\n { provide: MatDialogRef, useValue: {} },\n ],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, UiTranslatePipe]\n})\nexport class ConfirmDialogComponentModule {}\n","import { Directive, Injectable } from '@angular/core';\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MatDateFormats,\n NativeDateAdapter,\n} from '@angular/material/core';\nimport { formatDate } from '@angular/common';\n\n@Injectable()\nexport class CustomDateAdapter extends NativeDateAdapter {\n override format(date: Date): string {\n return formatDate(date, 'MM/yyyy', 'en-US');\n }\n}\n\nconst FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/YYYY',\n },\n display: {\n dateInput: 'MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Directive({\n selector: '[appNoDateFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDateAdapter,\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: FORMATS,\n },\n ],\n standalone: true,\n})\nexport class NoDateFormatDirective {}\n","/* eslint-disable no-underscore-dangle */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NgControl } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'ui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck {\n @HostBinding() class = 'ui-datepicker';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() placeholder? = '';\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() value?: string | Date;\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is date range\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() isRange: boolean;\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() hintMessage: string;\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof DatepickerComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof DatepickerComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Set full width DatepickerComponent\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Set min date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() minDate: Date | undefined;\n\n /**\n * Set max date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() maxDate: Date | undefined;\n\n /**\n * Show and pick date without day\n * @default false\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() monthPicker = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DatepickerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Prevent user input\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() preventUserInput = false;\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n /**\n * Event emitted when the value is change - when used outside of form\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Output() changed = new EventEmitter<Date | string>();\n\n range = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n errorsLength: boolean;\n protected translationContext = 'DATEPICKER.';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private cdr: ChangeDetectorRef,\n private sanitizer: DomSanitizer,\n @Optional() @Self() public ngControl: NgControl\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get hint(): string {\n if (this.hintMessage === undefined) {\n return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : this.monthPicker ? 'MM/YYYY' : 'MM/DD/YYYY';\n }\n\n return this.hintMessage;\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit() {\n document.body.setAttribute('theme', this.applicationTheme);\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(): void {\n if (this.isRange) {\n this.setRange();\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which which are not empty\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0 ? true : false;\n }\n return false;\n }\n\n onValueChange(value: Date | string) {\n this.writeValue(value);\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(value);\n this.changed.emit(value);\n }\n\n writeValue(value?: Date | string): void {\n this.value = value;\n if (this.isRange) {\n this.setRange();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n dateRangeChange(start: string, end: string) {\n this.onValueChange(this.getRange(start, end));\n }\n\n setMonthAndYear(normalizedMonthAndYear: any, datepicker: MatDatepicker<Date>) {\n const ctrlValue = typeof this.value === 'string' ? new Date(this.value) : this.value || new Date();\n\n ctrlValue.setMonth(normalizedMonthAndYear.getMonth());\n ctrlValue.setFullYear(normalizedMonthAndYear.getFullYear());\n\n datepicker.close();\n\n this.onValueChange(new Date(ctrlValue));\n }\n\n private setRange() {\n if (typeof this.value === 'string') {\n const [start, end] = this.value?.split('-');\n if (start) {\n this.range.controls.start.setValue(new Date(start));\n }\n if (end) {\n this.range.controls.end.setValue(new Date(end));\n }\n }\n\n if (!this.value) {\n this.range.controls.start.setValue(null);\n this.range.controls.end.setValue(null);\n }\n }\n\n private getRange(start: string, end: string): string {\n return `${start}-${end}`;\n }\n\n onInput(event: Event) {\n const target = event.target as EventTarget & { value: string };\n const [month, year] = target.value.split('/');\n const date = new Date().getDate();\n const fullDateString = `${month}/${date}/${year}`;\n const fullDate = new Date(fullDateString);\n this.onValueChange(fullDate);\n }\n}\n","<ng-container>\n <mat-form-field\n *ngIf=\"!monthPicker; else dateYearPicker\"\n #uiDatepicker\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n <ng-container *ngIf=\"!isRange\">\n <input *ngIf=\"!isRange\" matInput\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [readonly]=\"preventUserInput\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </ng-container>\n\n <ng-container *ngIf=\"isRange\">\n <mat-date-range-input *ngIf=\"isRange\" [formGroup]=\"range\" [rangePicker]=\"rangePicker\" [min]=\"minDate\" [max]=\"maxDate\" >\n <input matStartDate #dateRangeStart formControlName=\"start\" [placeholder]=\"(translationContext + 'START_DATE') | uiTranslate : language\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n <input matEndDate #dateRangeEnd formControlName=\"end\" [placeholder]=\"(translationContext + 'END_DATE') | uiTranslate : language\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n </ng-container>\n\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n\n <ng-template #dateYearPicker>\n <mat-form-field\n appNoDateFormat\n #uiDatepicker\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n\n <ng-container >\n <input matInput\n [id]=\"id!\"\n (blur)=\"onTouch()\"\n [placeholder]=\"placeholder!\"\n [matDatepicker]=\"dp\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [readonly]=\"preventUserInput\"\n (change)=\"onInput($event)\"\n (dateChange)=\"onValueChange($event.value)\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"dp\">\n <ui-icon *ngIf=\"applicationTheme !== 'classic'\" matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker panelClass=\"month-picker\" #dp startView=\"multi-year\" (monthSelected)=\"setMonthAndYear($event, dp)\"></mat-datepicker>\n </ng-container>\n\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n </mat-hint>\n\n </mat-form-field>\n </ng-template>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatepickerComponent } from './datepicker.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { NoDateFormatDirective } from './no-date-format.directive';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\n\n@NgModule({\n declarations: [DatepickerComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n UiTranslatePipe,\n NoDateFormatDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n ],\n exports: [DatepickerComponent],\n})\nexport class DatepickerComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'halfStar',\n})\nexport class HalfStarPipe implements PipeTransform {\n /**\n * @description Used to indicate whether display half-star icon.\n * Returns true if the rounded value of the current element\n * is equal to it's index, and value is not integer (e.g. index = 4, value = 3.5),\n * @param index the index of the current element\n * @param value the value of the current element\n */\n transform(index: number, value: number): boolean {\n return Math.ceil(value) === index && !Number.isInteger(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\nexport type RatingComponentTheme = 'stars' | 'block';\n\n@Component({\n selector: 'ui-rating',\n templateUrl: './rating.component.html',\n styleUrls: ['./rating.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RatingComponent {\n private readonly MIN_LENGTH = 0;\n private readonly DEFAULT_LENGTH = 5;\n protected items: number[] = [];\n protected hoverIndex: number;\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 * The value representing the rating.\n * @type {number}\n * @memberof RatingComponent\n */\n @Input() value: number;\n\n /**\n * The theme of the rating component. Defaults \"block\".\n * @type {RatingComponentTheme}\n * @memberof RatingComponent\n */\n @Input() theme: RatingComponentTheme = 'block';\n\n /**\n * A flag indicating whether the rating component is disabled.\n * @type {boolean}\n * @memberof RatingComponent\n */\n @Input() disabled = false;\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof RatingComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof RatingComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * The width of the rating bar.\n * @type {number}\n * @memberof RatingComponent\n */\n @Input() barWidth = 35;\n\n @Input() set length(length: number) {\n this.items = Array(Math.max(length, this.MIN_LENGTH))\n .fill(0)\n .map((x, i) => i);\n }\n\n @Output() valueChange = new EventEmitter<number>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n this.length = this.DEFAULT_LENGTH;\n\n }\n\n protected select(index: number): void {\n this.value = this.value === index + 1 ? 0 : index + 1;\n this.valueChange.emit(this.value);\n }\n\n protected onHover(index: number): void {\n this.hoverIndex = index + 1;\n }\n}\n","<div class=\"rating\"\n (mouseleave)=\"onHover(-1)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n>\n <ng-container *ngIf=\"theme === 'block';else stars\">\n <div class=\"rating-item\" [attr.theme]=\"applicationTheme\" *ngFor=\"let item of items\" (click)=\"select(item)\" (mouseenter)=\"onHover(item)\"\n [ngClass]=\"{ 'rating-item-selected': item < value, 'rating-item-hover': item < hoverIndex }\"\n [ngStyle]=\"{'width.px': barWidth}\">\n </div>\n </ng-container>\n\n <ng-template #stars>\n <div class=\"star-container\" [attr.theme]=\"applicationTheme\">\n <div\n #star\n class=\"star\"\n [tabIndex]=\"0\"\n (mouseenter)=\"onHover(item)\"\n (mouseleave)=\"onHover(-1)\"\n [ngClass]=\"{\n filled: value > i,\n hover: item < hoverIndex && (value ? item >= value : true),\n disabled,\n 'filled-half': i + 1 | halfStar : value\n }\"\n *ngFor=\"let item of items; index as i\"\n (click)=\"select(item); star.blur()\"\n ></div>\n </div>\n </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RatingComponent } from './rating.component';\nimport { HalfStarPipe } from './half-star.pipe';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [RatingComponent, HalfStarPipe],\n imports: [CommonModule, MatInputModule],\n exports: [RatingComponent],\n})\nexport class RatingComponentModule {}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-scale',\n templateUrl: './scale.component.html',\n styleUrls: ['./scale.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScaleComponent {\n private readonly MIN_LENGTH = 1;\n private readonly DEFAULT_LENGTH = 5;\n protected items: number[] = [];\n\n /**\n * The value representing the selected item of the scale.\n * @type {number}\n * @memberof ScaleComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * The max number of items in the scale.\n * @type {number}\n * @memberof ScaleComponent\n */\n @Input() set length(length: number) {\n this.items = Array(Math.max(length, this.MIN_LENGTH))\n .fill(0)\n .map((_, i) => i);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ScaleComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n this.length = this.DEFAULT_LENGTH;\n }\n\n protected select(index: number): void {\n this.selectedIndex = index;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n}\n","<div class=\"scale\"\n [ngClass]=\"{ 'scale-classic': applicationTheme === 'classic' }\">\n <div class=\"scale-item\" *ngFor=\"let item of items\" (click)=\"select(item)\"\n [ngClass]=\"{ 'scale-item-selected': item === selectedIndex }\">\n {{ item + 1 }}\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScaleComponent } from './scale.component';\n\n\n@NgModule({\n declarations: [ScaleComponent],\n imports: [CommonModule],\n exports: [ScaleComponent]\n})\nexport class ScaleComponentModule {\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, OnInit, Output } from '@angular/core';\nimport { debounceTime, startWith, Subject } from 'rxjs';\n\n/**\n * Checks if element ellipsis\n */\n@Directive({\n selector: '[uiEllipseText]',\n standalone: true,\n})\nexport class EllipseTextDirective implements OnInit {\n checkEllipsis$ = new Subject<void>();\n @Output() onChangeTextState = new EventEmitter<boolean>();\n @HostListener('window:resize')\n resize(): void {\n this.checkEllipsis$.next();\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n this.checkEllipsis$.pipe(startWith(null), debounceTime(100)).subscribe(() => {\n const textElement = this.el.nativeElement as HTMLElement;\n this.onChangeTextState.emit(textElement.clientWidth < textElement.scrollWidth);\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RegisterFn } from './toggle.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from \"../../utils/localization/language.service\";\n\n@Component({\n selector: 'ui-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleComponent implements ControlValueAccessor, OnChanges, OnInit {\n /**\n * The `selected` property determines the current state of the toggle switch.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() selected = false;\n\n /**\n * The `disabled` property determines whether the toggle switch is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() disabled = false;\n\n /**\n * Toggle label\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() label = '';\n\n /**\n * Message\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() message = '';\n\n /**\n * Max width of the toggle container\n *\n * @type {number}\n * @memberof ToggleComponent\n */\n @HostBinding('style.--max-width')\n @Input()\n maxWidth: number | undefined;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ToggleComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The `toggle` event is triggered when the state of the toggle switch changes. It returns the new state.\n *\n * @type {event}\n * @memberof ToggleComponent\n */\n @Output() toggle = new EventEmitter<boolean>();\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof ToggleComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * disable/enable click on toggle\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() preventClick = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof ToggleComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The loading state\n *\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() loading = false;\n\n protected showLabelTooltip = false\n protected classes: string;\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 ngOnChanges(): void {\n this.setClasses();\n }\n\n ngOnInit(): void {\n this.setClasses();\n }\n\n onToggle(): void {\n if (this.preventClick) {\n this.toggle.emit(this.selected);\n }\n if (!this.disabled && !this.preventClick) {\n this.selected = !this.selected;\n this.toggle.emit(this.selected);\n this.onChange(this.selected);\n }\n }\n\n writeValue(state: boolean): void {\n if (state) {\n this.selected = state;\n }\n }\n\n registerOnChange(fn: RegisterFn): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: RegisterFn): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n changeTextState(state: boolean): void {\n this.showLabelTooltip = state;\n }\n\n private onChange: RegisterFn = () => {\n };\n private onTouched: RegisterFn = () => {\n };\n\n private setClasses(): void {\n this.classes = `${this.disabled ? 'disabled' : ''} ${this.applicationTheme} ${this.loading ? 'loading' : ''} ${!this.label ? 'small-toggle' : ''}`;\n }\n}\n","<div class=\"toggle\" [ngClass]=\"classes\">\n <div\n [style.--max-width]=\"maxWidth + 'px'\"\n [tabIndex]=\"0\"\n class=\"toggle-container\"\n [ngClass]=\"{ 'active': selected }\"\n (click)=\"onToggle()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <div\n class=\"label\"\n uiEllipseText\n [matTooltipShowDelay]=\"800\"\n [matTooltip]=\"showLabelTooltip ? label : ''\"\n (onChangeTextState)=\"changeTextState($event)\"\n >\n {{ label }}\n </div>\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\n </div>\n\n <ng-template #loadingTemplate>\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\n </ng-template>\n </div>\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToggleComponent } from './toggle.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\nimport { MatInputModule } from '@angular/material/input';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { SpinnerComponentModule } from \"../spinner/spinner.module\";\n\n@NgModule({\n declarations: [ToggleComponent],\n imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule],\n exports: [ToggleComponent],\n})\nexport class ToggleComponentModule {}\n","import { inject, InjectionToken } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs';\nimport { ScreenBreakpoints } from '../models/screen-breakpoints.model';\n\nexport const IS_MOBILE_TOKEN = new InjectionToken('Is mobile', {\n factory: () => {\n const breakpointObserver = inject(BreakpointObserver);\n return breakpointObserver.observe(`(max-width: ${ScreenBreakpoints.MOBILE}px)`).pipe(map(v => v.matches));\n },\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { HtmlDescription, StepperPosition } from '../stepper/stepper.model';\n\n@Component({\n selector: 'ui-step',\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepComponent {\n /**\n * Input property for the label of the step.\n *\n * @memberof StepComponent\n */\n @Input() label: string;\n\n /**\n * Input property indicating whether the step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() isVisited: boolean;\n\n /**\n * Input property indicating whether the form has been submitted.\n *\n * @memberof StepComponent\n */\n @Input() submitted: boolean;\n\n /**\n * Input property for the icon associated with the step.\n *\n * @memberof StepComponent\n */\n @Input() icon: IconName | undefined = '';\n\n /**\n * Input property for the index of the step.\n *\n * @memberof StepComponent\n */\n @Input() index: number;\n\n /**\n * Input property indicating whether the step is currently selected.\n *\n * @memberof StepComponent\n */\n @Input() selected: boolean;\n\n /**\n * Input property indicating whether the step is the last step in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() isLast: boolean;\n\n /**\n * Input property indicating the selected index in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * Input property indicating whether the step is disabled.\n *\n * @memberof StepComponent\n */\n @Input() disabled = false;\n\n /**\n * Input property indicating whether the previous step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() prevStepIsVisited: boolean | undefined = false;\n\n /**\n * Input property indicating whether the component is in mobile mode.\n *\n * @memberof StepComponent\n */\n @Input() mobileMode = false;\n\n /**\n * Input property indicating whether the final icon should be displayed.\n *\n * @memberof StepComponent\n */\n @Input() finalIcon = false;\n\n /**\n * Input property indicating to display icon when step is selected.\n *\n * @memberof StepComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepComponent\n */\n @Input() position: StepperPosition;\n\n /**\n *\n * Step description\n *\n * @type {HtmlDescription[]}\n * @memberof StepComponent\n */\n @Input() htmlDescription: HtmlDescription[] = [];\n\n /**\n *\n * Sets bold font weight for label\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() boldLabel = false;\n\n /**\n *\n * Template for the step description\n *\n * @type {TemplateRef}\n * @memberof StepComponent\n */\n @Input() descriptionTpl?: TemplateRef<any>;\n\n /**\n *\n * Tooltip for the step label\n *\n * @type {string}\n * @memberof StepComponent\n */\n @Input() labelTooltip?: string;\n\n /**\n *\n * Always show step icon instead of number\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() alwaysShowIcon = false;\n\n /**\n *\n * Context for the step template\n *\n * @type {any}\n * @memberof StepComponent\n */\n @Input() context: any;\n\n /**\n * Event emitted when the step was clicked.\n * @type {number}\n * @memberof StepComponent\n */\n @Output() stepSelected = new EventEmitter<number>();\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 get hasLastStepDefaultIcon(): boolean {\n return !this.showIconWhenSelected || (this.showIconWhenSelected && !this.selected);\n }\n\n protected onStepSelected(index: number): void {\n this.stepSelected.emit(index);\n }\n}\n","<div\n *ngIf=\"!mobileMode; else mobile\"\n class=\"step-container\"\n [tabIndex]=\"0\"\n [ngClass]=\"{\n 'visited-next': isVisited && index > selectedIndex,\n 'visited-prev': isVisited && index < selectedIndex,\n 'active': selected,\n 'last-step': finalIcon && hasLastStepDefaultIcon && !alwaysShowIcon,\n 'disabled': disabled,\n 'vertical': position === 'vertical'\n }\"\n [attr.theme]=\"applicationTheme\"\n (click)=\"onStepSelected(index)\"\n>\n <div class=\"step-icon\">\n <div class=\"line\" *ngIf=\"index\" [ngClass]=\"{ visited: prevStepIsVisited }\"></div>\n <div class=\"icon-wrapper\" *ngIf=\"!finalIcon; else lastStep\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isVisited && !selected && !alwaysShowIcon\">\n <ui-icon [size]=\"'24'\" [name]=\"'Check'\"\n [color]=\"isVisited && index < selectedIndex ? 'white' : applicationTheme === 'classic' ? 'petrol' : 'rebrand-black'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"(selected && !!icon) || alwaysShowIcon\">\n <ui-icon [size]=\"'24'\" [name]=\"icon!\" [color]=\"isLast && !selected ? 'rebrand-black' : 'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ index + 1 }}\n </ng-container>\n </ng-container>\n </div>\n\n <ng-template #lastStep>\n <img\n *ngIf=\"hasLastStepDefaultIcon && !alwaysShowIcon; else stepIcon\"\n [alt]=\"'step-finish-image'\"\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\n >\n\n <ng-template #stepIcon>\n <div class=\"icon-wrapper\">\n <ui-icon *ngIf=\"icon || (icon && alwaysShowIcon); else stepIndex\" [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n <ng-template #stepIndex>\n {{ index + 1 }}\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n </div>\n\n <div class=\"steps-label\">\n <div class=\"step-label\" [ngClass]=\"{'step-bold-label': boldLabel}\" *ngIf=\"label\" [matTooltip]=\"labelTooltip ?? ''\">\n {{ label }}\n </div>\n\n <div class=\"step-description-container\">\n <div *ngFor=\"let description of htmlDescription\" class=\"step-description\">\n <div>{{description.text}}</div>\n <ui-icon *ngIf=\"description.iconName\" [name]=\"description.iconName\" [size]=\"'24'\" [matTooltip]=\"description.iconTooltip ?? ''\" ></ui-icon>\n </div>\n </div>\n\n <ng-container *ngIf=\"descriptionTpl\" [ngTemplateOutlet]=\"descriptionTpl\" [ngTemplateOutletContext]=\"{ $implicit: context, label, isVisited, submitted, index, selected, isLast, selectedIndex, disabled, prevStepIsVisited, mobileMode, finalIcon, showIconWhenSelected, position }\"></ng-container>\n </div>\n\n</div>\n\n<ng-template #mobile>\n <div class=\"mobile-step-container\"\n [ngClass]=\"{ 'active': selected, 'disabled': disabled, 'visited': isVisited }\"\n (click)=\"onStepSelected(index)\"\n [attr.theme]=\"applicationTheme\"\n >\n <div class=\"step\">\n <ng-container *ngIf=\"!finalIcon; else lastStep\">\n <div [ngSwitch]=\"true\" class=\"icon\">\n <ng-container *ngSwitchCase=\"isVisited && !selected\">\n <ui-icon [size]=\"'16'\" [name]=\"'Check'\" [color]=\"'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"selected && !!icon\">\n <ui-icon [size]=\"'16'\" [name]=\"icon!\" [color]=\"'white'\"></ui-icon>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ index + 1 }}\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #lastStep>\n <img *ngIf=\"hasLastStepDefaultIcon; else stepIcon\"\n [alt]=\"'step-finish-image'\"\n [width]=\"24\"\n [height]=\"24\"\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\n >\n\n <ng-template #stepIcon>\n <div class=\"icon\">\n <ui-icon *ngIf=\"icon; else stepIndex\" [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n <ng-template #stepIndex>\n {{ index + 1 }}\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n <span class=\"label\">{{ label }}</span>\n </div>\n </div>\n</ng-template>\n","export type RadialProgressSize = 'large' | 'small';\n\nexport enum RadialProgressSizeValue {\n LARGE = 64,\n SMALL = 40,\n}\n\nexport enum RadialProgressSizeEnum {\n LARGE = 'large',\n SMALL = 'small',\n}\n\nexport type RadialProgressVariant = 'number' | 'icon-button';\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output, SimpleChanges\n} from '@angular/core';\nimport {\n RadialProgressSize,\n RadialProgressSizeEnum,\n RadialProgressSizeValue,\n RadialProgressVariant\n} from './radial-progress.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-radial-progress',\n templateUrl: './radial-progress.component.html',\n styleUrls: ['./radial-progress.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadialProgressComponent {\n /**\n * The size of the component. Defaults to 'small'.\n * @type {RadialProgressSize}\n * @memberof RadialProgressComponent\n */\n @Input() size: RadialProgressSize = RadialProgressSizeEnum.SMALL;\n /**\n * The current value of the progress. Defaults to 0.\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() value = 0;\n /**\n * The value of the total progress. Used to set the cap and used for percentage calculations. Defaults to 0.\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() total = 0;\n\n /**\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() variant: RadialProgressVariant = 'number';\n\n /**\n * Icon for icon button\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * The tooltip that is displayed on hover. Required for icon-button\n * @type {number}\n * @memberof RadialProgressComponent\n */\n @Input() buttonTooltip = '';\n\n /**\n * Color of the progress bar.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof RadialProgressComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() buttonClicked = new EventEmitter<Event>();\n\n protected radialProgressSize = RadialProgressSizeEnum;\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 ngOnChanges(changes: SimpleChanges): void {\n if (!changes['companyColor']) {\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\n }\n }\n\n protected get progressSize(): number {\n return this.size === RadialProgressSizeEnum.SMALL ? RadialProgressSizeValue.SMALL : RadialProgressSizeValue.LARGE;\n }\n\n protected get percentage(): number {\n return Math.round(this.total ? (this.value * 100) / this.total : 0);\n }\n\n protected onButtonClick(ev: Event): void {\n this.buttonClicked.emit(ev);\n }\n}\n","<div\n class=\"radial-progress-container\"\n [attr.theme]=\"applicationTheme\"\n [style.width]=\"progressSize + 'px'\"\n [style.height]=\"progressSize + 'px'\"\n>\n <div class=\"background\"></div>\n\n <mat-progress-spinner [strokeWidth]=\"8\" [diameter]=\"progressSize\" [value]=\"percentage\"></mat-progress-spinner>\n\n <div class=\"inner-container\">\n <ng-container *ngIf=\"variant === 'icon-button' && size !== 'small'; else number\">\n <ui-button\n [tooltip]=\"buttonTooltip\"\n [iconName]=\"icon\"\n [variant]=\"'icon-button'\"\n (click)=\"onButtonClick($event)\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-button>\n </ng-container>\n\n <ng-template #number>\n <div *ngIf=\"size === radialProgressSize.LARGE\">{{ percentage }}%</div>\n </ng-template>\n </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input, OnChanges } from '@angular/core';\nimport { StepperPosition } from \"../components/stepper/stepper.model\";\n\nconst MARGINS = 36;\nconst PADDING = 16;\n\n/**\n * Directive is used to draw lines between steps\n */\n@Directive({\n selector: '[stepLineElement]',\n})\nexport class StepLineElementDirective implements OnChanges {\n @Input() stepLineElement: HTMLElement;\n @Input() position: StepperPosition = 'horizontal';\n\n @HostListener('window:resize.out-zone', ['$event'])\n resize(): void {\n this.setSize();\n }\n\n constructor(private el: ElementRef) {}\n\n setSize(): void {\n if (this.position === 'horizontal') {\n this.el.nativeElement.style.width = `calc(100% + ${this.stepLineElement.getBoundingClientRect().width / 2 - PADDING}px)`;\n this.el.nativeElement.style.height = `0`;\n this.el.nativeElement.style.top = '45px';\n this.el.nativeElement.style.left = `-${this.stepLineElement.getBoundingClientRect().width / 2 - MARGINS}px`;\n } else {\n this.el.nativeElement.style.height = `calc(100% + ${this.stepLineElement.getBoundingClientRect().height / 2 - PADDING}px)`;\n this.el.nativeElement.style.width = '0';\n this.el.nativeElement.style.top = `-${this.stepLineElement.getBoundingClientRect().height / 2 - 30}px`;\n this.el.nativeElement.style.left = '34px';\n }\n }\n\n ngOnChanges(): void {\n queueMicrotask(() => {\n this.setSize();\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport { Step, StepperPosition } from './stepper.model';\nimport { Observable } from 'rxjs';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepperComponent {\n /**\n *\n * Auto selects first step as visited\n * Defaults to true\n *\n * @memberof StepperComponent\n */\n @Input('firstStepAutoSelect') set setFirstStepAutoSelect(value: boolean) {\n this.firstStepAutoSelect = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({...step, isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited}));\n }\n };\n /**\n * Input property to set the steps for the stepper.\n * The first step will be marked as visited automatically.\n *\n * @memberof StepperComponent\n */\n @Input() set steps(itemSteps: Step[]) {\n this.itemSteps = itemSteps;\n if (itemSteps.length && this.firstStepAutoSelect) {\n const [first, ...other] = itemSteps;\n first.isVisited = true;\n this.itemSteps = [first, ...other];\n }\n\n }\n\n /**\n * Input property to set the selected index of the stepper.\n * Default value is 0.\n *\n * @memberof StepperComponent\n */\n @Input('selectedIndex') set setSelectedIndex(value: number) {\n this.selectedIndex = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({...step, isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited}));\n }\n }\n\n /**\n * Input property indicating whether the final icon should be displayed.\n * Default value is false.\n *\n * @memberof StepperComponent\n */\n @Input() lastStepFinalIcon = false;\n\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof StepperComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepperComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepperComponent\n */\n @Input() position: StepperPosition = 'horizontal';\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof StepperComponent\n */\n @Input() ariaRequired = false;\n\n @Output() selectionChange = new EventEmitter<{ selectedIndex: number; previousIndex: number; step: Step }>();\n\n private isOpened = false;\n private firstStepAutoSelect = true;\n protected itemSteps: Step[] = [];\n protected progressValue = 0;\n protected translationContext = 'STEPPER.';\n protected selectedIndex = 0;\n\n get isOpen(): boolean {\n return this.isOpened;\n }\n\n set isOpen(value: boolean) {\n this.isOpened = value;\n }\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected onSelect(changedIndex: number, step: Step): void {\n if (!step.isVisited && this.selectedIndex !== changedIndex) {\n step.isVisited = true;\n }\n this.selectionChange.emit({ selectedIndex: changedIndex, previousIndex: this.selectedIndex, step });\n\n this.selectedIndex = changedIndex;\n this.onCloseStepList();\n }\n\n protected showStepsToggle(): void {\n this.isOpen = !this.isOpen;\n }\n\n protected onCloseStepList(): void {\n this.isOpen = false;\n }\n}\n","<ng-container>\n <div class=\"stepper-wrapper\" [ngClass]=\"position\" [attr.theme]=\"applicationTheme\" *ngIf=\"(position === 'horizontal' && !(isMobile$ | async)) || (position === 'vertical'); else mobile\">\n <ng-container *ngFor=\"let step of itemSteps; index as i, last as isLast\">\n <div class=\"step\" #stepElement>\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [prevStepIsVisited]=\"itemSteps[i - 1]?.isVisited && step.isVisited\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n [htmlDescription]=\"step.htmlDescription ?? []\"\n [boldLabel]=\"!!step.boldLabel\"\n [position]=\"position\"\n [descriptionTpl]=\"step.descriptionTpl\"\n [labelTooltip]=\"step.labelTooltip\"\n [alwaysShowIcon]=\"!!step.alwaysShowIcon\"\n [context]=\"step.context\"\n ></ui-step>\n </div>\n <div *ngIf=\"!isLast\" class=\"separator-line\" [ngClass]=\"{ visited: step.isVisited && !!this.itemSteps[i + 1]?.isVisited }\">\n <div [stepLineElement]=\"stepElement\" [position]=\"position\" class=\"line\"></div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #mobile>\n <div class=\"mobile-stepper-wrapper\">\n <div class=\"stepper\">\n <div class=\"progress-step\">\n <ui-radial-progress [applicationTheme]=\"applicationTheme\" [value]=\"selectedIndex + 1\" [total]=\"itemSteps.length\"></ui-radial-progress>\n </div>\n\n <div class=\"step-info\">\n <div class=\"current-step\">\n <span>{{ selectedIndex + 1 }}/{{ itemSteps.length }} </span>\n <span>{{ itemSteps[selectedIndex].label }}</span>\n </div>\n <div class=\"next-step\">\n <span *ngIf=\"itemSteps.length !== selectedIndex + 1 else finalStep\">{{ (('COMMON.NEXT') | uiTranslate : language) + ':'}} {{ itemSteps[selectedIndex + 1].label }}</span>\n <ng-template #finalStep>\n <span>{{ (translationContext + 'FINAL_STEP') | uiTranslate : language }}</span>\n </ng-template>\n </div>\n </div>\n\n <div class=\"open-steps\" (click)=\"showStepsToggle()\" [ngClass]=\"{ opened: isOpen }\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [size]=\"'24'\" [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"></ui-icon>\n </div>\n </div>\n\n <div *ngIf=\"isOpen\">\n <div class=\"step-list\">\n <div class=\"step\" *ngFor=\"let step of itemSteps; index as i, last as isLast\">\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? ( i > selectedIndex + 1 && !step.isVisited)\"\n [mobileMode]=\"true\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n ></ui-step>\n </div>\n </div>\n <div class=\"overlay\" (click)=\"onCloseStepList()\"></div>\n </div>\n </div>\n </ng-template>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepComponent } from './step.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [StepComponent],\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\n exports: [StepComponent],\n})\nexport class StepComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadialProgressComponent } from './radial-progress.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ButtonComponentModule } from '../button/button.component.module';\n\n@NgModule({\n declarations: [RadialProgressComponent],\n exports: [RadialProgressComponent],\n imports: [CommonModule, MatProgressSpinnerModule, ButtonComponentModule],\n})\nexport class RadialProgressComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { StepComponentModule } from '../step/step.component.module';\nimport { StepLineElementDirective } from '../../directives/step-line-element.directive';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RadialProgressComponentModule } from '../radial-progress/radial-progress.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [StepperComponent, StepLineElementDirective],\n imports: [\n CommonModule,\n IconComponentModule,\n StepComponentModule,\n MatProgressSpinnerModule,\n RadialProgressComponentModule,\n UiTranslatePipe,\n MatInputModule,\n ],\n exports: [StepperComponent],\n})\nexport class StepperComponentModule {}\n","export class AutocompleteUtils {\n static transformDisplayValue(value: any, textField: string): any {\n return AutocompleteUtils.isPrimitive(value) ? value : value?.[textField];\n }\n\n static filterItems(items: any, inputValue: string, textField?: string): any {\n if (!AutocompleteUtils.isPrimitive(items) && textField) {\n return items.filter((item: any) => item[textField].toLowerCase().includes(inputValue.toLowerCase()));\n } else {\n return items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase()));\n }\n }\n\n static isPrimitive(value: any): boolean {\n if (Array.isArray(value)) {\n return value.some(item => typeof item !== 'object');\n } else {\n return typeof value !== 'object';\n }\n }\n\n static isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n /// NEW\n static throwInvalidSetupError(): void {\n throw new Error(\n `AutocompleteComponent textField/valueField properties are not provided!\\n\n Items list that has non primitive values requires textField & valueField to be passed.`\n );\n }\n\n static excludeSuggestions(items: any[], excludeItems: any[], valueField?: string): any[] {\n if (AutocompleteUtils.isPrimitive(items)) {\n return items?.filter(item => !excludeItems.find(excludeItem => excludeItem === item));\n } else {\n return valueField\n ? items?.filter(item => !excludeItems.find(excludeItem => excludeItem[valueField] === item[valueField]))\n : [];\n }\n }\n\n static shouldBeObject(value: any, textField: string, valueField: string): boolean {\n return !!valueField && !!textField && typeof value !== 'object';\n }\n\n static createValueItem(value: any, textField: string, valueField: string): any {\n return AutocompleteUtils.shouldBeObject(value, textField, valueField)\n ? { [textField]: value, [valueField]: value }\n : value;\n }\n\n static findDuplicate(value: any, selectedValue: any, lookupKey?: string): any {\n if (AutocompleteUtils.isArray(value)) {\n return value.find((v: any) => {\n if (!AutocompleteUtils.isPrimitive(v) && lookupKey) {\n return v[lookupKey] === selectedValue[lookupKey];\n }\n return v === selectedValue;\n });\n } else {\n return value === selectedValue;\n }\n }\n\n static countMatchingWords(words: string[], query: string): number {\n const lowerCaseQuery = query.toLowerCase();\n const matchingWords = words.filter(word => word.toLowerCase().includes(lowerCaseQuery));\n return matchingWords.length;\n }\n}\n","export type AutocompleteType = 'single' | 'multi' | 'large';\n\nexport enum Autocomplete {\n SINGLE = 'single',\n MULTI = 'multi',\n LARGE = 'large',\n}\n\nexport enum Padding {\n AUTOCOMPLETE_CONTAINER = 40,\n DROPDOWN_CONTAINER = 60,\n}\n\nexport const AMOUNT_TAG_WIDTH = 33;\n\nexport enum Timeout {\n VIEW_INITIALIZED_AFTER_ACTION = 150,\n VIEW_INITIALIZED_COMPONENT_LOAD = 600,\n}\n\nexport enum DropdownVariation {\n AUTOCOMPLETE = 'autocomplete',\n DROPDOWN = 'dropdown',\n}\n","import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\n\n/**\n * the SelectTextDirective provides a dynamic way to highlight or style specific text within an element.\n */\n@Directive({\n selector: '[selectText]',\n})\nexport class SelectTextDirective implements OnChanges {\n @Input() selectText: string | null;\n\n constructor(private el: ElementRef) {}\n\n /**\n * this method utilizes setTimeout to defer the execution until the next tick of the event loop.\n * The text content of the element is modified by wrapping occurrences of the specified selectText with a <span> element,\n * applying a bold font-weight style.\n */\n private setTextColor(): void {\n const textElement = this.el.nativeElement as HTMLElement;\n setTimeout(() => {\n const { textContent } = textElement;\n if (this.selectText && textContent) {\n textElement.innerHTML = textContent.replace(\n new RegExp(this.selectText, 'gmi'),\n match => `<span style=\"font-weight: bold\" >${match}</span>`\n );\n } else if (textElement.textContent) {\n textElement.textContent = textContent;\n }\n }, 0);\n }\n\n ngOnChanges(): void {\n this.setTextColor();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\n\n/**\n * the TransformItemPipe is designed to selectively extract and return values from objects based on a specified field,\n * providing a way to transform and display data a template.\n */\n@Pipe({\n name: 'transformItem',\n})\nexport class TransformItemPipe implements PipeTransform {\n transform(value: any, field: string): any {\n if (AutocompleteUtils.isPrimitive(value)) {\n return value;\n } else if (!AutocompleteUtils.isPrimitive(value) && field && (value[field] || value[0][field])) {\n return value[field] || value[0][field];\n } else {\n AutocompleteUtils.throwInvalidSetupError();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * The purpose of this pipe is to determine if the value is present in the values array.\n * If values is an array, the method uses the includes method to check for inclusion.\n * If values is not an array, it checks for strict equality between value and values.\n */\n@Pipe({\n name: 'includes',\n})\nexport class IncludesPipe implements PipeTransform {\n transform(value: any, values: any, valueField?: string): boolean {\n return Array.isArray(values)\n ? !!values?.find(v => (valueField ? v?.[valueField] === value?.[valueField] : value === v))\n : valueField\n ? value?.[valueField] === values?.[valueField]\n : value === values;\n }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges, OnDestroy,\n Optional,\n Output,\n PLATFORM_ID,\n Renderer2,\n Self,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { map, ReplaySubject, startWith } from 'rxjs';\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\nimport {\n AMOUNT_TAG_WIDTH,\n Autocomplete,\n AutocompleteType,\n DropdownVariation,\n Padding,\n Timeout\n} from './autocomplete.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { isPlatformBrowser } from '@angular/common';\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n\n@Component({\n selector: 'ui-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class AutocompleteComponent implements ControlValueAccessor, OnChanges, AfterViewInit, DoCheck, OnDestroy {\n /**\n * @property itemsList\n * @description The list of items to display in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() itemsList: any[] = [];\n\n /**\n * @property suggestionsList\n * @description The list of suggestions to display in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() suggestionsList: any[] = [];\n\n /**\n * @property disabled\n * @description If `true`, the autocomplete is disabled.\n * @memberof AutocompleteComponent\n */\n @Input() disabled = false;\n\n /**\n * @property allowAdd\n * @description If `true`, allows adding new values to the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() allowAdd = true;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() valueField = '';\n\n /**\n * @property label\n * @description The label for the autocomplete input.\n * @memberof AutocompleteComponent\n */\n @Input() label = '';\n\n /**\n * @property value\n * @description The selected value(s) in the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() set itemValue(v: any) {\n this.value = AutocompleteUtils.isArray(v) ? v : v ? [v] : [];\n }\n\n /**\n * @property type\n * @description The type of the autocomplete ('single', 'multi', etc.).\n * @memberof AutocompleteComponent\n */\n @Input() type: AutocompleteType = 'multi';\n\n /**\n * @property minCharactersSearch\n * @description The minimum characters to trigger search.\n * @memberof AutocompleteComponent\n */\n @Input() minCharactersSearch = 3;\n\n /**\n * @property variant\n * @description The variant of Autocomplete\n * @memberof AutocompleteComponent\n */\n @Input({ required: true }) variant = DropdownVariation.AUTOCOMPLETE;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof AutocompleteComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Return full object if true\n * @property valuePrimitive\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() valuePrimitive = false;\n\n /**\n * Indicator of the autocomplete width\n * @property fullWidth\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @HostBinding('class.full-width')\n @Input() fullWidth = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof AutocompleteComponent\n */\n @HostBinding('attr.theme')\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Autocomplete is required or not\n *\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input() required: boolean;\n\n /**\n * Input field errors\n *\n * @type {string[]}\n * @memberof AutocompleteComponent\n */\n @Input() set errors(errors: string[]) {\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\n }\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof AutocompleteComponent\n */\n @Input() companyColor: string | null = '#FFF2FC';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof AutocompleteComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof AutocompleteComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Sets dropdown list to virtual scroll mode\n *\n * @type {boolean}\n * @memberof AutocompleteComponent\n */\n @Input({ transform: booleanAttribute }) virtualScroll = false;\n\n /**\n * @property compareWith\n * @description Custom comparison logic for the autocomplete.\n * @memberof AutocompleteComponent\n */\n @Input() compareWith: (a: any, b: any) => boolean;\n\n /**\n * @property dropdownPanelClass\n * @description Sets class on autocomplete dropdown\n * @memberof AutocompleteComponent\n */\n @Input() dropdownPanelClass = '';\n\n /**\n * @property closeOnScroll\n * @description Defines if dropdown should be closed on page scroll\n * @memberof AutocompleteComponent\n */\n @Input() closeOnScroll = false;\n\n @Output() selectionChange = new EventEmitter<any>();\n @Output() searchTextChange = new EventEmitter<string>();\n\n @ViewChild('formField') formFieldElement: ElementRef<HTMLElement>;\n @ViewChild('tagContainer') tagContainer: ElementRef<HTMLElement>;\n @ViewChild('trigger') autocomplete: MatAutocompleteTrigger;\n @ViewChild(CdkVirtualScrollViewport, { static: false }) cdkVirtualScrollViewPort: CdkVirtualScrollViewport;\n @ViewChild('autocomplete') matAutocomplete: MatAutocomplete;\n protected safeErrors: SafeHtml[] = [];\n protected value: any;\n protected inputValue: any = '';\n protected isInputFocus = false;\n protected autocompleteType = Autocomplete;\n protected isOverLapping = false;\n protected isOverlapChecking = true;\n protected overlapIndex = 0;\n protected inputOpacity = 1;\n protected inputValueSearch$ = new ReplaySubject<string>(1);\n protected userInput$ = new ReplaySubject<string>(1);\n protected filteredItemsList$ = this.inputValueSearch$.pipe(\n startWith(''),\n map(inputValue =>\n inputValue.length ? AutocompleteUtils.filterItems(this.itemsList, inputValue, this.textField) : null\n )\n );\n protected filteredSuggestionList$ = this.inputValueSearch$.pipe(\n map(inputValue =>\n inputValue.length ? AutocompleteUtils.filterItems(this.suggestionsList, inputValue, this.textField) : null\n )\n );\n\n scrollEvent = (event: any): void => {\n const isNotAutocompleteScroll =\n !event.target?.id?.includes('mat-autocomplete-') &&\n !event.target?.parentElement?.id?.includes('mat-autocomplete-') &&\n !event.target?.classList?.contains('mat-mdc-autocomplete-trigger');\n\n if (this.autocomplete.panelOpen && isNotAutocompleteScroll) {\n this.autocomplete.closePanel();\n }\n };\n\n protected searchResult$ = this.inputValueSearch$.pipe(map(inputValue => !!inputValue.trim()));\n protected translationContext = 'AUTOCOMPLETE.';\n protected readonly AutocompleteUtils = AutocompleteUtils;\n private readonly isPlatform = isPlatformBrowser(this.platformId);\n private observer: MutationObserver;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n private readonly domSanitizer: DomSanitizer,\n @Optional() @Self() public ngControl: NgControl,\n private renderer2: Renderer2,\n @Inject(PLATFORM_ID) private platformId: any,\n private el: ElementRef\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n this.subscriberDisplayChange();\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(changes: SimpleChanges): void {\n this.itemsList = AutocompleteUtils.excludeSuggestions(this.itemsList, this.suggestionsList, this.valueField);\n this.initValue();\n\n if (this.isPlatform && changes['companyColor']) {\n this.setCompanyColorVariable();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngAfterViewInit(): void {\n if (this.type !== Autocomplete.LARGE) {\n this.checkOverlap(Timeout.VIEW_INITIALIZED_COMPONENT_LOAD, true);\n }\n this.isPlatform && this.setCompanyColorVariable();\n if (this.closeOnScroll) {\n window.addEventListener('scroll', this.scrollEvent, true);\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnDestroy(): void {\n window.removeEventListener('scroll', this.scrollEvent, true);\n\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n onChange = (_: any) => {\n };\n onTouch = () => {\n };\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: any): void {\n if (this.valuePrimitive && this.textField && this.valueField) {\n if (this.type === Autocomplete.SINGLE) {\n this.value = this.itemsList.find(item => item[this.valueField] === value);\n } else {\n this.value = [this.itemsList.find(item => item[this.valueField] === value)];\n }\n } else {\n this.value = value;\n }\n this.initValue();\n this.cdr.markForCheck();\n }\n\n protected onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const inputValue = event.option.value;\n const itemValue = AutocompleteUtils.createValueItem(inputValue, this.textField, this.valueField);\n this.addNewValue(itemValue);\n\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n\n queueMicrotask(() => {\n if (this.type !== this.autocompleteType.SINGLE) {\n this.inputValue = '';\n } else {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\n }\n this.cdr.markForCheck();\n });\n\n this.onUpdate();\n }\n\n protected onOptionRemoved(option: any): void {\n setTimeout(() => this.autocomplete.closePanel(), 0);\n const foundValue = this.value.find((v: any) => this.compareWith ? this.compareWith(v, option) : v === option);\n\n if (foundValue) {\n this.value = this.value.filter((v: any) => this.compareWith ? !this.compareWith(v, option) : v !== option);\n }\n\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n\n if (!this.value.length) {\n this.inputValue = '';\n }\n\n this.onUpdate();\n }\n\n protected onInputChange(event: Event): void {\n const inputValue = (event.target as HTMLInputElement).value;\n this.userInput$.next(inputValue);\n if (inputValue.length >= this.minCharactersSearch) {\n this.inputValueSearch$.next(inputValue);\n this.searchTextChange.emit(inputValue);\n const findValue = [...this.suggestionsList, ...this.itemsList].find(v => inputValue === (this.textField ? v[this.textField] : v));\n const count = AutocompleteUtils.countMatchingWords([...this.suggestionsList, ...this.itemsList], this.inputValue);\n if (findValue && !count) {\n this.onOptionSelected({ option: { value: findValue } } as MatAutocompleteSelectedEvent);\n }\n } else {\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n }\n }\n\n protected onClear(): void {\n this.inputValue = '';\n this.value = AutocompleteUtils.isArray(this.value) ? [] : '';\n this.isOverLapping = false;\n this.overlapIndex = 0;\n this.onUpdate();\n this.matAutocomplete?.options.forEach(option => option.deselect());\n this.onTouch();\n }\n\n protected refillInput(): void {\n setTimeout(() => {\n if (this.value && this.type === this.autocompleteType.SINGLE && !this.inputValue) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\n } else if (!this.inputValue && this.value?.length) {\n this.inputValue = ' ';\n } else if (this.inputValue && this.type === Autocomplete.SINGLE && this.value && Object.keys(this.value).length) {\n this.inputValue = AutocompleteUtils.transformDisplayValue((AutocompleteUtils.isArray(this.value)\n ? this.value[0]\n : this.value),\n this.textField);\n } else if (this.inputValue) {\n this.inputValue = ' ';\n }\n\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n this.isInputFocus = false;\n this.onTouch();\n }, 0);\n }\n\n protected gotoUp() {\n if (this.cdkVirtualScrollViewPort) {\n this.cdkVirtualScrollViewPort.scrollToIndex(0);\n this.cdkVirtualScrollViewPort.checkViewportSize();\n }\n }\n\n protected onFocus(): void {\n this.isInputFocus = true;\n\n const inputValue = AutocompleteUtils.isArray(this.inputValue) ? this.inputValue[0] : this.inputValue;\n\n if (AutocompleteUtils.isPrimitive(inputValue)) {\n if (typeof inputValue !== 'number' && inputValue?.match(/^\\s+/gm)) {\n this.inputValue = inputValue.trimStart();\n }\n } else {\n if (inputValue[this.textField]?.match(/^\\s+/gm)) {\n this.inputValue = inputValue[this.textField].trimStart();\n }\n }\n }\n\n private checkOverlap(delay = Timeout.VIEW_INITIALIZED_AFTER_ACTION, init = false): void {\n this.isOverLapping = false;\n this.isOverlapChecking = true;\n this.inputOpacity = 0;\n\n setTimeout(() => {\n const inputWidth = this.inputWidth;\n const tags = this.tagContainer?.nativeElement.querySelectorAll('.value-tag');\n if (tags) {\n let width = 0;\n let firstTagWidth = 0;\n\n tags.forEach((tag: any, index: number) => {\n width += tag.getBoundingClientRect().width;\n\n if (!index) {\n firstTagWidth = width;\n }\n\n if (!this.isOverLapping && width > inputWidth) {\n this.isOverLapping = true;\n this.overlapIndex = index;\n }\n\n if ((firstTagWidth + AMOUNT_TAG_WIDTH) > inputWidth) {\n this.overlapIndex = 0;\n }\n });\n this.isOverlapChecking = false;\n if (init) {\n if (this.type === this.autocompleteType.SINGLE) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\n } else if (this.value?.length) {\n this.inputValue = ' ';\n }\n }\n this.cdr.markForCheck();\n }\n this.inputOpacity = 1;\n }, delay);\n }\n\n private onUpdate(): void {\n this.inputValueSearch$.next('');\n this.userInput$.next('');\n if (!this.valuePrimitive) {\n this.onChange(this.value);\n } else {\n if (this.type === Autocomplete.SINGLE) {\n this.onChange(this.value[this.valueField]);\n } else {\n this.onChange(this.value.map((v: any) => v[this.valueField]));\n }\n }\n this.selectionChange.emit(this.value);\n }\n\n private initValue(): void {\n if (this.type === this.autocompleteType.SINGLE && this.variant !== DropdownVariation.DROPDOWN) {\n if (AutocompleteUtils.isArray(this.value)) {\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\n } else {\n this.inputValue = this.value ? AutocompleteUtils.transformDisplayValue(this.value, this.textField) : '';\n }\n } else if (this.variant === DropdownVariation.DROPDOWN) {\n this.inputValue = AutocompleteUtils.isArray(this.value) && !this.value?.length\n ? ''\n : this.type === Autocomplete.SINGLE\n ? AutocompleteUtils.transformDisplayValue((AutocompleteUtils.isArray(this.value)\n ? this.value[0]\n : this.value),\n this.textField)\n : ' ';\n } else {\n this.inputValue = this.value && this.value.length ? ' ' : '';\n }\n if (this.type === this.autocompleteType.MULTI) {\n this.checkOverlap();\n }\n }\n\n private addNewValue(newValue: any): void {\n if (this.type !== this.autocompleteType.SINGLE && !this.value) {\n this.value = [];\n }\n\n const foundDuplicate = this.compareWith\n ? this.value.find((v: any) => this.compareWith(v, newValue))\n : AutocompleteUtils.findDuplicate(this.value, newValue, this.textField);\n\n if (this.type !== this.autocompleteType.SINGLE) {\n this.value = foundDuplicate ?\n (this.value.filter((v: any) => this.compareWith\n ? !this.compareWith(v, foundDuplicate)\n : v !== foundDuplicate))\n : [...this.value, newValue];\n } else {\n this.value = newValue;\n }\n }\n\n protected get isDropdown(): boolean {\n return this.variant === DropdownVariation.DROPDOWN;\n }\n\n protected onChevronClick(autocomplete: MatAutocomplete): void {\n if (autocomplete.isOpen) {\n setTimeout(() => {\n this.autocomplete.closePanel();\n }, 0);\n }\n }\n\n protected get inputWidth(): number {\n return (\n this.formFieldElement?.nativeElement.getBoundingClientRect().width -\n (this.isDropdown ? Padding.DROPDOWN_CONTAINER : Padding.AUTOCOMPLETE_CONTAINER)\n );\n }\n\n protected trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n\n /**\n * Adding company color variable to the body to style overlay container that's out of the component scope.\n */\n private setCompanyColorVariable(): void {\n this.renderer2.setProperty(document.body, 'style', `--ui-autocomplete-option-color: ${this.companyColor};`);\n }\n\n private subscriberDisplayChange(): void {\n const autocompleteHostElement = this.el.nativeElement;\n\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'style') {\n const displayStyle = getComputedStyle(autocompleteHostElement).display;\n if (displayStyle !== 'none') {\n this.checkOverlap();\n }\n }\n });\n });\n\n this.observer.observe(autocompleteHostElement, {\n attributes: true,\n attributeFilter: ['style'],\n });\n }\n}\n","<ng-container>\n <div class=\"autocomplete-wrapper\" [ngClass]=\"{ 'full-width': fullWidth, disabled: disabled }\">\n <mat-form-field\n [color]=\"(safeErrors.length || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [appearance]=\"'outline'\"\n [ngClass]=\"{ 'large-size': type === autocompleteType.LARGE, 'hide-bottom-content': !showBottomContent }\"\n >\n <mat-label *ngIf=\"label\">{{ label }} <span *ngIf=\"required\">*</span></mat-label>\n <div #formField class=\"input-container\">\n <div\n class=\"selected-items\"\n #tagContainer\n *ngIf=\"\n (type === autocompleteType.LARGE && this.value) ||\n (!(inputValue && this.isInputFocus) && this.value && type !== autocompleteType.SINGLE)\n \"\n >\n <ui-tag\n class=\"value-tag\"\n [id]=\"'ui-tag-' + i\"\n *ngFor=\"let valueItem of value; let i = index\"\n [label]=\"valueItem | transformItem: textField\"\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\n [allowClose]=\"true\"\n [applicationTheme]=\"applicationTheme\"\n [style.display]=\"isOverLapping && i >= overlapIndex ? 'none' : 'block'\"\n [ngClass]=\"{\n 'overlap-tag': isOverlapChecking && overlapIndex && i >= overlapIndex && type === autocompleteType.MULTI\n }\"\n (close)=\"onOptionRemoved(valueItem)\"\n ></ui-tag>\n <ng-container *ngIf=\"isOverLapping\">\n <div *ngIf=\"!overlapIndex; else overlapTag\" class=\"overlap-count\">\n {{ (translationContext + 'SELECTED_AMOUNT') | uiTranslate : language : { numberSelected: (value | slice: overlapIndex).length } }}\n </div>\n <ng-template #overlapTag>\n <ui-tag [applicationTheme]=\"applicationTheme\" [readOnly]=\"true\" [label]=\"'+' + (value | slice: overlapIndex).length\"></ui-tag>\n </ng-template>\n </ng-container>\n </div>\n <input\n #trigger=\"matAutocompleteTrigger\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'unset-margin': this.value && type === autocompleteType.LARGE }\"\n (blur)=\"refillInput()\"\n (focusin)=\"onFocus()\"\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\n matInput\n [type]=\"'text'\"\n [matAutocomplete]=\"autocomplete\"\n (input)=\"onInputChange($event)\"\n [(ngModel)]=\"inputValue\"\n />\n </div>\n\n <ui-icon\n *ngIf=\"value && ((AutocompleteUtils.isPrimitive(value) && value.length) || (!AutocompleteUtils.isPrimitive(value) && (AutocompleteUtils.isArray(value) && value.length || !AutocompleteUtils.isArray(value) && !value.length)))\"\n class=\"remove-selected\"\n [ngClass]=\"{ 'large-input-icon': type === autocompleteType.LARGE }\"\n (click)=\"onClear();$event.preventDefault();$event.stopPropagation()\"\n [size]=\"'24'\"\n [color]=\"applicationTheme === 'classic' ? 'inherit' : 'rebrand-black'\"\n [name]=\"applicationTheme === 'classic' ? 'Close' : 'Close-in-line'\"\n ></ui-icon>\n\n <ui-icon\n class=\"arrow-state\"\n [ngClass]=\"{ opened: autocomplete.isOpen, 'large-input-icon': type === autocompleteType.LARGE }\"\n *ngIf=\"isDropdown\"\n [size]=\"'24'\"\n [name]=\"applicationTheme !== 'classic' ? 'Arrow-chevron-down-in-line' : 'Arrow_down'\"\n (click)=\"onChevronClick(autocomplete)\"\n ></ui-icon>\n\n <mat-autocomplete\n #autocomplete\n [class]=\"applicationTheme + ' ' + dropdownPanelClass\"\n (optionSelected)=\"onOptionSelected($event)\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [hideSingleSelectionIndicator]=\"false\"\n (opened)=\"gotoUp()\"\n >\n <ng-container *ngIf=\"!(searchResult$ | async)\">\n <ng-container *ngIf=\"!isDropdown; else dropdownList\">\n <mat-optgroup [label]=\"(translationContext + 'SUGGESTED') | uiTranslate : language | uppercase\" *ngIf=\"suggestionsList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': suggested | includes: value : valueField }\"\n *ngFor=\"let suggested of suggestionsList\"\n [value]=\"suggested\"\n >\n <span [selectText]=\"userInput$ | async\">{{ suggested | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <mat-optgroup [label]=\"(translationContext + 'SELECTED') | uiTranslate : language | uppercase\" *ngIf=\"value?.length && type !== autocompleteType.SINGLE\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of value\"\n [value]=\"item\"\n >\n <span>{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <mat-optgroup [label]=\"(translationContext + 'SELECTED') | uiTranslate : language | uppercase\" *ngIf=\"value?.length && type === autocompleteType.SINGLE\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [class]=\"'selected-option'\"\n [value]=\"value\"\n >\n <span [selectText]=\"userInput$ | async\">{{ value | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n </ng-container>\n\n <ng-template #dropdownList>\n <cdk-virtual-scroll-viewport *ngIf=\"virtualScroll; else defaultViewPort\" [itemSize]=\"48\" [style.height]=\"'200px'\" class=\"virtual-scroll\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *cdkVirtualFor=\"let item of itemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </cdk-virtual-scroll-viewport>\n\n <ng-template #defaultViewPort>\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of itemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </ng-template>\n\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"filteredSuggestionList$ | async as filteredSuggestionList\">\n <ng-container *ngIf=\"filteredItemsList$ | async as filteredItemsList\">\n <mat-optgroup [label]=\"(translationContext + 'SUGGESTED') | uiTranslate : language | uppercase\" *ngIf=\"filteredSuggestionList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredSuggestionList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n\n <ng-container *ngIf=\"!filteredSuggestionList.length; else showItemListWithGroup\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredItemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </ng-container>\n\n <ng-template #showItemListWithGroup>\n <mat-optgroup [label]=\"(translationContext + 'ALL_ITEMS') | uiTranslate : language | uppercase\" *ngIf=\"filteredItemsList.length\">\n <mat-option\n (mousedown)=$event.preventDefault()\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\n *ngFor=\"let item of filteredItemsList\"\n [value]=\"item\"\n >\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n\n <ng-container *ngIf=\"!filteredItemsList.length && !filteredSuggestionList.length && inputValue\">\n <ng-container *ngIf=\"allowAdd; else notFound\">\n <mat-option (mousedown)=$event.preventDefault() [value]=\"inputValue\">\n <span>{{ ('COMMON.ADD') | uiTranslate : language }}</span>\n <span class=\"add-suggestion\">\"{{ inputValue }}\"</span>\n </mat-option>\n </ng-container>\n\n <ng-template #notFound>\n <mat-option [style.pointer-events]=\"'none'\">\n <span>{{ (translationContext + 'NO_RESULTS_FOUND') | uiTranslate : language }}</span>\n </mat-option>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n <mat-hint class=\"error\" *ngIf=\"safeErrors.length || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"safeErrors.length\">\n <div class=\"errors\" *ngFor=\"let error of safeErrors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\" [language]=\"language\"></ui-validation-error>\n\n </mat-hint>\n </mat-form-field>\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\nimport { TagComponentModule } from '../tag/tag.component.module';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { TransformItemPipe } from './transform-Item.pipe';\nimport { IncludesPipe } from './includes.pipe';\nimport { SelectTextDirective } from '../../directives/select-text.directive';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n@NgModule({\n declarations: [AutocompleteComponent, TransformItemPipe, IncludesPipe, SelectTextDirective],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatAutocompleteModule,\n MatInputModule,\n FormsModule,\n TagComponentModule,\n MatChipsModule,\n IconComponentModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n ],\n exports: [AutocompleteComponent],\n providers: [TransformItemPipe, IncludesPipe, SelectTextDirective],\n})\nexport class AutocompleteComponentModule {}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { ButtonVariant, EmptyStateVariant, IllustrationVariant } from './empty-state.model';\n\n@Component({\n selector: 'ui-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n})\nexport class EmptyStateComponent {\n /**\n * @description If the default image should be displayed.\n * @type {boolean}\n * @memberof EmptyStateComponent\n */\n @Input() showIllustration = false;\n /**\n * @description If the default image should be displayed.\n * @type {IllustrationVariant}\n * @memberof EmptyStateComponent\n */\n @Input() illustrationVariant: IllustrationVariant = 'Empty-search';\n /**\n * @description The icon to be displayed in the empty state.\n * @type {IconName}\n * @memberof EmptyStateComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * @description The empty state variant.\n * @type {EmptyStateVariant}\n * @memberof EmptyStateComponent\n */\n @Input() emptyStateVariant: EmptyStateVariant = 'desktop';\n\n /**\n * @description The title of the empty state.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() title = '';\n\n /**\n * @description The body text or description of the empty state.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() bodyText = '';\n\n /**\n * @description Displays primary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() primaryButtonText = '';\n\n /**\n * Primary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() primaryButtonVariant: ButtonVariant = 'pink';\n\n /**\n * @description Displays secondary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() secondaryButtonText = '';\n\n /**\n * Secondary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() secondaryButtonVariant: ButtonVariant = 'black';\n\n /**\n * @description Displays tertiary button if passed.\n * @type {string}\n * @memberof EmptyStateComponent\n */\n @Input() tertiaryButtonText = '';\n\n /**\n * Tertiary button variant - only for new theme.\n * @type {ButtonVariant}\n * @memberof EmptyStateComponent\n */\n @Input() tertiaryButtonVariant: ButtonVariant = 'ghost';\n\n /**\n * The language to be used\n * @type {Language}\n * @memberof EmptyStateComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof EmptyStateComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Event triggered when the primary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() primaryButtonClick = new EventEmitter<Event>();\n\n /**\n * Event triggered when the secondary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() secondaryButtonClick = new EventEmitter<Event>();\n\n /**\n * Event triggered when the tertiary button is clicked.\n * @type {Event}\n * @event\n * @memberof TagComponent\n */\n @Output() tertiaryButtonClick = new EventEmitter<Event>();\n\n buttonApplicationTheme: ApplicationTheme;\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 ngOnInit() {\n if (this.applicationTheme !== 'classic') {\n this.buttonApplicationTheme = this.applicationTheme;\n }\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClick.emit(event);\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClick.emit(event);\n }\n\n onTertiaryButtonClick(event: Event): void {\n this.tertiaryButtonClick.emit(event);\n }\n\n getVariant(variant: ButtonVariant) {\n if (variant === 'pink') {\n return 'primary';\n } else if (variant === 'black') {\n this.buttonApplicationTheme = 'light';\n return 'secondary';\n } else {\n this.buttonApplicationTheme = 'light';\n return 'ghost';\n }\n }\n}\n","<ng-container>\n <div class=\"empty-state-container\" [attr.theme]=\"applicationTheme\" [class.mobile]=\"emptyStateVariant === 'mobile'\">\n\n <div class=\"illustration\" *ngIf=\"showIllustration\">\n <img *ngIf=\"applicationTheme === 'classic'\" [attr.src]=\"'/images/empty-state-default.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\n <img *ngIf=\"applicationTheme !== 'classic'\" [attr.src]=\"'/icons/rebrand/'+illustrationVariant+'-in-line.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\n </div>\n\n <div class=\"icon\" *ngIf=\"icon\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"icon\" size=\"40\"></ui-icon>\n </div>\n\n <div class=\"text-content\">\n <div class=\"title\">{{ title ? title : ('COMMON.NO_RESULTS') | uiTranslate : language }}</div>\n <div class=\"body-text\" *ngIf=\"bodyText\">{{ bodyText }}</div>\n </div>\n\n <div class=\"actions\">\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"primaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(primaryButtonVariant) : 'primary'\" [label]=\"primaryButtonText\" (buttonClickEvent)=\"onPrimaryButtonClick($event)\"></ui-button>\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"secondaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(secondaryButtonVariant) : 'secondary'\" [label]=\"secondaryButtonText\" (buttonClickEvent)=\"onSecondaryButtonClick($event)\"></ui-button>\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"tertiaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(tertiaryButtonVariant) : 'tertiary'\" [label]=\"tertiaryButtonText\" (buttonClickEvent)=\"onTertiaryButtonClick($event)\"></ui-button>\n </div>\n </div>\n</ng-container>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { EmptyStateComponent } from './empty-state.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [EmptyStateComponent],\n imports: [CommonModule, IconComponentModule, NgOptimizedImage, ButtonComponentModule, UiTranslatePipe],\n exports: [EmptyStateComponent],\n})\nexport class EmptyStateComponentModule {}\n","import { TemplateRef, Type } from '@angular/core';\n\nexport interface TableConfig<T = any> {\n columns: TableColumn<T>[];\n pagination?: Pagination;\n title?: string;\n width?: number;\n sort?: Sort;\n hidePagination?: boolean;\n}\n\nexport interface TableConfigWithPagination<T> extends TableConfig<T> {\n pagination: Pagination;\n}\n\nexport interface TableColumn<T = any> {\n title: string;\n key: string;\n widthPerc?: number;\n minWidthPx?: number;\n allowMultiline?: boolean;\n bold?: boolean;\n showTooltip?: boolean;\n tooltip?: string;\n allowSort?: boolean;\n isSticky?: boolean;\n headerCellTemplate?: TemplateRef<any>;\n rowCellTemplate?: TemplateRef<any>;\n rowCellTemplateClick?: () => any;\n sortHeader?: string;\n hidden?: boolean;\n order?: number;\n fontSize?: '12px' | '14px';\n field?: string;\n type?: ColumnType;\n function?: (v: T) => string;\n renderer?: (v: T) => ComponentRenderer | string;\n styles?: ColumnStyles;\n sortStart?: SortDirection;\n}\n\nexport interface Pagination {\n itemsPerPageOptions: number[];\n itemsPerPage: number;\n currentPage: number;\n totalItems: number;\n}\n\nexport type TableData = Record<string, any>[];\n\nexport interface ColumnEllipse {\n index: number;\n showTooltip: boolean;\n}\n\nexport interface Sort {\n active: string;\n direction: SortDirection;\n defaultSortStart?: SortDirection;\n}\n\nexport type SortDirection = 'asc' | 'desc' | '';\n\nexport interface TableDetailColumn<T, TDetail> {\n columnDefs: TableColumn<TDetail>[];\n setDetailRowData: (params: DetailRowDataParams<T, TDetail>) => void;\n}\n\nexport interface DetailRowDataParams<T, TDetail> {\n data: T;\n\n setDetailDataSource(rowData: TDetail[]): void;\n}\n\nexport enum ColumnType {\n FIELD = 'field',\n FUNCTION = 'function',\n RENDERER = 'renderer',\n}\n\nexport interface ComponentRenderer {\n component: Type<any>;\n inputs?: any;\n outputs?: { [key: string]: any };\n}\n\nexport interface ColumnStyles {\n alignment?: ColumnAlignment;\n width?: string;\n 'min-width'?: string;\n padding?: string;\n}\n\nexport enum ColumnAlignment {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n}\n\nexport type DataSource = {\n [key: string]: any;\n};\n\nexport type ScrollSettings = { scrollEnd: boolean, horizontalScroll: boolean, scrollStart: boolean };\n","import { TableColumn } from '../components/table/table.model';\n\n/**\n * Sorting table columns by order value if set.\n * The rest columns keep the same ordering and displayed after the sorted ones.\n */\nexport const sortByOrder = <T>(columns: TableColumn<T>[]): TableColumn<T>[] => {\n const withOrderColumns = columns.filter((v) => v.order);\n const withoutOrderColumns = columns.filter((v) => !v.order)\n\n if (withOrderColumns.length) {\n const sortedColumns = Array(columns.length);\n withOrderColumns.forEach(column => sortedColumns[column.order! - 1] = column);\n withoutOrderColumns.forEach(column => {\n const emptyIndex = sortedColumns.findIndex(v => !v);\n sortedColumns[emptyIndex] = column;\n });\n return sortedColumns;\n }\n\n return columns;\n};\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { NgxSkeletonLoaderConfigTheme, NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { CommonModule } from '@angular/common';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { Appearance } from './skeleton.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n standalone: true,\n imports: [CommonModule, NgxSkeletonLoaderModule],\n})\nexport class SkeletonComponent {\n @Input() count: number | string = '';\n @Input() set theme(value: NgxSkeletonLoaderConfigTheme) {\n this.theme$.next(value ?? {});\n }\n @Input() set appearance(value: Appearance) {\n this.appearance$.next(value ?? 'line');\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SkeletonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\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 readonly theme$ = new BehaviorSubject<NgxSkeletonLoaderConfigTheme>({});\n protected readonly appearance$ = new BehaviorSubject<Appearance>('line');\n protected readonly currentTheme$ = combineLatest([this.theme$, this.appearance$]).pipe(\n map(([theme, appearance]) => this.getThemeWithDefaultValues(theme, appearance))\n );\n\n private getThemeWithDefaultValues(\n theme: NgxSkeletonLoaderConfigTheme,\n appearance: Appearance\n ): NgxSkeletonLoaderConfigTheme {\n if (theme && appearance === 'circle') {\n return {\n ...theme,\n height: theme['height'] || theme['width'] || '48px',\n width: theme['width'] || theme['height'] || '48px',\n };\n } else if (theme && appearance !== 'circle' && !theme['height']) {\n return {\n ...theme,\n height: '24px',\n };\n } else {\n return theme;\n }\n }\n}\n","<ngx-skeleton-loader\n [count]=\"count\"\n [theme]=\"currentTheme$ | async\"\n [appearance]=\"(appearance$ | async) || 'line'\"\n></ngx-skeleton-loader>\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { MatPaginatorSelectConfig, PageEvent } from '@angular/material/paginator';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent {\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n @Input() pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() pageSize = 25;\n\n /**\n * Disabled\n *\n * @type {boolean}\n * @memberOf PaginatorComponent\n */\n @Input() disabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PaginatorComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the current page\n * @default 0\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() currentPage = 0;\n\n @Output() paginatorChange: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n selectConfig: MatPaginatorSelectConfig = { panelClass: 'ui-dropdown-list' };\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 onPaginatorChange(paginator: PageEvent) {\n this.paginatorChange.emit(paginator);\n }\n}\n","<mat-paginator\n [disabled]=\"disabled\"\n [length]=\"length\"\n [pageIndex]=\"currentPage ? currentPage : 0\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [attr.theme]=\"applicationTheme\"\n [selectConfig]=\"selectConfig\"\n [color]=\"'accent'\"\n (page)=\"onPaginatorChange($event)\"\n></mat-paginator>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * USAGE:\n * {{ argument | memoizeFunc : method [: context] }}\n *\n * You could provide multiple arguments for the function like that:\n * {{ [argument1, argument2] | memoizeFunc : method [: context] }}\n *\n *\n * FUNCTION WITH CONTEXT\n * We still could have optimization in impure functions with Angular pipes. Just provide context as second parameter\n * to the memoizeFunc pipe.\n *\n * {{ argument | memoizeFunc : method : this }}\n *\n * Alternative variant use 'bind'\n *\n * {{ argument | memoizeFunc : method.bind(this) }}\n *\n * */\n@Pipe({\n name: 'memoizeFunc',\n standalone: true,\n})\nexport class MemoizeFuncPipe implements PipeTransform {\n transform<T, K>(value: T, handler: (value: T) => K, context?: any): K {\n if (context) {\n return handler.call(context, value);\n }\n\n return handler(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentencecase',\n})\nexport class SentenceCasePipe implements PipeTransform {\n transform(value: string | undefined): string {\n if (!value) {\n return '';\n }\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {\n ColumnEllipse,\n ColumnType,\n ComponentRenderer,\n DataSource,\n Pagination,\n ScrollSettings,\n TableColumn,\n TableConfig,\n TableConfigWithPagination,\n TableData,\n TableDetailColumn\n} from './table.model';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { sortByOrder } from '../../utils/table.utils';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Sort } from '@angular/material/sort';\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\n\n@Component({\n selector: 'ui-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('expandDetail', [\n state('collapsed, void', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))\n ])\n ]\n})\nexport class TableComponent<T extends DataSource, TDetail extends DataSource> implements OnChanges, AfterViewInit {\n /**\n * Table configuration\n *\n * @type {TableConfig}\n * @memberof TableComponent\n */\n @Input({ required: true }) set config(config: TableConfig<T>) {\n config.pagination = config.pagination ?? this.defaultPaginationConfig;\n\n this.tableConfig = config as TableConfigWithPagination<T>;\n\n this.columnsTooltipState = config.columns.map((column, index) => ({\n index,\n showTooltip: column.showTooltip ?? false\n }));\n this.displayedColumns = sortByOrder<T>(config.columns.filter(column => !column.hidden)).map(column => column.key);\n }\n\n /**\n * Input property for providing the table data.\n *\n * @type {TableData}\n * @memberof TableComponent\n */\n @Input() set data(tableData: TableData) {\n this.tableData = tableData;\n this.sourceData = tableData;\n }\n\n /**\n * Input property indicating whether the table is in a loading state.\n *\n * @type {boolean}\n * @memberof TableComponent\n * @default false\n */\n @Input() loading = false;\n\n /**\n *\n * Defines the application theme\n * @type {ApplicationTheme}\n * @memberof TableComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Data structure to select which columns should be rendered and their capabilities\n *\n * @type {TableDetailColumn}\n * @memberof TableComponent\n */\n @Input() tableDetailColumns: TableDetailColumn<T, TDetail>;\n @Input() tableDetails = false;\n\n /**\n * Disable border radius for table\n *\n * @type {boolean}\n * @memberof TableComponent\n */\n @Input() disableBorderRadius = false;\n\n @Output() onRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() onDetailRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() paginatorChange = new EventEmitter<PageEvent>();\n @Output() sortChange = new EventEmitter<Sort>();\n\n @ViewChild('table') table: ElementRef;\n\n protected tableData: TableData;\n protected sourceData: TableData;\n protected columnsTooltipState: ColumnEllipse[] = [];\n protected tableConfig: TableConfigWithPagination<T>;\n protected displayedColumns: string[] = [];\n protected columnsDetailToDisplay: string[] = [];\n protected skeletonStyleConfig = {\n background: '#F6F6F6',\n 'border-radius': '4px',\n height: '24px'\n };\n protected dataSourceDetail = new MatTableDataSource<any>([]);\n protected elementDetail: any;\n protected readonly DataType = ColumnType;\n protected scrollSettings$ = new BehaviorSubject<ScrollSettings>({ scrollEnd: false, horizontalScroll: false, scrollStart: false });\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private destroyRef: DestroyRef,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit() {\n if (this.applicationTheme !== 'classic') {\n this.skeletonStyleConfig.background = '#F4F4F4';\n }\n document.body.setAttribute('theme', this.applicationTheme);\n\n if (this.tableDetailColumns) {\n this.columnsDetailToDisplay = this.tableDetailColumns.columnDefs.map(\n (tableColumn: TableColumn<TDetail>) => tableColumn.title\n );\n }\n }\n\n ngAfterViewInit() {\n this.hasTableScroll();\n fromEvent(this.table.nativeElement, 'scroll')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.hasTableScroll());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableConfig'] && changes['tableConfig'].currentValue) {\n this.onSortChange(changes['tableConfig'].currentValue.sort);\n }\n }\n\n hasTableScroll(): void {\n const table = this.table.nativeElement;\n const horizontalScroll = table.scrollWidth > table.clientWidth;\n const scrollEnd = table.scrollLeft + table.clientWidth >= table.scrollWidth;\n this.scrollSettings$.next({\n scrollStart: !table.scrollLeft,\n scrollEnd,\n horizontalScroll\n });\n }\n\n callRenderer([rendererFn, element]: [(v: T) => ComponentRenderer | string, T]): any {\n if (rendererFn) {\n return rendererFn(element);\n }\n }\n\n protected onPaginatorChange(event: PageEvent): void {\n this.paginatorChange.emit(event);\n }\n\n protected onChangeColumnSize(columnIndex: number, showTooltip: boolean): void {\n this.columnsTooltipState = this.columnsTooltipState.map(column => {\n if (column.index === columnIndex) {\n column.showTooltip = showTooltip;\n }\n return column;\n });\n }\n\n protected onSortChange(sortState: Sort): void {\n this.sortChange.emit(sortState);\n }\n\n protected onRowClick(rowParams: any): void {\n this.onRowClickEvent.emit(rowParams);\n }\n\n protected onDetailRowClick(rowParams: any): void {\n this.onDetailRowClickEvent.emit(rowParams);\n }\n\n protected toggleRow(element: T): void {\n if (this.tableDetails) {\n this.elementDetail = this.elementDetail === element ? null : element;\n if (this.elementDetail) {\n this.tableDetailColumns.setDetailRowData({\n data: element,\n setDetailDataSource: this.setTableDetailDataSource.bind(this)\n });\n }\n }\n }\n\n private setTableDetailDataSource(rowData: TDetail[]): void {\n this.dataSourceDetail = new MatTableDataSource<any>(rowData);\n }\n\n private defaultPaginationConfig: Pagination = {\n currentPage: 0,\n itemsPerPage: 10,\n itemsPerPageOptions: [10, 25, 50],\n totalItems: 20\n };\n\n trackColumnKey = (index: number, column: TableColumn<T>): string => column.key;\n}\n","<div #tableContainer class=\"table-container\"\n [ngClass]=\"{ 'without-title': !tableConfig?.title, 'disable-border-radius': disableBorderRadius }\"\n [attr.theme]=\"applicationTheme\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title | sentencecase }}</div>\n <div\n #table\n *ngIf=\"scrollSettings$ | async as scrollSettings\"\n class=\"table-wrapper\">\n <table\n class=\"main-table\"\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortStart]=\"tableConfig?.sort?.defaultSortStart ?? 'asc'\"\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n multiTemplateDataRows\n >\n\n <ng-container *ngFor=\"let column of tableConfig.columns; index as i, last as isLast; trackBy: trackColumnKey\">\n <ng-container *ngIf=\"isLast && column.isSticky && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"!scrollSettings?.scrollEnd\">\n <th mat-header-cell\n [start]=\"column.sortStart ?? 'asc'\"\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element, rowIndex}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && column.isSticky && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [stickyEnd]=\"scrollSettings.horizontalScroll ? !scrollSettings.scrollEnd : true\">\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isLast && column.isSticky) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\n <th mat-header-cell\n [start]=\"column.sortStart ?? 'asc'\"\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isLast && column.isSticky) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\"\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') ?? ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element; let rowIndex = dataIndex\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\n [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <div class=\"row-value\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!i && tableDetails\"\n size=\"24\"\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element[column.key] }}</span>\n </ng-template>\n </div>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"element-detail\" *ngIf=\"dataSourceDetail.data.length\"\n [@expandDetail]=\"element === elementDetail ? 'expanded' : 'collapsed'\">\n <table\n mat-table\n [dataSource]=\"dataSourceDetail\"\n [ngClass]=\"{ 'hide-borders': element === tableData[tableData.length - 1] }\"\n >\n <ng-container *ngFor=\"let tableColumn of tableDetailColumns.columnDefs\"\n [matColumnDef]=\"tableColumn.title\">\n <th mat-header-cell *matHeaderCellDef=\"let element\" arrowPosition=\"after\"\n [ngStyle]=\"{width: tableColumn.styles?.width}\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\n {{ tableColumn.title | uppercase }}\n </th>\n\n <td mat-cell *matCellDef=\"let element\" (click)=\"onDetailRowClick(element)\"\n [align]=\"tableColumn.styles?.alignment\"\n [ngClass]=\"tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : ''\"\n [ngStyle]=\"{width: tableColumn.styles?.width }\">\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnsDetailToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let rowDetail; columns: columnsDetailToDisplay;\"></tr>\n </table>\n </div>\n </td>\n </ng-container>\n\n <ng-template #tableDataTpl let-element=\"element\" let-tableColumn=\"tableColumn\">\n <div class=\"align-wrapper\">\n <ng-container [ngSwitch]=\"tableColumn.type\">\n <ng-container *ngSwitchCase=\"DataType.FIELD\">\n {{ element | dataPropertyGetter: tableColumn.key }}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.FUNCTION\">\n {{ tableColumn.function?.(element) }}\n </ng-container>\n <ng-container *ngSwitchCase=\"DataType.RENDERER\">\n <ng-template\n [dynamicComponent]=\"[tableColumn.renderer, element] | memoizeFunc : callRenderer\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ element | dataPropertyGetter: tableColumn.key }}\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"{'expanded-row': elementDetail === row, 'row-clickable': tableDetails, 'selected': row?.selected, 'last-row': row === tableData[tableData.length - 1] && !elementDetail }\"\n (click)=\"toggleRow(row)\">\n </tr>\n <ng-container *ngIf=\"tableDetails && tableDetailColumns?.columnDefs?.length\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\n </ng-container>\n </table>\n </div>\n\n <ui-paginator\n *ngIf=\"!tableConfig?.hidePagination\"\n [disabled]=\"loading\"\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [currentPage]=\"tableConfig.pagination.currentPage\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginatorComponent } from './paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n@NgModule({\n declarations: [PaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [PaginatorComponent],\n})\nexport class PaginatorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableComponent } from './table.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\nimport { PaginatorComponentModule } from '../paginator/paginator.component.module';\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { MatSortModule } from '@angular/material/sort';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SentenceCasePipe } from './sentence-case.pipe';\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\nimport { DynamicComponentDirective } from '../deprecated-table/directives/dynamic-component.directive';\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\n\n@NgModule({\n declarations: [TableComponent, SentenceCasePipe],\n imports: [\n CommonModule,\n MatTableModule,\n MatTooltipModule,\n SkeletonComponent,\n PaginatorComponentModule,\n ButtonComponentModule,\n MatSortModule,\n IconComponentModule,\n EllipseTextDirective,\n DynamicComponentDirective,\n DataPropertyGetterPipe,\n MemoizeFuncPipe,\n ],\n exports: [TableComponent],\n})\nexport class TableComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef, Inject,\n Input, Optional,\n Output\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SliderValue, SliderVariant } from './slider.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderComponent {\n /**\n * The maximum value of the slider.\n *\n * @type {number}\n * @default 100\n */\n @Input() max = 100;\n\n /**\n * The minimum value of the slider.\n *\n * @type {number}\n * @default 0\n */\n @Input() min = 0;\n\n /**\n * A flag indicating whether the slider displays values as percentages.\n *\n * @type {boolean}\n * @default true\n */\n @Input() percentage = false;\n\n /**\n * A flag indicating whether the slider is disabled.\n *\n * @type {boolean}\n * @default true\n */\n @Input() disabled = false;\n\n /**\n * The starting value of the slider.\n *\n * @type {number}\n * @default 0\n */\n @Input() sliderStart = 0;\n\n /**\n * The ending value of the slider.\n *\n * @type {number}\n * @default 100\n */\n @Input() sliderEnd = 100;\n\n /**\n * The label for the slider.\n *\n * @type {string}\n * @default ''\n */\n @Input() label = '';\n\n /**\n * Show slider inputs.\n *\n * @type {boolean}\n * @default true\n */\n @Input() showInputs = true;\n\n /**\n * Step number.\n *\n * @type {number}\n * @default 1\n */\n @Input() step = 1;\n\n /**\n * The language to be used\n *\n * @property language\n * @type {Language}\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SliderComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the variant slider\n *\n * @type {SliderVariant}\n * @memberof SliderComponent\n */\n @Input() variant: SliderVariant = 'range';\n\n @Output() sliderValueChange = new EventEmitter<SliderValue>();\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 private value: SliderValue = { start: 0, end: 100 };\n protected translationContext = 'SLIDER.';\n protected touchedControlName = '';\n\n onChange = (_: any): void => {};\n onTouch = (): void => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.sliderStart = value.start;\n this.sliderEnd = value.end;\n }\n\n protected onValueChange(ev?: number): void {\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\n\n if (ev) {\n value.start = ev;\n value.end = 0;\n }\n\n this.value = value;\n this.onChange(value);\n this.sliderValueChange.emit(value);\n }\n\n protected onInputBlur(inputName: string): void {\n this.touchedControlName = inputName;\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\n\n if (!this.hasError && this.isValueChanged(value)) {\n this.onValueChange();\n }\n }\n\n protected onInputFocus(): void {\n this.touchedControlName = '';\n }\n\n private isValueChanged(value: SliderValue): boolean {\n return this.value.start !== value.start || this.value.end !== value.end;\n }\n\n get hasError(): boolean {\n return (\n this.max < +this.sliderEnd ||\n this.min > +this.sliderStart ||\n this.min > +this.sliderEnd ||\n this.max < +this.sliderStart ||\n +this.sliderEnd < +this.sliderStart\n );\n }\n\n get isBasicSlider(): boolean {\n return this.variant === 'basic';\n }\n}\n","<ng-container>\n <div class=\"slider-container\" [attr.theme]=\"applicationTheme\" [ngClass]=\"{ disabled: disabled, error: hasError && touchedControlName }\">\n <div class=\"slider-label\" *ngIf=\"label\">{{ label }}</div>\n\n <div class=\"slider\">\n <div class=\"min-value\" *ngIf=\"!isBasicSlider\">{{ percentage ? min + '%' : min }}</div>\n <mat-slider\n [disableRipple]=\"applicationTheme !== 'classic'\" #sliderElement discrete [disabled]=\"disabled\" [max]=\"max\" [min]=\"min\" [step]=\"step\" (mouseenter)=\"sliderElement.discrete = true\" (mouseleave)=\"sliderElement.discrete = false\">\n <ng-container *ngIf=\"isBasicSlider; else rangeTemplate\">\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n [(ngModel)]=\"sliderStart\"\n matSliderThumb\n >\n </ng-container>\n\n <ng-template #rangeTemplate>\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange()\"\n [(ngModel)]=\"sliderStart\"\n matSliderStartThumb\n >\n <input\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange()\"\n [(ngModel)]=\"sliderEnd\"\n matSliderEndThumb\n >\n\n </ng-template>\n </mat-slider>\n <div class=\"max-value\" *ngIf=\"!isBasicSlider\">{{ percentage ? max + '%' : max }}</div>\n </div>\n\n <div class=\"slider-input\" *ngIf=\"showInputs && !this.isBasicSlider\">\n <mat-form-field [appearance]=\"'outline'\">\n <mat-label>{{ ('COMMON.MIN') | uiTranslate : language }} <span *ngIf=\"percentage\">%</span></mat-label>\n <input\n matInput\n [type]=\"'number'\"\n [(ngModel)]=\"sliderStart\"\n [disabled]=\"disabled\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur('start')\"\n (keydown.enter)=\"onInputBlur('start')\"\n >\n </mat-form-field>\n\n <mat-form-field [appearance]=\"'outline'\">\n <mat-label>{{ ('COMMON.MAX') | uiTranslate : language }} <span *ngIf=\"percentage\">%</span></mat-label>\n <input\n matInput\n [disabled]=\"disabled\"\n [type]=\"'number'\"\n [(ngModel)]=\"sliderEnd\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur('end')\"\n (keydown.enter)=\"onInputBlur('end')\"\n >\n </mat-form-field>\n </div>\n\n <mat-error *ngIf=\"hasError && touchedControlName\">\n <div class=\"validation-error\" *ngIf=\"touchedControlName === 'start' && sliderStart > sliderEnd\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ (translationContext + 'MIN_MORE_THAN_MAX') | uiTranslate : language : { min: sliderStart, max: sliderEnd } }}</span>\n </div>\n\n <div class=\"validation-error\" *ngIf=\"touchedControlName === 'end' && sliderStart > sliderEnd\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ (translationContext + 'MAX_LESS_THAN_MIN') | uiTranslate : language : { min: sliderStart, max: sliderEnd } }}</span>\n </div>\n\n <div class=\"validation-error\" *ngIf=\"sliderStart < min\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ ('COMMON.MIN') | uiTranslate : language }} {{ min }}</span>\n </div>\n <div class=\"validation-error\" *ngIf=\"sliderEnd > max\">\n <ui-icon [name]=\"'Info'\"></ui-icon>\n <span>{{ ('COMMON.MAX') | uiTranslate : language }} {{ max }}</span>\n </div>\n </mat-error>\n </div>\n</ng-container>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SliderComponent } from './slider.component';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [SliderComponent],\n imports: [\n CommonModule,\n MatSliderModule,\n FormsModule,\n MatInputModule,\n MatTooltipModule,\n IconComponentModule,\n UiTranslatePipe,\n ],\n exports: [SliderComponent],\n})\nexport class SliderComponentModule {}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n TemplateRef\n} from '@angular/core';\nimport {\n ConnectedPosition,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipPositionType } from \"./tooltip.model\";\n\n@Directive({\n selector: '[uiTooltipTemplate]',\n standalone: true,\n})\nexport class TooltipTemplateDirective implements OnChanges, OnDestroy {\n @Input() tooltipPosition: TooltipPositionType = TooltipPositionType.RIGHT;\n @Input() showTooltip = true;\n @Input('uiTooltipTemplate') templateRef: TemplateRef<any>;\n\n private _overlayRef: OverlayRef;\n\n constructor(\n private _overlay: Overlay,\n private _overlayPositionBuilder: OverlayPositionBuilder,\n private _elementRef: ElementRef,\n ) {\n }\n\n ngOnChanges(): void {\n this.setPosition(this.tooltipPosition);\n }\n\n @HostListener('mouseenter')\n show() {\n if (!this.showTooltip) {\n return;\n }\n\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef<TooltipComponent> = this._overlayRef.attach(new ComponentPortal(TooltipComponent));\n tooltipRef.instance.templateRef = this.templateRef;\n tooltipRef.instance.position = this.tooltipPosition;\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.closeToolTip();\n }\n\n ngOnDestroy() {\n this.closeToolTip();\n }\n\n private closeToolTip() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n private setPosition(position: TooltipPositionType) {\n const positions: Record<string, ConnectedPosition> = {\n [TooltipPositionType.TOP]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -8,\n panelClass: TooltipPositionType.TOP\n },\n [TooltipPositionType.BOTTOM]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 8,\n panelClass: TooltipPositionType.BOTTOM\n },\n [TooltipPositionType.LEFT]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n offsetY: 0,\n panelClass: TooltipPositionType.LEFT\n },\n [TooltipPositionType.RIGHT]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n offsetY: 0,\n panelClass: TooltipPositionType.RIGHT\n }\n };\n\n const fallbackPositions = {\n [TooltipPositionType.TOP]: positions[TooltipPositionType.BOTTOM],\n [TooltipPositionType.BOTTOM]: positions[TooltipPositionType.TOP],\n [TooltipPositionType.LEFT]: positions[TooltipPositionType.RIGHT],\n [TooltipPositionType.RIGHT]: positions[TooltipPositionType.BOTTOM]\n };\n\n const positionConfig = positions[position];\n\n const fallbackPositionConfig = fallbackPositions[position];\n\n const positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(this._elementRef)\n .withPositions([positionConfig, fallbackPositionConfig])\n .withPush(true);\n\n this._overlayRef = this._overlay.create({ positionStrategy });\n }\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { SegmentedBar, SegmentedBarVariant, SegmentedBarWithPercentage } from './segmented-bar.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-segmented-bar',\n templateUrl: './segmented-bar.component.html',\n styleUrls: ['./segmented-bar.component.scss'],\n})\nexport class SegmentedBarComponent {\n /**\n * The width of the segmented bar. Defaults to '100%'.\n * You can use '100%' or '100px' for this field. 100 is just an example\n * @default '100%'\n * @type {string}\n * @memberof SegmentedBarComponent\n */\n @Input() width = '100%';\n\n /**\n * The size variant of the segmented bar. Can be 'small' or 'large'.\n * Defaults to 'large'.\n * @default 'large'\n * @type {SegmentedBarVariant}\n * @memberof SegmentedBarComponent\n */\n @Input() size: SegmentedBarVariant = 'large';\n\n /**\n * The segments to be displayed in the segmented bar.\n * @required true\n * @type {SegmentedBar}\n * @memberof SegmentedBarComponent\n */\n @Input({ required: true }) set segments(segments: SegmentedBar[]) {\n this.segmentList = this.calculatePercentages(segments);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SegmentedBarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof SegmentedBarComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof SegmentedBarComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Groups the tooltips into one template\n *\n * @type {boolean}\n * @memberof SegmentedBarComponent\n */\n @Input() tooltipStats = false;\n\n segmentList: SegmentedBarWithPercentage[] = [];\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 calculatePercentages(segments: SegmentedBar[]): SegmentedBarWithPercentage[] {\n const total = segments.reduce((sum, segment) => sum + segment.value, 0);\n return segments.map(segment => {\n let percentage = (segment.value / total) * 100;\n let percentageLabel = '';\n\n if (percentage === 0) {\n percentageLabel = '0%';\n } else if (percentage > 0 && percentage < 1) {\n percentageLabel = '>1%';\n } else {\n percentageLabel = `${Math.ceil(percentage)}%`;\n }\n\n return { ...segment, percentage: percentageLabel };\n });\n }\n}\n","<div\n class=\"segmented-bar-container\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"'segment-size-' + size\"\n [style.width]=\"width\"\n [uiTooltipTemplate]=\"segmentedStats\"\n [showTooltip]=\"tooltipStats\"\n>\n <ng-container *ngFor=\"let segment of segmentList\">\n <div\n class=\"segmented-bar\"\n *ngIf=\"segment.value\"\n [ngClass]=\"segment.color\"\n [ngStyle]=\"{ flex: segment.value }\"\n [matTooltip]=\"!tooltipStats ? segment.tooltip ?? '' : ''\"\n [matTooltipClass]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"segment.icon\" [applicationTheme]=\"applicationTheme\" [name]=\"segment.icon\"></ui-icon>\n <span>{{ segment.value }}</span>\n </div>\n </ng-container>\n</div>\n<ng-template #segmentedStats>\n <div class=\"stats-container\">\n <div class=\"name-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <div [class]=\"'point ' + segment.color\"></div>\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\n </div>\n </div>\n\n <div class=\"value-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.value }}</span>\n </div>\n </div>\n\n <div class=\"percentage-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.percentage }}</span>\n </div>\n </div>\n\n </div>\n</ng-template>\n\n<ng-template #segmentedStats>\n <div class=\"stats-container\">\n <div class=\"name-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <div [class]=\"'point ' + segment.color\"></div>\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\n </div>\n </div>\n\n <div class=\"value-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.value }}</span>\n </div>\n </div>\n\n <div class=\"percentage-column\">\n <div *ngFor=\"let segment of segmentList\" class=\"segment\">\n <span>{{ segment.percentage }}</span>\n </div>\n </div>\n\n </div>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { SegmentedBarComponent } from './segmented-bar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from '@angular/material/input';\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { TooltipTemplateDirective } from \"../tooltip/tooltip-template.directive\";\nimport { TooltipComponentModule } from \"../tooltip/tooltip.component.module\";\n\n@NgModule({\n declarations: [SegmentedBarComponent],\n imports: [CommonModule, MatTooltipModule, MatInputModule, IconComponentModule, TooltipComponentModule, TooltipTemplateDirective],\n exports: [SegmentedBarComponent],\n})\nexport class SegmentedBarComponentModule {}\n","import { booleanAttribute, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output } from '@angular/core';\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { Observable } from 'rxjs';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n})\nexport class PageHeaderComponent {\n /**\n * Flag to determine whether the \"Back\" button should be displayed.\n * @default true\n * @memberof PageHeaderComponent\n */\n @Input({ transform: booleanAttribute }) showBackButton = true;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PageHeaderComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Back button tooltip for mobile variation\n * @property tooltip\n * @memberof PageHeaderComponent\n */\n @Input() tooltip = 'COMMON.BACK';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PageHeaderComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Event triggered when the \"Back\" button is clicked.\n * @memberof PageHeaderComponent\n */\n @Output() back = new EventEmitter<void>();\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected onBack(): void {\n this.back.emit();\n }\n}\n","<ng-container>\n <div class=\"page-header-container\">\n <div class=\"page-header-content\">\n <ng-container *ngIf=\"!(isMobile$ | async) else mobile\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"showBackButton\"\n (click)=\"onBack()\"\n [variant]=\"'ghost'\"\n [justIcon]=\"true\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\n ></ui-button>\n </ng-container>\n\n <ng-template #mobile>\n <ui-button\n [applicationTheme]=\"applicationTheme\" class=\"mobile-back-btn\" [tooltip]=\"('COMMON.BACK') | uiTranslate : language\"\n [variant]=\"'icon-button'\"\n (click)=\"onBack()\"\n [justIcon]=\"true\"\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\n ></ui-button>\n </ng-template>\n\n <div class=\"main-content\" [ngClass]=\"{ 'remove-margin': !showBackButton }\">\n <ng-content select=\"[content]\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n </div>\n </div>\n </div>\n\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PageHeaderComponent } from './page-header.component';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [CommonModule, ButtonComponentModule, UiTranslatePipe],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { DividerSize } from './divider.model';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent {\n /**\n * Divider size\n *\n * @type {DividerSize}\n * @memberof DividerComponent\n */\n @Input() size: DividerSize = 'large';\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @HostBinding('style.--companyColor')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DividerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Text content in the center of the divider\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @Input() label = '';\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","<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DividerComponent } from './divider.component';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@NgModule({\n declarations: [DividerComponent],\n exports: [DividerComponent],\n imports: [CommonModule, MatDividerModule],\n})\nexport class DividerComponentModule {}\n","import {\n booleanAttribute,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { Tab, TabsType } from \"./tabs.model\";\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\nimport { Observable } from 'rxjs';\nimport { MatTab, MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'ui-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss']\n})\nexport class TabsComponent {\n /**\n * Color of the Tabs.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof TabsComponent\n */\n @HostBinding('style.--color')\n @Input() companyColor: string | null = '#46A997';\n /**\n * Type the Tabs.\n * Defaults underlined.\n *\n * @type {TabsType}\n * @memberof TabsComponent\n */\n @Input() type: TabsType = 'underlined';\n\n /**\n * Animation duration when switching tabs\n *\n * @type {number}\n * @memberof TabsComponent\n */\n @Input() animationDuration = 300;\n\n /**\n * Sets the padding for content and header\n *\n * @type {number}\n * @memberof TabsComponent\n */\n @HostBinding('style.--header-content-padding')\n @Input({ transform: (value: number): string => value + 'px' })\n headerContentPadding = '32px';\n\n /**\n * Sets the dynamic height of the tab\n * @type {boolean}\n * @memberof TabsComponent\n */\n @Input({transform: booleanAttribute}) dynamicHeight = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TabsComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() selectedTabIndex = new EventEmitter<number>();\n @Output() selectedTab = new EventEmitter<Tab>();\n\n @ViewChild('tabGroup', { static: true }) tabGroup: MatTabGroup;\n\n protected tabs: Tab[] = [];\n readonly tabIndex = signal(0);\n protected tabIndexMap: Record<string, number> = {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const tabHeader = (this.tabGroup as any)._tabHeader;\n tabHeader._handleKeydown = async (event: KeyboardEvent) => {\n if (hasModifierKey(event)) {\n return;\n }\n switch (event.keyCode) {\n case ENTER:\n case SPACE:\n const tabLabel = (event.target as HTMLElement).innerText;\n const currentTab = this.tabs[this.tabIndex()];\n const nextTab = this.tabs.find(tab => tab.tabLabel === tabLabel);\n\n if (!nextTab) {\n return;\n }\n\n const canLeave = (await currentTab.canLeave?.({currentTab, nextTab})) ?? true;\n if (currentTab.tabName !== nextTab.tabName && canLeave) {\n const nextTabIndex = this.tabIndexMap[nextTab.tabName];\n tabHeader.focusIndex = nextTabIndex;\n this.tabGroup.selectedIndex = nextTabIndex;\n }\n break;\n default:\n tabHeader._keyManager.onKeydown(event);\n }\n };\n\n (this.tabGroup as any)._handleClick = async (\n tab: MatTab,\n tabHeader: any,\n index: number\n ) => {\n const currentIndex = this.tabGroup.selectedIndex;\n if (tab.disabled || currentIndex === undefined || index === currentIndex) {\n return;\n }\n const currentTab = this.tabs[this.tabIndex()];\n const nextTab = this.tabs[index];\n const canLeave = (await currentTab.canLeave?.({currentTab, nextTab})) ?? true;\n if (this.tabGroup.selectedIndex != index && canLeave) {\n tabHeader.focusIndex = index;\n this.tabGroup.selectedIndex = index;\n }\n };\n });\n }\n\n addTab(tab: Tab): void {\n this.tabs.push(tab);\n this.tabs.forEach((v, index) => this.tabIndexMap[v.tabName] = index);\n }\n\n onTabChange(ev: MatTabChangeEvent): void {\n const selectedTab = this.tabs[ev.index];\n this.tabIndex.set(this.tabIndexMap[selectedTab.tabName]);\n this.selectedTabIndex.emit(ev.index);\n this.selectedTab.emit(selectedTab);\n }\n\n selectTab(tabName: string): void {\n const index = this.tabIndexMap[tabName];\n if (index !== undefined) {\n this.tabIndex.set(index);\n this.selectedTabIndex.emit(index);\n this.selectedTab.emit(this.tabs[index]);\n }\n }\n\n indexOf(tabName: string): number {\n return this.tabIndexMap[tabName] ?? -1;\n }\n\n trackByTabName(index: number, tab: Tab): string {\n return tab.tabName;\n }\n\n removeTab(tabName: string): void {\n const index = this.tabIndexMap[tabName];\n if (index !== undefined) {\n this.tabs.splice(index, 1);\n delete this.tabIndexMap[tabName];\n this.tabs.forEach((v, index) => this.tabIndexMap[v.tabName] = index);\n }\n }\n}\n","<mat-tab-group\n #tabGroup\n headerPosition=\"above\"\n class=\"tabs-container\"\n [ngClass]=\"'tabs-type-' + ((isMobile$ | async) ? 'underlined' : type)\"\n [attr.theme]=\"applicationTheme\"\n [dynamicHeight]=\"dynamicHeight\"\n [selectedIndex]=\"tabIndex()\"\n [animationDuration]=\"animationDuration\"\n (selectedTabChange)=\"onTabChange($event)\"\n>\n <mat-tab *ngFor=\"let tab of tabs; trackBy: trackByTabName\" [disabled]=\"tab.disabled ?? false\">\n <ng-template mat-tab-label>\n <a class=\"tab-name\" [tabindex]=\"0\" [href]=\"tab?.linkUrl ? tab.linkUrl : '#' \" (click)=\"$event.preventDefault()\">\n <ui-icon [size]=\"'24'\" [tabindex]=\"1\" class=\"left-icon\" [name]=\"tab.iconLeft!\" *ngIf=\"tab?.iconLeft\"></ui-icon>\n <span class=\"label\">{{ tab.tabLabel }}</span>\n <ui-icon [size]=\"'24'\" [tabindex]=\"2\" class=\"right-icon\" [name]=\"tab.iconRight!\" *ngIf=\"tab?.iconRight\"></ui-icon>\n </a>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplateRef\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import { booleanAttribute, Directive, Host, Input, OnChanges, OnDestroy, TemplateRef } from '@angular/core';\nimport { TabsComponent } from \"./tabs.component\";\nimport { IconName } from '../icon/icon.model';\nimport { Tab } from './tabs.model';\n\n@Directive({\n selector: '[uiTab]'\n})\nexport class TabDirective implements OnChanges, OnDestroy {\n @Input({ required: true }) tabLabel: string;\n @Input({ required: true }) tabName: string;\n @Input() iconLeft: IconName;\n @Input() iconRight: IconName;\n @Input({ transform: booleanAttribute }) disabled: boolean;\n @Input() canLeave?: (ctx?: {currentTab: Tab, nextTab: Tab}) => boolean | Promise<boolean>;\n @Input() linkUrl?: string;\n\n constructor(\n @Host() private tabsComponent: TabsComponent,\n private template: TemplateRef<any>,\n ) {\n }\n\n ngOnChanges(): void {\n this.addTab();\n }\n\n private addTab(): void {\n this.tabsComponent.addTab({\n tabLabel: this.tabLabel,\n tabName: this.tabName,\n iconLeft: this.iconLeft,\n iconRight: this.iconRight,\n disabled: this.disabled,\n contentTemplateRef: this.template,\n canLeave: this.canLeave,\n linkUrl: this.linkUrl,\n })\n }\n\n ngOnDestroy(): void {\n this.tabsComponent.removeTab(this.tabName);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './tabs.component';\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { IconComponentModule } from \"../icon/icon.component.module\";\nimport { TabDirective } from './tab.directive';\n\n\n\n@NgModule({\n declarations: [\n TabsComponent,\n TabDirective\n ],\n imports: [\n CommonModule,\n MatTabsModule,\n IconComponentModule\n ],\n exports: [TabsComponent, TabDirective]\n})\nexport class TabsComponentModule { }\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter, Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IconName } from '../icon/icon.model';\nimport { OverflowMenuButtonsType } from './overflow-menu.model';\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\n\n@Component({\n selector: 'ui-overflow-menu',\n templateUrl: './overflow-menu.component.html',\n styleUrls: ['./overflow-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class OverflowMenuComponent implements OnInit {\n /**\n * Menu buttons\n *\n * @type {OverflowMenuButtonsType[]}\n * @memberof OverflowMenuComponent\n */\n @Input() buttons: OverflowMenuButtonsType[];\n\n /**\n * Menu icon trigger\n *\n * @memberof OverflowMenuComponent\n */\n @Input() iconTrigger: IconName = 'Menu-ellipsis';\n\n /**\n * Label menu\n *\n * @memberof OverflowMenuComponent\n */\n @Input() menuLabel = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof OverflowMenuComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof OverflowMenuComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof OverflowMenuComponent\n */\n @Input() ariaRequired = false;\n\n @Output() selectItem: EventEmitter<string> = new EventEmitter<string>();\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 ngOnInit(): void {}\n\n onSelectItem(event: Event, value: string) {\n if (!!value) {\n this.selectItem.emit(value);\n }\n }\n}\n","<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <ui-button\n [matMenuTriggerFor]=\"menu\"\n [label]=\"menuLabel\"\n [variant]=\"'menuTrigger'\"\n [size]=\"applicationTheme === 'classic' ? 'small' : 'big'\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n (keydown.tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [applicationTheme]=\"applicationTheme\"\n [ariaLabel]=\"ariaLabel\"\n [ariaRequired]=\"ariaRequired\"\n class=\"overflow-menu-opener\"\n ></ui-button>\n <mat-menu #menu=\"matMenu\" class=\"overflow-menu\" [overlapTrigger]=\"false\" backdropClass=\"overflow-menu-backdrop\">\n <ng-container *ngFor=\"let button of buttons\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"button.icon\"\n [label]=\"button.label\"\n [value]=\"button.value\"\n (buttonClickEvent)=\"onSelectItem($event, button.value)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"ariaLabel + '--' + button.label\"\n [ngClass]=\"{'destructive': !!button.isDestructive} \"\n [disabled]=\"button.disabled ?? false\"\n ></ui-button>\n </ng-template>\n </ng-container>\n\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ButtonComponentModule } from '../button/button.component.module';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { OverflowMenuComponent } from './overflow-menu.component';\n\n@NgModule({\n declarations: [OverflowMenuComponent],\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, MatMenuModule],\n exports: [OverflowMenuComponent],\n})\nexport class OverflowMenuComponentModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output\n} from '@angular/core';\nimport { SegmentedButton } from './segmented-button.model';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ApplicationTheme } from '../../models/application-theme.model';\n\n@Component({\n selector: 'ui-segmented-button',\n templateUrl: './segmented-button.component.html',\n styleUrls: ['./segmented-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButtonComponent implements ControlValueAccessor {\n /**\n * Input property to set the buttons for the segmented button.\n * @type SegmentedButton\n * @memberof SegmentedButtonComponent\n */\n @Input({ required: true }) buttonConfig: SegmentedButton[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof SegmentedButtonComponent\n */\n @Input() disabled = false;\n\n /**\n * Indicator of the Segmented Button width\n *\n * @memberof SegmentedButtonComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Selected button\n *\n * @memberof SegmentedButtonComponent\n */\n @Input() set value(v: any) {\n this._value = v;\n this.onChange(v);\n }\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SegmentedButtonComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n @Output() buttonSelected = new EventEmitter<any>();\n\n protected _value: any;\n\n get value(): any {\n return this._value;\n }\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 onChange = (v: any) => {};\n onTouch = () => {};\n\n writeValue(obj: any): void {\n this.value = obj;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n manualChangeValue({ value }: any) {\n this.value = value;\n this.buttonSelected.emit(value);\n }\n}\n","<mat-button-toggle-group\n class=\"segmented-button-container\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ disabled, 'full-width': fullWidth }\"\n [value]=\"value\"\n (change)=\"manualChangeValue($event)\"\n>\n <mat-button-toggle\n [disableRipple]=\"true\"\n *ngFor=\"let button of buttonConfig\"\n [value]=\"button.value\"\n [ngClass]=\"{ disabled: button.disabled }\"\n [matTooltip]=\"button.tooltip ?? ''\"\n >\n <ng-container *ngIf=\"button.template; else label\" [ngTemplateOutlet]=\"button.template\"></ng-container>\n <ng-template #label>{{ button.label }}</ng-template>\n </mat-button-toggle>\n</mat-button-toggle-group>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SegmentedButtonComponent } from './segmented-button.component';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { FormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [SegmentedButtonComponent],\n exports: [SegmentedButtonComponent],\n imports: [CommonModule, MatButtonToggleModule, FormsModule, MatTooltipModule],\n})\nexport class SegmentedButtonComponentModule {}\n","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ui-password-criteria',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordComponent implements ControlValueAccessor {\n /**\n * The language to be used\n *\n * @type {Language}\n * @memberof PasswordComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * Show criteria for password. Defaults true\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() showCriteria = true;\n\n /**\n * Password is required or not\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() required = false;\n\n @Output() passwordChange = new EventEmitter<string>();\n\n @Output() allCriteriaPassed = new EventEmitter<boolean>();\n\n protected formControl = new FormControl('', Validators.required);\n protected criteriaPassed: { [key: string]: boolean } = {};\n protected showError: boolean;\n protected progressValue: number;\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(private readonly destroyRef: DestroyRef) {\n this.formControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.checkCriteria();\n });\n }\n\n checkCriteria(): void {\n const password = this.formControl.value ?? '';\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.passwordChange.emit(password);\n this.allCriteriaPassed.emit(passedCount === Object.keys(this.criteriaPassed).length);\n this.onChange(password);\n }\n\n countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n onChange = (v: any) => {};\n onTouch = () => {};\n\n writeValue(obj: any): void {\n this.formControl.setValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<div class=\"password-criteria-container\">\n\n <ui-field [applicationTheme]=\"'dark'\"\n [formControl]=\"formControl\"\n [type]=\"'password'\"\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate : language) + (required ? ' *' : '')\"\n (keydown.enter)=\"showError = true\"\n (focusout)=\"showError = true\"\n ></ui-field>\n\n <div class=\"criteria-container\" *ngIf=\"showCriteria\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\n applicationTheme=\"dark\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate : language }}</span>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordComponent } from './password.component';\nimport { FieldComponentModule } from '../field/field.component.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PasswordComponent],\n exports: [PasswordComponent],\n imports: [\n CommonModule,\n FieldComponentModule,\n ReactiveFormsModule,\n IconComponentModule,\n ProgressBarComponentModule,\n UiTranslatePipe,\n ],\n})\nexport class PasswordComponentModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'joinStrings' })\nexport class JoinStringsPipe implements PipeTransform {\n transform(value: string[], separator?: string): string {\n return value.filter(Boolean).join(separator ? separator : ' - ');\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatInput } from '@angular/material/input';\nimport { MatSelect } from '@angular/material/select';\nimport { parsePhoneNumber } from 'libphonenumber-js';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n delay,\n filter,\n first,\n map,\n Observable,\n startWith,\n Subject,\n take,\n tap,\n} from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { UICountry } from './phone-input.model';\n\n@Component({\n selector: 'ui-phone-input',\n templateUrl: './phone-input.component.html',\n styleUrls: ['./phone-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n useValue: { overlayPanelClass: 'phone-number-autocomplete' },\n },\n ],\n})\nexport class PhoneInputComponent implements OnInit, OnDestroy, ControlValueAccessor, DoCheck {\n /**\n * Phone number\n *\n * @type {string}\n * @memberof PhoneInputComponent\n */\n @Input()\n set value(value: string) {\n this.initialValue = this.initialValue || value;\n try {\n const parsed = parsePhoneNumber(value);\n const formatted = parsed.formatInternational();\n this.selectedCountry = this.getCountryByAlpha2Code(parsed.country!) || this.selectedCountry;\n this.form.patchValue({ phone_number: formatted.replace(this.selectedCountry.callingCode, '') });\n } catch (err) {\n if (value?.length <= 4) {\n this.selectedCountry = this.getCountryByCallingCode(value) || this.selectedCountry;\n }\n this.form.patchValue({ phone_number: value?.replace(this.selectedCountry?.callingCode, '') });\n }\n this.stateChanges.next();\n }\n\n /**\n * Country list for select\n *\n * @type {UICountry[]}\n * @memberof PhoneInputComponent\n */\n @Input() set countryList(countryList: UICountry[]) {\n this.loadCountries$.next(countryList);\n this.selectedCountry = this.selectedCountry ?? countryList[0];\n }\n\n /**\n * Placeholder input\n *\n * @type {text}\n * @memberof PhoneInputComponent\n */\n @Input()\n set placeholder(value: string) {\n this.internalPlaceholder = value;\n this.stateChanges.next();\n }\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @HostBinding('attr.disabled')\n @Input()\n disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @Input() required: boolean;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PhoneInputComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Indicator of the phone input width\n * @property fullWidth\n * @type {boolean}\n * @memberof PhoneInputComponent\n */\n @Input() fullWidth = false;\n\n _errors: SafeHtml[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof PhoneInputComponent\n */\n @Input() set errors(errors: string[]) {\n if (errors) {\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\n this.errorsLength = this.setErrorsLength();\n }\n }\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof PhoneInputComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof PhoneInputComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PhoneInputComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n static nextId = 0;\n\n private countries = new BehaviorSubject<UICountry[]>([]);\n protected countries$ = this.countries.asObservable();\n form: UntypedFormGroup = this.fb.group({\n phone_number: new UntypedFormControl(),\n });\n protected controlType = 'phone-number';\n protected userAriaDescribedBy?: string;\n protected loadCountries$ = new BehaviorSubject<UICountry[]>([]);\n protected countryCode = new BehaviorSubject<string>('US');\n protected stateChanges = new Subject<void>();\n protected focused: boolean;\n protected selectFilterCtrl = new UntypedFormControl('');\n protected errorsLength: boolean;\n protected readonly countryFlagSrc = 'assets/svg-country-flags/';\n\n @ViewChild(MatInput, { read: ElementRef, static: true })\n public input: ElementRef<HTMLElement>;\n @ViewChild(MatSelect, { read: ElementRef, static: true })\n public select: ElementRef<HTMLElement>;\n\n @HostBinding()\n id = `phone-number${PhoneInputComponent.nextId++}`;\n\n @HostBinding('class.floated')\n get shouldLabelFloat(): boolean {\n return true;\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n\n get empty(): boolean {\n return !!this.form.value;\n }\n\n get errorState(): boolean {\n return this.errorMatcher.isErrorState(this.ngControl.control as UntypedFormControl, null);\n }\n\n get value(): string {\n return this.getNumberWithCountryCode();\n }\n\n get placeholder() {\n return this.internalPlaceholder;\n }\n\n private initialValue: string;\n private readonly DEFAULT_COUNTRY_CODE = 'US';\n private internalPlaceholder: string;\n protected selectedCountry: UICountry;\n private unsubscribeAll$ = new Subject<void>();\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n private errorMatcher: ErrorStateMatcher,\n private fb: UntypedFormBuilder,\n private focusMonitor: FocusMonitor,\n private ref: ChangeDetectorRef,\n private sanitizer: DomSanitizer,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.ref.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.loadCountries();\n this.preSelectCountry();\n this.subscribeToFocusEvents();\n }\n\n setErrorsLength(): boolean {\n if (!!this._errors) {\n return this._errors.filter(err => !!err).length > 0;\n }\n return false;\n }\n\n setDescribedByIds(ids: string[]): void {\n this.userAriaDescribedBy = ids.join(' ');\n }\n\n onChange: (value: string) => void;\n onTouch: () => void;\n\n writeValue(phoneNumber: string): void {\n if (phoneNumber) {\n this.value = phoneNumber;\n }\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n this.disabled = isDisabled;\n this.stateChanges.next();\n this.ref.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.input);\n this.focusMonitor.stopMonitoring(this.select);\n this.stateChanges.complete();\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n onOptionsSelected(value: UICountry) {\n this.setCountry(value);\n }\n\n onInput(value: string) {\n this.value = (this.selectedCountry?.callingCode ?? '') + value;\n this.onChange(this.value);\n }\n\n filteredCountryTrackByMethod(index: number, el: UICountry): string {\n return el.alpha2Code;\n }\n\n private getNumberWithCountryCode() {\n const nationalNumber = this.form.value?.phone_number as string;\n return nationalNumber ? (this.selectedCountry?.callingCode ?? '') + nationalNumber : '';\n }\n\n private subscribeToFocusEvents() {\n const selectAndInputFocus$ = combineLatest([\n this.focusMonitor.monitor(this.select),\n this.focusMonitor.monitor(this.input),\n ]).pipe(takeUntil(this.unsubscribeAll$), debounceTime(10));\n\n selectAndInputFocus$.subscribe(([selectFocus, inputFocus]) => {\n this.focused = !!(selectFocus || inputFocus);\n this.stateChanges.next();\n });\n\n selectAndInputFocus$.pipe(take(1)).subscribe(() => {\n this.onTouch();\n });\n }\n\n private preSelectCountry() {\n this.setDisabledState(true);\n combineLatest([\n this.countries$.pipe(\n filter(countries => countries.length > 0),\n first()\n ),\n this.countryCode,\n ])\n .pipe(\n map(([countries, selectedCountry]) => {\n if (!this.initialValue) {\n const country =\n this.getCountryByAlpha2Code(selectedCountry) || this.getCountryByAlpha2Code(this.DEFAULT_COUNTRY_CODE);\n this.setCountry(country as UICountry);\n } else {\n this.value = this.initialValue;\n }\n\n this.setDisabledState(false);\n this.ref.markForCheck();\n })\n )\n .subscribe();\n }\n\n private setCountry(country: UICountry | null): void {\n if (country) {\n this.selectedCountry = country;\n }\n this.value = this.getNumberWithCountryCode();\n }\n\n private getCountryByAlpha2Code(alpha2Code: string) {\n return this.countries.value.find(country => country.alpha2Code === alpha2Code);\n }\n\n private getCountryByCallingCode(callingCode: string) {\n return this.countries.value.find(country => country.callingCode === callingCode);\n }\n\n private loadCountries(): void {\n const searchText$: Observable<string> = this.selectFilterCtrl.valueChanges.pipe(debounceTime(100), startWith(''));\n\n combineLatest([this.loadCountries$, searchText$])\n .pipe(\n takeUntil(this.unsubscribeAll$),\n tap(([countries, searchText]) => {\n const searchTextLowerCase = searchText.toLowerCase();\n const filteredCountries = countries\n .filter(\n option =>\n option.name.toLowerCase().includes(searchTextLowerCase) ||\n option.alpha2Code.toLowerCase().includes(searchTextLowerCase) ||\n option.callingCode.toLowerCase().includes(searchTextLowerCase)\n )\n .sort((optionA, optionB) => (optionB.name.startsWith(searchText) ? 1 : -1));\n this.countries.next(filteredCountries);\n }),\n delay(1),\n tap(() => {\n const countryFound = this.getCountryByAlpha2Code(this.selectedCountry?.alpha2Code);\n this.selectedCountry = countryFound || this.selectedCountry;\n this.ref.markForCheck();\n })\n )\n .subscribe();\n }\n\n disableClick(ev: Event) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\n}\n","<mat-form-field\n [formGroup]=\"form\"\n appearance=\"outline\"\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\n [ngClass]=\"{ disabled: form.disabled || disabled, 'full-width': fullWidth }\"\n>\n <mat-label>{{ 'COMMON.PHONE_NUMBER' | uiTranslate : language }} <span *ngIf=\"required\">*</span></mat-label>\n\n <div matPrefix class=\"country\">\n <button class=\"selected-flag\" matPrefix *ngIf=\"selectedCountry\">\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + selectedCountry?.alpha2Code?.toLowerCase() + '.svg'\"\n [alt]=\"'Country flag ' + selectedCountry?.alpha2Code?.toLowerCase()\">\n </button>\n <mat-select\n #select\n (selectionChange)=\"onOptionsSelected($event.value)\"\n [value]=\"selectedCountry\"\n [disableOptionCentering]=\"true\"\n [panelClass]=\"'phone-number-select' + ' ' + applicationTheme\"\n [ngClass]=\"{ opened: select.panelOpen }\"\n >\n <mat-select-trigger>{{ selectedCountry?.callingCode }}</mat-select-trigger>\n <mat-option>\n <ngx-mat-select-search\n [formControl]=\"selectFilterCtrl\"\n ngDefaultControl\n placeholderLabel=\"\"\n noEntriesFoundLabel=\"\"\n >\n <ui-icon ngxMatSelectSearchClear size=\"24\" [name]=\"'Close-in-line'\"></ui-icon>\n </ngx-mat-select-search>\n </mat-option>\n <mat-option *ngFor=\"let country of countries$ | async; trackBy: filteredCountryTrackByMethod\" [value]=\"country\">\n <div class=\"country-option\">\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + country?.alpha2Code?.toLowerCase()! + '.svg'\"\n [alt]=\"'Country flag ' + country?.alpha2Code?.toLowerCase()!\">\n <small>{{ $any([country?.name, '(' + country?.callingCode + ')']) | joinStrings : ' ' }}</small>\n </div>\n </mat-option>\n </mat-select>\n </div>\n\n <input\n (input)=\"onInput(form.get('phone_number')!.value)\"\n formControlName=\"phone_number\"\n (click)=\"disableClick($event)\"\n [ngStyle]=\"{ opacity: disabled ? 0.5 : 1 }\"\n [required]=\"required\"\n matInput\n type=\"text\"\n />\n\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n </ng-container>\n\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : ('COMMON.PHONE_NUMBER' | uiTranslate : language)\" [language]=\"language\"></ui-validation-error>\n\n </mat-hint>\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PhoneInputComponent } from './phone-input.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatIconModule } from '@angular/material/icon';\nimport { JoinStringsPipe } from './join-strings.pipe';\nimport { MatInputModule } from '@angular/material/input';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { SpinnerComponentModule } from '../spinner/spinner.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\n\n@NgModule({\n declarations: [PhoneInputComponent, JoinStringsPipe],\n exports: [PhoneInputComponent],\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatIconModule,\n MatInputModule,\n NgxMatSelectSearchModule,\n IconComponentModule,\n SpinnerComponentModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n})\nexport class PhoneInputComponentModule {}\n","export enum Color {\n // Teal colors\n TGO_TEAL_60B = '#1C443C',\n TGO_TEAL_30B = '#31766A',\n TGO_TEAL_DEFAULT = '#46A997',\n TGO_TEAL_30W = '#7EC3B6',\n TGO_TEAL_60W = '#B5DDD5',\n TGO_TEAL_SECONDARY = '#CBD6CB',\n TGO_TEAL_90W = '#ECF6F5',\n\n // Petrol colors\n TGO_PETROL_60B = '#102930',\n TGO_PETROL_30B = '#1B4754',\n TGO_PETROL_DEFAULT = '#276678',\n TGO_PETROL_30W = '#6894A0',\n TGO_PETROL_60W = '#A9C2C9',\n TGO_PETROL_SECONDARY = '#C8D7DE',\n TGO_PETROL_90W = '#E9F0F1',\n\n // Error colors\n TGO_ERROR_60B = '#513131',\n TGO_ERROR_30B = '#8E5655',\n TGO_ERROR_60W = '#E3C3C6',\n TGO_ERROR_SECONDARY = '#F0DAD9',\n TGO_ERROR_DEFAULT = '#CB7B7A',\n\n // Warning colors\n TGO_WARNING_SECONDARY = '#F0D6BB',\n TGO_WARNING_DEFAULT = '#CCA45F',\n\n // Black colors - grayscale\n TGO_BLACK = '#000000',\n TGO_DARK = '#888888',\n TGO_MEDIUM = '#E0E0E0',\n TGO_GREY = '#EDEDED',\n TGO_LIGHT = '#F6F6F6',\n TGO_WHITE = '#FFFFFF',\n\n // Brand colors\n BRAND_60 = '#A90686',\n BRAND_50 = '#D410AA',\n BRAND_40 = '#FF54DA',\n BRAND_30 = '#FFB3EE',\n BRAND_20 = '#FFE6FA',\n BRAND_10 = '#FFF2FC',\n\n // Grayscale colors\n GRAYSCALE_50 = '#666666',\n GRAYSCALE_40 = '#919191',\n GRAYSCALE_30 = '#D3D3D3',\n GRAYSCALE_20 = '#E9E9E9',\n GRAYSCALE_10 = '#F4F4F4',\n\n // Additional colors\n BLACK = '#242424',\n\n // Accent colors\n ACCENT_20 = '#FFF5ED',\n ACCENT_10 = '#FFFAF6',\n\n // Informative colors\n INFORMATIVE_50 = '#1A47AA',\n INFORMATIVE_40 = '#0165FC',\n INFORMATIVE_30 = '#277CFD',\n INFORMATIVE_20 = '#99C1FE',\n INFORMATIVE_10 = '#D9E8FF',\n\n // Success colors\n SUCCESS_50 = '#88B901',\n SUCCESS_40 = '#A0D900',\n SUCCESS_30 = '#C6E866',\n SUCCESS_20 = '#E2F4B3',\n SUCCESS_10 = '#F5FAE3',\n\n // Error additional colors\n ERROR_50 = '#E02800',\n ERROR_40 = '#FF3003',\n ERROR_30 = '#FF6E4F',\n ERROR_20 = '#FFAC9A',\n ERROR_10 = '#FFEAE6',\n\n // Warning additional colors\n WARNING_50 = '#D07D00',\n WARNING_40 = '#FF9A03',\n WARNING_30 = '#FFC268',\n WARNING_20 = '#FFE1B3',\n WARNING_10 = '#FFF5E6',\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '../../models/application-theme.model';\nimport { LanguageService } from '../../utils/localization/language.service';\nimport { IconName } from '../icon/icon.model';\n\n@Component({\n selector: 'ui-password-strength',\n templateUrl: './password-strength.component.html',\n styleUrls: ['./password-strength.component.scss'],\n})\nexport class PasswordStrengthComponent {\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PasswordStrengthComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The language to be used\n * @property language\n * @type {Language}\n * @memberof PasswordStrengthComponent\n */\n @Input() language = LanguageService.defaultLanguage;\n\n /**\n * The password that needs to be checked\n * @property password\n * @type {string}\n * @memberof PasswordStrengthComponent\n */\n @Input() set password(value: string) {\n this._password = value;\n this.checkCriteria(this._password);\n }\n\n /**\n * Event that outputs validation check result\n * @property validationCheck\n * @type {boolean}\n * @memberof PasswordStrengthComponent\n */\n @Output() validationCheck = new EventEmitter<boolean>();\n\n protected progressValue: number;\n protected criteriaPassed: { [key: string]: boolean } = {};\n private _password = '';\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (this.defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n checkCriteria(password: string): void {\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.validationCheck.emit(passedCount === Object.keys(this.criteriaPassed).length);\n }\n\n private countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n\n get infoIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Info' : 'Info-in-line';\n }\n\n get checkIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Round-check' : 'Check-round-in-line';\n }\n}\n","<div class=\"criteria-container\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate : language }}</span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordStrengthComponent } from './password-strength.component';\nimport { IconComponentModule } from '../icon/icon.component.module';\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\n\n@NgModule({\n declarations: [PasswordStrengthComponent],\n imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe],\n exports: [PasswordStrengthComponent],\n})\nexport class PasswordStrengthComponentModule {}\n","/* eslint-disable */\n\n/* Components */\n// Alert Banner\nexport * from './components/alert-banner/alert-banner.component';\nexport * from './components/alert-banner/alert-banner.component.module';\n// Button\nexport * from './components/button/button.component';\nexport * from './components/button/button.component.module';\nexport * from './components/button/button.model';\n// Card\nexport * from './components/card/card.component';\nexport * from './components/card/card.component.module';\nexport * from './components/card/card.model';\n// Checkbox\nexport * from './components/checkbox/checkbox.component';\nexport * from './components/checkbox/checkbox.component.module';\n// Dialog\nexport * from './components/dialog/dialog.component';\nexport * from './components/dialog/dialog.component.module';\nexport * from './components/dialog/dialog.service';\n// Elevation shadow\nexport * from './components/elevation-shadow/elevation-shadow.component';\nexport * from './components/elevation-shadow/elevation-shadow.component.module';\nexport * from './components/elevation-shadow/elevation-shadow.constant';\n// Field\nexport * from './components/field/field.component';\nexport * from './components/field/field.component.module';\nexport * from './components/field/field.model';\n// File upload\nexport * from './components/file-upload/file-upload.component';\nexport * from './components/file-upload/file-upload.component.module';\n// Icon\nexport * from './components/icon/icon.component';\nexport * from './components/icon/icon.component.module';\nexport * from './components/icon/icon.model';\n// Icon + label\nexport * from './components/icon-label/icon-label.component';\nexport * from './components/icon-label/icon-label.component.module';\n// Logo\nexport * from './components/logo/logo.component';\nexport * from './components/logo/logo.component.module';\nexport * from './components/logo/logo.model';\n// Navbar\nexport * from './components/navbar/navbar.component';\nexport * from './components/navbar/navbar.component.module';\nexport * from './components/navbar/navbar.model';\n// Deprecated Paginator\nexport * from './components/deprecated-paginator/deprecated-paginator.component';\nexport * from './components/deprecated-paginator/deprecated-paginator.component.module';\n// Progress bar\nexport * from './components/progress-bar/progress-bar.component';\nexport * from './components/progress-bar/progress-bar.component.module';\n// Radio button\nexport * from './components/radio-button/radio-button.component';\nexport * from './components/radio-button/radio-button.component.module';\n// Snackbar\nexport * from './components/snackbar/snackbar.component';\nexport * from './components/snackbar/snackbar.component.module';\nexport * from './components/snackbar/snackbar.model';\nexport * from './components/snackbar/snackbar.service';\n// Deprecated Table\nexport * from './pipes/data-property-getter';\nexport * from './components/deprecated-table/deprecated-table.component';\nexport * from './components/deprecated-table/deprecated-table.component.module';\nexport * from './components/deprecated-table/deprecated-table.model';\n// Tag\nexport * from './components/tag/tag.component';\nexport * from './components/tag/tag.component.module';\nexport * from './components/tag/tag.model';\n// Tooltip\nexport * from './components/tooltip/tooltip.component';\nexport * from './components/tooltip/tooltip.component.module';\nexport * from './components/tooltip/tooltip.model';\n// Dropdown\nexport * from './components/dropdown/dropdown.component';\nexport * from './components/dropdown/dropdown.component.module';\nexport * from './components/dropdown/dropdown.model';\n// Spinner\nexport * from './components/spinner/spinner.component';\nexport * from './components/spinner/spinner.module';\nexport * from './components/spinner/spinner.model'\n// Confirm Dialog\nexport * from './components/confirm-dialog/confirm-dialog.component';\nexport * from './components/confirm-dialog/confirm-dialog.component.module';\n// Datepicker\nexport * from './components/datepicker/datepicker.component'\nexport * from './components/datepicker/datepicker.component.module'\n// Rating\nexport * from './components/rating/rating.component'\nexport * from './components/rating/rating.component.module'\n// Scale\nexport * from './components/scale/scale.component'\nexport * from './components/scale/scale.component.module'\n// Tag\nexport * from './components/tag/tag.component'\nexport * from './components/tag/tag.component.module'\n// Toggle\nexport * from './components/toggle/toggle.component'\nexport * from './components/toggle/toggle.component.module'\n// Avatar\nexport * from './components/avatar/avatar.component'\nexport * from './components/avatar/avatar.component.module'\nexport * from './components/avatar/avatar.model'\n// Stepper\nexport * from './components/stepper/stepper.component'\nexport * from './components/stepper/stepper.component.module'\n// Step\nexport * from './components/step/step.component'\nexport * from './components/step/step.component.module'\n// Input Autocomplete\nexport * from './components/autocomplete/autocomplete.component'\nexport * from './components/autocomplete/autocomplete.component.module'\nexport * from './components/autocomplete/autocomplete.model'\n// Badge\nexport * from './components/badge/badge.component'\nexport * from './components/badge/badge.component.module'\nexport * from './components/badge/badge.model'\n// Radial Progress\nexport * from './components/radial-progress/radial-progress.component'\nexport * from './components/radial-progress/radial-progress.component.module'\nexport * from './components/radial-progress/radial-progress.model'\n// Empty State\nexport * from './components/empty-state/empty-state.component'\nexport * from './components/empty-state/empty-state.component.module'\nexport * from './components/empty-state/empty-state.model'\n// Table\nexport * from './components/table/table.component';\nexport * from './components/table/table.component.module';\nexport * from './components/table/table.model'\n// Paginator\nexport * from './components/paginator/paginator.component';\nexport * from './components/paginator/paginator.component.module';\n// Skeleton\nexport * from './components/skeleton/skeleton.component';\n// Side Sheet\nexport * from './components/side-sheet/side-sheet.component';\nexport * from './components/side-sheet/side-sheet.component.module';\nexport * from './components/side-sheet/side-sheet.service';\nexport * from './components/side-sheet/side-sheet.model';\n// Slider\nexport * from './components/slider/slider.component';\nexport * from './components/slider/slider.component.module';\nexport * from './components/slider/slider.model';\n// Segmented Bar\nexport * from './components/segmented-bar/segmented-bar.component';\nexport * from './components/segmented-bar/segmented-bar.component.module';\nexport * from './components/segmented-bar/segmented-bar.model';\n// Page Header\nexport * from './components/page-header/page-header.component';\nexport * from './components/page-header/page-header.component.module';\n// Accordion\nexport * from './components/accordion/accordion.component';\nexport * from './components/accordion/accordion.component.module';\nexport * from './components/accordion/accordion.model'\n// Divider\nexport * from './components/divider/divider.component';\nexport * from './components/divider/divider.model';\nexport * from './components/divider/divider.component.module';\n// Tabs\nexport * from './components/tabs/tabs.component.module';\nexport * from './components/tabs/tabs.component';\nexport * from './components/tabs/tabs.model';\nexport * from './components/tabs/tab.directive';\n// Language\nexport * from './utils/localization/language.model';\n//Overflow Menu\nexport * from './components/overflow-menu/overflow-menu.component.module';\nexport * from './components/overflow-menu/overflow-menu.component';\n//Application Theme\nexport * from './models/application-theme.model';\n// Segmented Button\nexport * from './components/segmented-button/segmented-button.component';\nexport * from './components/segmented-button/segmented-button.model';\nexport * from './components/segmented-button/segmented-button.component.module';\n// Password Criteria\nexport * from './components/password-criteria/password.component';\nexport * from './components/password-criteria/password.component.module';\n// Phone Input\nexport * from './components/phone-input/phone-input.component';\nexport * from './components/phone-input/phone-input.component.module';\nexport * from './components/phone-input/phone-input.model';\n// Colors\nexport * from './models/colors.model';\n// Password Strength\nexport * from './components/password-strength/password-strength.component';\nexport * from './components/password-strength/password-strength.component.module';\n// Icons service\nexport * from './services/icons.service';\n// Is Mobile Token\nexport * from './providers/is-mobile';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3.IconsService","i1","i2.IconComponent","i3.IconComponent","i5","i6.BadgeComponent","daDk","itIt","jaJp","nbNo","plPl","ptBr","svSe","i3.ButtonComponent","i4.IconComponent","i5.UiTranslatePipe","i3.UiTranslatePipe","i3","i4","i5.ValidationErrorComponent","i6.HasValidationErrorPipe","i4.UiTranslatePipe","i8.IconComponent","i9.ButtonComponent","i10.ValidationErrorComponent","i11.DigitsOnlyDirective","i12.UiTranslatePipe","i13.HasValidationErrorPipe","i3.ProgressBarComponent","i4.DragDropDirective","i1.IconComponent","i4.NameInitialsPipe","i1.AvatarComponent","i2.ButtonComponent","i1.SideSheetService","i6.LogoComponent","i7.UiTranslatePipe","i2.SideSheetService","i6","i7","i8.LogoComponent","i9.IconComponent","i10.AvatarComponent","i11.SideSheetComponent","i12.ButtonComponent","i13.MobileNavbarSideSheetComponent","i14.BadgeComponent","i15.UiTranslatePipe","i4.ButtonComponent","i5.IconComponent","i1.DataPropertyGetterPipe","i7.DynamicComponentDirective","i5.ButtonComponent","i8.ValidationErrorComponent","i9.UiTranslatePipe","i10.HasValidationErrorPipe","i2.DialogComponent","i6.IconComponent","i8.NoDateFormatDirective","i9.ValidationErrorComponent","i10.UiTranslatePipe","i11.HasValidationErrorPipe","i2.HalfStarPipe","i3.EllipseTextDirective","i5.SpinnerComponent","i3.StepComponent","i4.RadialProgressComponent","i5.StepLineElementDirective","i6.UiTranslatePipe","i8.TagComponent","i12.SelectTextDirective","i13.UiTranslatePipe","i14.HasValidationErrorPipe","i15.TransformItemPipe","i16.IncludesPipe","i4.SkeletonComponent","i5.PaginatorComponent","i7.IconComponent","i8.EllipseTextDirective","i9.DynamicComponentDirective","i10.DataPropertyGetterPipe","i11.MemoizeFuncPipe","i12.SentenceCasePipe","i4.TooltipTemplateDirective","i1.TabsComponent","i2.FieldComponent","i5.ProgressBarComponent","i8","i10.IconComponent","i11.ValidationErrorComponent","i14.JoinStringsPipe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,aAAa,GAAG;;AAE3B,IAAA,OAAO,EAAE,CAAC,SAAiB,KAAc;AACvC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,OAAO,aAAa,CAAC;SACtB;AACD,QAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,YAAA,OAAO,MAAM,CAAC;SACf;AACD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,OAAO,SAAS,CAAC;SAClB;AACD,QAAA,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,YAAA,OAAO,OAAO,CAAC;SAChB;AACD,QAAA,OAAO,EAAE,CAAC;KACX;;AAGD,IAAA,WAAW,EAAE,CAAC,KAAc,KAAY;AACtC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;SAChB;aAAM;AACL,YAAA,OAAO,QAAQ,CAAC;SACjB;KACF;;IAGD,WAAW,EAAE,CAAC,SAAkB,EAAE,IAAY,EAAE,QAAgB,EAAE,OAAA,GAAwB,QAAQ,KAAY;AAC5G,QAAA,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,CAAC;AACpD,QAAA,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;QACrG,OAAO,CAAA,EAAG,KAAK,CAAI,CAAA,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAC;KACzD;CACF;;ICpCW,SAaX;AAbD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAiB,CAAA;AACnB,CAAC,EAbW,QAAQ,KAAR,QAAQ,GAanB,EAAA,CAAA,CAAA;;ACRD;AACO,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;MAQlD,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAMW,QAAA,IAAA,CAAA,mBAAmB,GAAiB;YAC3C,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YACtC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YACtC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;YACrC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;YAC9C,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;YAChD,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC5C,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;YAC/C,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC5C,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;SAC9C,CAAC;AACH,KAAA;AAhBiB,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAA;+GADnC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACbD;;;;;;;;AAQG;AACI,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,SAA2C,EAAE,KAAA,GAA2B,KAAK,KAAY;IACzI,MAAM,QAAQ,GAAG,wBAAwB,CAAC;IAC1C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;AAED,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpC,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;AAEnC,IAAA,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,QAAA,IAAI,SAAS,GAAG,EAAE,KAAK,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE;AACxE,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;AAAM,aAAA,IAAI,SAAS,GAAG,EAAE,KAAK,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE;AAC/E,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;AAAM,aAAA,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,KAAK,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE;AACjG,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;KACF;SAAM;QACL,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AAC3C,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AAClD,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;AAAM,aAAA,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AACpE,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AACpD,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AACpD,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;AAAM,aAAA,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AACtE,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AACrD,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AACrD,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;AAAM,aAAA,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AACvE,YAAA,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SAC3C;KACF;AAED,IAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF;;;AAGG;AACI,MAAM,QAAQ,GAAG,CAAC,QAAgB,KAAyC;AAChF,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,IAAI,GAAG,CAAC;AAEjC,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,IAAI,CAAC,CAAC;IACN,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AAE1B,IAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,QAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACX;SAAM;AACL,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QACpB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAEpD,QAAQ,GAAG;AACT,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;SACT;QAED,CAAC,IAAI,CAAC,CAAC;KACR;AAED,IAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF;;;AAGG;AACI,MAAM,QAAQ,GAAG,CAAC,QAA6C,KAAY;IAChF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IAE7B,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,KAAY;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,CAAC,IAAI,CAAC,CAAC;SACR;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,CAAC,IAAI,CAAC,CAAC;SACR;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;SACV;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACtC;AACD,QAAA,OAAO,CAAC,CAAC;AACX,KAAC,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpB,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpC,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAEhG,IAAA,OAAO,CAAI,CAAA,EAAA,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC,CAAC;AAEF;;;AAGG;AACH,MAAM,KAAK,GAAG,CAAC,KAAa,KAAa,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;;ACtIxE;AACO,MAAM,QAAQ,GAAG;IACtB,KAAK;IACL,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,UAAU;IACV,MAAM;IACN,UAAU;IACV,YAAY;IACZ,oBAAoB;IACpB,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;IACV,MAAM;IACN,eAAe;IACf,mBAAmB;IACnB,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,aAAa;IACb,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,YAAY;IACZ,MAAM;IACN,iBAAiB;IACjB,cAAc;IACd,UAAU;IACV,MAAM;IACN,SAAS;IACT,aAAa;IACb,eAAe;IACf,YAAY;IACZ,OAAO;IACP,cAAc;IACd,mBAAmB;IACnB,OAAO;IACP,cAAc;IACd,eAAe;IACf,UAAU;IACV,MAAM;IACN,cAAc;IACd,MAAM;IACN,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,OAAO;IACP,OAAO;IACP,QAAQ;IACR,oBAAoB;IACpB,aAAa;IACb,QAAQ;IACR,iBAAiB;IACjB,MAAM;IACN,UAAU;IACV,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,aAAa;IACb,WAAW;IACX,cAAc;IACd,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,aAAa;IACb,UAAU;IACV,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;IACd,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,QAAQ;IACR,cAAc;IACd,aAAa;IACb,WAAW;IACX,eAAe;IACf,aAAa;CACL,CAAC;AAEJ,MAAM,eAAe,GAAG;IAC7B,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,4BAA4B;IAC5B,6BAA6B;IAC7B,yBAAyB;IACzB,0BAA0B;IAC1B,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;IAC1B,2BAA2B;IAC3B,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,eAAe;IACf,yBAAyB;IACzB,0BAA0B;IAC1B,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AAEJ,MAAM,YAAY,GAAG;AAC1B,IAAA,WAAW,EAAE;QACX,2BAA2B;QAC3B,4BAA4B;QAC5B,2BAA2B;QAC3B,4BAA4B;QAC5B,4BAA4B;QAC5B,6BAA6B;QAC7B,yBAAyB;QACzB,0BAA0B;QAC1B,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,kBAAkB;QAClB,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;AACxB,KAAA;AACD,IAAA,UAAU,EAAE;QACV,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,aAAa;QACb,cAAc;QACd,cAAc;QACd,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,cAAc;QACd,eAAe;QACf,qBAAqB;QACrB,sBAAsB;QACtB,YAAY;QACZ,aAAa;QACb,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB;QACxB,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,qBAAqB;QACrB,aAAa;QACb,cAAc;QACd,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,cAAc;QACd,eAAe;AAChB,KAAA;AACD,IAAA,MAAM,EAAE;QACN,cAAc;QACd,eAAe;QACf,oBAAoB;QACpB,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,aAAa;QACb,cAAc;QACd,eAAe;QACf,cAAc;QACd,uBAAuB;QACvB,wBAAwB;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,yBAAyB;QACzB,0BAA0B;QAC1B,oBAAoB;QACpB,qBAAqB;QACrB,gBAAgB;QAChB,iBAAiB;AAClB,KAAA;AACD,IAAA,MAAM,EAAE;QACN,iBAAiB;QACjB,kBAAkB;QAClB,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,qBAAqB;AACtB,KAAA;AACD,IAAA,OAAO,EAAE;QACP,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,qBAAqB;QACrB,aAAa;QACb,cAAc;QACd,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;QACvB,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,eAAe;QACf,yBAAyB;QACzB,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;AACnB,KAAA;AACD,IAAA,aAAa,EAAE;QACb,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,aAAa;QACb,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,oBAAoB;QACpB,qBAAqB;QACrB,aAAa;QACb,cAAc;QACd,cAAc;QACd,eAAe;QACf,oBAAoB;QACpB,qBAAqB;QACrB,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,0BAA0B;QAC1B,2BAA2B;QAC3B,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,qBAAqB;QACrB,sBAAsB;QACtB,gBAAgB;QAChB,iBAAiB;QACjB,wBAAwB;QACxB,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,sBAAsB;QACtB,eAAe;QACf,gBAAgB;AACjB,KAAA;CACF;;MCjpBY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;QAIU,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AASlC,KAAA;AAPC,IAAA,OAAO,CAAC,IAAS,EAAA;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;KAClD;AAED,IAAA,YAAY,CAAC,IAAS,EAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACzC;+GATU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCmBY,aAAa,CAAA;AAqDxB,IAAA,WAAA,CAC6E,eAAiC,EACpG,eAAgC,EAChC,WAAyB,EACzB,YAA0B,EAAA;QAHyC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAc;QACzB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAxDpC;;;;;AAKG;QAEM,IAAI,CAAA,IAAA,GAAa,IAAI,CAAC;AAE/B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAUvB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAe,OAAO,CAAC;AAErC;;;;;AAKG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAExB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAWpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAG;AAC/D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SAC1C;AACD,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;YACvE,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;;IAGD,WAAW,GAAA;AACT,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAS,MAAA,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;KAC3D;;IAGD,OAAO,GAAA;AACL,QAAA,IAAI,QAA8B,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAa,CAAC;YAC1D,QAAQ;gBACN,IAAI,CAAC,gBAAgB,KAAK,SAAS;AACjC,sBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC;AACrD,sBAAE,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;SAClE;aAAM;YACL,QAAQ;gBACN,IAAI,CAAC,gBAAgB,KAAK,SAAS;sBAC9B,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAc;AAC1D,sBAAG,IAAI,CAAC,kBAA+B,CAAC;SAC7C;QAED,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,QAAoB,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAEjF,QAAA,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YACzD,IAAI,CAAC,eAAe,CAAC,UAAU,CAC7B,QAAQ,EACR,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAA,EAAG,QAAQ,CAAM,IAAA,CAAA,CAAC,CAC1E,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACrC;KACF;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS,CAAC;KAC1E;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA,QAAA,CAAU,CAAC;KAC5E;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;KACrG;AA9HU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAsDF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,sQCvB1B,4EACA,EAAA,MAAA,EAAA,CAAA,8qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDsBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,SAAS,EAAA,aAAA,EAGJ,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,8qFAAA,CAAA,EAAA,CAAA;;0BAwDlC,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;4HA9CjD,IAAI,EAAA,CAAA;sBADZ,WAAW;uBAAC,mBAAmB,CAAA;;sBAC/B,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;IEzDI,eAYX;AAZD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,cAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAZW,cAAc,KAAd,cAAc,GAYzB,EAAA,CAAA,CAAA,CAAA;IAYW,sBASX;AATD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EATW,qBAAqB,KAArB,qBAAqB,GAShC,EAAA,CAAA,CAAA,CAAA;IAEW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;;MCpCY,cAAc,CAAA;AAmEzB,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAnE9G;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAE7B;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAe,QAAQ,CAAC;AAEtC;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAiB,SAAS,CAAC;AAE3C;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;AAEjC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAsB,OAAO,CAAC;QAEzC,IAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAa;AAC7B,YAAA,cAAc,CAAC,WAAW;AAC1B,YAAA,cAAc,CAAC,UAAU;AACzB,YAAA,cAAc,CAAC,QAAQ;AACvB,YAAA,cAAc,CAAC,UAAU;AACzB,YAAA,qBAAqB,CAAC,OAAO;AAC7B,YAAA,qBAAqB,CAAC,IAAI;AAC1B,YAAA,qBAAqB,CAAC,KAAK;AAC3B,YAAA,qBAAqB,CAAC,OAAO;AAC7B,YAAA,qBAAqB,CAAC,QAAQ;AAC9B,YAAA,qBAAqB,CAAC,OAAO;AAC7B,YAAA,qBAAqB,CAAC,OAAO;SAC9B,CAAC;QAKA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,IAAc,SAAS,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;KAC3G;AAED,IAAA,IAAc,cAAc,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;KAC5C;AAjFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAoEH,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApE/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,8OCjB3B,q4BAcA,EAAA,MAAA,EAAA,CAAA,mzNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,q4BAAA,EAAA,MAAA,EAAA,CAAA,mzNAAA,CAAA,EAAA,CAAA;;0BAwEjB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA9DjD,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAOG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AEnER;MAiCa,eAAe,CAAA;AAC1B,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;KACvC;AAmLD,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAaD,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9D;AAED,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAxM9G;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAe,KAAK,CAAC;AAClC;;;;;AAKG;QAGH,IAAO,CAAA,OAAA,GAAgB,SAAS,CAAC;AAEjC;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAwB,OAAO,CAAC;AAErD;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAC;AAEjC;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzB;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAwB3B;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEtB;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;;;;AAMG;QACM,IAAI,CAAA,IAAA,GAAe,QAAQ,CAAC;AAErC;;;;;;AAMG;QACM,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;AAW1C;;;;;;AAMG;QAGH,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE7C;;;;;;AAMG;QACM,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAUtC;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,YAAY,EAAS,CAAC;AAElE,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,YAAY,EAAS,CAAC;QAkB5E,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC;AACtC,QAAA,IAAA,CAAA,yBAAyB,GAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAExG,IAAY,CAAA,YAAA,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAS3D,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAC9B;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;SACjC;AACD,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;SAC3C;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;SACjC;QACD,IACE,OAAO,CAAC,MAAM,CAAC;YACf,OAAO,CAAC,WAAW,CAAC;YACpB,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,cAAc,CAAC;AACvB,YAAA,OAAO,CAAC,kBAAkB,CAAC,EAC3B;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SACpC;QACD,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,KAAK,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,KAAK,aAAa,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,EAAE;AACrJ,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAChD;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS,KAAK,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC;KACzH;IAED,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,IAAG;YAC/C,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACvB,SAAC,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;SACjG;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACnH,YAAA,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;SAC3F;KACF;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,GAAG,SAAqB,CAAC;aACvF;SACF;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,GAAG,UAAsB,CAAC;aACxF;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAC9B;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KACpC;;IAGD,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;KACtB;;IAGD,WAAW,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,CAAC;AACjD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;AACrD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,GAAG,WAAW,GAAG,EAAE,CAAC;AACpF,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9E,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,kBAAkB,GAAG,EAAE,CAAC;QACvF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5G,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,mBAAmB,GAAG,EAAE,CAAC;QAClE,OAAO,CAAA,EAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,OAAO,CAAI,CAAA,EAAA,QAAQ,CAAI,CAAA,EAAA,QAAQ,CAAI,CAAA,EAAA,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAA,MAAA,CAAQ,CAAC;KAC7I;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACjE,MAAM,QAAQ,GAAQ,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE;AACzI,YAAA,QAAQ,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACxF;AAAM,aAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;AAC9G,YAAA,QAAQ,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;SACnG;aAAM,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,EAAE;AAC7H,YAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SAC1C;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;;AAGD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;AACxC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;AAC1C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,QAAA,OAAO,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC;KAC3C;;IAGD,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;KAChC;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KACzE;AAED,IAAA,SAAS,CAAC,EAAS,EAAA;AACjB,QAAA,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAC9B;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;SACrD;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KACpC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;KAC3F;AAED,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxJ;AAtWU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAgNJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhN/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,0iCCjC5B,okIA2GA,EAAA,MAAA,EAAA,CAAA,4rqCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,gFAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ea,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,okIAAA,EAAA,MAAA,EAAA,CAAA,4rqCAAA,CAAA,EAAA,CAAA;;0BAoNlB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA9MtD,OAAO,EAAA,CAAA;sBADV,WAAW;uBAAC,sBAAsB,CAAA;gBAKN,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAQlB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASN,OAAO,EAAA,CAAA;sBAFN,WAAW;uBAAC,kBAAkB,CAAA;;sBAC9B,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBASG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBAUG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEwC,aAAa,EAAA,CAAA;sBAA3D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAOzC,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE9M9B;;AAEG;MAKU,eAAe,CAAA;AAJ5B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,KAAK,GAA2B;YACjD,EAAE;YACF,EAAE;YACF,EAAE;AACF,YAAA,OAAO,EAAEC,MAAI;YACb,EAAE;AACF,YAAA,OAAO,EAAEC,MAAI;AACb,YAAA,OAAO,EAAEC,MAAI;AACb,YAAA,OAAO,EAAEC,MAAI;YACb,EAAE;AACF,YAAA,OAAO,EAAEC,MAAI;AACb,YAAA,OAAO,EAAEC,MAAI;AACb,YAAA,OAAO,EAAEC,MAAI;SACd,CAAC;AAmCH,KAAA;AAlCC;;;;;;;;AAQG;AACH,IAAA,SAAS,CAAC,YAAoB,EAAE,UAAkB,EAAE,iBAAuB,EAAA;AACzE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAEhG,QAAA,IAAI,WAAW,IAAI,iBAAiB,EAAE;YACpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;SACzD;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QAClG,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;KAChE;AAED;;;;AAIG;IACK,WAAW,CAAC,WAAmB,EAAE,iBAAyC,EAAA;QAChF,OAAO,WAAW,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAa,EAAE,KAAa,KAAI;YACzE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAW,CAAC;YACxD,OAAO,KAAK,IAAI,KAAK,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;+GAhDU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCEY,oBAAoB,CAAA;IAC/B,WAC6E,CAAA,eAAiC,EACpG,YAA0B,EAAA;QADyC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAOpC;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAiB,SAAS,CAAC;AAE7C;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAiB,QAAQ,CAAC;AAW/C;;;;AAIG;QACM,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAErC;;;;AAIG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAExB;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAI,EAAE,CAAC;AASxB;;;;;AAKG;QACM,IAAU,CAAA,UAAA,GAAoB,QAAQ,CAAC;AAEhD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAEjC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;QAOpD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAKf,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAC;QACxB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QA9GzB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAkBD;;;;AAIG;IACH,IAAa,OAAO,CAAC,GAAW,EAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;KAChE;AAuED,IAAA,IAAuC,WAAW,GAAA;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IAWD,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC;QACpE,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAC7G;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC,EAAE,GAAG,CAAC,CAAC;KACT;AAnIU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAET,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAX,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAF/C,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBjC,onCAyBA,EDXc,MAAA,EAAA,CAAA,68LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;AACnB,gBAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,gBAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACvE,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;AACnB,4BAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,4BAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBACvE,CAAC;qBACH,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,onCAAA,EAAA,MAAA,EAAA,CAAA,68LAAA,CAAA,EAAA,CAAA;;0BAI5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;sEAcjD,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBASG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAOG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEiC,WAAW,EAAA,CAAA;sBAAjD,WAAW;uBAAC,oBAAoB,CAAA;;;MElHtB,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAnB,mBAAmB,EAAA,YAAA,EAAA,CALf,aAAa,CAClB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAC7C,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGZ,mBAAmB,EAAA,SAAA,EAFnB,CAAC,gBAAgB,CAAC,YAFnB,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI5C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC;oBACxD,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA,CAAA;;;MCAY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAApB,oBAAoB,EAAA,YAAA,EAAA,CAJhB,cAAc,CACnB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACnD,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEb,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,oBAAoB,EAHrB,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGlD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;oBAC9D,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCYY,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CAZjB,eAAe,CAAA,EAAA,OAAA,EAAA,CAE5B,YAAY;YACZ,eAAe;YACf,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;AAChB,YAAA,oBAAoB,aAEZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAGd,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,qBAAqB,YAV9B,YAAY;YACZ,eAAe;YACf,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;YAChB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,mBAAmB;wBACnB,wBAAwB;wBACxB,gBAAgB;wBAChB,oBAAoB;AACrB,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC1B,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;MCTY,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA1B,0BAA0B,EAAA,YAAA,EAAA,CAJtB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CACzE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,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,0BAA0B,EAH3B,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGvD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,CAAC;oBACpF,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCAY,aAAa,CAAA;AA0BxB;;;;;AAKG;IACH,IAAa,MAAM,CAAC,MAAgB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1G;IAcD,WAC6E,CAAA,eAAiC,EACpG,YAA0B,EAAA;QADyC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAjDpC;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAa,QAAQ,CAAC;AAEnC;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAgB,SAAS,CAAC;AAE1C;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAYtD;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAI1B,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QAMX,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,GAAG,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;KACtF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;KACtF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;KACzD;AAED,IAAA,IAAI,UAAU,GAAA;;QAEZ,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;KAC7G;AAxEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAiDF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,gMCX1B,gcASA,EAAA,MAAA,EAAA,CAAA,0/JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gcAAA,EAAA,MAAA,EAAA,CAAA,0/JAAA,CAAA,EAAA,CAAA;;0BAmD5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;sEA1CjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAUG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;ME3CK,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;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,iBAJf,aAAa,CAAA,EAAA,OAAA,EAAA,CAClB,YAAY,EAAE,mBAAmB,aACjC,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEZ,mBAAmB,EAAA,OAAA,EAAA,CAHpB,YAAY,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGhC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;oBAC5C,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA,CAAA;;;MCEY,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;AAUE;;;;;;AAMG;QAGH,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE7C;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;QAkBpD,IAAwB,CAAA,wBAAA,GAAG,SAAS,CAAC;AACtC,KAAA;AAjBC,IAAA,aAAa,CAAC,IAAe,EAAA;AAC3B,QAAA,MAAM,eAAe,GAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACnD,QAAQ,IAAI;AACV,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC;AAClD,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC;AAClD,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC;SACZ;KACF;+GAtCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4OCXrC,+nDA6BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAc,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,+nDAAA,EAAA,CAAA;8BAKtB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;ME3BK,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKE;;AAEG;AACc,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAS7F,KAAA;AAPC;;;AAGG;AACH,IAAA,SAAS,CAAC,KAA6C,EAAA;AACrD,QAAA,OAAO,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;KACjG;+GAZU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACqBD;MACa,iBAAiB,CAAA;AA6I5B,IAAA,WAAA,CAC6E,eAAiC,EACpG,GAAsB,EACH,SAAoB,EAAA;QAF4B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACH,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA/IjD;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzB;;;;;;;AAOG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAY/B;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEnB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAW,CAAC;AAEhD;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;QASjB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;KACF;;IAGD,WAAW,GAAA;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED;;;AAGG;;IAEH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;AAED,IAAA,UAAU,CAAC,KAAwB,EAAA;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAClC;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACtC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;SACvF;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;KACzH;AA1NU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBA8IN,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9I/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,yiBC3B9B,8/BAuBA,EAAA,MAAA,EAAA,CAAA,m3TAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8/BAAA,EAAA,MAAA,EAAA,CAAA,m3TAAA,CAAA,EAAA,CAAA;;0BAiJ5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAEvD,QAAQ;;0BAAI,IAAI;yCAxIV,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAUG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAUG,YAAY,EAAA,CAAA;sBADpB,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;ME/II,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,wBAAwB,CAE7B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CADlD,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGvB,qBAAqB,EAAA,OAAA,EAAA,CAFtB,YAAY,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEhC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC;AAC9D,iBAAA,CAAA;;;MCMY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAJnB,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtK,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,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,uBAAuB,EAHxB,OAAA,EAAA,CAAA,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAmB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG7I,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,CAAC;oBACjL,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCUY,eAAe,CAAA;AA4G1B,IAAA,WAAA,CAC6E,eAAiC,EACrG,SAAwC,EACd,IAA4C,EAAA;QAFF,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACrG,IAAS,CAAA,SAAA,GAAT,SAAS,CAA+B;QACd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwC;AA7G/E;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAI,EAAE,CAAC;AAErB;;;;AAIG;QACM,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAEhC;;;;AAIG;AACM,QAAA,IAAA,CAAA,UAAU,GAAkB,MAAM,IAAI,CAAC;AAEhD;;;;AAIG;QACM,IAAoB,CAAA,oBAAA,GAAI,EAAE,CAAC;AAEpC;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAI,EAAE,CAAC;AAElC;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAgB,WAAW,CAAC;AAExD;;;;AAIG;QACM,IAAiB,CAAA,iBAAA,GAAgB,SAAS,CAAC;AAEpD;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QAGH,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;AAEjC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AACtD;;;;;;AAMG;QACM,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AACtC;;;;;;AAMG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;;AAMG;QACM,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,UAAU,GAAwB,IAAI,YAAY,EAAS,CAAC;AAC5D,QAAA,IAAA,CAAA,yBAAyB,GAAwB,IAAI,YAAY,EAAS,CAAC;AAC3E,QAAA,IAAA,CAAA,uBAAuB,GAAwB,IAAI,YAAY,EAAS,CAAC;QAYnF,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACJ,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QANhD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAKD,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACpD;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;SACpD;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;KACF;;IAGD,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC5D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;KACF;;IAGD,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;KACF;AAED,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,sBAAsB,CAAC,KAAY,EAAA;AACjC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5C;AAED,IAAA,oBAAoB,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;+GAxKU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA6GJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAnB,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAEhD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA/Gd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,mvBCzB5B,k+CAwCA,EAAA,MAAA,EAAA,CAAA,g4IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAQ,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,mBAGJ,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,k+CAAA,EAAA,MAAA,EAAA,CAAA,g4IAAA,CAAA,EAAA,CAAA;;0BA+GlC,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAEvD,MAAM;2BAAC,eAAe,CAAA;yCAxGhB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAOG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAOG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAOG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAWN,YAAY,EAAA,CAAA;sBAFX,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBASG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,yBAAyB,EAAA,CAAA;sBAAlC,MAAM;gBACG,uBAAuB,EAAA,CAAA;sBAAhC,MAAM;;;ME5HI,aAAa,CAAA;IACxB,WACU,CAAA,SAAoB,EAC+C,eAAiC,EAAA;QADpG,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAC+C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;KAC1G;AAEJ,IAAA,IAAI,CACF,eAAmC,EACnC,gBAAA,GAAqC,OAAO,EAC5C,IAAmB,GAAA,OAAO,EAC1B,UAAA,GAAqB,EAAE,EACvB,SAAe,EAAA;;AAGf,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE;AAC1C,YAAA,IAAI,EAAE;AACJ,gBAAA,gBAAgB,EAAE,IAAI,CAAC,eAAe,IAAI,gBAAgB;AAC1D,gBAAA,GAAG,SAAS;AACb,aAAA;YACD,UAAU,EACR,gBAAgB,KAAK,SAAS;AAC5B,kBAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,IAAI,CAAC;kBACvC,CAAC,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,CAAC;AAChE,SAAA,CAAC,CAAC;KACJ;AAxBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,6CAGF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAH/C,aAAa,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;0BAIN,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;;MCI/C,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CALjB,eAAe,CAAA,EAAA,OAAA,EAAA,CACpB,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CACrE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAGd,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,qBAAqB,EAFrB,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,EAFrG,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAInD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,CAAC;oBAChF,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC;AAChH,iBAAA,CAAA;;;ICbW,cAMX;AAND,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EANW,aAAa,KAAb,aAAa,GAMxB,EAAA,CAAA,CAAA;;MCIY,wBAAwB,CAAA;AAoBnC,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AApB9G;;;;;;;AAOG;AACM,QAAA,IAAA,CAAA,aAAa,GAAc,aAAa,CAAC,OAAO,CAAC;AAE1D;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAKpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AA1BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBAqBb,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AArB/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6ICVrC,yIAGA,EAAA,MAAA,EAAA,CAAA,m9FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDOa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yIAAA,EAAA,MAAA,EAAA,CAAA,m9FAAA,CAAA,EAAA,CAAA;;0BAuB5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAZjD,aAAa,EAAA,CAAA;sBAArB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MEnBK,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,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,8BAA8B,EAJ1B,YAAA,EAAA,CAAA,wBAAwB,CAC7B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEvB,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,8BAA8B,YAH/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA,CAAA;;;MCHY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAEzB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAJK;AAQtC,IAAA,UAAU,CAAC,KAAoB,EAAA;QAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACjC;AAGD,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,MAAM,UAAU,GAAmB,KAAK,IAAqB,KAAM,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1G,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;KACxC;IAED,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YACvC,MAAM,QAAQ,GACZ,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAChH,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,IAAI,CAAC,KAAK;oBACR,IAAI,CACF,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,YAAY,GAAG,yBAAyB,GAAG,MAAM,CAAK,GAAA,CAAA,CACxF,CAAC;aACf;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACR;SACF;KACF;+GAnCU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;+EAIU,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAMpC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AClBnC;MA+Ba,cAAc,CAAA;AA4CzB;;;;;AAKG;IACH,IAAa,MAAM,CAAC,MAAgB,EAAA;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACtG,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KAC5C;AAwLD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,OAAO,IAAI,CAAC,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC9C,OAAO,IAAI,CAAC,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;aAC5D;iBAAM;gBACL,OAAO,IAAI,CAAC,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;aAC1D;SACF;KACF;IAiBD,WAC6E,CAAA,eAAiC,EACpG,eAAgC,EAChC,YAA0B,EAC1B,GAAsB,EACH,SAAoB,EAAA;QAJ4B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACH,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QA5QlC,IAAK,CAAA,KAAA,GAAG,UAAU,CAAC;AAElC;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAI,EAAE,CAAC;AAUrB;;;;;AAKG;QACM,IAAW,CAAA,WAAA,GAAI,EAAE,CAAC;AAE3B;;;;;AAKG;QACM,IAAE,CAAA,EAAA,GAAI,EAAE,CAAC;AAElB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AA8BpB;;;;;AAKG;QACM,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE1B;;;;;AAKG;QAGH,IAAI,CAAA,IAAA,GAAc,MAAM,CAAC;AAEzB;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEjC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAElC;;;;;;AAMG;QAGH,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAU7C;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzB;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzB;;;;;AAKG;QACM,IAAa,CAAA,aAAA,GAAG,GAAG,CAAC;AAE7B;;;;;AAKG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAC5B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAC9B;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;AAErB;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAkBnC;;;;;AAKG;QACM,IAAc,CAAA,cAAA,GAAG,GAAG,CAAC;AAEpB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;QAc/C,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAEH,IAAkB,CAAA,kBAAA,GAAG,QAAQ,CAAC;AAEjD;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;QAgKnB,IAAS,CAAA,SAAA,GAAG,CAAC,KAAa,EAAE,KAAU,KAAK,KAAK,CAAC,qCAAqC,CAAC;QAvJrF,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;KACF;AAED;;;AAGG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;IAOD,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC9D,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAClH;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;KACF;;IAGD,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;AACjD,YAAA,OAAO,MAAM,CAAC;SACf;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;IAGD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KACnC;;IAGD,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC9D,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;AACD,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB;SACF;KACF;;;IAID,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;SACpE;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;AAGD,IAAA,OAAO,CAAC,KAAU,EAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;KAClE;AAED,IAAA,UAAU,CAAC,KAAW,EAAA;QACpB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;SAC1B;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,KAAiB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;SACtB;aAAM;YACL,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;IAED,QAAQ,CAAC,KAAc,EAAE,MAAc,EAAA;AACrC,QAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;AAAM,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAE3B,YAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;SACF;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;AApaU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAyQH,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzQ/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,07BC/B3B,4sJA4GA,EAAA,MAAA,EAAA,CAAA,08zBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Ea,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,iBAGL,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4sJAAA,EAAA,MAAA,EAAA,CAAA,08zBAAA,CAAA,EAAA,CAAA;;0BA2Q5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAIvD,QAAQ;;0BAAI,IAAI;yCA5QJ,KAAK,EAAA,CAAA;sBAAnB,WAAW;gBAQH,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAWG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAUN,IAAI,EAAA,CAAA;sBAFH,WAAW;uBAAC,kBAAkB,CAAA;;sBAC9B,KAAK;gBASG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBASG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAOG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAQG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAQG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;ME3OI,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,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,oBAAoB,EAhBhB,YAAA,EAAA,CAAA,cAAc,EAAE,mBAAmB,aAEhD,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,aAAa;YACb,eAAe;YACf,qBAAqB;AACrB,YAAA,sBAAsB,aAEd,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEb,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,oBAAoB,YAd7B,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,aAAa;YAEb,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AACnD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCXY,oBAAoB,CAAA;AAiD/B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAtC9G;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AAEtB;;;;;;;AAOG;QACM,IAAI,CAAA,IAAA,GAAoB,aAAa,CAAC;AAE/C;;;;;;AAMG;QACM,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAEpB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAKpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;SACjF;KACF;AA7DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAkDT,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAlD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kRCnBjC,0OASA,EAAA,MAAA,EAAA,CAAA,88WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0OAAA,EAAA,MAAA,EAAA,CAAA,88WAAA,CAAA,EAAA,CAAA;;0BAoD5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAxC1D,YAAY,EAAA,CAAA;sBAFX,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBAUG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAUG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;ME7DK,iBAAiB,CAAA;AAC5B,IAAA,WAAA,GAAA;AAGU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAH/B;;AAMqB,IAAA,UAAU,CAAC,KAAY,EAAA;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;;AAG6C,IAAA,WAAW,CAAC,KAAY,EAAA;QACpE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;;AAGwC,IAAA,MAAM,CAAC,KAAgB,EAAA;QAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,KAAe,CAAC;AACpB,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;AACxB,YAAA,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;KACF;+GAhCU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;wDAIiC,IAAI,EAAA,CAAA;sBAAnC,WAAW;uBAAC,iBAAiB,CAAA;gBACpB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAG+B,UAAU,EAAA,CAAA;sBAA/C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOU,WAAW,EAAA,CAAA;sBAAxD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOI,MAAM,EAAA,CAAA;sBAA9C,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCsCrB,mBAAmB,CAAA;AA2H9B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QA3H/F,IAAK,CAAA,KAAA,GAAG,gBAAgB,CAAC;AAwCxC;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAgB,IAAI,CAAC;AAElC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;AAK1C;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAE7C,IAAkB,CAAA,kBAAA,GAAG,cAAc,CAAC;AAEvD;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI;AACtB,SAAC,CAAC;AAEF;;AAEG;QACH,IAAO,CAAA,OAAA,GAAG,MAAK;AACf,SAAC,CAAC;QAEF,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAMd,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;AAGD,IAAA,aAAa,CAAC,KAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;;AAGD,IAAA,cAAc,CAAC,KAAY,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,aAAiC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;KAChD;;AAGD,IAAA,QAAQ,CAAC,KAAe,EAAA;QACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;AACvG,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;KACF;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC/D;;IAGD,WAAW,GAAA;QACT,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC9F;;IAGD,UAAU,GAAA;QACR,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SACjC;AACD,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SACjC;AACD,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SACzC;KACF;AAED,IAAA,UAAU,CAAC,KAAY,EAAA;QACrB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;SAC3B;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAEO,eAAe,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;KAC3F;AAEO,IAAA,YAAY,CAAC,QAAgB,EAAA;AACnC,QAAA,OAAO,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;KAC/B;AA1NU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBA4HR,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA5H/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAzCnB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BH,0uIA8FA,ED/Dc,MAAA,EAAA,CAAA,+qMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA5B,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAc,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,gBAAgB,EAAE;gBACxB,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;iBACjE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,oBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1D,CAAC;aACH,CAAC;YACF,OAAO,CAAC,wBAAwB,EAAE;gBAChC,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;iBACjE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,oBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1D,CAAC;aACH,CAAC;YACF,OAAO,CAAC,sBAAsB,EAAE;gBAC9B,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;iBACjE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,oBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1D,CAAC;aACH,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA9C/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGX,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA;wBACV,OAAO,CAAC,gBAAgB,EAAE;4BACxB,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;6BACjE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,gCAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC1D,CAAC;yBACH,CAAC;wBACF,OAAO,CAAC,wBAAwB,EAAE;4BAChC,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;6BACjE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,gCAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC1D,CAAC;yBACH,CAAC;wBACF,OAAO,CAAC,sBAAsB,EAAE;4BAC9B,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;6BACjE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,gCAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC1D,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,0uIAAA,EAAA,MAAA,EAAA,CAAA,+qMAAA,CAAA,EAAA,CAAA;;0BA8HE,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA3H3C,KAAK,EAAA,CAAA;sBAAnB,WAAW;gBAOH,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAOG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAQG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAQG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGN,SAAS,EAAA,CAAA;sBADR,WAAW;uBAAC,eAAe,CAAA;gBAUnB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;ME3JI,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,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,0BAA0B,iBALtB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,YAAY,EAAE,oBAAoB,aAClC,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGnB,0BAA0B,EAAA,OAAA,EAAA,CAJ3B,YAAY,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIjC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC;oBAC7C,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;MCYY,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,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,yBAAyB,EAXrB,YAAA,EAAA,CAAA,mBAAmB,EAAE,iBAAiB,aAEnD,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,0BAA0B;AAC1B,YAAA,eAAe,aAEP,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,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,yBAAyB,YATlC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKjB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;AACtD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,0BAA0B;wBAC1B,eAAe;AAChB,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCZY,kBAAkB,CAAA;AAkC7B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAjC9G;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAa,IAAI,CAAC;AAUnC;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEnB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAKpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,QAAQ,MAAW;AA1CR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAmCP,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnC/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,iKCT/B,6GAEA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDOa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA,CAAA;;0BAuCtB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA3BjD,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;ME9BK,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,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,wBAAwB,iBALpB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,YAAY,EAAE,mBAAmB,aACjC,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGjB,wBAAwB,EAAA,OAAA,EAAA,CAJzB,YAAY,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIhC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;oBAC5C,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC7B,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ICVW,aAaX;AAbD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,YAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvD,IAAA,YAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvD,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,YAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD,CAAA;AACrD,IAAA,YAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD,CAAA;AACvD,CAAC,EAbW,YAAY,KAAZ,YAAY,GAavB,EAAA,CAAA,CAAA,CAAA;IAEW,aAcX;AAdD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,yBAAmC,CAAA;AACnC,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,yBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,uBAAiC,CAAA;AACjC,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,iDAA0E,CAAA;AAC1E,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,8CAAoE,CAAA;AACpE,IAAA,YAAA,CAAA,uBAAA,CAAA,GAAA,gDAAwE,CAAA;AACxE,IAAA,YAAA,CAAA,2BAAA,CAAA,GAAA,oDAAgF,CAAA;AAChF,IAAA,YAAA,CAAA,2BAAA,CAAA,GAAA,oDAAgF,CAAA;AAChF,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,iDAA0E,CAAA;AAC1E,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,iDAA0E,CAAA;AAC1E,IAAA,YAAA,CAAA,0BAAA,CAAA,GAAA,mDAA8E,CAAA;AAC9E,IAAA,YAAA,CAAA,0BAAA,CAAA,GAAA,mDAA8E,CAAA;AAC9E,IAAA,YAAA,CAAA,mBAAA,CAAA,GAAA,qCAAyD,CAAA;AAC3D,CAAC,EAdW,YAAY,KAAZ,YAAY,GAcvB,EAAA,CAAA,CAAA;;MCVY,aAAa,CAAA;AAwHxB,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAxH9G;;;;;AAKG;AACM,QAAA,IAAA,CAAA,IAAI,GAAiB,YAAY,CAAC,OAAO,CAAC;AAEnD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,YAAY,CAAC;AAE9B;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;AAErB;;;;;;AAMG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAEZ,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;AAO/C;;AAEG;QACH,IAAM,CAAA,MAAA,GAAG,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,gBAAA,QAAQ,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,YAAY,CAAC,SAAS,EAAE;AAC3B,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC;wBACtC,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,OAAO,EAAE;AACzB,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;wBACpC,MAAM;qBACP;oBACD,SAAS;AACP,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;wBACpC,MAAM;qBACP;iBACF;aACF;iBAAM;AACL,gBAAA,QAAQ,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,YAAY,CAAC,sBAAsB,EAAE;AACxC,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,sBAAsB,CAAC;wBACnD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,mBAAmB,EAAE;AACrC,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC;wBAChD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,qBAAqB,EAAE;AACvC,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC;wBAClD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,yBAAyB,EAAE;AAC3C,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,yBAAyB,CAAC;wBACtD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,yBAAyB,EAAE;AAC3C,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,yBAAyB,CAAC;wBACtD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,sBAAsB,EAAE;AACxC,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,sBAAsB,CAAC;wBACnD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,sBAAsB,EAAE;AACxC,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,sBAAsB,CAAC;wBACnD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,wBAAwB,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,wBAAwB,CAAC;wBACrD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,wBAAwB,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,wBAAwB,CAAC;wBACrD,MAAM;qBACP;AACD,oBAAA,KAAK,YAAY,CAAC,SAAS,EAAE;AAC3B,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,iBAAiB,CAAC;wBAC9C,MAAM;qBACP;oBACD,SAAS;AACP,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC;wBAChD,MAAM;qBACP;iBACF;aACF;AACH,SAAC,CAAC;QAKA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED;;AAEG;IACH,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;SACjD;KACF;AAEO,IAAA,WAAW,CAAC,YAAoB,EAAA;QACtC,IAAI,YAAY,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;SAC3B;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;SAClB;KACF;AAvJU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAyHF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzH/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,oMCnB1B,8hBAcA,EAAA,MAAA,EAAA,CAAA,iuEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7B,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8hBAAA,EAAA,MAAA,EAAA,CAAA,iuEAAA,CAAA,EAAA,CAAA;;0BA2H5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAlHjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEpDK,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;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,EAJf,YAAA,EAAA,CAAA,aAAa,CAClB,EAAA,OAAA,EAAA,CAAA,IAAI,aACJ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEZ,mBAAmB,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;oBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA,CAAA;;;MCEY,kBAAkB,CAAA;AAkG7B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA1F9G;;;;;AAKG;QACqC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAErD;;;;;AAKG;QACqC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEzD;;;;;AAKG;QACqC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEhE;;;;;AAKG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAEjC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAWtD;;;;;;AAMG;QACM,IAAO,CAAA,OAAA,GAAqB,UAAU,CAAC;AAEhD;;;;;;AAMG;QACM,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAE5C;;;;;;AAMG;QACM,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAE5C;;;;;;AAMG;QACM,IAAkB,CAAA,kBAAA,GAAuB,OAAO,CAAC;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;QAK1C,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAES,IAAA,MAAM,CAAC,IAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAEjB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB;KACF;AAlHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAmGP,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnG/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6EAeT,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAQhB,gBAAgB,CAQhB,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAgB,oUCzCtC,03DAuCA,EAAA,MAAA,EAAA,CAAA,unTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Ba,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,03DAAA,EAAA,MAAA,EAAA,CAAA,unTAAA,CAAA,EAAA,CAAA;;0BAuGrB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA5F/B,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAQe,IAAI,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQ7B,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBASG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBASG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBASG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEjFI,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,YAAA,EAAA,CAb7B,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAMlB,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;AAChB,YAAA,kBAAkB,aAPlB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAUb,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,wBAAwB,YAP7B,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;YAChB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,kBAAkB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,kBAAkB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,gBAAgB;wBAChB,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;;;ICtBW,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,QAAQ,GAA6B;AAChD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,KAAK,EAAE,IAAI;EACX;IAEU,sBAMX;AAND,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,SAAgB,CAAA;AAChB,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,SAAe,CAAA;AACf,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,SAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,SAAe,CAAA;AACjB,CAAC,EANW,qBAAqB,KAArB,qBAAqB,GAMhC,EAAA,CAAA,CAAA;;MChBY,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClD,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,OAAO,QAAQ;AACZ,iBAAA,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;iBAC3F,IAAI,CAAC,EAAE,CAAC,CAAC;SACb;aAAM;YACL,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAA,EAAG,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA,CAAE,CAAC;SACzF;KACF;+GAXU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCUY,eAAe,CAAA;AA6C1B;;;;;;AAMG;IACH,IAAa,eAAe,CAAC,SAAoC,EAAA;QAC/D,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,SAAS,CAAC,WAAW,EAAwC,CAAC,CAAC;KACnH;AAaD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAnE9G;;;;;AAKG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AACjC;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEvB;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEnB;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE1B;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAatD;;;;AAIG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAS,CAAC;QAG7B,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;QAKzC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAES,IAAA,WAAW,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;AA7EU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAoEJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApE/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kRCd5B,q9BAwBA,EAAA,MAAA,EAAA,CAAA,mxGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAkB,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,q9BAAA,EAAA,MAAA,EAAA,CAAA,mxGAAA,CAAA,EAAA,CAAA;;0BAwElB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA7DjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAMG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBASI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;ME9DI,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,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,qBAAqB,EAJjB,YAAA,EAAA,CAAA,eAAe,EAAE,gBAAgB,CACtC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,aAC1E,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,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,qBAAqB,YAHtB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;oBACjD,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,CAAC;oBACrF,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCuBY,8BAA8B,CAAA;AApB3C,IAAA,WAAA,GAAA;QAqBW,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QACX,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;QAE3C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,YAAY,EAAU,CAAC;AACjE,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAU,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAElD,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QACxC,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;AAanC,KAAA;AAXC,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;KACxC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;AAED,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/B;+GA5BU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnC3C,mnFA4EA,EAAA,MAAA,EAAA,CAAA,mwIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvDI,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,0BACb,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGZ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBApB1C,SAAS;+BACE,6BAA6B,EAAA,UAAA,EAG3B,IAAI,EACP,OAAA,EAAA;wBACP,OAAO;wBACP,OAAO;wBACP,mBAAmB;wBACnB,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,wBAAwB;wBACxB,IAAI;wBACJ,gBAAgB;wBAChB,qBAAqB;wBACrB,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,mnFAAA,EAAA,MAAA,EAAA,CAAA,mwIAAA,CAAA,EAAA,CAAA;8BAGQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AEhDT,IAAY,iBAGX,CAAA;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,IAAA,CAAA,GAAA,QAAa,CAAA;AACf,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;MCIY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAF1C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAA0B,CAAC;KAER;AAEtD,IAAA,IAAI,CAAI,MAAuB,EAAA;QAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;AACjD,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9F,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC/E,OAAO,kBAAkB,CAAC,QAAa,CAAC;KACzC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;+GAnBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCkBY,kBAAkB,CAAA;AAqC7B,IAAA,WAAA,CAC6E,eAAiC,EACpG,gBAAkC,EAClC,UAAsB,EAAA;QAF6C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAvChC;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAsB,KAAK,CAAC;AAE7C;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAW,CAAC;QAKzC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QACX,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAOhE,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AAC9E,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;AAClE,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACrD;iBAAM,IAAI,CAAC,MAAM,EAAE;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,SAAS,CAAC,MAAuB,EAAA;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC;AAEzD,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACrE,gBAAA,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;SACJ;KACF;IAES,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;KACtB;AAED,IAAA,YAAY,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChC;AApFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAsCP,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAtC/C,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA6BG,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrDlD,yoDAqCA,EAAA,MAAA,EAAA,CAAA,w6HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDba,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,yoDAAA,EAAA,MAAA,EAAA,CAAA,w6HAAA,CAAA,EAAA,CAAA;;0BA0CtB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;8FA/BjD,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEc,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBACgD,SAAS,EAAA,CAAA;sBAA3E,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MExBtD,eAAe,CAAA;AAoE1B;;;;AAIG;IACH,IAAa,gBAAgB,CAAC,KAAa,EAAA;QACzC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;KACF;AA2DD,IAAA,WAAA,CACmB,kBAAsC,EACoB,eAAiC,EACpG,gBAAkC,EAClC,UAAsB,EAAA;QAHb,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACoB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AA3IhC;;;;;;AAMG;QACM,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;AAE/B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAE3B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEvB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;AAEpC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAsBtD;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAExB;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,YAAY,EAAU,CAAC;AAE3E;;AAEG;AACO,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAU,CAAC;AAE7E;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAC3D,QAAA,IAAA,CAAA,SAAS,GAA4B,IAAI,YAAY,EAAa,CAAC;QAEnE,IAAU,CAAA,UAAA,GAAe,SAAS,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACzF,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvF,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAC3D,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,UAAU,CAAA,GAAA,CAAK,CAAC;AACpF,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EACnB,GAAG,CAAC,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC,CACnE,CAAC,CACL,CAAC;QACiB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAC3D,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,UAAU,CAAA,GAAA,CAAK,CAAC;AACpF,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EACnB,GAAG,CAAC,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC,CACnE,CACF,CACF,CAAC;QACQ,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,YAAY,CAAC;QA+Df,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;QAvDzC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC/C,QAAA,MAAM,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAiC;AAC1F,YAAA,YAAY,EAAE,8BAA8B;AAC5C,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,kBAAkB;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,wBAAwB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAA,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpD,QAAA,wBAAwB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAC1D,QAAA,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAA,wBAAwB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAA,wBAAwB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAA,wBAAwB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACtE,QAAA,wBAAwB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAElE,QAAA,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5F,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACxB,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;AAEH,QAAA,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACnG,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;AAEH,QAAA,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACjG,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;KACxC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;AAED,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/B;IAED,iBAAiB,CAAC,QAAiB,EAAE,UAAsB,EAAA;AACzD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;KAC/C;AAnMU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,sDA0IJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1I/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,0eC7B5B,k5IAqHA,EAAA,MAAA,EAAA,CAAA,yvQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7B,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA8B,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDxFa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k5IAAA,EAAA,MAAA,EAAA,CAAA,yvQAAA,CAAA,EAAA,CAAA;;0BA4I5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;8FAlIjD,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAaG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAKG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MEpHI,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,YAAA,EAAA,CAZpB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAG3B,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;AACf,YAAA,mBAAmB,aARf,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAWjB,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,wBAAwB,YAT7B,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;YAChB,gBAAgB;YAEhB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC3B,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,gBAAgB;wBAChB,gBAAgB;wBAChB,eAAe;wBACf,mBAAmB;AACtB,qBAAA;AACJ,iBAAA,CAAA;;;MCeY,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CAnBjB,eAAe,CAAA,EAAA,OAAA,EAAA,CAE5B,YAAY;YACZ,gBAAgB;YAChB,aAAa;YACb,eAAe;YACf,eAAe;YACf,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,qBAAqB;YACrB,wBAAwB;YACxB,qBAAqB;YACrB,8BAA8B;AAC9B,YAAA,oBAAoB,aAEZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,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,qBAAqB,YAjB9B,YAAY;YACZ,gBAAgB;YAChB,aAAa;YACb,eAAe;YACf,eAAe;YACf,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YAEnB,qBAAqB;YACrB,wBAAwB;YACxB,qBAAqB;YACrB,8BAA8B;YAC9B,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,qBAAqB;wBACrB,wBAAwB;wBACxB,qBAAqB;wBACrB,8BAA8B;wBAC9B,oBAAoB;AACrB,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MC3BY,4BAA4B,CAAA;AAkCvC;;AAEG;AACH,IAAA,QAAQ,MAAW;AAEnB,IAAA,WAAA,GAAA;;;;AAlCA;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAExC;;;;;AAKG;QACM,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAEpB;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AAE9B;;AAEG;AACO,QAAA,IAAA,CAAA,qBAAqB,GAA4B,IAAI,YAAY,EAAa,CAAC;KAOzE;AAEhB,IAAA,gBAAgB,CAAC,SAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5C;+GA3CU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,mLCTzC,6MAIgB,EAAA,MAAA,EAAA,CAAA,2yFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKH,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,2yFAAA,CAAA,EAAA,CAAA;wDAqBtC,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAKI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;ME9BI,kCAAkC,CAAA;+GAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,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,kCAAkC,iBAL9B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CACjC,YAAY,EAAE,kBAAkB,aAChC,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;gHAG3B,kCAAkC,EAAA,OAAA,EAAA,CAJnC,YAAY,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI/B,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBAC3C,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACvC,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACVD;MA0Ba,oBAAoB,CAAA;AAoB/B,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;IAmGD,WAC6E,CAAA,eAAiC,EACjF,SAAoB,EAAA;QAD4B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACjF,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA9HjD;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;;QAGH,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AASlB;;;;;;AAMG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAE/B;;;;;;AAMG;QAGH,IAAY,CAAA,YAAA,GAAkB,SAAS,CAAC;AAExC;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEnB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAW1B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAwB,CAAC;AAgEjE,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;QA7DjB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KACtC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACtC;KACF;;IAGD,UAAU,CAAC,OAAuB,EAAE,KAAiB,EAAA;;AAEnD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACtF;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3E;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;SACjE;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KAC9B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;;IAUD,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,SAAS,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;SACnE;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAtMU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBA8HT,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9H/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,ieC1BjC,2rBAsBA,EAAA,MAAA,EAAA,CAAA,2gNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2rBAAA,EAAA,MAAA,EAAA,CAAA,2gNAAA,CAAA,EAAA,CAAA;;0BAgI5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BACvD,QAAQ;;0BAAI,IAAI;yCAvHV,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAaF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAeG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAWN,YAAY,EAAA,CAAA;sBAFX,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBASG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEvII,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,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,0BAA0B,EAJtB,YAAA,EAAA,CAAA,oBAAoB,CACzB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,aAC9E,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEnB,0BAA0B,EAAA,OAAA,EAAA,CAH3B,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG7E,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAC;oBACzF,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCiBY,iBAAiB,CAAA;AAgB5B;;;;AAIG;IACH,IAAa,IAAI,CAAC,KAAa,EAAA;QAC7B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;SAClE;KACF;AA2FD,IAAA,WAAA,CAC6E,eAAiC,EACxE,IAAS,EACrC,WAA8C,EAC9C,YAA0B,EAAA;QAHyC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACxE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;QACrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmC;QAC9C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAvHpC;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAiB,SAAS,CAAC;AAEhD;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAatB;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;AAErB;;;;AAIG;QACM,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAErC;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAEtB;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAI,EAAE,CAAC;AASxB;;;;;AAKG;QACM,IAAU,CAAA,UAAA,GAAoB,QAAQ,CAAC;AAEhD;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAoB,SAAS,CAAC;AAE9C;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QAGjC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAEpB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAIlB,IAAkB,CAAA,kBAAA,GAAG,WAAW,CAAC;QACd,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAQpC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACvF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvD;;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACtE;;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC5B;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAChC,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;;IAGD,YAAY,GAAA;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;AACtD,QAAA,IAAI,IAAI,IAAI,CAAC,EAAE;AACb,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;KAC7E;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC5B;+GA/KU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAqHN,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAChD,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAtHjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B9B,ghDAoCA,EDrBc,MAAA,EAAA,CAAA,u/LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAArB,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmB,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;gBACnB,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACtC,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;iBAChE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACrC,oBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBAChE,CAAC;aACH,CAAC;AACH,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGX,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;4BACnB,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACtC,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;6BAChE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACrC,gCAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BAChE,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,ghDAAA,EAAA,MAAA,EAAA,CAAA,u/LAAA,CAAA,EAAA,CAAA;;0BAuHE,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BACvD,MAAM;2BAAC,kBAAkB,CAAA;qGA/GnB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAWG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;ME3HK,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,QAAqB,EAAA;QAArB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;KAAI;AAE7C,IAAA,KAAK,CAAC,OAAe,EAAE,gBAAmC,EAAE,IAAa,EAAA;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;AACtE,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,OAAO;gBACrB,OAAO;gBACP,IAAI;AACL,aAAA;AACF,SAAA,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE;AACpB,YAAA,YAAY,CAAC,QAAQ,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC3D;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,OAAO,CAAC,OAAe,EAAE,gBAAmC,EAAE,IAAa,EAAA;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;AACtE,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,SAAS;gBACvB,OAAO;gBACP,IAAI;AACL,aAAA;AACF,SAAA,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE;AACpB,YAAA,YAAY,CAAC,QAAQ,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC3D;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;+GA7BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAf,eAAe,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;;MCWE,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,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,uBAAuB,EALnB,YAAA,EAAA,CAAA,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,aAC9G,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGhB,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,uBAAuB,EAFvB,SAAA,EAAA,CAAC,eAAe,CAAC,EAFlB,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAmB,iBAAiB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI7G,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;oBACzH,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE,CAAC,eAAe,CAAC;AAC7B,iBAAA,CAAA;;;MCNY,sBAAsB,CAAA;AACjC,IAAA,SAAS,CAAC,GAAW,EAAE,OAAA,GAAkB,EAAE,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACtC;IAEO,UAAU,CAAC,GAAQ,EAAE,IAAY,EAAA;QACvC,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;AAC9C,YAAA,OAAO,EAAE,CAAC;SACX;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACrD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAA,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,SAAS;aACV;YACD,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;AAC9C,gBAAA,OAAO,EAAE,CAAC;aACX;SACF;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;+GApBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ICgCW,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;IAEW,oBAIX;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;;MC1CY,yBAAyB,CAAA;IAIpC,IAAa,gBAAgB,CAAC,iBAAqC,EAAA;AACjE,QAAA,IAAI,iBAAiB,CAAC,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAErE,YAAA,IAAI,iBAAiB,CAAC,MAAM,EAAE;AAC5B,gBAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CACvC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CACtF,CAAC;aACH;AAED,YAAA,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC7B,gBAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,IAAG;oBAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CACpG,CAAC;AACJ,iBAAC,CAAC,CAAC;aACJ;SACF;KACF;AAED,IAAA,WAAA,CAAoB,GAAqB,EAAA;QAArB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;AAvBjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAuBG;IAE7C,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxB;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;+GA/BU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;qFAKc,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;;;MCSK,wBAAwB,CAAA;AACnC;;AAEG;IACH,IAAwB,OAAO,CAAC,OAAgB,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACjH;AAOD;;;;;;AAMG;IACH,IAAa,SAAS,CAAC,IAAgB,EAAA;AACrC,QAAA,IAAI,IAAI,EAAE,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC/B;KACF;IA+DD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAA4B,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC;AACxG,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAClE,CAAC,WAAkC,KAAK,WAAW,CAAC,UAAU,CAC/D,CAAC;SACH;KACF;AAED,IAAA,WAAA,CAAoB,sBAA8C,EAAA;QAA9C,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AAxFlE;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAe9B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;AAU9C;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAErE;;AAEG;AACO,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;AAEvE;;AAEG;AACO,QAAA,IAAA,CAAA,qBAAqB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAE7E;;AAEG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,kBAAkB,CAAM,EAAE,CAAC,CAAC;AAE7C;;AAEG;AACH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,kBAAkB,CAAM,EAAE,CAAC,CAAC;AAOnD;;AAEG;QACH,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;AAEhC;;AAEG;QACH,IAAsB,CAAA,sBAAA,GAAa,EAAE,CAAC;AAEtC;;AAEG;QACH,IAAQ,CAAA,QAAA,GAAG,cAAc,CAAC;KAW4C;AAEtE,IAAA,MAAM,CAAC,UAAgB,EAAA;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAuB,KAAK,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;AAChH,QAAA,IAAI,UAAU,EAAE,KAAK,EAAE;AACrB,YAAA,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE,KAAK,CAAC;SACvC;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AAED,IAAA,UAAU,CAAC,SAAc,EAAA;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;AAED,IAAA,gBAAgB,CAAC,SAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5C;AAED,IAAA,SAAS,CAAC,OAAU,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACrE,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AACvC,gBAAA,IAAI,EAAE,OAAO;gBACb,mBAAmB,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9D,aAAA,CAAC,CAAC;SACJ;KACF;AAED;;AAEG;AACK,IAAA,kBAAkB,CAAC,IAAS,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAM,IAAI,CAAC,CAAC;KACrD;AAED;;AAEG;AACK,IAAA,wBAAwB,CAAC,OAAkB,EAAA;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,kBAAkB,CAAM,OAAO,CAAC,CAAC;KAC9D;+GAzIU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAiD,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAIxB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,ECzBpB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gvNAiHA,EDrGc,MAAA,EAAA,CAAA,0zIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApD,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmD,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,gBAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;AACrF,gBAAA,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;aACjF,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAdpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGd,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA;wBACV,OAAO,CAAC,cAAc,EAAE;4BACtB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;4BAClD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,4BAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;AACrF,4BAAA,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;yBACjF,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,gvNAAA,EAAA,MAAA,EAAA,CAAA,0zIAAA,CAAA,EAAA,CAAA;wFAMuB,OAAO,EAAA,CAAA;sBAA9B,SAAS;uBAAC,OAAO,CAAA;gBAQT,YAAY,EAAA,CAAA;sBAApB,KAAK;gBASO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAYG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAKI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAKG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;MErDI,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA9B,8BAA8B,EAAA,YAAA,EAAA,CAb1B,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAErC,YAAY;YACZ,cAAc;YACd,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,yBAAyB;AACzB,YAAA,sBAAsB,aAEd,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGvB,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,8BAA8B,EAF9B,SAAA,EAAA,CAAC,sBAAsB,CAAC,YATjC,YAAY;YACZ,cAAc;YACd,aAAa;YACb,aAAa;YACb,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACxC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,gBAAgB;wBAChB,yBAAyB;wBACzB,sBAAsB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;;;MCHY,YAAY,CAAA;AACvB;;;;AAIG;IACH,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;AA8HD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA7H9G;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAE7B;;;;;;AAMG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE5B;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE5B;;;;;;AAMG;QACM,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAEtC;;;;;;AAMG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE5B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ,CAAC;AAE3C;;;;;AAKG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAW,CAAC;AAE9C;;;;;AAKG;AACK,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;AAEzD;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3D,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAK;AACP,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AAC3C,YAAA,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;SACxC,CAAC,CACH,CAAC;QACQ,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QASvB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;KAC1B;IAED,eAAe,GAAA;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,OAAO,GAAA;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC;KACF;AAED,IAAA,aAAa,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,SAAqB,CAAC;aACrD;iBAAM;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;aAC7B;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;SACrD;KACF;AAED,IAAA,cAAc,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAEO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACjC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;KAC5D;AA/LU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBA0ID,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1I/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,ieCpBzB,21CA0BA,EAAA,MAAA,EAAA,CAAA,mxKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;+BACE,QAAQ,EAAA,QAAA,EAAA,21CAAA,EAAA,MAAA,EAAA,CAAA,mxKAAA,CAAA,EAAA,CAAA;;0BA8If,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCApI7C,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAaG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBASG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQI,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAQG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBA8BoB,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;;;IE3Jf,oBAKX;AALD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAK9B,EAAA,CAAA,CAAA;;MCaY,gBAAgB,CAAA;AAoC3B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AApC9G;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAwB,mBAAmB,CAAC,GAAG,CAAC;AAEjE;;;;;AAKG;QACqC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEzD;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEtB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAOpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAID,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;IAGD,WAAW,GAAA;AACT,QAAA,QAAQ,IAAI,CAAC,QAAQ;YACnB,KAAK,mBAAmB,CAAC,GAAG;AAC1B,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,MAAM;YACR,KAAK,mBAAmB,CAAC,MAAM;AAC7B,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,MAAM;SACT;KACF;AA/DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAqCL,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGArC/C,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAeP,gBAAgB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCtC,qZAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,YAAY,EAAA,eAAA,EAEL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qZAAA,EAAA,CAAA;;0BAuC5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA9BjD,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQkC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQ7B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MExCK,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,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,sBAAsB,iBAJlB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,gBAAgB,EAAE,YAAY,aAC9B,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEf,sBAAsB,EAAA,OAAA,EAAA,CAHvB,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG7B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;AAChC,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;oBACzC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;MCKY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,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,kBAAkB,EALd,YAAA,EAAA,CAAA,YAAY,CACf,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,aAC7F,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGX,kBAAkB,EAAA,OAAA,EAAA,CAJjB,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI5F,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,YAAY,CAAC;oBAC1B,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,CAAC;oBACxG,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;MCaY,iBAAiB,CAAA;AAgK5B,IAAA,WAAA,CAC6E,eAAiC,EACpG,GAAsB,EACH,SAAoB,EAAA;QAF4B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACH,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAlKlC,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;AAErC;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAI,EAAE,CAAC;AAiBrB;;;;;AAKG;QACM,IAAE,CAAA,EAAA,GAAI,EAAE,CAAC;AAkBlB;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAiB,EAAE,CAAC;AAEtC;;;;;;AAMG;QACM,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAE3B;;;;;;AAMG;QACM,IAAsB,CAAA,sBAAA,GAAI,KAAK,CAAC;AAEzC;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAElC;;;;;;AAMG;QAEM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAExB;;;;AAIG;QACM,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAEzB;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;AAOjB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;KACF;AAOD;;;AAGG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KAC5C;AAED,IAAA,UAAU,CAAC,KAAY,EAAA;QACrB,KAAK,EAAE,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;AAGD,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;IAGD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;SAC9C;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,UAAU,CAAC,KAAW,EAAA;QACpB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;SAC1B;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AA7OU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAiKN,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjK/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,mnBC1B9B,mjFAyCA,EAAA,MAAA,EAAA,CAAA,y2aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,iBAGR,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mjFAAA,EAAA,MAAA,EAAA,CAAA,y2aAAA,CAAA,EAAA,CAAA;;0BAmK5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAEvD,QAAQ;;0BAAI,IAAI;yCAlKJ,KAAK,EAAA,CAAA;sBAAnB,WAAW;gBAQH,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBADxB,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEhJK,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAhBnB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,qBAAqB;AACrB,YAAA,sBAAsB,aAEd,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,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,uBAAuB,YAdhC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YAEf,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCpBY,gBAAgB,CAAA;AA8B3B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA9B9G;;;;;;AAMG;QACM,IAAI,CAAA,IAAA,GAAgB,OAAO,CAAC;AAErC;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAOpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO,CAAI,CAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzH;AAhDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBA+BL,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA/B/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,6JCT7B,mPAMA,EAAA,MAAA,EAAA,CAAA,o9FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,mPAAA,EAAA,MAAA,EAAA,CAAA,o9FAAA,CAAA,EAAA,CAAA;;0BAmCnB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAvBjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;ME1BK,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,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,sBAAsB,EAJlB,YAAA,EAAA,CAAA,gBAAgB,CAErB,EAAA,OAAA,EAAA,CAAA,OAAO,aADP,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGf,sBAAsB,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,OAAO,CAAC;AACnB,iBAAA,CAAA;;;MCGY,sBAAsB,CAAA;AAgBjC,IAAA,WAAA,CAC6E,eAAiC,EACrG,SAA+C,EACrB,IAAuB,EAAA;QAFmB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACrG,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsC;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;AAd1D,QAAA,IAAA,CAAA,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC;AAEvC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAOpD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAChD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,eAAe,CAAC;QAE7D,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;+GA9BU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAiBX,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAEhD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnBd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2GCXnC,qoBAgBA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuD,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,2BAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAxC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,qoBAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA;;0BAqB1B,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAEvD,MAAM;2BAAC,eAAe,CAAA;yCALhB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MERK,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,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,4BAA4B,EARxB,YAAA,EAAA,CAAA,sBAAsB,CAM3B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,aAL5F,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAOrB,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,4BAA4B,EAN5B,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC1C,YAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE;AACxC,SAAA,EAAA,OAAA,EAAA,CACS,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAE1E,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC1C,wBAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE;AACxC,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,CAAC;AACxG,iBAAA,CAAA;;;ACNK,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;AAC7C,IAAA,MAAM,CAAC,IAAU,EAAA;QACxB,OAAO,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAC7C;+GAHU,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;AAOX,MAAM,OAAO,GAAmB;AAC9B,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,SAAS;AACrB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;CACF,CAAC;MAgBW,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,iBAAiB;AAC5B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,QAAQ,EAAE,OAAO;AAClB,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,iBAAiB;AAC5B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,QAAQ,EAAE,OAAO;AAClB,yBAAA;AACF,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACzCD;AA6BA;MACa,mBAAmB,CAAA;AA4C9B;;;;;AAKG;IACH,IAAa,MAAM,CAAC,MAAgB,EAAA;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KAC5C;AAoJD,IAAA,WAAA,CAC6E,eAAiC,EACpG,GAAsB,EACtB,SAAuB,EACJ,SAAoB,EAAA;QAH4B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACJ,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QA5MlC,IAAK,CAAA,KAAA,GAAG,eAAe,CAAC;AAEvC;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAI,EAAE,CAAC;AAUrB;;;;;AAKG;QACM,IAAW,CAAA,WAAA,GAAI,EAAE,CAAC;AAE3B;;;;;AAKG;QACM,IAAE,CAAA,EAAA,GAAI,EAAE,CAAC;AAsDlB;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAElC;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAkB3B;;;;;AAKG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAE7B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAClC;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;AAEnB;;;;;AAKG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAiB,CAAC;QAEtD,IAAK,CAAA,KAAA,GAAG,IAAI,SAAS,CAAC;AACpB,YAAA,KAAK,EAAE,IAAI,WAAW,CAAc,IAAI,CAAC;AACzC,YAAA,GAAG,EAAE,IAAI,WAAW,CAAc,IAAI,CAAC;AACxC,SAAA,CAAC,CAAC;QAGO,IAAkB,CAAA,kBAAA,GAAG,aAAa,CAAC;QAQ3C,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;KACF;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAClC,OAAO,IAAI,CAAC,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;SAC/F;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;;AAGG;;IAEH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;;IAGD,QAAQ,GAAA;QACN,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;;;IAID,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;SACpE;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,UAAU,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,eAAe,CAAC,KAAa,EAAE,GAAW,EAAA;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;KAC/C;IAED,eAAe,CAAC,sBAA2B,EAAE,UAA+B,EAAA;AAC1E,QAAA,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC;QAEnG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;QAE5D,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACzC;IAEO,QAAQ,GAAA;AACd,QAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AAClC,YAAA,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACrD;YACD,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD;SACF;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxC;KACF;IAEO,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAA;AACzC,QAAA,OAAO,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;KAC1B;AAED,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAyC,CAAC;AAC/D,QAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,CAAG,EAAA,KAAK,IAAI,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AAClD,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC9B;AAzUU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBA0MR,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1M/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wsBC9BhC,yoKAkGA,EAAA,MAAA,EAAA,CAAA,y1QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqD,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1D,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmB,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDpEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,iBAGV,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yoKAAA,EAAA,MAAA,EAAA,CAAA,y1QAAA,CAAA,EAAA,CAAA;;0BA6M5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAGvD,QAAQ;;0BAAI,IAAI;yCA5MJ,KAAK,EAAA,CAAA;sBAAnB,WAAW;gBAQH,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAWG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAiBI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;ME7LI,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAzB,yBAAyB,EAAA,YAAA,EAAA,CAjBrB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,qBAAqB;YACrB,sBAAsB;AACtB,YAAA,qBAAqB,aAEb,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,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,yBAAyB,YAflC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YAInB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIZ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,WAAW;wBACX,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;AACtB,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MC1BY,YAAY,CAAA;AACvB;;;;;;AAMG;IACH,SAAS,CAAC,KAAa,EAAE,KAAa,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC/D;+GAVU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;MCOY,eAAe,CAAA;IA2D1B,IAAa,MAAM,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;KACrB;AAID,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAnE7F,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAC1B,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;AAG/B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAStD;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAyB,OAAO,CAAC;AAE/C;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAU1B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAQb,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAKjD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;KAEnC;AAES,IAAA,MAAM,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAES,IAAA,OAAO,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;KAC7B;AApFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAoEJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApE/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gSCX5B,2nCAgCA,EAAA,MAAA,EAAA,CAAA,+5LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA6D,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2nCAAA,EAAA,MAAA,EAAA,CAAA,+5LAAA,CAAA,EAAA,CAAA;;0BAsE5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAvDjD,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAMI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEjEI,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,eAAe,EAAE,YAAY,aAClC,YAAY,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAC5B,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEd,qBAAqB,EAAA,OAAA,EAAA,CAHtB,YAAY,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG3B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;AAC7C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCDY,cAAc,CAAA;AAYzB;;;;AAIG;IACH,IAAa,MAAM,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;KACrB;AAaD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAlC7F,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAC1B,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;AAoB/B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU,CAAC;QAKzD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;KACnC;AAES,IAAA,MAAM,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;AA9CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAmCH,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnC/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,6MCT3B,mSAOA,EAAA,MAAA,EAAA,CAAA,ooGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7D,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mSAAA,EAAA,MAAA,EAAA,CAAA,ooGAAA,CAAA,EAAA,CAAA;;0BAqC5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAzBjD,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAOO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAaG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;ME/BI,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,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,oBAAoB,EAJhB,YAAA,EAAA,CAAA,cAAc,CACnB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEb,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,oBAAoB,YAHrB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;oBAC9B,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;ACND;;AAEG;MAKU,oBAAoB,CAAA;IAI/B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;AAED,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAPlC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;KAMpB;IAEtC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1E,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B,CAAC;AACzD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AACjF,SAAC,CAAC,CAAC;KACJ;+GAfU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;+EAGW,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAEP,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,eAAe,CAAA;;;MCgBlB,eAAe,CAAA;AA0G1B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA1G9G;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;;AAMG;QACM,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAYtB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAW,CAAC;AAU/C;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEf,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;QAoD1B,IAAQ,CAAA,QAAA,GAAe,MAAK;AACpC,SAAC,CAAC;QACM,IAAS,CAAA,SAAA,GAAe,MAAK;AACrC,SAAC,CAAC;QAjDA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;KACF;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;QACvB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;IAOO,UAAU,GAAA;QAChB,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,cAAc,GAAG,EAAE,CAAA,CAAE,CAAC;KACpJ;AAlKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBA2GJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA3G/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EARf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BH,giCA8BA,EAAA,MAAA,EAAA,CAAA,wjMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgE,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjD,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkD,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,giCAAA,EAAA,MAAA,EAAA,CAAA,wjMAAA,CAAA,EAAA,CAAA;;0BA6GE,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAnGjD,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAUN,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,mBAAmB,CAAA;;sBAC/B,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAQE,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEnHK,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,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,qBAAqB,iBAJjB,eAAe,CAAA,EAAA,OAAA,EAAA,CACpB,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,aAClI,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEd,qBAAqB,EAAA,OAAA,EAAA,CAHtB,YAAY,EAAE,gBAAgB,EAAwB,cAAc,EAAmB,mBAAmB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGjI,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,CAAC;oBAC7I,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCTY,eAAe,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE;IAC7D,OAAO,EAAE,MAAK;AACZ,QAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,iBAAiB,CAAC,MAAM,CAAK,GAAA,CAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KAC3G;AACF,CAAA;;MCUY,aAAa,CAAA;AA2KxB,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAtJ9G;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAyB,EAAE,CAAC;AA8BzC;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAiB,CAAA,iBAAA,GAAwB,KAAK,CAAC;AAExD;;;;AAIG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE5B;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;;AAIG;QACM,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAEtC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAWtD;;;;;;AAMG;QACM,IAAe,CAAA,eAAA,GAAsB,EAAE,CAAC;AAEjD;;;;;;AAMG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAoB3B;;;;;;AAMG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAWhC;;;;AAIG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAKlD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,IAAc,sBAAsB,GAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpF;AAES,IAAA,cAAc,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAzLU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBA4KF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA5K/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,wpBCpB1B,slJAiHA,EAAA,MAAA,EAAA,CAAA,2vSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Fa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,slJAAA,EAAA,MAAA,EAAA,CAAA,2vSAAA,CAAA,EAAA,CAAA;;0BA8K5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAtKjD,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAOG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBASG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBASG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBASG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBASG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;IE3LG,wBAGX;AAHD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACV,IAAA,uBAAA,CAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACZ,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAGlC,EAAA,CAAA,CAAA,CAAA;IAEW,uBAGX;AAHD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAGjC,EAAA,CAAA,CAAA;;MCeY,uBAAuB,CAAA;AA+DlC,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA/D9G;;;;AAIG;AACM,QAAA,IAAA,CAAA,IAAI,GAAuB,sBAAsB,CAAC,KAAK,CAAC;AACjE;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AACnB;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AAEnB;;;AAGG;QACM,IAAO,CAAA,OAAA,GAA0B,QAAQ,CAAC;AAEnD;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAE7B;;;;AAIG;QACM,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAY5B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAS,CAAC;QAE1C,IAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;QAKpD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;SACjF;KACF;AAED,IAAA,IAAc,YAAY,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,KAAK,GAAG,uBAAuB,CAAC,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC;KACnH;AAED,IAAA,IAAc,UAAU,GAAA;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;KACrE;AAES,IAAA,aAAa,CAAC,EAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7B;AAvFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAgEZ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhE/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,4XCzBpC,w1BA0BA,EAAA,MAAA,EAAA,CAAA,i8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w1BAAA,EAAA,MAAA,EAAA,CAAA,i8FAAA,CAAA,EAAA,CAAA;;0BAkE5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA1DjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAMG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAMG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAMG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAUG,YAAY,EAAA,CAAA;sBADpB,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEjFT,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB;;AAEG;MAIU,wBAAwB,CAAA;IAKnC,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAPzB,IAAQ,CAAA,QAAA,GAAoB,YAAY,CAAC;KAOZ;IAEtC,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,EAAE;YAClC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAe,YAAA,EAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAA,GAAA,CAAK,CAAC;YACzH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,CAAA,CAAG,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAA,EAAA,CAAI,CAAC;SAC7G;aAAM;YACL,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAe,YAAA,EAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAA,GAAA,CAAK,CAAC;YAC3H,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA,EAAA,CAAI,CAAC;YACvG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;SAC3C;KACF;IAED,WAAW,GAAA;QACT,cAAc,CAAC,MAAK;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;KACJ;+GA7BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;+EAEU,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGN,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCKvC,gBAAgB,CAAA;AAC3B;;;;;;AAMG;IACH,IAAkC,sBAAsB,CAAC,KAAc,EAAA;AACrE,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAC,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC;SACzI;KACF;;AACD;;;;;AAKG;IACH,IAAa,KAAK,CAAC,SAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAChD,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;AACpC,YAAA,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;SACpC;KAEF;AAED;;;;;AAKG;IACH,IAA4B,gBAAgB,CAAC,KAAa,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAC,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC;SACzI;KACF;AA4DD,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAI,MAAM,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAED,WAC6E,CAAA,eAAiC,EAChE,SAA8B,EAAA;QADC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAChE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;AApE5E;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAoB,YAAY,CAAC;AAElD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAgE,CAAC;QAErG,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QACzB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAkB,CAAA,kBAAA,GAAG,UAAU,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAc1B,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAES,QAAQ,CAAC,YAAoB,EAAE,IAAU,EAAA;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,EAAE;AAC1D,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpG,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAES,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;IAES,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;+GAtIU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA8GL,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAChD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA/Gd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mbCrB7B,q/HAsFA,EAAA,MAAA,EAAA,CAAA,68JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+D,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlE,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmE,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDjEa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,q/HAAA,EAAA,MAAA,EAAA,CAAA,68JAAA,CAAA,EAAA,CAAA;;0BAgH5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BACvD,MAAM;2BAAC,eAAe,CAAA;yCAvGS,sBAAsB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,qBAAqB,CAAA;gBAYf,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAgBsB,gBAAgB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,eAAe,CAAA;gBAab,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEtGI,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,aAAa,CAClB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACnD,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AAEZ,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,EAHpB,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGlD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA,CAAA;;;MCCY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA7B,6BAA6B,EAAA,YAAA,EAAA,CAJzB,uBAAuB,CAE5B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAD7D,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGtB,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,6BAA6B,EAF9B,OAAA,EAAA,CAAA,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAE5D,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,CAAC;AACzE,iBAAA,CAAA;;;MCcY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,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,sBAAsB,EAZlB,YAAA,EAAA,CAAA,gBAAgB,EAAE,wBAAwB,aAEvD,YAAY;YACZ,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,6BAA6B;YAC7B,eAAe;AACf,YAAA,cAAc,aAEN,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,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,sBAAsB,YAV/B,YAAY;YACZ,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,6BAA6B;YAE7B,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIL,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;AAC1D,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,6BAA6B;wBAC7B,eAAe;wBACf,cAAc;AACf,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;MCvBY,iBAAiB,CAAA;AAC5B,IAAA,OAAO,qBAAqB,CAAC,KAAU,EAAE,SAAiB,EAAA;AACxD,QAAA,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;KAC1E;AAED,IAAA,OAAO,WAAW,CAAC,KAAU,EAAE,UAAkB,EAAE,SAAkB,EAAA;QACnE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE;YACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACtG;aAAM;YACL,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAC3F;KACF;IAED,OAAO,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;SAClC;KACF;IAED,OAAO,OAAO,CAAC,KAAU,EAAA;AACvB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7B;;AAGD,IAAA,OAAO,sBAAsB,GAAA;QAC3B,MAAM,IAAI,KAAK,CACb,CAAA;AACsF,2FAAA,CAAA,CACvF,CAAC;KACH;AAED,IAAA,OAAO,kBAAkB,CAAC,KAAY,EAAE,YAAmB,EAAE,UAAmB,EAAA;AAC9E,QAAA,IAAI,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACxC,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC;SACvF;aAAM;AACL,YAAA,OAAO,UAAU;AACf,kBAAE,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;kBACtG,EAAE,CAAC;SACR;KACF;AAED,IAAA,OAAO,cAAc,CAAC,KAAU,EAAE,SAAiB,EAAE,UAAkB,EAAA;AACrE,QAAA,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;KACjE;AAED,IAAA,OAAO,eAAe,CAAC,KAAU,EAAE,SAAiB,EAAE,UAAkB,EAAA;QACtE,OAAO,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;AACnE,cAAE,EAAE,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC,UAAU,GAAG,KAAK,EAAE;cAC3C,KAAK,CAAC;KACX;AAED,IAAA,OAAO,aAAa,CAAC,KAAU,EAAE,aAAkB,EAAE,SAAkB,EAAA;AACrE,QAAA,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAI;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;oBAClD,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC;iBAClD;gBACD,OAAO,CAAC,KAAK,aAAa,CAAC;AAC7B,aAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,KAAK,KAAK,aAAa,CAAC;SAChC;KACF;AAED,IAAA,OAAO,kBAAkB,CAAC,KAAe,EAAE,KAAa,EAAA;AACtD,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QACxF,OAAO,aAAa,CAAC,MAAM,CAAC;KAC7B;AACF;;ICrEW,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;IAEW,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,OAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAA2B,CAAA;AAC3B,IAAA,OAAA,CAAA,OAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAuB,CAAA;AACzB,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,gBAAgB,GAAG,GAAG;IAEvB,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,OAAA,CAAA,+BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,+BAAmC,CAAA;AACnC,IAAA,OAAA,CAAA,OAAA,CAAA,iCAAA,CAAA,GAAA,GAAA,CAAA,GAAA,iCAAqC,CAAA;AACvC,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA,CAAA;IAEW,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;ACrBD;;AAEG;MAIU,mBAAmB,CAAA;AAG9B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAAI;AAEtC;;;;AAIG;IACK,YAAY,GAAA;AAClB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B,CAAC;QACzD,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;AACpC,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE;gBAClC,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CACzC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAClC,KAAK,IAAI,CAAoC,iCAAA,EAAA,KAAK,CAAS,OAAA,CAAA,CAC5D,CAAC;aACH;AAAM,iBAAA,IAAI,WAAW,CAAC,WAAW,EAAE;AAClC,gBAAA,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;aACvC;SACF,EAAE,CAAC,CAAC,CAAC;KACP;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;+GA3BU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;+EAEU,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;ACNR;;;AAGG;MAIU,iBAAiB,CAAA;IAC5B,SAAS,CAAC,KAAU,EAAE,KAAa,EAAA;AACjC,QAAA,IAAI,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9F,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACL,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;SAC5C;KACF;+GATU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;ACPD;;;;AAIG;MAIU,YAAY,CAAA;AACvB,IAAA,SAAS,CAAC,KAAU,EAAE,MAAW,EAAE,UAAmB,EAAA;AACpD,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1B,cAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,UAAU,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;AAC3F,cAAE,UAAU;kBACV,KAAK,GAAG,UAAU,CAAC,KAAK,MAAM,GAAG,UAAU,CAAC;AAC9C,kBAAE,KAAK,KAAK,MAAM,CAAC;KACtB;+GAPU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;ACsCD;MACa,qBAAqB,CAAA;AAkDhC;;;;AAIG;IACH,IAAa,SAAS,CAAC,CAAM,EAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC9D;AA0ED;;;;;AAKG;IACH,IAAa,MAAM,CAAC,MAAgB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1G;AAwGD,IAAA,WAAA,CAC6E,eAAiC,EAC3F,GAAsB,EACtB,YAA0B,EAChB,SAAoB,EACvC,SAAoB,EACC,UAAe,EACpC,EAAc,EAAA;QANqD,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAC3F,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAChB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACvC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;QACpC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAzPxB;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;AAE/B;;;;AAIG;QACM,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;AAErC;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAExB;;;;AAIG;QACM,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAEzB;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAWpB;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAqB,OAAO,CAAC;AAE1C;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;AAEjC;;;;AAIG;AACwB,QAAA,IAAA,CAAA,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC;AAEpE;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAElC;;;;;AAKG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEhC;;;;;AAKG;QAEM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;;;;AAMG;QAEM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAoBtD;;;;;;AAMG;QACM,IAAY,CAAA,YAAA,GAAkB,SAAS,CAAC;AAEjD;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACqC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAS9D;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAEjC;;;;AAIG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAErB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;AAC1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;QAO9C,IAAU,CAAA,UAAA,GAAe,EAAE,CAAC;QAE5B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAgB,CAAA,gBAAA,GAAG,YAAY,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;QACzB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;QAC1C,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACxD,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,UAAU,IACZ,UAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CACrG,CACF,CAAC;AACQ,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAC7D,GAAG,CAAC,UAAU,IACZ,UAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAC3G,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAU,KAAU;AACjC,YAAA,MAAM,uBAAuB,GAC3B,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,mBAAmB,CAAC;gBAChD,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,mBAAmB,CAAC;gBAC/D,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,8BAA8B,CAAC,CAAC;YAErE,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,uBAAuB,EAAE;AAC1D,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;aAChC;AACH,SAAC,CAAC;QAEQ,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,IAAkB,CAAA,kBAAA,GAAG,eAAe,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAAG,iBAAiB,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAgEjE,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI;AACtB,SAAC,CAAC;QACF,IAAO,CAAA,OAAA,GAAG,MAAK;AACf,SAAC,CAAC;QAqQQ,IAAS,CAAA,SAAA,GAAG,CAAC,KAAa,EAAE,KAAU,KAAK,KAAK,CAAC,qCAAqC,CAAC;AA5T/F,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;QAED,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED;;;AAGG;;IAEH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC9C,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;KACF;;IAGD,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;SAClE;AACD,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC3D;KACF;;IAGD,WAAW,GAAA;QACT,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAE7D,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5B;KACF;AAOD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE;gBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC;aAC3E;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;aAC7E;SACF;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAES,IAAA,gBAAgB,CAAC,KAAmC,EAAA;AAC5D,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjG,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,cAAc,CAAC,MAAK;YAClB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAC9C,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;aACtB;iBAAM;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aACvF;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAES,IAAA,eAAe,CAAC,MAAW,EAAA;AACnC,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;QAE9G,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;SAC5G;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAES,IAAA,aAAa,CAAC,KAAY,EAAA;AAClC,QAAA,MAAM,UAAU,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACjD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClI,MAAM,KAAK,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAClH,YAAA,IAAI,SAAS,IAAI,CAAC,KAAK,EAAE;AACvB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAkC,CAAC,CAAC;aACzF;SACF;aAAM;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC1B;KACF;IAES,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAES,WAAW,GAAA;QACnB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAChF,gBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aACvF;iBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACjD,gBAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACvB;iBAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AAC/G,gBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5F,sBAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;sBACb,IAAI,CAAC,KAAK,GACd,IAAI,CAAC,SAAS,CAAC,CAAC;aACnB;AAAM,iBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACvB;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB,EAAE,CAAC,CAAC,CAAC;KACP;IAES,MAAM,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;SACnD;KACF;IAES,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAErG,QAAA,IAAI,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AAC7C,YAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AACjE,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;aAC1C;SACF;aAAM;AACL,YAAA,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;aAC1D;SACF;KACF;IAEO,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,6BAA6B,EAAE,IAAI,GAAG,KAAK,EAAA;AAC9E,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAEtB,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACnC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,IAAI,EAAE;gBACR,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;AACvC,oBAAA,KAAK,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;oBAE3C,IAAI,CAAC,KAAK,EAAE;wBACV,aAAa,GAAG,KAAK,CAAC;qBACvB;oBAED,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,GAAG,UAAU,EAAE;AAC7C,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC3B;oBAED,IAAI,CAAC,aAAa,GAAG,gBAAgB,IAAI,UAAU,EAAE;AACnD,wBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;qBACvB;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,IAAI,EAAE;oBACR,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAC9C,wBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC1F;AAAM,yBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AAC7B,wBAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;qBACvB;iBACF;AACD,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB,EAAE,KAAK,CAAC,CAAC;KACX;IAEO,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE;AACrC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5C;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC/D;SACF;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,QAAQ,EAAE;YAC7F,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,gBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1F;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aACzG;SACF;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,QAAQ,EAAE;AACtD,YAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AAC5E,kBAAE,EAAE;AACJ,kBAAE,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;AACjC,sBAAE,iBAAiB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5E,0BAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;0BACb,IAAI,CAAC,KAAK,GACd,IAAI,CAAC,SAAS,CAAC;sBACf,GAAG,CAAC;SACX;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;SAC9D;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;AAEO,IAAA,WAAW,CAAC,QAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7D,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW;cACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5D,cAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,KAAK,GAAG,cAAc;AACzB,iBAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,WAAW;sBAC3C,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC;AACtC,sBAAE,CAAC,KAAK,cAAc,CAAC;kBACvB,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC/B;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SACvB;KACF;AAED,IAAA,IAAc,UAAU,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,QAAQ,CAAC;KACpD;AAES,IAAA,cAAc,CAAC,YAA6B,EAAA;AACpD,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;aAChC,EAAE,CAAC,CAAC,CAAC;SACP;KACF;AAED,IAAA,IAAc,UAAU,GAAA;QACtB,QACE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAClE,aAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC,EAC/E;KACH;AAID;;AAEG;IACK,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAmC,gCAAA,EAAA,IAAI,CAAC,YAAY,CAAA,CAAA,CAAG,CAAC,CAAC;KAC7G;IAEO,uBAAuB,GAAA;AAC7B,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAEtD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACjD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,gBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE;oBACtC,MAAM,YAAY,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC;AACvE,oBAAA,IAAI,YAAY,KAAK,MAAM,EAAE;wBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;qBACrB;iBACF;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE;AAC7C,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,OAAO,CAAC;AAC3B,SAAA,CAAC,CAAC;KACJ;+GAnlBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAoPV,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAnE,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAKhD,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzPV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EA4KZ,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CA6BzB,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,uKCzPrC,4+WA2NA,EAAA,MAAA,EAAA,CAAA,wnQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsE,YAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5B,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8C,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAArD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAsD,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD3Ka,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4+WAAA,EAAA,MAAA,EAAA,CAAA,wnQAAA,CAAA,EAAA,CAAA;;0BAuP5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAGvD,QAAQ;;0BAAI,IAAI;;0BAEhB,MAAM;2BAAC,WAAW,CAAA;kEAnPZ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBASG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAOqB,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAQhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBASG,SAAS,EAAA,CAAA;sBADjB,WAAW;uBAAC,kBAAkB,CAAA;;sBAC9B,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBADxB,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAWG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQkC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAO7B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEiB,gBAAgB,EAAA,CAAA;sBAAvC,SAAS;uBAAC,WAAW,CAAA;gBACK,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACH,YAAY,EAAA,CAAA;sBAAjC,SAAS;uBAAC,SAAS,CAAA;gBACoC,wBAAwB,EAAA,CAAA;sBAA/E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAC3B,eAAe,EAAA,CAAA;sBAAzC,SAAS;uBAAC,cAAc,CAAA;;;MEnNd,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CApBvB,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAExF,YAAY;YACZ,kBAAkB;YAClB,qBAAqB;YACrB,cAAc;YACd,WAAW;YACX,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,qBAAqB;YACrB,sBAAsB;YACtB,eAAe;YACf,wBAAwB;AACxB,YAAA,yBAAyB,aAEjB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGpB,2BAA2B,EAAA,SAAA,EAF3B,CAAC,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAA,OAAA,EAAA,CAhB/D,YAAY;YACZ,kBAAkB;YAClB,qBAAqB;YACrB,cAAc;YACd,WAAW;YACX,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YAEnB,qBAAqB;YAGrB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMf,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBArBvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,CAAC;AAC3F,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,qBAAqB;wBACrB,cAAc;wBACd,WAAW;wBACX,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,eAAe;wBACf,wBAAwB;wBACxB,yBAAyB;AAC1B,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AAChC,oBAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,CAAC;AAClE,iBAAA,CAAA;;;MC3BY,mBAAmB,CAAA;AA6H9B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA7H9G;;;;AAIG;QACM,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAClC;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAwB,cAAc,CAAC;AACnE;;;;AAIG;QACM,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAE7B;;;;AAIG;QACM,IAAiB,CAAA,iBAAA,GAAsB,SAAS,CAAC;AAE1D;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEvB;;;;AAIG;QACM,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AAEhC;;;;AAIG;QACM,IAAoB,CAAA,oBAAA,GAAkB,MAAM,CAAC;AAEtD;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;AAElC;;;;AAIG;QACM,IAAsB,CAAA,sBAAA,GAAkB,OAAO,CAAC;AAEzD;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAEjC;;;;AAIG;QACM,IAAqB,CAAA,qBAAA,GAAkB,OAAO,CAAC;AAExD;;;;AAIG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAS,CAAC;AAEzD;;;;;AAKG;AACO,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAS,CAAC;AAE3D;;;;;AAKG;AACO,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAS,CAAC;QAOxD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACrD;KACF;AAED,IAAA,oBAAoB,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;AAED,IAAA,sBAAsB,CAAC,KAAY,EAAA;AACjC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;AAED,IAAA,qBAAqB,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAED,IAAA,UAAU,CAAC,OAAsB,EAAA;AAC/B,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,OAAO,SAAS,CAAC;SAClB;AAAM,aAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;AACtC,YAAA,OAAO,WAAW,CAAC;SACpB;aAAM;AACL,YAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;AACtC,YAAA,OAAO,OAAO,CAAC;SAChB;KACF;AAjKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBA8HR,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9H/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,2sBCXhC,6gEAyBA,EAAA,MAAA,EAAA,CAAA,itGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAQ,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDda,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,6gEAAA,EAAA,MAAA,EAAA,CAAA,itGAAA,CAAA,EAAA,CAAA;;0BAkIvB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAxHjD,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAMG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAMG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAOG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAOG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAOG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAQG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBAQG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MExHI,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,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,yBAAyB,EAJrB,YAAA,EAAA,CAAA,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,aAC3F,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,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,yBAAyB,EAH1B,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAoB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzE,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,CAAC;oBACtG,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;IC+DW,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;IAeW,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA;;AC/FD;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAI,OAAyB,KAAsB;AAC5E,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACxD,IAAA,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE3D,IAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,KAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC9E,QAAA,mBAAmB,CAAC,OAAO,CAAC,MAAM,IAAG;AACnC,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD,YAAA,aAAa,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACrC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;;MCPY,iBAAiB,CAAA;IAE5B,IAAa,KAAK,CAAC,KAAmC,EAAA;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAC/B;IACD,IAAa,UAAU,CAAC,KAAiB,EAAA;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;KACxC;AAWD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAlBrG,IAAK,CAAA,KAAA,GAAoB,EAAE,CAAC;AAQrC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUnC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAA+B,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAa,MAAM,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CACpF,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAChF,CAAC;QATA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAQO,yBAAyB,CAC/B,KAAmC,EACnC,UAAsB,EAAA;AAEtB,QAAA,IAAI,KAAK,IAAI,UAAU,KAAK,QAAQ,EAAE;YACpC,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM;gBACnD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM;aACnD,CAAC;SACH;AAAM,aAAA,IAAI,KAAK,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC/D,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,MAAM;aACf,CAAC;SACH;aAAM;AACL,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AAlDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAmBN,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnB/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,ECd9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+JAKA,EDOY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qFAAE,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEpC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAGX,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,uBAAuB,CAAC,EAAA,QAAA,EAAA,+JAAA,EAAA,CAAA;;0BAqB7C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAlBjD,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAGO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAWG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MErBK,kBAAkB,CAAA;AAwD7B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAxD9G;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAExC;;;;;AAKG;QACM,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAEpB;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEvB;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;;;AAOG;QACM,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEf,QAAA,IAAA,CAAA,eAAe,GAA4B,IAAI,YAAY,EAAa,CAAC;AAEnF,QAAA,IAAA,CAAA,YAAY,GAA6B,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;QAK1E,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,iBAAiB,CAAC,SAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;AAlEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAyDP,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,qRCT/B,oVAWA,EAAA,MAAA,EAAA,CAAA,otMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,oVAAA,EAAA,MAAA,EAAA,CAAA,otMAAA,CAAA,EAAA,CAAA;;0BA6DrB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAlDjD,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAQG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAUG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;AE3DT;;;;;;;;;;;;;;;;;;AAkBK;MAKQ,eAAe,CAAA;AAC1B,IAAA,SAAS,CAAO,KAAQ,EAAE,OAAwB,EAAE,OAAa,EAAA;QAC/D,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;AAED,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;KACvB;+GAPU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCnBY,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CAAC,KAAyB,EAAA;QACjC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;SACX;AACD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KACrE;+GANU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCgDY,cAAc,CAAA;AACzB;;;;;AAKG;IACH,IAA+B,MAAM,CAAC,MAAsB,EAAA;QAC1D,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,CAAC;AAEtE,QAAA,IAAI,CAAC,WAAW,GAAG,MAAsC,CAAC;AAE1D,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM;YAChE,KAAK;AACL,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;AACzC,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;KACnH;AAED;;;;;AAKG;IACH,IAAa,IAAI,CAAC,SAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC7B;AA2DD,IAAA,WAAA,CAC6E,eAAiC,EACpG,UAAsB,EACc,SAA8B,EAAA;QAFC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QACpG,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACc,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;AA5D5E;;;;;;AAMG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzB;;;;;AAKG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;QAS7C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC7D,QAAA,IAAA,CAAA,qBAAqB,GAAsB,IAAI,YAAY,EAAO,CAAC;AACnE,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAa,CAAC;AAChD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;QAMtC,IAAmB,CAAA,mBAAA,GAAoB,EAAE,CAAC;QAE1C,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAChC,IAAsB,CAAA,sBAAA,GAAa,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,mBAAmB,GAAG;AAC9B,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,MAAM,EAAE,MAAM;SACf,CAAC;AACQ,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,kBAAkB,CAAM,EAAE,CAAC,CAAC;QAE1C,IAAQ,CAAA,QAAA,GAAG,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAgG3H,QAAA,IAAA,CAAA,uBAAuB,GAAe;AAC5C,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACjC,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAc,CAAA,cAAA,GAAG,CAAC,KAAa,EAAE,MAAsB,KAAa,MAAM,CAAC,GAAG,CAAC;QAhG7E,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,SAAS,CAAC;SACjD;QACD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE3D,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAClE,CAAC,WAAiC,KAAK,WAAW,CAAC,KAAK,CACzD,CAAC;SACH;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC1C,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,EAAE;AACjE,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC7D;KACF;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACvC,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAC/D,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;AAC5E,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU;YAC9B,SAAS;YACT,gBAAgB;AACjB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,CAAC,UAAU,EAAE,OAAO,CAA4C,EAAA;QAC3E,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;SAC5B;KACF;AAES,IAAA,iBAAiB,CAAC,KAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAES,kBAAkB,CAAC,WAAmB,EAAE,WAAoB,EAAA;QACpE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,IAAG;AAC/D,YAAA,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE;AAChC,gBAAA,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;aAClC;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CAAC;KACJ;AAES,IAAA,YAAY,CAAC,SAAe,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC;AAES,IAAA,UAAU,CAAC,SAAc,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;AAES,IAAA,gBAAgB,CAAC,SAAc,EAAA;AACvC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5C;AAES,IAAA,SAAS,CAAC,OAAU,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACrE,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AACvC,oBAAA,IAAI,EAAE,OAAO;oBACb,mBAAmB,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9D,iBAAA,CAAC,CAAC;aACJ;SACF;KACF;AAEO,IAAA,wBAAwB,CAAC,OAAkB,EAAA;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,kBAAkB,CAAM,OAAO,CAAC,CAAC;KAC9D;+GAnLU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAwFH,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAEhD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGA1Fd,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpD3B,2ohBAgUA,EDrRc,MAAA,EAAA,CAAA,+uOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4E,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA9E,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA+E,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,gBAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;AACrF,gBAAA,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;aACjF,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA;wBACV,OAAO,CAAC,cAAc,EAAE;4BACtB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;4BAClD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,4BAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;AACrF,4BAAA,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;yBACjF,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,2ohBAAA,EAAA,MAAA,EAAA,CAAA,+uOAAA,CAAA,EAAA,CAAA;;0BA0FE,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BAEvD,MAAM;2BAAC,eAAe,CAAA;yCAnFM,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAkBZ,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAYG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEa,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;ME/GP,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,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,wBAAwB,iBAJpB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,YAAY,EAAE,kBAAkB,aAChC,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEjB,wBAAwB,EAAA,OAAA,EAAA,CAHzB,YAAY,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG/B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBAC3C,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCyBY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,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,oBAAoB,EAjBhB,YAAA,EAAA,CAAA,cAAc,EAAE,gBAAgB,aAE7C,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,wBAAwB;YACxB,qBAAqB;YACrB,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,yBAAyB;YACzB,sBAAsB;AACtB,YAAA,eAAe,aAEP,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEb,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,oBAAoB,YAf7B,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,wBAAwB;YACxB,qBAAqB;YACrB,aAAa;YACb,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAChD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,gBAAgB;wBAChB,iBAAiB;wBACjB,wBAAwB;wBACxB,qBAAqB;wBACrB,aAAa;wBACb,mBAAmB;wBACnB,oBAAoB;wBACpB,yBAAyB;wBACzB,sBAAsB;wBACtB,eAAe;AAChB,qBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCPY,eAAe,CAAA;AAqG1B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AArG9G;;;;;AAKG;QACM,IAAG,CAAA,GAAA,GAAG,GAAG,CAAC;AAEnB;;;;;AAKG;QACM,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;AAEjB;;;;;AAKG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE5B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;QACM,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEzB;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;AAEzB;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;;AAKG;QACM,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAE3B;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;AAElB;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;;AAMG;QACM,IAAO,CAAA,OAAA,GAAkB,OAAO,CAAC;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAe,CAAC;QAUtD,IAAK,CAAA,KAAA,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC1C,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAU,GAAG,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAW,GAAG,CAAC;QAVvB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AASD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;KAC5B;AAES,IAAA,aAAa,CAAC,EAAW,EAAA;AACjC,QAAA,MAAM,KAAK,GAAgB,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAE9E,IAAI,EAAE,EAAE;AACN,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,YAAA,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;SACf;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAES,IAAA,WAAW,CAAC,SAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACpC,QAAA,MAAM,KAAK,GAAgB,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAE9E,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAChD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAES,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;KAC9B;AAEO,IAAA,cAAc,CAAC,KAAkB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;KACzE;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,QACE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS;AAC1B,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW;AAC5B,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS;AAC1B,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW;YAC5B,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,EACnC;KACH;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;KACjC;AAhLU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAsGJ,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtG/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EATf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBH,+jHAuFA,EAAA,MAAA,EAAA,CAAA,6lPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqD,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAArB,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Da,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+jHAAA,EAAA,MAAA,EAAA,CAAA,6lPAAA,CAAA,EAAA,CAAA;;0BAwG5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA/FjD,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAQG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEtGI,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA,CAZjB,eAAe,CAAA,EAAA,OAAA,EAAA,CAE5B,YAAY;YACZ,eAAe;YACf,WAAW;YACX,cAAc;YACd,gBAAgB;YAChB,mBAAmB;AACnB,YAAA,eAAe,aAEP,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,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,qBAAqB,YAV9B,YAAY;YACZ,eAAe;YACf,WAAW;YACX,cAAc;YACd,gBAAgB;YAChB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;AAChB,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCEY,wBAAwB,CAAA;AAOnC,IAAA,WAAA,CACU,QAAiB,EACjB,uBAA+C,EAC/C,WAAuB,EAAA;QAFvB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AATxB,QAAA,IAAA,CAAA,eAAe,GAAwB,mBAAmB,CAAC,KAAK,CAAC;QACjE,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;KAU3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACxC;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;AACvD,YAAA,MAAM,UAAU,GAAmC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClH,UAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnD,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;SACrD;KACF;IAGD,IAAI,GAAA;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SAC3B;KACF;AAEO,IAAA,WAAW,CAAC,QAA6B,EAAA;AAC/C,QAAA,MAAM,SAAS,GAAsC;AACnD,YAAA,CAAC,mBAAmB,CAAC,GAAG,GAAG;AACzB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC,CAAC;gBACX,UAAU,EAAE,mBAAmB,CAAC,GAAG;AACpC,aAAA;AACD,YAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC5B,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,mBAAmB,CAAC,MAAM;AACvC,aAAA;AACD,YAAA,CAAC,mBAAmB,CAAC,IAAI,GAAG;AAC1B,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,CAAC,CAAC;AACX,gBAAA,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,mBAAmB,CAAC,IAAI;AACrC,aAAA;AACD,YAAA,CAAC,mBAAmB,CAAC,KAAK,GAAG;AAC3B,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,mBAAmB,CAAC,KAAK;AACtC,aAAA;SACF,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAG;YACxB,CAAC,mBAAmB,CAAC,GAAG,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAChE,CAAC,mBAAmB,CAAC,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAChE,CAAC,mBAAmB,CAAC,IAAI,GAAG,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAChE,CAAC,mBAAmB,CAAC,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;SACnE,CAAC;AAEF,QAAA,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE3C,QAAA,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAE3D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB;AAClD,aAAA,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,aAAA,aAAa,CAAC,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;aACvD,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC/D;+GAvGU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnC,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8IAEU,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACsB,WAAW,EAAA,CAAA;sBAAtC,KAAK;uBAAC,mBAAmB,CAAA;gBAgB1B,IAAI,EAAA,CAAA;sBADH,YAAY;uBAAC,YAAY,CAAA;gBAc1B,IAAI,EAAA,CAAA;sBADH,YAAY;uBAAC,YAAY,CAAA;;;MC9Cf,qBAAqB,CAAA;AAmBhC;;;;;AAKG;IACH,IAA+B,QAAQ,CAAC,QAAwB,EAAA;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KACvD;AAqCD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAhE9G;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;AAExB;;;;;;AAMG;QACM,IAAI,CAAA,IAAA,GAAwB,OAAO,CAAC;AAY7C;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAE9B,IAAW,CAAA,WAAA,GAAiC,EAAE,CAAC;QAK7C,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,oBAAoB,CAAC,QAAwB,EAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAG;YAC5B,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC;YAC/C,IAAI,eAAe,GAAG,EAAE,CAAC;AAEzB,YAAA,IAAI,UAAU,KAAK,CAAC,EAAE;gBACpB,eAAe,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,eAAe,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;aAC/C;YAED,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;AAxFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAiEV,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjE/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,kPCTlC,guEAwEA,EAAA,MAAA,EAAA,CAAA,kjKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgF,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/Da,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,guEAAA,EAAA,MAAA,EAAA,CAAA,kjKAAA,CAAA,EAAA,CAAA;;0BAqEzB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAzDjD,KAAK,EAAA,CAAA;sBAAb,KAAK;gBASG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQyB,QAAQ,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAWhB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MEvDK,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,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,2BAA2B,EAJvB,YAAA,EAAA,CAAA,qBAAqB,CAC1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,wBAAwB,aACrH,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEpB,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG1F,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC;oBAChI,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCFY,mBAAmB,CAAA;IAwC9B,WAC6E,CAAA,eAAiC,EAChE,SAA8B,EAAA;QADC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAChE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;AAzC5E;;;;AAIG;QACqC,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AAE9D;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AAEjC;;;;;;AAMG;QAGH,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE7C;;;AAGG;AACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;QAMxC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAES,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAClB;+GAnDU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAyCR,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAChD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGA1Cd,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAMV,gBAAgB,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBtC,2uCAmCA,EAAA,MAAA,EAAA,CAAA,8nGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAhC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAe,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,2uCAAA,EAAA,MAAA,EAAA,CAAA,8nGAAA,CAAA,EAAA,CAAA;;0BA6CvB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BACvD,MAAM;2BAAC,eAAe,CAAA;yCApCe,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQ7B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBAOI,IAAI,EAAA,CAAA;sBAAb,MAAM;;;MEtCI,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAhB,gBAAgB,EAAA,YAAA,EAAA,CAJZ,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CACpD,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAElB,gBAAgB,EAAA,OAAA,EAAA,CAHjB,YAAY,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGlC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,eAAe,CAAC;oBAC/D,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCDY,gBAAgB,CAAA;AAqC3B,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AArC9G;;;;;AAKG;QACM,IAAI,CAAA,IAAA,GAAgB,OAAO,CAAC;AAErC;;;;;;AAMG;QAGH,IAAY,CAAA,YAAA,GAAkB,SAAS,CAAC;AAExC;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QAKlB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AA3CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAsCL,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtC/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,uOCT7B,yjBAaA,EAAA,MAAA,EAAA,CAAA,qxFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,yjBAAA,EAAA,MAAA,EAAA,CAAA,qxFAAA,CAAA,EAAA,CAAA;;0BA0CnB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA/BjD,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAWN,YAAY,EAAA,CAAA;sBAFX,WAAW;uBAAC,sBAAsB,CAAA;;sBAClC,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MElCK,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,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,sBAAsB,iBAJlB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAErB,YAAY,EAAE,gBAAgB,aAD9B,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGf,sBAAsB,EAAA,OAAA,EAAA,CAFvB,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAE7B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC1C,iBAAA,CAAA;;;MCeY,aAAa,CAAA;IA8DxB,WAC6E,CAAA,eAAiC,EAChE,SAA8B,EAAA;QADC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;QAChE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;AA/D5E;;;;;;AAMG;QAEM,IAAY,CAAA,YAAA,GAAkB,SAAS,CAAC;AACjD;;;;;;AAMG;QACM,IAAI,CAAA,IAAA,GAAa,YAAY,CAAC;AAEvC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;AAEjC;;;;;AAKG;QAGH,IAAoB,CAAA,oBAAA,GAAG,MAAM,CAAC;AAE9B;;;;AAIG;QACmC,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAE3D;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAItC,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAW,CAAA,WAAA,GAA2B,EAAE,CAAC;QAMjD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;IAED,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,SAAS,GAAI,IAAI,CAAC,QAAgB,CAAC,UAAU,CAAC;AACpD,YAAA,SAAS,CAAC,cAAc,GAAG,OAAO,KAAoB,KAAI;AACxD,gBAAA,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO;iBACR;AACD,gBAAA,QAAQ,KAAK,CAAC,OAAO;AACnB,oBAAA,KAAK,KAAK,CAAC;AACX,oBAAA,KAAK,KAAK;AACR,wBAAA,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAsB,CAAC,SAAS,CAAC;wBACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,wBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;wBAEjE,IAAI,CAAC,OAAO,EAAE;4BACZ,OAAO;yBACR;AAED,wBAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,UAAU,CAAC,QAAQ,GAAG,EAAC,UAAU,EAAE,OAAO,EAAC,CAAC,KAAK,IAAI,CAAC;wBAC9E,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE;4BACtD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvD,4BAAA,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;AACpC,4BAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,YAAY,CAAC;yBAC5C;wBACD,MAAM;AACR,oBAAA;AACE,wBAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBAC1C;AACH,aAAC,CAAC;AAED,YAAA,IAAI,CAAC,QAAgB,CAAC,YAAY,GAAG,OACpC,GAAW,EACX,SAAc,EACd,KAAa,KACX;AACF,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AACjD,gBAAA,IAAI,GAAG,CAAC,QAAQ,IAAI,YAAY,KAAK,SAAS,IAAI,KAAK,KAAK,YAAY,EAAE;oBACxE,OAAO;iBACR;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,gBAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,UAAU,CAAC,QAAQ,GAAG,EAAC,UAAU,EAAE,OAAO,EAAC,CAAC,KAAK,IAAI,CAAC;gBAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,IAAI,QAAQ,EAAE;AACpD,oBAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;iBACrC;AACH,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAQ,EAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;KACtE;AAED,IAAA,WAAW,CAAC,EAAqB,EAAA;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;AAED,IAAA,SAAS,CAAC,OAAe,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACxC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACzC;KACF;AAED,IAAA,OAAO,CAAC,OAAe,EAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KACxC;IAED,cAAc,CAAC,KAAa,EAAE,GAAQ,EAAA;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC;KACpB;AAED,IAAA,SAAS,CAAC,OAAe,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACxC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;SACtE;KACF;+GA7JU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA+DF,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAChD,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAkCJ,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,CAAC,KAAa,KAAa,KAAK,GAAG,IAAI,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAQxC,gBAAgB,CAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClErC,ukCAsBA,EAAA,MAAA,EAAA,CAAA,yrQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,ukCAAA,EAAA,MAAA,EAAA,CAAA,yrQAAA,CAAA,EAAA,CAAA;;0BAmEhB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;;0BACvD,MAAM;2BAAC,eAAe,CAAA;yCAvDhB,YAAY,EAAA,CAAA;sBADpB,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBAQG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAUN,oBAAoB,EAAA,CAAA;sBAFnB,WAAW;uBAAC,gCAAgC,CAAA;;sBAC5C,KAAK;uBAAC,EAAE,SAAS,EAAE,CAAC,KAAa,KAAa,KAAK,GAAG,IAAI,EAAE,CAAA;gBAQvB,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBAS3B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEkC,QAAQ,EAAA,CAAA;sBAAhD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MExE5B,YAAY,CAAA;IASvB,WACkB,CAAA,aAA4B,EACpC,QAA0B,EAAA;QADlB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACpC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAEnC;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,QAAQ;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,SAAA,CAAC,CAAA;KACH;IAED,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5C;+GAlCU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAmF,aAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,4JAKH,gBAAgB,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FALzB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACpB,iBAAA,CAAA;;0BAWI,IAAI;mEAToB,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBACE,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACkC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAC7B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MCMK,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;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,iBAV5B,aAAa;AACb,YAAA,YAAY,aAGZ,YAAY;YACZ,aAAa;YACb,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEX,aAAa,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAE1B,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,YAN5B,YAAY;YACZ,aAAa;YACb,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,aAAa;wBACb,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;AACvC,iBAAA,CAAA;;;MCEY,qBAAqB,CAAA;AAkDhC,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA1C9G;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAa,eAAe,CAAC;AAEjD;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAExB;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAUtD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,YAAY,EAAU,CAAC;QAKtE,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,QAAQ,MAAW;IAEnB,YAAY,CAAC,KAAY,EAAE,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;KACF;AAhEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAmDV,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+QCtBlC,syDA+CA,EAAA,MAAA,EAAA,CAAA,q9JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgC,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDzBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,iBAGb,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,syDAAA,EAAA,MAAA,EAAA,CAAA,q9JAAA,CAAA,EAAA,CAAA;;0BAsD5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA5CjD,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;ME1DI,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CAJvB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CACvE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,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,2BAA2B,YAH5B,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGtE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,aAAa,CAAC;oBAClF,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCgBY,wBAAwB,CAAA;AAwBnC;;;;AAIG;IACH,IAAa,KAAK,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClB;AAeD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AA5C9G;;;;;;AAMG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAY3B;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE5C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAO,CAAC;AAgBnD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;QANjB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAKD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;IAED,iBAAiB,CAAC,EAAE,KAAK,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAjFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBAoDb,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EATxB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBH,8pBAkBA,EAAA,MAAA,EAAA,CAAA,qgRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDSa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGpB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8pBAAA,EAAA,MAAA,EAAA,CAAA,qgRAAA,CAAA,EAAA,CAAA;;0BAsD5C,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA9C/B,YAAY,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAShB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAYG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;ME1DI,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA9B,8BAA8B,EAAA,YAAA,EAAA,CAJ1B,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAE7B,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CADlE,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGvB,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,8BAA8B,YAF/B,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEjE,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAC9E,iBAAA,CAAA;;;MCOY,iBAAiB,CAAA;AAyC5B,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAxCnD;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAEpD;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAE7B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAE5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;QAEhD,IAAW,CAAA,WAAA,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAc,CAAA,cAAA,GAA+B,EAAE,CAAC;AAGhD,QAAA,IAAA,CAAA,QAAQ,GAA4C;AAC5D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE;AACrD,YAAA,EAAE,YAAY,EAAE,4BAA4B,EAAE,GAAG,EAAE,gBAAgB,EAAE;AACrE,YAAA,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,EAAE,cAAc,EAAE;SAC7D,CAAC;AAkCF,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;AAhCjB,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACrF,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzC,YAAA,cAAc,EAAE,6CAA6C,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5E,YAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;SACpC,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACzB;IAED,WAAW,GAAA;QACT,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACvE,gBAAA,KAAK,EAAE,CAAC;aACT;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAID,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;+GAtFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EATjB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfH,yqCA+BA,EAAA,MAAA,EAAA,CAAA,g/FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoF,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,KAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwE,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlB,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDba,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yqCAAA,EAAA,MAAA,EAAA,CAAA,g/FAAA,CAAA,EAAA,CAAA;+EAStC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MExBI,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAXnB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAG9B,YAAY;YACZ,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B;AAC1B,YAAA,eAAe,aAPP,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAUhB,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,uBAAuB,YARhC,YAAY;YACZ,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIjB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,0BAA0B;wBAC1B,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;MCjBY,eAAe,CAAA;IAC1B,SAAS,CAAC,KAAe,EAAE,SAAkB,EAAA;AAC3C,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;KAClE;+GAHU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,IAAI;mBAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;;;MC0DhB,mBAAmB,CAAA;AAC9B;;;;;AAKG;IACH,IACI,KAAK,CAAC,KAAa,EAAA;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;AAC/C,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACvC,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SACjG;QAAC,OAAO,GAAG,EAAE;AACZ,YAAA,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;aACpF;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SAC/F;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED;;;;;AAKG;IACH,IAAa,WAAW,CAAC,WAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;KAC/D;AAED;;;;;AAKG;IACH,IACI,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAwCD;;;;;AAKG;IACH,IAAa,MAAM,CAAC,MAAgB,EAAA;QAClC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SAC5C;KACF;aA0BM,IAAM,CAAA,MAAA,GAAG,CAAH,CAAK,EAAA;AAyBlB,IAAA,IACI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC;KACb;AAID,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KAC1B;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAA6B,EAAE,IAAI,CAAC,CAAC;KAC3F;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACxC;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;AAQD,IAAA,WAAA,CAC6B,SAAoB,EACvC,YAA+B,EAC/B,EAAsB,EACtB,YAA0B,EAC1B,GAAsB,EACtB,SAAuB,EAC4C,eAAiC,EAAA;QANjF,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC/B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAoB;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAC4C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAtH9G;;;;;;AAMG;QAGH,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAE7C;;;;;AAKG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAgB3B;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnC;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAI5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAc,EAAE,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,IAAI,GAAqB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACrC,YAAY,EAAE,IAAI,kBAAkB,EAAE;AACvC,SAAA,CAAC,CAAC;QACO,IAAW,CAAA,WAAA,GAAG,cAAc,CAAC;AAE7B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAc,EAAE,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEnC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAc,CAAA,cAAA,GAAG,2BAA2B,CAAC;AAQhE,QAAA,IAAA,CAAA,EAAE,GAAG,CAAe,YAAA,EAAA,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QAOb,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAmBtC,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAGrC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ,CAAC;QA+L9C,IAAS,CAAA,SAAA,GAAG,CAAC,KAAa,EAAE,KAAU,KAAK,KAAK,CAAC,qCAAqC,CAAC;AApLrF,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACrC;QAED,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED;;;AAGG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACrD;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,iBAAiB,CAAC,GAAa,EAAA;QAC7B,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1C;AAKD,IAAA,UAAU,CAAC,WAAmB,EAAA;QAC5B,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;SAC1B;KACF;AAED,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAClC,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACrB;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;KACjC;AAED,IAAA,iBAAiB,CAAC,KAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACxB;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,IAAI,EAAE,IAAI,KAAK,CAAC;AAC/D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,4BAA4B,CAAC,KAAa,EAAE,EAAa,EAAA;QACvD,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB;IAEO,wBAAwB,GAAA;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAsB,CAAC;AAC/D,QAAA,OAAO,cAAc,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,IAAI,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;KACzF;IAEO,sBAAsB,GAAA;QAC5B,MAAM,oBAAoB,GAAG,aAAa,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,SAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3D,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI;YAC3D,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,WAAW,IAAI,UAAU,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;AAEH,QAAA,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;KACJ;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,aAAa,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EACzC,KAAK,EAAE,CACR;AACD,YAAA,IAAI,CAAC,WAAW;SACjB,CAAC;aACC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,KAAI;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,MAAM,OAAO,GACX,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACzG,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAoB,CAAC,CAAC;aACvC;iBAAM;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;aAChC;AAED,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAEO,IAAA,UAAU,CAAC,OAAyB,EAAA;QAC1C,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;KAC9C;AAEO,IAAA,sBAAsB,CAAC,UAAkB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;KAChF;AAEO,IAAA,uBAAuB,CAAC,WAAmB,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;KAClF;IAEO,aAAa,GAAA;QACnB,MAAM,WAAW,GAAuB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAElH,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC9C,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAI;AAC9B,YAAA,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,iBAAiB,GAAG,SAAS;AAChC,iBAAA,MAAM,CACL,MAAM,IACJ,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACvD,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC7D,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACjE;AACA,iBAAA,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxC,CAAC,EACF,KAAK,CAAC,CAAC,CAAC,EACR,GAAG,CAAC,MAAK;AACP,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YACnF,IAAI,CAAC,eAAe,GAAG,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,YAAY,CAAC,EAAS,EAAA;QACpB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,eAAe,EAAE,CAAC;KACtB;AA3WU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,6OAuLR,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAvL/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAPnB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,gCAAgC;AACzC,gBAAA,QAAQ,EAAE,EAAE,iBAAiB,EAAE,2BAA2B,EAAE;AAC7D,aAAA;SACF,EA6IU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,QAAQ,2BAAU,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE5B,SAAS,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,2CCzM1C,s2FAgEA,EAAA,MAAA,EAAA,CAAA,0uJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwF,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAArF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAsB,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA+D,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,EAAE,iBAAiB,EAAE,2BAA2B,EAAE;AAC7D,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,s2FAAA,EAAA,MAAA,EAAA,CAAA,0uJAAA,CAAA,EAAA,CAAA;;0BAmLE,QAAQ;;0BAAI,IAAI;;0BAMhB,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCA/KtD,KAAK,EAAA,CAAA;sBADR,KAAK;gBAuBO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAYF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAcN,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBASG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY,CAAA;;sBACxB,KAAK;gBASG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBASO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAaG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAoBC,KAAK,EAAA,CAAA;sBADX,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGhD,MAAM,EAAA,CAAA;sBADZ,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIxD,EAAE,EAAA,CAAA;sBADD,WAAW;gBAIR,gBAAgB,EAAA,CAAA;sBADnB,WAAW;uBAAC,eAAe,CAAA;gBAKU,WAAW,EAAA,CAAA;sBAAhD,WAAW;uBAAC,uBAAuB,CAAA;;;MElLzB,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,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,yBAAyB,EAjBrB,YAAA,EAAA,CAAA,mBAAmB,EAAE,eAAe,aAGjD,YAAY;YACZ,wBAAwB;YACxB,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,sBAAsB;YACtB,eAAe;YACf,qBAAqB;AACrB,YAAA,sBAAsB,aAbd,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAgBlB,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,yBAAyB,YAdlC,YAAY;YACZ,wBAAwB;YACxB,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,sBAAsB;YAEtB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIZ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC;oBACpD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,wBAAwB;wBACxB,mBAAmB;wBACnB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,wBAAwB;wBACxB,mBAAmB;wBACnB,sBAAsB;wBACtB,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ICjCW,MAuFX;AAvFD,CAAA,UAAY,KAAK,EAAA;;AAEf,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,kBAAA,CAAA,GAAA,SAA4B,CAAA;AAC5B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,SAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;;AAGxB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,SAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,sBAAA,CAAA,GAAA,SAAgC,CAAA;AAChC,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;;AAG1B,IAAA,KAAA,CAAA,eAAA,CAAA,GAAA,SAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,eAAA,CAAA,GAAA,SAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,eAAA,CAAA,GAAA,SAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,SAA+B,CAAA;AAC/B,IAAA,KAAA,CAAA,mBAAA,CAAA,GAAA,SAA6B,CAAA;;AAG7B,IAAA,KAAA,CAAA,uBAAA,CAAA,GAAA,SAAiC,CAAA;AACjC,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,SAA+B,CAAA;;AAG/B,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,SAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,SAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,SAAqB,CAAA;;AAGrB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;;AAGpB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;AACxB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,SAAwB,CAAA;;AAGxB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,SAAiB,CAAA;;AAGjB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,SAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,SAAqB,CAAA;;AAGrB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;;AAG1B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;;AAGtB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;;AAGpB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACxB,CAAC,EAvFW,KAAK,KAAL,KAAK,GAuFhB,EAAA,CAAA,CAAA;;MC7EY,yBAAyB,CAAA;AAkBpC;;;;;AAKG;IACH,IAAa,QAAQ,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;AAqBD,IAAA,WAAA,CAC6E,eAAiC,EAAA;QAAjC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAhD9G;;;;;;AAMG;QACM,IAAgB,CAAA,gBAAA,GAAqB,OAAO,CAAC;AAEtD;;;;;AAKG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;AAapD;;;;;AAKG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;QAG9C,IAAc,CAAA,cAAA,GAA+B,EAAE,CAAC;QAClD,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACb,QAAA,IAAA,CAAA,QAAQ,GAA4C;AAC5D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE;AACrD,YAAA,EAAE,YAAY,EAAE,4BAA4B,EAAE,GAAG,EAAE,gBAAgB,EAAE;AACrE,YAAA,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,EAAE,cAAc,EAAE;SAC7D,CAAC;AAKA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SACzC;KACF;AAED,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzC,YAAA,cAAc,EAAE,6CAA6C,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5E,YAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;SACpC,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;KACpF;IAEO,WAAW,GAAA;QACjB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACvE,gBAAA,KAAK,EAAE,CAAC;aACT;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;KACtE;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,aAAa,GAAG,qBAAqB,CAAC;KACpF;AAtFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAiDd,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjD/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,2MCVtC,ssBAmBA,EAAA,MAAA,EAAA,CAAA,2uFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,ssBAAA,EAAA,MAAA,EAAA,CAAA,2uFAAA,CAAA,EAAA,CAAA;;0BAqD7B,QAAQ;;0BAAI,MAAM;2BAAC,oCAAoC,CAAA;yCAzCjD,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAQO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAWI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEjCI,+BAA+B,CAAA;+GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA/B,+BAA+B,EAAA,YAAA,EAAA,CAJ3B,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC9B,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC9E,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,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,+BAA+B,EAHhC,OAAA,EAAA,CAAA,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG5D,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,eAAe,CAAC;oBACzF,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;ACXD;AAEA;AACA;;ACHA;;AAEG;;;;"}