flowbite-angular 0.0.2 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/flowbite-angular.mjs +2 -2
- package/esm2022/lib/common/flowbite.theme.init.mjs +318 -0
- package/esm2022/lib/common/index.mjs +3 -0
- package/esm2022/lib/common/type-definitions/colors/flowbite.colors.mjs +2 -0
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-colors.mjs +2 -0
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +2 -0
- package/esm2022/lib/common/type-definitions/colors/index.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.boolean.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.class.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.combination.mjs +5 -0
- package/esm2022/lib/common/type-definitions/flowbite.content-positions.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.deep-partial.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.heading-levels.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.positions.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.router-link-parameter.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.sizes.mjs +2 -0
- package/esm2022/lib/common/type-definitions/flowbite.themes.mjs +2 -0
- package/esm2022/lib/common/type-definitions/index.mjs +2 -0
- package/esm2022/lib/components/accordion/accordion-content.component.mjs +46 -0
- package/esm2022/lib/components/accordion/accordion-content.theme.mjs +19 -0
- package/esm2022/lib/components/accordion/accordion-content.theme.service.mjs +17 -0
- package/esm2022/lib/components/accordion/accordion-panel.component.mjs +57 -0
- package/esm2022/lib/components/accordion/accordion-panel.theme.mjs +7 -0
- package/esm2022/lib/components/accordion/accordion-panel.theme.service.mjs +17 -0
- package/esm2022/lib/components/accordion/accordion-title.component.mjs +70 -0
- package/esm2022/lib/components/accordion/accordion-title.theme.mjs +26 -0
- package/esm2022/lib/components/accordion/accordion-title.theme.service.mjs +18 -0
- package/esm2022/lib/components/accordion/accordion.component.mjs +49 -0
- package/esm2022/lib/components/accordion/accordion.theme.mjs +19 -0
- package/esm2022/lib/components/accordion/accordion.theme.service.mjs +17 -0
- package/esm2022/lib/components/accordion/index.mjs +13 -0
- package/esm2022/lib/components/alert/alert.component.mjs +99 -0
- package/esm2022/lib/components/alert/alert.theme.mjs +34 -0
- package/esm2022/lib/components/alert/alert.theme.service.mjs +18 -0
- package/esm2022/lib/components/alert/index.mjs +4 -0
- package/esm2022/lib/components/badge/badge.component.mjs +47 -0
- package/esm2022/lib/components/badge/badge.theme.mjs +34 -0
- package/esm2022/lib/components/badge/badge.theme.service.mjs +17 -0
- package/esm2022/lib/components/badge/index.mjs +4 -0
- package/esm2022/lib/components/base-component.directive.mjs +34 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.component.mjs +57 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.mjs +18 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.service.mjs +18 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +46 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.mjs +7 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.service.mjs +17 -0
- package/esm2022/lib/components/breadcrumb/index.mjs +7 -0
- package/esm2022/lib/components/button/button.component.mjs +81 -0
- package/esm2022/lib/components/button/button.theme.mjs +113 -0
- package/esm2022/lib/components/button/button.theme.service.mjs +24 -0
- package/esm2022/lib/components/button/index.mjs +4 -0
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.component.mjs +86 -0
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.mjs +7 -0
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +17 -0
- package/esm2022/lib/components/dark-theme-toggle/index.mjs +4 -0
- package/esm2022/lib/components/dropdown/dropdown-divider.component.mjs +34 -0
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.mjs +7 -0
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.service.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-header.component.mjs +44 -0
- package/esm2022/lib/components/dropdown/dropdown-header.theme.mjs +10 -0
- package/esm2022/lib/components/dropdown/dropdown-header.theme.service.mjs +18 -0
- package/esm2022/lib/components/dropdown/dropdown-item.component.mjs +34 -0
- package/esm2022/lib/components/dropdown/dropdown-item.theme.mjs +6 -0
- package/esm2022/lib/components/dropdown/dropdown-item.theme.service.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +161 -0
- package/esm2022/lib/components/dropdown/dropdown.theme.mjs +32 -0
- package/esm2022/lib/components/dropdown/dropdown.theme.service.mjs +22 -0
- package/esm2022/lib/components/dropdown/index.mjs +13 -0
- package/esm2022/lib/components/form-field/directives/addon.directive.mjs +32 -0
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.mjs +8 -0
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.service.mjs +17 -0
- package/esm2022/lib/components/form-field/directives/base-input.directive.mjs +26 -0
- package/esm2022/lib/components/form-field/directives/helper.directive.mjs +34 -0
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.mjs +12 -0
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.service.mjs +17 -0
- package/esm2022/lib/components/form-field/directives/icon.directive.mjs +32 -0
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.mjs +8 -0
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.service.mjs +17 -0
- package/esm2022/lib/components/form-field/directives/index.mjs +17 -0
- package/esm2022/lib/components/form-field/directives/input.directive.mjs +41 -0
- package/esm2022/lib/components/form-field/directives/input.directive.theme.mjs +79 -0
- package/esm2022/lib/components/form-field/directives/input.directive.theme.service.mjs +24 -0
- package/esm2022/lib/components/form-field/directives/label.directive.mjs +41 -0
- package/esm2022/lib/components/form-field/directives/label.directive.theme.mjs +51 -0
- package/esm2022/lib/components/form-field/directives/label.directive.theme.service.mjs +21 -0
- package/esm2022/lib/components/form-field/form-field.component.mjs +40 -0
- package/esm2022/lib/components/form-field/form-field.theme.mjs +8 -0
- package/esm2022/lib/components/form-field/form-field.theme.service.mjs +17 -0
- package/esm2022/lib/components/form-field/index.mjs +5 -0
- package/esm2022/lib/components/icon/icon-registry.mjs +159 -0
- package/esm2022/lib/components/icon/icon.component.mjs +67 -0
- package/esm2022/lib/components/icon/index.mjs +4 -0
- package/esm2022/lib/components/icon/trusted-types.mjs +21 -0
- package/esm2022/lib/components/index.mjs +16 -0
- package/esm2022/lib/components/indicators/index.mjs +4 -0
- package/esm2022/lib/components/indicators/indicators.component.mjs +54 -0
- package/esm2022/lib/components/indicators/indicators.theme.mjs +68 -0
- package/esm2022/lib/components/indicators/indicators.theme.service.mjs +17 -0
- package/esm2022/lib/components/modal/index.mjs +13 -0
- package/esm2022/lib/components/modal/modal-body.component.mjs +34 -0
- package/esm2022/lib/components/modal/modal-body.theme.mjs +7 -0
- package/esm2022/lib/components/modal/modal-body.theme.service.mjs +17 -0
- package/esm2022/lib/components/modal/modal-footer.component.mjs +34 -0
- package/esm2022/lib/components/modal/modal-footer.theme.mjs +7 -0
- package/esm2022/lib/components/modal/modal-footer.theme.service.mjs +17 -0
- package/esm2022/lib/components/modal/modal-header.component.mjs +70 -0
- package/esm2022/lib/components/modal/modal-header.theme.mjs +13 -0
- package/esm2022/lib/components/modal/modal-header.theme.service.mjs +19 -0
- package/esm2022/lib/components/modal/modal.component.mjs +146 -0
- package/esm2022/lib/components/modal/modal.theme.mjs +33 -0
- package/esm2022/lib/components/modal/modal.theme.service.mjs +20 -0
- package/esm2022/lib/components/navbar/index.mjs +19 -0
- package/esm2022/lib/components/navbar/navbar-brand.component.mjs +34 -0
- package/esm2022/lib/components/navbar/navbar-brand.theme.mjs +7 -0
- package/esm2022/lib/components/navbar/navbar-brand.theme.service.mjs +17 -0
- package/esm2022/lib/components/navbar/navbar-content.component.mjs +45 -0
- package/esm2022/lib/components/navbar/navbar-content.theme.mjs +14 -0
- package/esm2022/lib/components/navbar/navbar-content.theme.service.mjs +18 -0
- package/esm2022/lib/components/navbar/navbar-icon-button.component.mjs +42 -0
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.mjs +15 -0
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.service.mjs +17 -0
- package/esm2022/lib/components/navbar/navbar-item.component.mjs +47 -0
- package/esm2022/lib/components/navbar/navbar-item.theme.mjs +11 -0
- package/esm2022/lib/components/navbar/navbar-item.theme.service.mjs +17 -0
- package/esm2022/lib/components/navbar/navbar-toggle.component.mjs +58 -0
- package/esm2022/lib/components/navbar/navbar-toggle.theme.mjs +7 -0
- package/esm2022/lib/components/navbar/navbar-toggle.theme.service.mjs +17 -0
- package/esm2022/lib/components/navbar/navbar.component.mjs +62 -0
- package/esm2022/lib/components/navbar/navbar.theme.mjs +23 -0
- package/esm2022/lib/components/navbar/navbar.theme.service.mjs +17 -0
- package/esm2022/lib/components/scroll-top/index.mjs +4 -0
- package/esm2022/lib/components/scroll-top/scroll-top.component.mjs +54 -0
- package/esm2022/lib/components/scroll-top/scroll-top.theme.mjs +27 -0
- package/esm2022/lib/components/scroll-top/scroll-top.theme.service.mjs +17 -0
- package/esm2022/lib/components/sidebar/index.mjs +19 -0
- package/esm2022/lib/components/sidebar/sidebar-item-group.component.mjs +85 -0
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.mjs +18 -0
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.service.mjs +18 -0
- package/esm2022/lib/components/sidebar/sidebar-item.component.mjs +85 -0
- package/esm2022/lib/components/sidebar/sidebar-item.theme.mjs +18 -0
- package/esm2022/lib/components/sidebar/sidebar-item.theme.service.mjs +18 -0
- package/esm2022/lib/components/sidebar/sidebar-menu.component.mjs +49 -0
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.mjs +24 -0
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.service.mjs +17 -0
- package/esm2022/lib/components/sidebar/sidebar-page-content.component.mjs +36 -0
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.mjs +12 -0
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.service.mjs +17 -0
- package/esm2022/lib/components/sidebar/sidebar-toggle.component.mjs +53 -0
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.mjs +18 -0
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.service.mjs +17 -0
- package/esm2022/lib/components/sidebar/sidebar.component.mjs +61 -0
- package/esm2022/lib/components/sidebar/sidebar.theme.mjs +11 -0
- package/esm2022/lib/components/sidebar/sidebar.theme.service.mjs +17 -0
- package/esm2022/lib/directives/flowbite-router-link-active.directive.mjs +51 -0
- package/esm2022/lib/directives/flowbite-router-link.directive.mjs +44 -0
- package/esm2022/lib/directives/index.mjs +3 -0
- package/esm2022/lib/pipes/index.mjs +2 -0
- package/esm2022/lib/pipes/sanitize-html/sanitize-html.pipe.mjs +32 -0
- package/esm2022/lib/services/flowbite.theme.service.mjs +16 -0
- package/esm2022/lib/services/index.mjs +4 -0
- package/esm2022/lib/services/signal-store.service.mjs +61 -0
- package/esm2022/lib/services/state/index.mjs +2 -0
- package/esm2022/lib/services/state/theme.state.mjs +2 -0
- package/esm2022/lib/utils/boolean.util.mjs +10 -0
- package/esm2022/lib/utils/directives/index.mjs +3 -0
- package/esm2022/lib/utils/directives/inputs/index.mjs +3 -0
- package/esm2022/lib/utils/directives/inputs/router-link-active.input.mjs +8 -0
- package/esm2022/lib/utils/directives/inputs/router-link.inputs.mjs +20 -0
- package/esm2022/lib/utils/directives/outputs/index.mjs +3 -0
- package/esm2022/lib/utils/directives/outputs/router-link-active.output.mjs +8 -0
- package/esm2022/lib/utils/directives/outputs/router-link.output.mjs +8 -0
- package/esm2022/lib/utils/icon.list.mjs +39 -0
- package/esm2022/lib/utils/id.generator.mjs +81 -0
- package/esm2022/lib/utils/index.mjs +9 -0
- package/esm2022/lib/utils/theme/clone-deep.mjs +18 -0
- package/esm2022/lib/utils/theme/create-class.mjs +10 -0
- package/esm2022/lib/utils/theme/create-theme.mjs +10 -0
- package/esm2022/lib/utils/theme/is-object.mjs +10 -0
- package/esm2022/lib/utils/theme/merge-theme.mjs +27 -0
- package/esm2022/lib/utils/theme/to-string.mjs +10 -0
- package/esm2022/public-api.mjs +7 -0
- package/fesm2022/flowbite-angular.mjs +4326 -0
- package/fesm2022/flowbite-angular.mjs.map +1 -0
- package/index.d.ts +5 -4
- package/lib/common/flowbite.theme.init.d.ts +9 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/type-definitions/colors/flowbite.colors.d.ts +19 -0
- package/lib/common/type-definitions/colors/flowbite.gradient-colors.d.ts +11 -0
- package/lib/common/type-definitions/colors/flowbite.gradient-duo-tone-colors.d.ts +12 -0
- package/lib/common/type-definitions/colors/index.d.ts +3 -0
- package/lib/common/type-definitions/flowbite.boolean.d.ts +7 -0
- package/lib/common/type-definitions/flowbite.class.d.ts +6 -0
- package/lib/common/type-definitions/flowbite.combination.d.ts +8 -0
- package/lib/common/type-definitions/flowbite.content-positions.d.ts +6 -0
- package/lib/common/type-definitions/flowbite.deep-partial.d.ts +6 -0
- package/lib/common/type-definitions/flowbite.heading-levels.d.ts +4 -0
- package/lib/common/type-definitions/flowbite.positions.d.ts +14 -0
- package/lib/common/type-definitions/flowbite.router-link-parameter.d.ts +5 -0
- package/lib/common/type-definitions/flowbite.sizes.d.ts +10 -0
- package/lib/common/type-definitions/flowbite.themes.d.ts +4 -0
- package/lib/common/type-definitions/index.d.ts +11 -0
- package/lib/components/accordion/accordion-content.component.d.ts +32 -0
- package/lib/components/accordion/accordion-content.theme.d.ts +16 -0
- package/lib/components/accordion/accordion-content.theme.service.d.ts +8 -0
- package/lib/components/accordion/accordion-panel.component.d.ts +27 -0
- package/lib/components/accordion/accordion-panel.theme.d.ts +11 -0
- package/lib/components/accordion/accordion-panel.theme.service.d.ts +9 -0
- package/lib/components/accordion/accordion-title.component.d.ts +46 -0
- package/lib/components/accordion/accordion-title.theme.d.ts +24 -0
- package/lib/components/accordion/accordion-title.theme.service.d.ts +8 -0
- package/lib/components/accordion/accordion.component.d.ts +35 -0
- package/lib/components/accordion/accordion.theme.d.ts +21 -0
- package/lib/components/accordion/accordion.theme.service.d.ts +8 -0
- package/lib/components/accordion/index.d.ts +16 -0
- package/lib/components/alert/alert.component.d.ts +53 -12
- package/lib/components/alert/alert.theme.d.ts +27 -0
- package/lib/components/alert/alert.theme.service.d.ts +8 -0
- package/lib/components/alert/index.d.ts +4 -1
- package/lib/components/badge/badge.component.d.ts +50 -10
- package/lib/components/badge/badge.theme.d.ts +32 -0
- package/lib/components/badge/badge.theme.service.d.ts +8 -0
- package/lib/components/badge/index.d.ts +4 -1
- package/lib/components/base-component.directive.d.ts +19 -0
- package/lib/components/breadcrumb/breadcrumb-item.component.d.ts +39 -0
- package/lib/components/breadcrumb/breadcrumb-item.theme.d.ts +22 -0
- package/lib/components/breadcrumb/breadcrumb-item.theme.service.d.ts +8 -0
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +22 -0
- package/lib/components/breadcrumb/breadcrumb.theme.d.ts +14 -0
- package/lib/components/breadcrumb/breadcrumb.theme.service.d.ts +8 -0
- package/lib/components/breadcrumb/index.d.ts +8 -0
- package/lib/components/button/button.component.d.ts +110 -0
- package/lib/components/button/button.theme.d.ts +56 -0
- package/lib/components/button/button.theme.service.d.ts +8 -0
- package/lib/components/button/index.d.ts +4 -0
- package/lib/components/dark-theme-toggle/dark-theme-toggle.component.d.ts +21 -9
- package/lib/components/dark-theme-toggle/dark-theme-toggle.theme.d.ts +11 -0
- package/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.d.ts +8 -0
- package/lib/components/dark-theme-toggle/index.d.ts +4 -1
- package/lib/components/dropdown/dropdown-divider.component.d.ts +13 -0
- package/lib/components/dropdown/dropdown-divider.theme.d.ts +11 -0
- package/lib/components/dropdown/dropdown-divider.theme.service.d.ts +8 -0
- package/lib/components/dropdown/dropdown-header.component.d.ts +13 -0
- package/lib/components/dropdown/dropdown-header.theme.d.ts +16 -0
- package/lib/components/dropdown/dropdown-header.theme.service.d.ts +8 -0
- package/lib/components/dropdown/dropdown-item.component.d.ts +17 -0
- package/lib/components/dropdown/dropdown-item.theme.d.ts +11 -0
- package/lib/components/dropdown/dropdown-item.theme.service.d.ts +8 -0
- package/lib/components/dropdown/dropdown.component.d.ts +71 -0
- package/lib/components/dropdown/dropdown.theme.d.ts +44 -0
- package/lib/components/dropdown/dropdown.theme.service.d.ts +8 -0
- package/lib/components/dropdown/index.d.ts +16 -0
- package/lib/components/form-field/directives/addon.directive.d.ts +13 -0
- package/lib/components/form-field/directives/addon.directive.theme.d.ts +10 -0
- package/lib/components/form-field/directives/addon.directive.theme.service.d.ts +8 -0
- package/lib/components/form-field/directives/base-input.directive.d.ts +14 -0
- package/lib/components/form-field/directives/helper.directive.d.ts +18 -0
- package/lib/components/form-field/directives/helper.directive.theme.d.ts +13 -0
- package/lib/components/form-field/directives/helper.directive.theme.service.d.ts +8 -0
- package/lib/components/form-field/directives/icon.directive.d.ts +13 -0
- package/lib/components/form-field/directives/icon.directive.theme.d.ts +10 -0
- package/lib/components/form-field/directives/icon.directive.theme.service.d.ts +8 -0
- package/lib/components/form-field/directives/index.d.ts +21 -0
- package/lib/components/form-field/directives/input.directive.d.ts +100 -0
- package/lib/components/form-field/directives/input.directive.theme.d.ts +24 -0
- package/lib/components/form-field/directives/input.directive.theme.service.d.ts +8 -0
- package/lib/components/form-field/directives/label.directive.d.ts +62 -0
- package/lib/components/form-field/directives/label.directive.theme.d.ts +20 -0
- package/lib/components/form-field/directives/label.directive.theme.service.d.ts +8 -0
- package/lib/components/form-field/form-field.component.d.ts +20 -0
- package/lib/components/form-field/form-field.theme.d.ts +45 -0
- package/lib/components/form-field/form-field.theme.service.d.ts +8 -0
- package/lib/components/form-field/index.d.ts +5 -0
- package/lib/components/icon/icon-registry.d.ts +45 -0
- package/lib/components/icon/icon.component.d.ts +22 -0
- package/lib/components/icon/index.d.ts +5 -0
- package/lib/components/icon/trusted-types.d.ts +15 -0
- package/lib/components/index.d.ts +10 -0
- package/lib/components/indicators/index.d.ts +4 -0
- package/lib/components/indicators/indicators.component.d.ts +92 -0
- package/lib/components/indicators/indicators.theme.d.ts +43 -0
- package/lib/components/indicators/indicators.theme.service.d.ts +8 -0
- package/lib/components/modal/index.d.ts +16 -0
- package/lib/components/modal/modal-body.component.d.ts +17 -0
- package/lib/components/modal/modal-body.theme.d.ts +11 -0
- package/lib/components/modal/modal-body.theme.service.d.ts +8 -0
- package/lib/components/modal/modal-footer.component.d.ts +17 -0
- package/lib/components/modal/modal-footer.theme.d.ts +11 -0
- package/lib/components/modal/modal-footer.theme.service.d.ts +8 -0
- package/lib/components/modal/modal-header.component.d.ts +29 -0
- package/lib/components/modal/modal-header.theme.d.ts +20 -0
- package/lib/components/modal/modal-header.theme.service.d.ts +8 -0
- package/lib/components/modal/modal.component.d.ts +73 -0
- package/lib/components/modal/modal.theme.d.ts +39 -0
- package/lib/components/modal/modal.theme.service.d.ts +8 -0
- package/lib/components/navbar/index.d.ts +24 -1
- package/lib/components/navbar/navbar-brand.component.d.ts +17 -0
- package/lib/components/navbar/navbar-brand.theme.d.ts +11 -0
- package/lib/components/navbar/navbar-brand.theme.service.d.ts +8 -0
- package/lib/components/navbar/navbar-content.component.d.ts +27 -0
- package/lib/components/navbar/navbar-content.theme.d.ts +18 -0
- package/lib/components/navbar/navbar-content.theme.service.d.ts +8 -0
- package/lib/components/navbar/navbar-icon-button.component.d.ts +27 -0
- package/lib/components/navbar/navbar-icon-button.theme.d.ts +14 -0
- package/lib/components/navbar/navbar-icon-button.theme.service.d.ts +8 -0
- package/lib/components/navbar/navbar-item.component.d.ts +29 -0
- package/lib/components/navbar/navbar-item.theme.d.ts +15 -0
- package/lib/components/navbar/navbar-item.theme.service.d.ts +8 -0
- package/lib/components/navbar/navbar-toggle.component.d.ts +23 -0
- package/lib/components/navbar/navbar-toggle.theme.d.ts +11 -0
- package/lib/components/navbar/navbar-toggle.theme.service.d.ts +8 -0
- package/lib/components/navbar/navbar.component.d.ts +45 -6
- package/lib/components/navbar/navbar.theme.d.ts +24 -0
- package/lib/components/navbar/navbar.theme.service.d.ts +8 -0
- package/lib/components/scroll-top/index.d.ts +4 -0
- package/lib/components/scroll-top/scroll-top.component.d.ts +46 -0
- package/lib/components/scroll-top/scroll-top.theme.d.ts +21 -0
- package/lib/components/scroll-top/scroll-top.theme.service.d.ts +8 -0
- package/lib/components/sidebar/index.d.ts +24 -3
- package/lib/components/sidebar/sidebar-item-group.component.d.ts +41 -2
- package/lib/components/sidebar/sidebar-item-group.theme.d.ts +19 -0
- package/lib/components/sidebar/sidebar-item-group.theme.service.d.ts +8 -0
- package/lib/components/sidebar/sidebar-item.component.d.ts +38 -8
- package/lib/components/sidebar/sidebar-item.theme.d.ts +22 -0
- package/lib/components/sidebar/sidebar-item.theme.service.d.ts +8 -0
- package/lib/components/sidebar/sidebar-menu.component.d.ts +43 -0
- package/lib/components/sidebar/sidebar-menu.theme.d.ts +18 -0
- package/lib/components/sidebar/sidebar-menu.theme.service.d.ts +8 -0
- package/lib/components/sidebar/sidebar-page-content.component.d.ts +22 -0
- package/lib/components/sidebar/sidebar-page-content.theme.d.ts +15 -0
- package/lib/components/sidebar/sidebar-page-content.theme.service.d.ts +8 -0
- package/lib/components/sidebar/sidebar-toggle.component.d.ts +40 -0
- package/lib/components/sidebar/sidebar-toggle.theme.d.ts +19 -0
- package/lib/components/sidebar/sidebar-toggle.theme.service.d.ts +8 -0
- package/lib/components/sidebar/sidebar.component.d.ts +30 -7
- package/lib/components/sidebar/sidebar.theme.d.ts +25 -0
- package/lib/components/sidebar/sidebar.theme.service.d.ts +8 -0
- package/lib/directives/flowbite-router-link-active.directive.d.ts +25 -0
- package/lib/directives/flowbite-router-link.directive.d.ts +16 -0
- package/lib/directives/index.d.ts +2 -0
- package/lib/pipes/index.d.ts +1 -1
- package/lib/pipes/sanitize-html/sanitize-html.pipe.d.ts +14 -4
- package/lib/services/flowbite.theme.service.d.ts +10 -0
- package/lib/services/index.d.ts +3 -2
- package/lib/services/signal-store.service.d.ts +46 -0
- package/lib/services/state/index.d.ts +1 -0
- package/lib/services/state/theme.state.d.ts +4 -0
- package/lib/utils/boolean.util.d.ts +8 -0
- package/lib/utils/directives/index.d.ts +2 -0
- package/lib/utils/directives/inputs/index.d.ts +2 -0
- package/lib/utils/directives/inputs/router-link-active.input.d.ts +8 -0
- package/lib/utils/directives/inputs/router-link.inputs.d.ts +8 -0
- package/lib/utils/directives/outputs/index.d.ts +2 -0
- package/lib/utils/directives/outputs/router-link-active.output.d.ts +8 -0
- package/lib/utils/directives/outputs/router-link.output.d.ts +8 -0
- package/lib/utils/icon.list.d.ts +7 -0
- package/lib/utils/id.generator.d.ts +59 -0
- package/lib/utils/index.d.ts +8 -0
- package/lib/utils/theme/clone-deep.d.ts +7 -0
- package/lib/utils/theme/create-class.d.ts +7 -0
- package/lib/utils/theme/create-theme.d.ts +7 -0
- package/lib/utils/theme/is-object.d.ts +7 -0
- package/lib/utils/theme/merge-theme.d.ts +8 -0
- package/lib/utils/theme/to-string.d.ts +7 -0
- package/package.json +11 -25
- package/public-api.d.ts +6 -0
- package/LICENSE +0 -21
- package/README.md +0 -376
- package/esm2020/index.mjs +0 -5
- package/esm2020/lib/components/alert/alert.component.mjs +0 -128
- package/esm2020/lib/components/alert/index.mjs +0 -2
- package/esm2020/lib/components/badge/badge.component.mjs +0 -77
- package/esm2020/lib/components/badge/index.mjs +0 -2
- package/esm2020/lib/components/dark-theme-toggle/dark-theme-toggle.component.mjs +0 -122
- package/esm2020/lib/components/dark-theme-toggle/index.mjs +0 -2
- package/esm2020/lib/components/index.mjs +0 -6
- package/esm2020/lib/components/navbar/index.mjs +0 -2
- package/esm2020/lib/components/navbar/navbar.component.mjs +0 -49
- package/esm2020/lib/components/sidebar/index.mjs +0 -4
- package/esm2020/lib/components/sidebar/sidebar-item-group.component.mjs +0 -18
- package/esm2020/lib/components/sidebar/sidebar-item.component.mjs +0 -73
- package/esm2020/lib/components/sidebar/sidebar.component.mjs +0 -50
- package/esm2020/lib/flowbite.module.mjs +0 -45
- package/esm2020/lib/pipes/index.mjs +0 -2
- package/esm2020/lib/pipes/sanitize-html/sanitize-html.pipe.mjs +0 -21
- package/esm2020/lib/services/index.mjs +0 -3
- package/esm2020/lib/services/sidebar/index.mjs +0 -2
- package/esm2020/lib/services/sidebar/sidebar.service.mjs +0 -24
- package/esm2020/lib/services/theme/index.mjs +0 -2
- package/esm2020/lib/services/theme/theme.service.mjs +0 -24
- package/fesm2015/flowbite-angular.mjs +0 -600
- package/fesm2015/flowbite-angular.mjs.map +0 -1
- package/fesm2020/flowbite-angular.mjs +0 -599
- package/fesm2020/flowbite-angular.mjs.map +0 -1
- package/flowbite-angular.d.ts +0 -5
- package/lib/flowbite.module.d.ts +0 -16
- package/lib/services/sidebar/index.d.ts +0 -1
- package/lib/services/sidebar/sidebar.service.d.ts +0 -9
- package/lib/services/theme/index.d.ts +0 -1
- package/lib/services/theme/theme.service.d.ts +0 -10
- /package/{esm2020 → esm2022}/lib/pipes/sanitize-html/index.mjs +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular.mjs","sources":["../../../../libs/flowbite-angular/src/lib/utils/boolean.util.ts","../../../../libs/flowbite-angular/src/lib/utils/id.generator.ts","../../../../libs/flowbite-angular/src/lib/components/base-component.directive.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/is-object.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/clone-deep.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/merge-theme.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-content.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-content.component.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-panel.theme.service.ts","../../../../libs/flowbite-angular/src/lib/utils/icon.list.ts","../../../../libs/flowbite-angular/src/lib/components/icon/trusted-types.ts","../../../../libs/flowbite-angular/src/lib/components/icon/icon-registry.ts","../../../../libs/flowbite-angular/src/lib/components/icon/icon.component.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-title.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-title.component.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-panel.component.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion.component.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/create-theme.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion.theme.ts","../../../../libs/flowbite-angular/src/lib/utils/directives/inputs/router-link.inputs.ts","../../../../libs/flowbite-angular/src/lib/utils/directives/inputs/router-link-active.input.ts","../../../../libs/flowbite-angular/src/lib/utils/directives/outputs/router-link.output.ts","../../../../libs/flowbite-angular/src/lib/utils/directives/outputs/router-link-active.output.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/create-class.ts","../../../../libs/flowbite-angular/src/lib/utils/theme/to-string.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-content.theme.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-panel.theme.ts","../../../../libs/flowbite-angular/src/lib/components/accordion/accordion-title.theme.ts","../../../../libs/flowbite-angular/src/lib/components/button/button.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/button/button.component.ts","../../../../libs/flowbite-angular/src/lib/components/alert/alert.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/alert/alert.component.ts","../../../../libs/flowbite-angular/src/lib/components/alert/alert.theme.ts","../../../../libs/flowbite-angular/src/lib/directives/flowbite-router-link.directive.ts","../../../../libs/flowbite-angular/src/lib/components/badge/badge.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/badge/badge.component.ts","../../../../libs/flowbite-angular/src/lib/components/badge/badge.theme.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb-item.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb-item.component.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb.theme.ts","../../../../libs/flowbite-angular/src/lib/components/breadcrumb/breadcrumb-item.theme.ts","../../../../libs/flowbite-angular/src/lib/components/button/button.theme.ts","../../../../libs/flowbite-angular/src/lib/services/signal-store.service.ts","../../../../libs/flowbite-angular/src/lib/services/flowbite.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dark-theme-toggle/dark-theme-toggle.component.ts","../../../../libs/flowbite-angular/src/lib/components/dark-theme-toggle/dark-theme-toggle.theme.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-divider.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-divider.component.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-header.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-header.component.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-item.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-item.component.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown.theme.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-item.theme.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-divider.theme.ts","../../../../libs/flowbite-angular/src/lib/components/dropdown/dropdown-header.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/addon.directive.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/addon.directive.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/form-field.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/form-field.component.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/form-field.component.html","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/base-input.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/addon.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/helper.directive.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/helper.directive.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/helper.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/icon.directive.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/icon.directive.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/icon.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/input.directive.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/input.directive.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/input.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/label.directive.theme.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/label.directive.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/directives/label.directive.ts","../../../../libs/flowbite-angular/src/lib/components/form-field/form-field.theme.ts","../../../../libs/flowbite-angular/src/lib/components/indicators/indicators.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/indicators/indicators.component.ts","../../../../libs/flowbite-angular/src/lib/components/indicators/indicators.theme.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-body.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-body.component.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-footer.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-footer.component.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-header.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-header.component.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal.component.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal.theme.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-header.theme.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-body.theme.ts","../../../../libs/flowbite-angular/src/lib/components/modal/modal-footer.theme.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-brand.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-brand.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-content.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-content.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-toggle.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-toggle.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar.theme.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-brand.theme.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-content.theme.ts","../../../../libs/flowbite-angular/src/lib/directives/flowbite-router-link-active.directive.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-item.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-item.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-item.theme.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-toggle.theme.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-icon-button.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-icon-button.component.ts","../../../../libs/flowbite-angular/src/lib/components/navbar/navbar-icon-button.theme.ts","../../../../libs/flowbite-angular/src/lib/components/scroll-top/scroll-top.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/scroll-top/scroll-top.component.ts","../../../../libs/flowbite-angular/src/lib/components/scroll-top/scroll-top.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item-group.theme.service.ts","../../../../libs/flowbite-angular/src/lib/pipes/sanitize-html/sanitize-html.pipe.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item-group.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-menu.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-menu.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-page-content.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-page-content.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-item-group.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-toggle.theme.service.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-toggle.component.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-toggle.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-page-content.theme.ts","../../../../libs/flowbite-angular/src/lib/components/sidebar/sidebar-menu.theme.ts","../../../../libs/flowbite-angular/src/lib/common/flowbite.theme.init.ts","../../../../libs/flowbite-angular/src/flowbite-angular.ts"],"sourcesContent":["import type { FlowbiteBoolean } from '../common/type-definitions/flowbite.boolean';\n\n/**\n * This function cast a boolean to the internal flowbute-angular boolean type.\n *\n * @param value The input to be cast.\n * @returns enabled if value is true ; disabled if value is false.\n */\nexport function booleanToFlowbiteBoolean(value: boolean): keyof FlowbiteBoolean {\n return value ? 'enabled' : 'disabled';\n}\n","/**\n * This class provide an implementation of Guid used as id for flowbite-angular components.\n *\n * @see https://gist.github.com/emptyother/1fd97db034ef848f38eca3354fa9ee90\n */\nexport class Guid {\n private value: string = this.empty;\n\n /**\n * If value is given and if the value is a valid Guid, then return a Guid from the string ; Otherwise or if no value is given, create a Guid class without value.\n *\n * @param value Guid as string if you want to get a Guid type from string\n */\n constructor(value?: string) {\n if (value) {\n if (Guid.isValid(value)) {\n this.value = value;\n }\n }\n }\n\n /**\n * Function that generate new Guid.\n *\n * @returns New Guid.\n */\n public static newGuid(): Guid {\n return new Guid(crypto.randomUUID());\n }\n\n /**\n * Function that generate an empty Guid.\n *\n * @return \"00000000-0000-0000-0000-000000000000\".\n */\n public static get empty(): string {\n return '00000000-0000-0000-0000-000000000000';\n }\n\n /**\n * Function that generate an empty Guid.\n *\n * @return \"00000000-0000-0000-0000-000000000000\".\n */\n public get empty(): string {\n return Guid.empty;\n }\n\n /**\n * Check if the provided Guid is valid.\n *\n * @param str The Guid to check.\n * @returns true if the Guid is valid ; false otherwise.\n */\n public static isValid(str: string): boolean {\n const validRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return validRegex.test(str);\n }\n\n /**\n * ToString base method.\n *\n * @returns Value as string.\n */\n public toString() {\n return this.value;\n }\n\n /**\n * ToJson base method.\n *\n * @returns Value as Json compatible string.\n */\n public toJSON(): string {\n return this.value;\n }\n}\n\n/**\n * Function that return a new Guid.\n *\n * @returns New {@link Guid}.\n *\n * @see `Guid`\n */\nexport function generateId(): Guid {\n return Guid.newGuid();\n}\n","import type { FlowbiteClass } from '../common';\nimport { generateId, Guid } from '../utils/id.generator';\n\nimport type { OnInit } from '@angular/core';\nimport { afterNextRender, computed, Directive, inject, Injector, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n host: {\n '[class]': 'this.contentClasses().rootClass',\n '[attr.flowbite-id]': 'this.flowbiteId()',\n },\n})\nexport abstract class BaseComponent<TClass extends FlowbiteClass> implements OnInit {\n public readonly injector = inject(Injector);\n\n public readonly flowbiteId = signal<Guid>(new Guid(Guid.empty));\n\n public contentClasses = computed<TClass>(() => this.fetchClass());\n\n public ngOnInit(): void {\n this.verify();\n this.init();\n\n afterNextRender(\n () => {\n this.flowbiteId.set(generateId());\n },\n { injector: this.injector },\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public init(): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public verify(): void {}\n\n /**\n * Function to load component's classes\n */\n public abstract fetchClass(): TClass;\n}\n","/**\n * Check if the provided parameter is an object or not.\n *\n * @param item The unknown type parameter.\n * @returns true if it's an ibject ; false otherwise.\n */\nexport function isObject(item: unknown): item is Record<string, unknown> {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\n","import { isObject } from './is-object';\n\n/**\n * Function that return the cloned type of the provided generic type.\n *\n * @param source Generic object to be cloned.\n * @returns The clone type of th eprovided type.\n */\nexport function cloneDeep<T>(source: T): T {\n if (!isObject(source)) {\n return source;\n }\n\n const output: Record<string, unknown> = {};\n\n for (const key in source) {\n output[key] = cloneDeep(source[key]);\n }\n\n return output as T;\n}\n","import { cloneDeep } from './clone-deep';\nimport { isObject } from './is-object';\n\n/**\n * Merge two objects into one.\n *\n * @param target Object to be merged.\n * @param source Object to be merged.\n * @returns The merged object.\n */\nexport function mergeTheme<T extends object, S extends object>(target: T, source: S): T & S {\n if (isObject(source) && Object.keys(source).length === 0) {\n return cloneDeep({ ...target, ...source });\n }\n\n const output = { ...target, ...source };\n\n if (isObject(source) && isObject(target)) {\n for (const key in source) {\n if (isObject(source[key]) && key in target && isObject(target[key])) {\n (output as Record<string, unknown>)[key] = mergeTheme(target[key] as object, source[key] as object);\n } else {\n (output as Record<string, unknown>)[key] = isObject(source[key]) ? cloneDeep(source[key]) : source[key];\n }\n }\n }\n\n return output;\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type {\n AccordionContentClass,\n AccordionContentProperties,\n AccordionContentTheme,\n} from './accordion-content.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN = new InjectionToken<AccordionContentTheme>(\n 'FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN',\n);\n\nexport class AccordionContentThemeService implements FlowbiteThemeService<AccordionContentProperties> {\n private readonly baseTheme = inject(FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN);\n\n public getClasses(properties: AccordionContentProperties): AccordionContentClass {\n const theme: AccordionContentTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AccordionContentClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.isOpen[properties.isOpen]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type { AccordionContentClass, AccordionContentTheme } from './accordion-content.theme';\nimport { AccordionContentThemeService } from './accordion-content.theme.service';\nimport { AccordionPanelComponent } from './accordion-panel.component';\nimport type { AccordionColors } from './accordion.theme';\n\nimport { NgClass, NgIf } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass],\n selector: 'flowbite-accordion-content',\n template: `\n <ng-container *ngIf=\"accordionPanelComponent.isOpen()\">\n <ng-content />\n </ng-container>\n `,\n})\nexport class AccordionContentComponent extends BaseComponent<AccordionContentClass> {\n public readonly themeService = inject(AccordionContentThemeService);\n public readonly accordionPanelComponent = inject(AccordionPanelComponent);\n\n //#region properties\n public color = model<keyof AccordionColors>(this.accordionPanelComponent.color());\n public customStyle = model<DeepPartial<AccordionContentTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AccordionContentClass {\n return this.themeService.getClasses({\n color: this.accordionPanelComponent.accordionComponent.color(),\n isOpen: booleanToFlowbiteBoolean(this.accordionPanelComponent.isOpen()),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { AccordionPanelClass, AccordionPanelProperties, AccordionPanelTheme } from './accordion-panel.theme';\nimport type { AccordionClass } from './accordion.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_ACCORDION_PANEL_THEME_TOKEN = new InjectionToken<AccordionPanelTheme>(\n 'FLOWBITE_ACCORDION_PANEL_THEME_TOKEN',\n);\n\nexport class AccordionPanelThemeService implements FlowbiteThemeService<AccordionPanelProperties> {\n private readonly baseTheme = inject(FLOWBITE_ACCORDION_PANEL_THEME_TOKEN);\n\n public getClasses(properties: AccordionPanelProperties): AccordionClass {\n const theme: AccordionPanelTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AccordionPanelClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","export const CLOSE_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M6 18 17.94 6M18 18 6.06 6\" />\n</svg>\n`;\n\nexport const CHEVRON_UP_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 14-4-4-4 4\" />\n</svg>\n`;\n\nexport const CHEVRON_DOWN_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m8 10 4 4 4-4\" />\n</svg>\n`;\n\nexport const CHEVRON_RIGHT_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m10 16 4-4-4-4\" />\n</svg>\n`;\n\nexport const SUN_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M12 5V3m0 18v-2M7.05 7.05 5.636 5.636m12.728 12.728L16.95 16.95M5 12H3m18 0h-2M7.05 16.95l-1.414 1.414M18.364 5.636 16.95 7.05M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z\" />\n</svg>\n`;\n\nexport const MOON_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M12 21a9 9 0 0 1-.5-17.986V3c-.354.966-.5 1.911-.5 3a9 9 0 0 0 9 9c.239 0 .254.018.488 0A9.004 9.004 0 0 1 12 21Z\" />\n</svg>\n`;\n\nexport const BARS_SVG_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"2\" d=\"M5 7h14M5 12h14M5 17h14\" />\n</svg>\n`;\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nexport declare interface TrustedHTML {\n __brand__: 'TrustedHTML';\n}\n\nexport declare interface TrustedTypePolicyFactory {\n createPolicy(\n policyName: string,\n policyOptions: {\n createHTML?: (input: string) => string;\n },\n ): TrustedTypePolicy;\n}\n\nexport declare interface TrustedTypePolicy {\n createHTML(input: string): TrustedHTML;\n}\n\nlet policy: TrustedTypePolicy | undefined;\n\nfunction getPolicy(): TrustedTypePolicy | undefined {\n if (!policy) {\n if (typeof window !== 'undefined') {\n const tWindow = window as unknown as { trustedTypes?: TrustedTypePolicyFactory };\n\n if (tWindow.trustedTypes !== undefined) {\n policy = tWindow.trustedTypes.createPolicy('angular#components', {\n createHTML: (s: string) => s,\n });\n }\n }\n }\n\n return policy;\n}\n\nexport function trustedHTMLFromString(raw: string): TrustedHTML {\n return getPolicy()?.createHTML(raw) || (raw as unknown as TrustedHTML);\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport { trustedHTMLFromString } from './trusted-types';\nimport type { TrustedHTML } from './trusted-types';\n\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport type { OnDestroy } from '@angular/core';\nimport { inject, Injectable, PLATFORM_ID, SecurityContext } from '@angular/core';\nimport type { SafeHtml } from '@angular/platform-browser';\nimport { DomSanitizer, type SafeResourceUrl } from '@angular/platform-browser';\nimport { finalize, map, of, share, tap, throwError, type Observable } from 'rxjs';\n\nexport function getSvgIconFromNamedError(iconName: string): Error {\n return Error(`Unable to find icon with name ${iconName}`);\n}\n\nexport function getSvgIconFailedToSanitizeRawError(raw: SafeHtml): Error {\n return Error(\n `The raw provided to IconRegistry was not trusted as safe HTML by ANGULAR's DOMSanitizer. Attempted raw was : ${raw as string}`,\n );\n}\n\nexport function getSvgIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error {\n return Error(\n `The URL provided to IconRegistry was not trusted as a resource URL via Angular's DOMSanitizer. Attempted URL was : ${url as string}`,\n );\n}\n\nexport function getSvgIconNoHttpClientProvidedError(): Error {\n return Error(\n `Could not fid HttpClient provider for use with flowbite-angular icons. Please include the HttpClientModule from @angular/common/http in your app imports`,\n );\n}\n\nexport interface SvgIconOptions {\n viewBox: string;\n}\n\nexport class SvgIconConfig {\n svgElement: SVGElement | null = null;\n\n constructor(\n public url: SafeResourceUrl,\n public svgText: TrustedHTML | undefined,\n public options?: SvgIconOptions,\n ) {}\n}\n\ntype LoadedSvgIconConfig = SvgIconConfig & { svgText: TrustedHTML };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistry implements OnDestroy {\n private platformId = inject(PLATFORM_ID);\n\n private _httpClient = inject(HttpClient, { optional: true });\n private _sanitizer = inject(DomSanitizer);\n private _document = inject(DOCUMENT);\n\n private _svgIconConfig = new Map<string, SvgIconConfig>();\n private _cachedSvgIconByUrl = new Map<string, SVGElement>();\n private _inProgressSvgIconFetch = new Map<string, Observable<TrustedHTML>>();\n\n public addSvgIcon(iconName: string, url: SafeResourceUrl, options?: SvgIconOptions): this {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n\n public addRawSvgIcon(iconName: string, raw: SafeHtml, options?: SvgIconOptions): this {\n return this.addRawSvgIconInNamepsace('', iconName, raw, options);\n }\n\n public addSvgIconInNamespace(\n namespace: string,\n iconName: string,\n url: SafeResourceUrl,\n options?: SvgIconOptions,\n ): this {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, undefined, options));\n }\n\n public addRawSvgIconInNamepsace(namespace: string, iconName: string, raw: SafeHtml, options?: SvgIconOptions): this {\n const cleanRaw = this._sanitizer.sanitize(SecurityContext.HTML, raw);\n\n if (!cleanRaw) {\n throw getSvgIconFailedToSanitizeRawError(raw);\n }\n\n const trustedRaw = trustedHTMLFromString(cleanRaw);\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedRaw, options));\n }\n\n public getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable<SVGElement> {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(safeUrl);\n }\n\n const cachedIcon = this._cachedSvgIconByUrl.get(url);\n\n if (cachedIcon) {\n return of(cloneSvg(cachedIcon));\n }\n\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, undefined));\n }\n\n public getSvgIconFromName(iconName: string, namespace: string): Observable<SVGElement> {\n const key = iconKey(namespace, iconName);\n const config = this._svgIconConfig.get(key);\n\n if (config) {\n return this._getSvgIconFromConfig(config);\n }\n\n return throwError(() => getSvgIconFromNamedError(key));\n }\n\n public ngOnDestroy(): void {\n this._svgIconConfig.clear();\n this._cachedSvgIconByUrl.clear();\n }\n\n private _addSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this._svgIconConfig.set(iconKey(namespace, iconName), config);\n\n return this;\n }\n\n private _getSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgText) {\n return of(cloneSvg(this._svgElementFromConfig(config as LoadedSvgIconConfig)));\n } else {\n return this._loadSvgIconFromConfig(config).pipe(map((svg) => cloneSvg(svg)));\n }\n }\n\n private _loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return this._fetchIcon(config).pipe(\n tap((svgText) => (config.svgText = svgText)),\n map(() => this._svgElementFromConfig(config as LoadedSvgIconConfig)),\n );\n }\n\n private _setSvgAttributes(svg: SVGElement, options?: SvgIconOptions): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false');\n\n if (options?.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n return svg;\n }\n\n private _svgElementFromConfig(config: LoadedSvgIconConfig): SVGElement {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n\n return config.svgElement;\n }\n\n private _svgElementFromString(str: TrustedHTML): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = str as unknown as string;\n\n const svg = div.querySelector('svg') as SVGElement;\n\n return svg;\n }\n\n private _fetchIcon(iconConfig: SvgIconConfig): Observable<TrustedHTML> {\n if (isPlatformBrowser(this.platformId)) {\n if (!this._httpClient) {\n throw getSvgIconNoHttpClientProvidedError();\n }\n\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconConfig.url);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(iconConfig.url);\n }\n\n const inProgressFetch = this._inProgressSvgIconFetch.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this._httpClient.get(url, { responseType: 'text' }).pipe(\n map((svg) => {\n return trustedHTMLFromString(svg);\n }),\n finalize(() => this._inProgressSvgIconFetch.delete(url)),\n share(),\n );\n\n this._inProgressSvgIconFetch.set(url, req);\n return req;\n } else {\n return of(trustedHTMLFromString('<svg></svg>'));\n }\n }\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\nfunction iconKey(namespace: string, iconName: string): string {\n return `${namespace}:${iconName}`;\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport type { FlowbiteClass } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconRegistry } from './icon-registry';\n\nimport type { OnInit } from '@angular/core';\nimport { Component, effect, ElementRef, inject, model } from '@angular/core';\nimport { take } from 'rxjs';\n\n@Component({\n selector: 'flowbite-icon',\n standalone: true,\n template: `<ng-content />`,\n})\nexport class IconComponent extends BaseComponent<FlowbiteClass> implements OnInit {\n public _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n public _iconRegistry = inject(IconRegistry);\n\n public svgIcon = model.required<string>();\n\n public override init(): void {\n effect(\n () => {\n this._updateSvgIcon();\n },\n { injector: this.injector },\n );\n }\n\n public override fetchClass(): FlowbiteClass {\n return { rootClass: '' };\n }\n\n private _splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]];\n case 2:\n return <[string, string]>parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n\n private _updateSvgIcon() {\n const [namespace, iconName] = this._splitIconName(this.svgIcon());\n\n this._iconRegistry\n .getSvgIconFromName(iconName, namespace)\n .pipe(take(1))\n .subscribe((svg) => this._setSvgElement(svg));\n }\n\n private _setSvgElement(svg: SVGElement) {\n this._clearSvgElements();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElements() {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { AccordionTitleClass, AccordionTitleProperties, AccordionTitleTheme } from './accordion-title.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_ACCORDION_TITLE_THEME_TOKEN = new InjectionToken<AccordionTitleTheme>(\n 'FLOWBITE_ACCORDION_TITLE_THEME_TOKEN',\n);\n\nexport class AccordionTitleThemeService implements FlowbiteThemeService<AccordionTitleProperties> {\n private readonly baseTheme = inject(FLOWBITE_ACCORDION_TITLE_THEME_TOKEN);\n\n public getClasses(properties: AccordionTitleProperties): AccordionTitleClass {\n const theme: AccordionTitleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AccordionTitleClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.isFlush[properties.isFlush],\n theme.root.isOpen[properties.isOpen],\n ),\n textClass: twMerge(theme.text.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { CHEVRON_DOWN_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { AccordionPanelComponent } from './accordion-panel.component';\nimport type { AccordionTitleClass, AccordionTitleTheme } from './accordion-title.theme';\nimport { AccordionTitleThemeService } from './accordion-title.theme.service';\nimport type { AccordionColors } from './accordion.theme';\n\nimport { NgClass } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgClass, IconComponent],\n selector: 'flowbite-accordion-title',\n template: `\n <h2 [ngClass]=\"contentClasses().textClass\">\n <ng-content />\n </h2>\n <flowbite-icon\n svgIcon=\"flowbite-angular:chevron-down\"\n class=\"h-6 w-6 shrink-0 duration-200\"\n [class.rotate-180]=\"accordionPanelComponent.isOpen()\" />\n `,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class AccordionTitleComponent extends BaseComponent<AccordionTitleClass> implements OnInit {\n public readonly themeService = inject(AccordionTitleThemeService);\n public readonly accordionPanelComponent = inject(AccordionPanelComponent);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof AccordionColors>(this.accordionPanelComponent.color());\n public customStyle = model<DeepPartial<AccordionTitleTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AccordionTitleClass {\n return this.themeService.getClasses({\n color: this.accordionPanelComponent.accordionComponent.color(),\n isFlush: booleanToFlowbiteBoolean(this.accordionPanelComponent.accordionComponent.isFlush()),\n isOpen: booleanToFlowbiteBoolean(this.accordionPanelComponent.isOpen()),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-down',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_DOWN_SVG_ICON),\n );\n }\n //#endregion\n\n public onClick(): void {\n this.accordionPanelComponent.toggleVisibility();\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport { AccordionContentComponent } from './accordion-content.component';\nimport type { AccordionPanelClass, AccordionPanelTheme } from './accordion-panel.theme';\nimport { AccordionPanelThemeService } from './accordion-panel.theme.service';\nimport { AccordionTitleComponent } from './accordion-title.component';\nimport { AccordionComponent } from './accordion.component';\nimport type { AccordionColors } from './accordion.theme';\n\nimport type { OnInit } from '@angular/core';\nimport { Component, contentChild, inject, model, untracked } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [],\n selector: 'flowbite-accordion-panel',\n template: `<ng-content />`,\n})\nexport class AccordionPanelComponent extends BaseComponent<AccordionPanelClass> implements OnInit {\n public readonly themeService = inject(AccordionPanelThemeService);\n public readonly accordionComponent = inject(AccordionComponent);\n public readonly accordionTitleChild = contentChild(AccordionTitleComponent);\n public readonly accordionContentChild = contentChild(AccordionContentComponent);\n\n //#region properties\n public color = model<keyof AccordionColors>(this.accordionComponent.color());\n public isOpen = model<boolean>(false);\n public customStyle = model<DeepPartial<AccordionPanelTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AccordionPanelClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.accordionTitleChild() === undefined) {\n throw new Error('No AccordionTitleComponent available');\n }\n if (this.accordionContentChild() == undefined) {\n throw new Error('No AccordionContentComponent available');\n }\n }\n //#endregion\n\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n if (isOpen && untracked(() => !this.accordionComponent.isAlwaysOpen())) {\n this.accordionComponent.closeAll();\n }\n\n this.isOpen.set(isOpen);\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { AccordionClass, AccordionProperties, AccordionTheme } from './accordion.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_ACCORDION_THEME_TOKEN = new InjectionToken<AccordionTheme>('FLOWBITE_ACCORDION_THEME_TOKEN');\n\nexport class AccordionThemeService implements FlowbiteThemeService<AccordionProperties> {\n private readonly baseTheme = inject(FLOWBITE_ACCORDION_THEME_TOKEN);\n\n public getClasses(properties: AccordionProperties): AccordionClass {\n const theme: AccordionTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AccordionClass = {\n rootClass: twMerge(theme.root.base, theme.root.isFlush[properties.isFlush], theme.root.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport { AccordionPanelComponent } from './accordion-panel.component';\nimport type { AccordionClass, AccordionColors, AccordionTheme } from './accordion.theme';\nimport { AccordionThemeService } from './accordion.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport { Component, contentChildren, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-accordion',\n template: `<ng-content />`,\n})\nexport class AccordionComponent extends BaseComponent<AccordionClass> {\n public readonly themeService = inject(AccordionThemeService);\n public readonly accordionPanelChildren = contentChildren(AccordionPanelComponent);\n\n //#region properties\n public isAlwaysOpen = model<boolean>(false);\n public color = model<keyof AccordionColors>('primary');\n public isFlush = model<boolean>(false);\n public customStyle = model<DeepPartial<AccordionTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AccordionClass {\n return this.themeService.getClasses({\n color: this.color(),\n isFlush: booleanToFlowbiteBoolean(this.isFlush()),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.accordionPanelChildren().length === 0) {\n throw new Error('No AccordionPanelComponent available');\n }\n }\n //#endregion\n\n public closeAll(): void {\n this.accordionPanelChildren().forEach((child) => child.toggleVisibility(false));\n }\n}\n","/**\n * This function is used to create themes for component's while keeping the intellisens up for TailwindCSS and other extensions.\n *\n * @param input Generic type to be created.\n * @returns The generic type's definition.\n */\nexport function createTheme<T>(input: T) {\n return input;\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region region Component theme option\nexport interface AccordionColors\n extends Pick<FlowbiteColors, 'primary' | 'light' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface AccordionProperties {\n color: keyof AccordionColors;\n isFlush: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AccordionTheme>;\n}\n\nexport interface AccordionTheme {\n root: {\n base: string;\n color: AccordionColors;\n isFlush: FlowbiteBoolean;\n };\n}\n\nexport const accordionTheme: AccordionTheme = createTheme({\n root: {\n base: '',\n color: {\n primary: 'border-primary-200 dark:border-primary-700 divide-primary-200 dark:divide-primary-700',\n light: 'border-gray-300 dark:border-gray-700 divide-gray-200 dark:divide-gray-700',\n blue: 'border-blue-200 dark:border-blue-700 divide-blue-200 dark:divide-blue-700',\n red: 'border-red-200 dark:border-red-700 divide-red-200 dark:divide-red-700',\n green: 'border-green-200 dark:border-green-700 divide-green-200 dark:divide-green-700',\n yellow: 'border-yellow-200 dark:border-yellow-700 divide-yellow-200 dark:divide-yellow-700',\n },\n isFlush: {\n enabled: '',\n disabled: 'rounded-lg border shadow-sm',\n },\n },\n});\n\nexport type AccordionClass = FlowbiteClass;\n","/**\n * Register every inputs of RouterLink used in FlowbiteRouterLinkDirective.\n *\n * @see `RouterLink`\n * @see `FlowbiteRouterLinkDirective`\n */\nexport default [\n 'target',\n 'queryParams',\n 'fragment',\n 'queryParamsHandling',\n 'state',\n 'info',\n 'relativeTo',\n 'preserveFragment',\n 'skipLocationChange',\n 'replaceUrl',\n 'routerLink',\n] as string[];\n","/**\n * Register every inputs of RouterLinkActive used in FlowbiteRouterLinkActiveDirective.\n *\n * @see `RouterLinkActive`\n * @see `FlowbiteRouterLinkActiveDirective`\n */\nexport default ['routerLinkActiveOptions', 'ariaCurrentWhenActive', 'routerLinkActive'] as string[];\n","/**\n * Register every outputs of RouterLink used in FlowbiteRouterLinkDirective.\n *\n * @see `RouterLink`\n * @see `FlowbiteRouterLinkDirective`\n */\nexport default [] as string[];\n","/**\n * Register every outputs of RouterLinkActive used in FlowbiteRouterLinkActiveDirective.\n *\n * @see `RouterLinkActive`\n * @see `FlowbiteRouterLinkActiveDirective`\n */\nexport default ['isActiveChange'] as string[];\n","/**\n * This function is used to create classes for component's while keeping the intellisens up for TailwindCSS and other extensions.\n *\n * @param input Generic type to be created.\n * @returns The generic type's definition.\n */\nexport function createClass<T>(input: T) {\n return input;\n}\n","/**\n * Return theme value to an indented string.\n *\n * @param value The theme to be stringify.\n * @returns The theme as string.\n */\nexport function themeToString(value: unknown): string {\n return JSON.stringify(value, undefined, 2);\n}\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils';\nimport type { AccordionColors } from './accordion.theme';\n\nexport interface AccordionContentProperties {\n color: keyof AccordionColors;\n isOpen: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AccordionContentTheme>;\n}\n\nexport interface AccordionContentTheme {\n root: {\n base: string;\n color: AccordionColors;\n isOpen: FlowbiteBoolean;\n };\n}\n\nexport const accordionContentTheme: AccordionContentTheme = createTheme({\n root: {\n base: 'flex flex-col gap-2',\n color: {\n primary: 'border-primary-200 dark:border-primary-700',\n light: 'border-gray-200 dark:border-gray-700',\n blue: 'border-blue-200 dark:border-blue-700',\n red: 'border-red-200 dark:border-red-700',\n green: 'border-green-200 dark:border-green-700',\n yellow: 'border-yellow-200 dark:border-yellow-700',\n },\n isOpen: {\n enabled: 'p-5',\n disabled: '',\n },\n },\n});\n\nexport type AccordionContentClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface AccordionPanelProperties {\n customStyle: DeepPartial<AccordionPanelTheme>;\n}\n\nexport interface AccordionPanelTheme {\n root: {\n base: string;\n };\n}\n\nexport const accordionPanelTheme: AccordionPanelTheme = createTheme({\n root: {\n base: 'group',\n },\n});\n\nexport type AccordionPanelClass = FlowbiteClass;\n","import type { FlowbiteBoolean, FlowbiteClass } from '../../common';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { AccordionColors } from './accordion.theme';\n\nexport interface AccordionTitleProperties {\n color: keyof AccordionColors;\n isOpen: keyof FlowbiteBoolean;\n isFlush: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AccordionTitleTheme>;\n}\n\nexport interface AccordionTitleTheme {\n root: {\n base: string;\n color: AccordionColors;\n isFlush: FlowbiteBoolean;\n isOpen: FlowbiteBoolean;\n };\n text: {\n base: string;\n };\n}\n\nexport const accordionTitleTheme: AccordionTitleTheme = createTheme({\n root: {\n base: 'cursor-pointer flex items-center p-5 justify-between group-first:rounded-t-lg',\n color: {\n primary:\n 'text-primary-900 dark:text-primary-50 border-primary-200 dark:border-primary-700 bg-primary-100 hover:bg-primary-100 dark:bg-primary-800 dark:hover:bg-primary-800',\n light:\n 'text-gray-900 dark:text-gray-50 border-gray-200 dark:border-gray-700 bg-gray-100 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-800',\n blue: 'text-blue-900 dark:text-blue-50 border-blue-200 dark:border-blue-700 bg-blue-100 hover:bg-blue-100 dark:bg-blue-800 dark:hover:bg-blue-800',\n red: 'text-red-900 dark:text-red-50 border-red-200 dark:border-red-700 bg-red-100 hover:bg-red-100 dark:bg-red-800 dark:hover:bg-red-800',\n green:\n 'text-green-900 dark:text-green-50 border-green-200 dark:border-green-700 bg-green-100 hover:bg-green-100 dark:bg-green-800 dark:hover:bg-green-800',\n yellow:\n 'text-yellow-900 dark:text-yellow-50 border-yellow-200 dark:border-yellow-700 bg-yellow-100 hover:bg-yellow-100 dark:bg-yellow-800 dark:hover:bg-yellow-800',\n },\n isFlush: {\n enabled: 'border-b bg-transparent hover:bg-transparent',\n disabled: '',\n },\n isOpen: {\n enabled: '',\n disabled: 'bg-transparent dark:bg-transparent text-gray-500 ',\n },\n },\n text: {\n base: 'font-semibold text-base',\n },\n});\n\nexport interface AccordionTitleClass extends FlowbiteClass {\n textClass: string;\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ButtonClass, ButtonProperties, ButtonTheme } from './button.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BUTTON_THEME_TOKEN = new InjectionToken<ButtonTheme>('FLOWBITE_BUTTON_THEME_TOKEN');\n\nexport class ButtonThemeService implements FlowbiteThemeService<ButtonProperties> {\n private readonly baseTheme = inject(FLOWBITE_BUTTON_THEME_TOKEN);\n\n public getClasses(properties: ButtonProperties): ButtonClass {\n const theme: ButtonTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ButtonClass = {\n rootClass: twMerge(\n properties.gradientDuoTone && properties.fill == 'outline'\n ? theme.root.base['span']\n : `${theme.root.base['default']} ${theme.root.size[properties.size]}`,\n properties.gradientDuoTone\n ? theme.root.gradientDuoTone[properties.gradientDuoTone][properties.fill]\n : properties.gradientMonochrome\n ? theme.root.gradientMonochrome[properties.gradientMonochrome]\n : theme.root.color[properties.color][properties.fill],\n theme.root.isPill[properties.isPill],\n theme.root.isDisabled[properties.isDisabled],\n ),\n spanClass: twMerge(theme.span.base, theme.span.isPill[properties.isPill], theme.span.size[properties.size]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type {\n ButtonClass,\n ButtonColors,\n ButtonDuoToneColors,\n ButtonFill,\n ButtonMonochromeColors,\n ButtonSizes,\n ButtonTheme,\n} from './button.theme';\nimport { ButtonThemeService } from './button.theme.service';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/buttons/\n */\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet],\n selector: 'flowbite-button',\n template: `\n <span\n *ngIf=\"gradientDuoTone() && fill() === 'outline'; else default\"\n [ngClass]=\"contentClasses().spanClass\">\n <ng-container *ngTemplateOutlet=\"contentOutlet\"></ng-container>\n </span>\n\n <ng-template #default>\n <ng-container *ngTemplateOutlet=\"contentOutlet\"></ng-container>\n </ng-template>\n\n <ng-template #contentOutlet>\n <ng-content />\n </ng-template>\n `,\n host: {\n '[attr.type]': 'button',\n },\n})\nexport class ButtonComponent extends BaseComponent<ButtonClass> {\n public readonly themeService = inject(ButtonThemeService);\n\n //#region properties\n public color = model<keyof ButtonColors>('primary');\n public size = model<keyof ButtonSizes>('md');\n public isPill = model<boolean>(false);\n public fill = model<keyof ButtonFill>('solid');\n public isDisabled = model<boolean>(false);\n public gradientMonochrome = model<keyof ButtonMonochromeColors | undefined>(undefined);\n public gradientDuoTone = model<keyof ButtonDuoToneColors | undefined>(undefined);\n public customStyle = model<DeepPartial<ButtonTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ButtonClass {\n return this.themeService.getClasses({\n color: this.color(),\n isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),\n fill: this.fill(),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n size: this.size(),\n gradientMonochrome: this.gradientMonochrome(),\n gradientDuoTone: this.gradientDuoTone(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services/flowbite.theme.service';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { AlertClass, AlertProperties, AlertTheme } from './alert.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_ALERT_THEME_TOKEN = new InjectionToken<AlertTheme>('FLOWBITE_ALERT_THEME_TOKEN');\n\nexport class AlertThemeService implements FlowbiteThemeService<AlertProperties> {\n private readonly baseTheme = inject(FLOWBITE_ALERT_THEME_TOKEN);\n\n public getClasses(properties: AlertProperties): AlertClass {\n const theme: AlertTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AlertClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.hasBorder[properties.hasBorder],\n theme.root.hasBorderAccent[properties.hasBorderAccent],\n ),\n closeButtonClass: twMerge(theme.closeButton.base, theme.closeButton.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { CLOSE_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { AlertClass, AlertColors, AlertTheme } from './alert.theme';\nimport { AlertThemeService } from './alert.theme.service';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit, TemplateRef } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent, ButtonComponent],\n selector: 'flowbite-alert',\n template: `\n <div class=\"flex items-center\">\n <ng-container [ngTemplateOutlet]=\"icon()\"></ng-container>\n <div>\n <ng-content />\n </div>\n <button\n type=\"button\"\n [ngClass]=\"contentClasses()!.closeButtonClass\"\n *ngIf=\"isDismissable()\"\n aria-label=\"Close\"\n (click)=\"onDismissClick()\">\n <span class=\"sr-only\">Close</span>\n <flowbite-icon\n svgIcon=\"flowbite-angular:close\"\n class=\"h-5 w-5\" />\n </button>\n </div>\n <ng-container [ngTemplateOutlet]=\"additionalContent()\"></ng-container>\n `,\n host: {\n '[attr.role]': 'alert',\n },\n})\nexport class AlertComponent extends BaseComponent<AlertClass> implements OnInit {\n public readonly themeService = inject(AlertThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof AlertColors>('primary');\n public hasBorder = model<boolean>(false);\n public hasBorderAccent = model<boolean>(false);\n public customStyle = model<DeepPartial<AlertTheme>>({});\n public icon = model<TemplateRef<unknown> | null>(null);\n public additionalContent = model<TemplateRef<unknown> | null>(null);\n public isDismissable = model<boolean>(false);\n public onDismiss = model<() => void | undefined>();\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AlertClass {\n return this.themeService.getClasses({\n color: this.color(),\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n hasBorderAccent: booleanToFlowbiteBoolean(this.hasBorderAccent()),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'close',\n this.domSanitizer.bypassSecurityTrustHtml(CLOSE_SVG_ICON),\n );\n }\n //#endregion\n\n public onDismissClick() {\n const func = this.onDismiss();\n\n if (func) func();\n }\n}\n","import type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport type AlertColors = Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'>;\n//#endregion\n\nexport interface AlertProperties {\n color: keyof AlertColors;\n hasBorder: keyof FlowbiteBoolean;\n hasBorderAccent: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AlertTheme>;\n}\n\nexport interface AlertTheme {\n root: {\n base: string;\n color: AlertColors;\n hasBorder: FlowbiteBoolean;\n hasBorderAccent: FlowbiteBoolean;\n };\n closeButton: {\n base: string;\n color: AlertColors;\n };\n}\n\nexport const alertTheme: AlertTheme = createTheme({\n root: {\n base: 'flex flex-col gap-2 p-4 text-sm rounded-lg',\n color: {\n primary:\n 'text-primary-800 dark:text-primary-400 bg-primary-50 dark:bg-gray-800 border-primary-300 dark:border-primary-800',\n dark: 'text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-800 border-gray-300 dark:border-gray-600',\n blue: 'text-blue-800 dark:text-blue-400 bg-blue-50 dark:bg-gray-800 border-blue-300 dark:border-blue-800',\n red: 'text-red-800 dark:text-red-400 bg-red-100 dark:bg-gray-800 border-red-300 dark:border-red-800',\n green: 'text-green-800 dark:text-green-400 bg-green-100 dark:bg-gray-800 border-green-300 dark:border-green-800',\n yellow:\n 'text-yellow-800 dark:text-yellow-300 bg-yellow-100 dark:bg-gray-800 border-yellow-300 dark:border-yellow-800',\n },\n hasBorder: {\n enabled: 'border',\n disabled: 'border-0',\n },\n hasBorderAccent: {\n enabled: 'border-t-4',\n disabled: '',\n },\n },\n closeButton: {\n base: '-mx-1.5 -my-1.5 ml-auto inline-flex h-8 w-8 rounded-lg p-1.5 focus:ring-2',\n color: {\n primary: 'text-primary-500 dark:text-primary-600 hover:bg-primary-200 dark:hover:bg-primary-300',\n dark: 'text-gray-500 dark:text-gray-600 hover:bg-gray-200 dark:hover:bg-gray-300',\n blue: 'text-blue-500 dark:text-blue-600 hover:bg-blue-200 dark:hover:bg-blue-300',\n red: 'text-red-500 dark:text-red-600 hover:bg-red-200 dark:hover:bg-red-300',\n green: 'text-green-500 dark:text-green-600 hover:bg-green-200 dark:hover:bg-green-300',\n yellow: 'text-yellow-500 dark:text-yellow-600 hover:bg-yellow-200 dark:hover:bg-yellow-300',\n },\n },\n});\n\nexport interface AlertClass extends FlowbiteClass {\n closeButtonClass: string;\n}\n","import routerLinkInputs from '../utils/directives/inputs/router-link.inputs';\nimport routerLinkOutputs from '../utils/directives/outputs/router-link.output';\n\nimport { Directive, inject, model } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\n\n/**\n * Wrapping directive over RouterLink.\n *\n * @see `RouterLink`\n */\n@Directive({\n standalone: true,\n selector: '[flowbiteRouterLink]',\n host: {\n '(click)': 'onClick()',\n },\n hostDirectives: [\n {\n directive: RouterLink,\n inputs: routerLinkInputs,\n outputs: routerLinkOutputs,\n },\n ],\n})\nexport class FlowbiteRouterLinkDirective {\n public readonly router = inject(Router);\n public readonly routerLink = inject(RouterLink);\n\n public href = model<string>();\n\n onClick() {\n const hrefValue = this.href();\n\n if (hrefValue) {\n this.router.navigateByUrl(hrefValue);\n }\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { BadgeClass, BadgeProperties, BadgeTheme } from './badge.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BADGE_THEME_TOKEN = new InjectionToken<BadgeTheme>('FLOWBITE_BADGE_THEME_TOKEN');\n\nexport class BadgeThemeService implements FlowbiteThemeService<BadgeProperties> {\n private readonly baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);\n\n public getClasses(properties: BadgeProperties): BadgeClass {\n const theme: BadgeTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BadgeClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.size[properties.size],\n theme.root.isPill[\n properties.isPill == 'enabled' || properties.isIconOnly == 'enabled' ? 'enabled' : properties.isPill\n ],\n theme.root.isIconOnly[properties.isIconOnly],\n theme.root.link[properties.link ? 'enabled' : 'disabled'],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { FlowbiteRouterLinkDirective } from '../../directives/flowbite-router-link.directive';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type { BadgeClass, BadgeColors, BadgeSizes, BadgeTheme } from './badge.theme';\nimport { BadgeThemeService } from './badge.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/badge/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-badge',\n template: `<ng-content />`,\n})\nexport class BadgeComponent extends BaseComponent<BadgeClass> {\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly themeService = inject(BadgeThemeService);\n\n //#region properties\n public color = model<keyof BadgeColors>('primary');\n public size = model<keyof BadgeSizes>('xs');\n public isIconOnly = model<boolean>(false);\n public isPill = model<boolean>(false);\n public customStyle = model<DeepPartial<BadgeTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BadgeClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport type { RouterLinkParameter } from '../../common/type-definitions/flowbite.router-link-parameter';\nimport type { FlowbiteSizes } from '../../common/type-definitions/flowbite.sizes';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface BadgeColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink'\n > {\n [key: string]: string;\n}\n\nexport interface BadgeSizes extends Pick<FlowbiteSizes, 'xs' | 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface BadgeProperties {\n color: keyof BadgeColors;\n size: keyof BadgeSizes;\n isIconOnly: keyof FlowbiteBoolean;\n isPill: keyof FlowbiteBoolean;\n link: RouterLinkParameter;\n customStyle: DeepPartial<BadgeTheme>;\n}\n\nexport interface BadgeTheme {\n root: {\n base: string;\n color: BadgeColors;\n size: BadgeSizes;\n isPill: FlowbiteBoolean;\n isIconOnly: FlowbiteBoolean;\n link: FlowbiteBoolean;\n };\n}\n\nexport const badgeTheme: BadgeTheme = createTheme({\n root: {\n base: 'flex h-fit items-center gap-1 font-semibold',\n color: {\n primary:\n 'bg-primary-100 dark:bg-primary-700 text-primary-800 dark:text-primary-300 group-hover:bg-primary-200 dark:group-hover:bg-primary-600',\n dark: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 group-hover:bg-gray-200 dark:group-hover:bg-gray-600',\n blue: 'bg-blue-100 dark:bg-blue-200 text-blue-800 dark:text-blue-800 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',\n red: 'bg-red-100 dark:bg-red-200 text-red-800 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',\n green:\n 'bg-green-100 dark:bg-green-200 text-green-800 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',\n yellow:\n 'bg-yellow-100 dark:bg-yellow-200 text-yellow-800 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',\n indigo:\n 'bg-indigo-100 dark:bg-indigo-200 text-indigo-800 dark:text-indigo-900 group-hover:bg-indigo-200 dark:group-hover:bg-indigo-300',\n purple:\n 'bg-purple-100 dark:bg-purple-200 text-purple-800 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',\n pink: 'bg-pink-100 dark:bg-pink-200 text-pink-800 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',\n },\n size: {\n xs: 'text-xs p-1',\n sm: 'text-sm p-1.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded',\n },\n link: {\n enabled: 'group cursor-pointer',\n disabled: '',\n },\n isIconOnly: {\n enabled: '',\n disabled: 'px-2 py-0.5',\n },\n },\n});\n\nexport type BadgeClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { BreadcrumbItemClass, BreadcrumbItemProperties, BreadcrumbItemTheme } from './breadcrumb-item.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken<BreadcrumbItemTheme>(\n 'FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN',\n);\n\nexport class BreadcrumbItemThemeService implements FlowbiteThemeService<BreadcrumbItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbItemProperties): BreadcrumbItemClass {\n const theme: BreadcrumbItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n breadcrumbIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { FlowbiteRouterLinkDirective } from '../../directives/flowbite-router-link.directive';\nimport { CHEVRON_RIGHT_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { BreadcrumbItemClass, BreadcrumbItemTheme } from './breadcrumb-item.theme';\nimport { BreadcrumbItemThemeService } from './breadcrumb-item.theme.service';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent],\n selector: 'flowbite-breadcrumb-item',\n template: `\n <flowbite-icon\n [ngClass]=\"contentClasses().breadcrumbIconClass\"\n svgIcon=\"flowbite-angular:chevron-right\" />\n <ng-content />\n `,\n})\nexport class BreadcrumbItemComponent extends BaseComponent<BreadcrumbItemClass> implements OnInit {\n public readonly themeService = inject(BreadcrumbItemThemeService);\n public readonly breadcrumbComponent = inject(BreadcrumbComponent);\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>(this.breadcrumbComponent.color());\n public customStyle = model<DeepPartial<BreadcrumbItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbItemClass {\n return this.themeService.getClasses({\n color: this.color(),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-right',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_RIGHT_SVG_ICON),\n );\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { BreadcrumbClass, BreadcrumbProperties, BreadcrumbTheme } from './breadcrumb.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BREADCRUMB_THEME_TOKEN = new InjectionToken<BreadcrumbTheme>('FLOWBITE_BREADCRUMB_THEME_TOKEN');\n\nexport class BreadcrumbThemeService implements FlowbiteThemeService<BreadcrumbProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbProperties): BreadcrumbClass {\n const theme: BreadcrumbTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport type { BreadcrumbClass, BreadcrumbColors, BreadcrumbTheme } from './breadcrumb.theme';\nimport { BreadcrumbThemeService } from './breadcrumb.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport { Component, contentChildren, inject, model } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/breadcrumb/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-breadcrumb',\n template: `<ng-content />`,\n host: {\n '[attr.aria-label]': 'breadcrumb',\n },\n})\nexport class BreadcrumbComponent extends BaseComponent<BreadcrumbClass> {\n public readonly themeService = inject(BreadcrumbThemeService);\n public readonly breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>('primary');\n public customStyle = model<DeepPartial<BreadcrumbTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.breadcrumbItemChildren().length === 0) {\n throw new Error('No BreadcrumbItemComponent available');\n }\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteColors } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface BreadcrumbColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n\nexport interface BreadcrumbProperties {\n customStyle: DeepPartial<BreadcrumbTheme>;\n}\n\nexport interface BreadcrumbTheme {\n root: {\n base: string;\n };\n}\n\nexport const breadcrumbTheme: BreadcrumbTheme = createTheme({\n root: {\n base: 'flex items-center',\n },\n});\n\nexport type BreadcrumbClass = FlowbiteClass;\n","import type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { UrlTree } from '@angular/router';\n\nexport interface BreadcrumbItemProperties {\n color: keyof BreadcrumbColors;\n link: UrlTree | null;\n customStyle: DeepPartial<BreadcrumbItemTheme>;\n}\n\nexport interface BreadcrumbItemTheme {\n root: {\n base: string;\n color: BreadcrumbColors;\n };\n icon: {\n base: string;\n };\n}\n\nexport const breadcrumbItemTheme: BreadcrumbItemTheme = createTheme({\n root: {\n base: 'group flex items-center text-sm font-medium cursor-pointer',\n color: {\n primary: 'text-primary-700 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-500',\n dark: 'text-gray-700 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',\n blue: 'text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-500',\n red: 'text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-500',\n green: 'text-green-700 dark:text-green-400 hover:text-green-900 dark:hover:text-green-500',\n yellow: 'text-yellow-700 dark:text-yellow-400 hover:text-yellow-900 dark:hover:text-yellow-500',\n },\n },\n icon: {\n base: 'mx-1 h-6 w-6 md:mx-2 group-first:hidden',\n },\n});\n\nexport interface BreadcrumbItemClass extends FlowbiteClass {\n breadcrumbIconClass: string;\n}\n","import type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteGradientColors } from '../../common/type-definitions/colors/flowbite.gradient-colors';\nimport type { FlowbiteGradientDuoToneColors } from '../../common/type-definitions/colors/flowbite.gradient-duo-tone-colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { Combination } from '../../common/type-definitions/flowbite.combination';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport type { FlowbiteSizes } from '../../common/type-definitions/flowbite.sizes';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface ButtonColors\n extends Pick<FlowbiteColors, 'dark' | 'primary' | 'light' | 'blue' | 'red' | 'green' | 'yellow' | 'purple'> {\n [key: string]: string;\n}\n\nexport interface ButtonMonochromeColors\n extends Pick<FlowbiteGradientColors, 'blue' | 'green' | 'cyan' | 'teal' | 'lime' | 'red' | 'pink' | 'purple'> {\n [key: string]: string;\n}\n\nexport type ButtonDuoToneColors = Pick<\n FlowbiteGradientDuoToneColors,\n 'purpleToBlue' | 'cyanToBlue' | 'greenToBlue' | 'purpleToPink' | 'pinkToOrange' | 'tealToLime' | 'redToYellow'\n>;\n\nexport interface ButtonSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface ButtonFill {\n solid: string;\n outline: string;\n}\n\nexport interface ButtonTypes {\n default: string;\n span: string;\n}\n//#endregion\n\nexport interface ButtonProperties {\n color: keyof ButtonColors;\n gradientMonochrome?: keyof ButtonMonochromeColors;\n gradientDuoTone?: keyof ButtonDuoToneColors;\n size: keyof ButtonSizes;\n isPill: keyof FlowbiteBoolean;\n fill: keyof ButtonFill;\n isDisabled: keyof FlowbiteBoolean;\n customStyle: DeepPartial<ButtonTheme>;\n}\n\nexport interface ButtonTheme {\n root: {\n base: ButtonTypes;\n color: Combination<keyof ButtonColors, keyof ButtonFill, string>;\n gradientMonochrome: ButtonMonochromeColors;\n gradientDuoTone: Combination<keyof ButtonDuoToneColors, keyof ButtonFill, string>;\n size: ButtonSizes;\n isPill: FlowbiteBoolean;\n isDisabled: FlowbiteBoolean;\n };\n span: {\n base: string;\n isPill: FlowbiteBoolean;\n size: ButtonSizes;\n };\n}\n\nexport const buttonTheme: ButtonTheme = createTheme({\n root: {\n base: {\n default:\n 'cursor-pointer group flex h-min w-fit items-center justify-center p-0.5 text-center font-medium focus:z-10',\n span: 'cursor-pointer group inline-flex relative items-center justify-center p-0.5 font-medium overflow-hidden',\n },\n color: {\n dark: {\n solid:\n 'text-white bg-gray-800 dark:bg-gray-800 border border-transparent dark:border-gray-700 hover:bg-gray-900 dark:hover:bg-gray-700 focus:ring-4 focus:ring-gray-300 dark:focus:ring-gray-800 disabled:hover:bg-gray-800 dark:disabled:hover:bg-gray-800',\n outline:\n 'text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 dark:border-gray-600 dark:text-gray-400 dark:hover:text-white focus:ring-4 focus:outline-none focus:ring-gray-300 dark:hover:bg-gray-600 dark:focus:ring-gray-800',\n },\n primary: {\n solid:\n 'text-white bg-primary-700 border border-transparent hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-700 dark:hover:bg-primary-800 dark:focus:ring-primary-900',\n outline:\n 'text-primary-700 hover:text-white border border-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 dark:border-primary-500 dark:text-primary-500 dark:hover:text-white dark:hover:bg-primary-600 dark:focus:ring-primary-900',\n },\n red: {\n solid:\n 'text-white bg-red-700 border border-transparent hover:bg-red-800 focus:ring-4 focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900',\n outline:\n 'text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900',\n },\n blue: {\n solid:\n 'text-white bg-blue-700 border border-transparent hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800',\n outline:\n 'text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800',\n },\n light: {\n solid:\n 'text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 dark:bg-gray-600 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-700',\n outline:\n 'text-gray-900 bg-transparent border border-gray-200 hover:bg-white focus:ring-4 focus:ring-blue-300 dark:bg-transparent dark:text-white dark:border-white dark:hover:text-gray-900 dark:hover:bg-white dark:hover:border-gray-700 dark:focus:ring-gray-700',\n },\n purple: {\n solid:\n 'text-white bg-purple-700 border border-transparent hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-900',\n outline:\n 'text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-4 focus:outline-none focus:ring-purple-300 dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900',\n },\n green: {\n solid:\n 'text-white bg-green-700 border border-transparent hover:bg-green-800 focus:ring-4 focus:ring-green-300 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800',\n outline:\n 'text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-4 focus:outline-none focus:ring-green-300 dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800',\n },\n yellow: {\n solid:\n 'text-white bg-yellow-400 border border-transparent hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 dark:focus:ring-yellow-900',\n outline:\n 'text-yellow-400 hover:text-white border border-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:outline-none focus:ring-yellow-300 dark:border-yellow-300 dark:text-yellow-300 dark:hover:text-white dark:hover:bg-yellow-400 dark:focus:ring-yellow-900',\n },\n },\n isDisabled: {\n enabled: 'cursor-not-allowed opacity-50',\n disabled: '',\n },\n gradientMonochrome: {\n cyan: 'text-white bg-gradient-to-r from-cyan-400 via-cyan-500 to-cyan-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-cyan-300 dark:focus:ring-cyan-800',\n red: 'text-white bg-gradient-to-r from-red-400 via-red-500 to-red-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-red-300 dark:focus:ring-red-800',\n blue: 'text-white bg-gradient-to-r from-blue-500 via-blue-600 to-blue-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800',\n lime: 'text-gray-900 bg-gradient-to-r from-lime-200 via-lime-400 to-lime-500 hover:bg-gradient-to-br focus:ring-4 focus:ring-lime-300 dark:focus:ring-lime-800',\n pink: 'text-white bg-gradient-to-r from-pink-400 via-pink-500 to-pink-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-pink-300 dark:focus:ring-pink-800',\n purple:\n 'text-white bg-gradient-to-r from-purple-500 via-purple-600 to-purple-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-purple-300 dark:focus:ring-purple-800',\n green:\n 'text-white bg-gradient-to-r from-green-400 via-green-500 to-green-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-green-300 dark:focus:ring-green-800',\n teal: 'text-white bg-gradient-to-r from-teal-400 via-teal-500 to-teal-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-teal-300 dark:focus:ring-teal-800',\n },\n gradientDuoTone: {\n purpleToBlue: {\n solid:\n 'text-white bg-gradient-to-br from-purple-600 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',\n },\n cyanToBlue: {\n solid:\n 'text-white bg-gradient-to-r from-cyan-500 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-cyan-300 dark:focus:ring-cyan-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-cyan-500 to-blue-500 group-hover:from-cyan-500 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-cyan-200 dark:focus:ring-cyan-800',\n },\n greenToBlue: {\n solid:\n 'text-white bg-gradient-to-br from-green-400 to-blue-600 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-green-400 to-blue-600 group-hover:from-green-400 group-hover:to-blue-600 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',\n },\n purpleToPink: {\n solid:\n 'text-white bg-gradient-to-r from-purple-500 to-pink-500 hover:bg-gradient-to-l focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-purple-500 to-pink-500 group-hover:from-purple-500 group-hover:to-pink-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',\n },\n pinkToOrange: {\n solid:\n 'text-white bg-gradient-to-br from-pink-500 to-orange-400 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-pink-500 to-orange-400 group-hover:from-pink-500 group-hover:to-orange-400 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',\n },\n tealToLime: {\n solid:\n 'text-gray-900 bg-gradient-to-r from-teal-200 to-lime-200 hover:bg-gradient-to-l hover:from-teal-200 hover:to-lime-200 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-teal-700',\n outline:\n 'text-gray-900 bg-gradient-to-br from-teal-300 to-lime-300 group-hover:from-teal-300 group-hover:to-lime-300 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-lime-800',\n },\n redToYellow: {\n solid:\n 'text-gray-900 bg-gradient-to-r from-red-200 via-red-300 to-yellow-200 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',\n outline:\n 'text-gray-900 bg-gradient-to-br from-red-200 via-red-300 to-yellow-200 group-hover:from-red-200 group-hover:via-red-300 group-hover:to-yellow-200 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',\n },\n },\n size: {\n xs: 'text-xs py-2 px-3',\n sm: 'text-sm py-2 px-3',\n md: 'text-sm px-5 py-2.5',\n lg: 'text-base py-3 px-5',\n xl: 'text-base px-6 py-3.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded-lg',\n },\n },\n span: {\n base: 'cursor-pointer relative inline-flex items-center bg-white transition-all duration-75 ease-in group-hover:bg-opacity-0 dark:bg-gray-900',\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded-md',\n },\n size: {\n xs: 'text-xs py-2 px-3',\n sm: 'text-sm py-2 px-3',\n md: 'text-sm px-5 py-2.5',\n lg: 'text-base py-3 px-5',\n xl: 'text-base px-6 py-3.5',\n },\n },\n});\n\nexport interface ButtonClass extends FlowbiteClass {\n spanClass: string;\n}\n","import type { Signal } from '@angular/core';\nimport { computed, Injectable, signal } from '@angular/core';\n\n/**\n * Signal based store service used in several flowbite-angular components.\n *\n * @usageNotes\n * You can't use SignalStoreService as it is, you must inherite another class from it with its generic type T.\n *\n * @example\n * export class ComponentStateService extends SignalStoreService<{isOpen: boolean;}> {}\n */\nexport abstract class SignalStoreService<T> {\n private _state = signal({} as T);\n\n /**\n * Accessor for the data.\n */\n public get state(): Signal<T> {\n return this._state.asReadonly();\n }\n\n /**\n * Get the value for the provided key.\n *\n * @param key Keyof T type.\n * @returns The value for the provided key.\n */\n public select<K extends keyof T>(key: K): Signal<T[K]> {\n return computed(() => this._state()[key]);\n }\n\n /**\n * Set the value for the provided key.\n *\n * @param key Keyof T type.\n * @param data Data for the key.\n */\n public set<K extends keyof T>(key: K, data: T[K]) {\n this._state.update((currentValue) => ({ ...currentValue, [key]: data }));\n }\n\n /**\n * Set the value for the entire type.\n *\n * @param state The value to be set.\n */\n public setState(state: T) {\n this._state.set(state);\n }\n}\n\n/**\n * @usageNotes\n * You can use SignalStoreService as it isSince it is provided in 'root'.\n */\n@Injectable({ providedIn: 'root' })\nexport abstract class GlobalSignalStoreService<T> extends SignalStoreService<T> {}\n","import type { FlowbiteClass } from '../common/type-definitions/flowbite.class';\n\nimport { Injectable } from '@angular/core';\n\n/**\n * Provide an abstract class used in themeing system of flowbite-angular.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class FlowbiteThemeService<TProperties> {\n public abstract getClasses(properties: TProperties): FlowbiteClass;\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { DarkThemeToggleClass, DarkThemeToggleProperties, DarkThemeToggleTheme } from './dark-theme-toggle.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN = new InjectionToken<DarkThemeToggleTheme>(\n 'FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN',\n);\n\nexport class DarkThemeToggleThemeService implements FlowbiteThemeService<DarkThemeToggleProperties> {\n private readonly baseTheme = inject(FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN);\n\n public getClasses(properties: DarkThemeToggleProperties): DarkThemeToggleClass {\n const theme: DarkThemeToggleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DarkThemeToggleClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { GlobalSignalStoreService } from '../../services';\nimport type { ThemeState } from '../../services/state/theme.state';\nimport { MOON_SVG_ICON, SUN_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { DarkThemeToggleClass, DarkThemeToggleTheme } from './dark-theme-toggle.theme';\nimport { DarkThemeToggleThemeService } from './dark-theme-toggle.theme.service';\n\nimport { NgClass, NgIf } from '@angular/common';\nimport { afterNextRender, Component, effect, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, IconComponent],\n selector: 'flowbite-dark-theme-toggle',\n template: `\n <flowbite-icon\n svgIcon=\"flowbite-angular:moon\"\n class=\"h-5 w-5 block dark:hidden\" />\n <flowbite-icon\n svgIcon=\"flowbite-angular:sun\"\n class=\"h-5 w-5 hidden dark:block\" />\n `,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class DarkThemeToggleComponent extends BaseComponent<DarkThemeToggleClass> {\n public readonly themeService = inject(DarkThemeToggleThemeService);\n public readonly themeStateService = inject<GlobalSignalStoreService<ThemeState>>(\n GlobalSignalStoreService<ThemeState>,\n );\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public customStyle = model<DeepPartial<DarkThemeToggleTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DarkThemeToggleClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n afterNextRender(\n () => {\n const localStorageTheme = localStorage.getItem('color-theme');\n\n if (\n localStorageTheme === 'dark' ||\n (!localStorageTheme && window.matchMedia('(prefers-color-scheme: dark)').matches)\n ) {\n this.themeStateService.set('theme', 'dark');\n document.documentElement.classList.add('dark');\n } else {\n this.themeStateService.set('theme', 'light');\n document.documentElement.classList.remove('dark');\n }\n\n effect(\n () => {\n const theme = this.themeStateService.select('theme')();\n\n localStorage.setItem('color-theme', theme);\n theme === 'dark'\n ? document.documentElement.classList.add('dark')\n : document.documentElement.classList.remove('dark');\n },\n { injector: this.injector },\n );\n },\n { injector: this.injector },\n );\n\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'sun',\n this.domSanitizer.bypassSecurityTrustHtml(SUN_SVG_ICON),\n );\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'moon',\n this.domSanitizer.bypassSecurityTrustHtml(MOON_SVG_ICON),\n );\n }\n //#endregion\n\n public onClick() {\n if (this.themeStateService.select('theme')() === 'light') this.themeStateService.set('theme', 'dark');\n else this.themeStateService.set('theme', 'light');\n }\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface DarkThemeToggleProperties {\n customStyle: DeepPartial<DarkThemeToggleTheme>;\n}\n\nexport interface DarkThemeToggleTheme {\n root: {\n base: string;\n };\n}\nexport const darkThemeToggleTheme: DarkThemeToggleTheme = createTheme({\n root: {\n base: 'cursor-pointer rounded-lg p-2.5 text-sm text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-700',\n },\n});\n\nexport type DarkThemeToggleClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { DropdownDividerClass, DropdownDividerProperties, DropdownDividerTheme } from './dropdown-divider.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DROPDOWN_DIVIDER_THEME_TOKEN = new InjectionToken<DropdownDividerTheme>(\n 'FLOWBITE_DROPDOWN_DIVIDER_THEME_TOKEN',\n);\n\nexport class DropdownDividerThemeService implements FlowbiteThemeService<DropdownDividerProperties> {\n private readonly baseTheme = inject(FLOWBITE_DROPDOWN_DIVIDER_THEME_TOKEN);\n\n public getClasses(properties: DropdownDividerProperties): DropdownDividerClass {\n const theme: DropdownDividerTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DropdownDividerClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import { BaseComponent } from '../base-component.directive';\nimport type { DropdownDividerClass, DropdownDividerTheme } from './dropdown-divider.theme';\nimport { DropdownDividerThemeService } from './dropdown-divider.theme.service';\nimport { DropdownComponent } from './dropdown.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-dropdown-divider',\n template: ``,\n})\nexport class DropdownDividerComponent extends BaseComponent<DropdownDividerClass> {\n public readonly themeService = inject(DropdownDividerThemeService);\n public readonly dropdownComponent = inject(DropdownComponent);\n\n //#region properties\n public customStyle = model<Partial<DropdownDividerTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DropdownDividerClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { DropdownHeaderClass, DropdownHeaderProperties, DropdownHeaderTheme } from './dropdown-header.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DROPDOWN_HEADER_THEME_TOKEN = new InjectionToken<DropdownHeaderTheme>(\n 'FLOWBITE_DROPDOWN_HEADER_THEME_TOKEN',\n);\n\nexport class DropdownHeaderThemeService implements FlowbiteThemeService<DropdownHeaderProperties> {\n private readonly baseTheme = inject(FLOWBITE_DROPDOWN_HEADER_THEME_TOKEN);\n\n public getClasses(properties: DropdownHeaderProperties): DropdownHeaderClass {\n const theme: DropdownHeaderTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DropdownHeaderClass = {\n rootClass: twMerge(theme.root.base),\n root: twMerge(theme.content.base),\n };\n\n return output;\n }\n}\n","import { BaseComponent } from '../base-component.directive';\nimport type { DropdownHeaderClass, DropdownHeaderTheme } from './dropdown-header.theme';\nimport { DropdownHeaderThemeService } from './dropdown-header.theme.service';\nimport { DropdownComponent } from './dropdown.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-dropdown-header',\n template: `\n <div [ngClass]=\"contentClasses().root\">\n <ng-content />\n </div>\n <div class=\"my-1 h-px bg-gray-100 dark:bg-gray-600\"></div>\n `,\n})\nexport class DropdownHeaderComponent extends BaseComponent<DropdownHeaderClass> {\n public readonly themeService = inject(DropdownHeaderThemeService);\n public readonly dropdownComponent = inject(DropdownComponent);\n\n //#region properties\n public customStyle = model<Partial<DropdownHeaderTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DropdownHeaderClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { DropdownItemClass, DropdownItemProperties, DropdownItemTheme } from './dropdown-item.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DROPDOWN_ITEM_THEME_TOKEN = new InjectionToken<DropdownItemTheme>(\n 'FLOWBITE_DROPDOWN_ITEM_THEME_TOKEN',\n);\n\nexport class DropdownItemThemeService implements FlowbiteThemeService<DropdownItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_DROPDOWN_ITEM_THEME_TOKEN);\n\n public getClasses(properties: DropdownItemProperties): DropdownItemClass {\n const theme: DropdownItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DropdownItemClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport type { DropdownItemClass, DropdownItemTheme } from './dropdown-item.theme';\nimport { DropdownItemThemeService } from './dropdown-item.theme.service';\nimport { DropdownComponent } from './dropdown.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-dropdown-item',\n template: `<ng-content />`,\n})\nexport class DropdownItemComponent extends BaseComponent<DropdownItemClass> {\n public readonly themeService = inject(DropdownItemThemeService);\n public readonly dropdownComponent = inject(DropdownComponent);\n\n //#region properties\n public customStyle = model<DeepPartial<DropdownItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DropdownItemClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { DropdownClass, DropdownProperties, DropdownTheme } from './dropdown.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DROPDOWN_THEME_TOKEN = new InjectionToken<DropdownTheme>('FLOWBITE_DROPDOWN_THEME_TOKEN');\n\nexport class DropdownThemeService implements FlowbiteThemeService<DropdownProperties> {\n private readonly baseTheme = inject(FLOWBITE_DROPDOWN_THEME_TOKEN);\n\n public getClasses(properties: DropdownProperties): DropdownClass {\n const theme: DropdownTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DropdownClass = {\n rootClass: twMerge(theme.root.base),\n dropdownClass: twMerge(theme.dropdown.base),\n spanClass: twMerge(theme.span.base),\n containerClass: twMerge(\n theme.container.base,\n theme.container.isOpen[properties.isOpen],\n theme.container.placement[properties.placement],\n ),\n contentClass: twMerge(theme.content.base),\n subContentClass: twMerge(theme.subContent.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { CHEVRON_DOWN_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { DropdownDividerComponent } from './dropdown-divider.component';\nimport { DropdownHeaderComponent } from './dropdown-header.component';\nimport { DropdownItemComponent } from './dropdown-item.component';\nimport type { DropdownClass, DropdownPositions, DropdownTheme } from './dropdown.theme';\nimport { DropdownThemeService } from './dropdown.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport type { AfterViewInit } from '@angular/core';\nimport { Component, contentChildren, ElementRef, inject, model, ViewChild } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport type { Placement } from '@floating-ui/dom';\nimport { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';\n\n/**\n * @see https://flowbite.com/docs/components/dropdowns/\n */\n@Component({\n standalone: true,\n imports: [NgClass, IconComponent],\n selector: 'flowbite-dropdown',\n template: `\n <button\n type=\"button\"\n [ngClass]=\"contentClasses().dropdownClass\"\n (click)=\"toggle()\"\n #button>\n <span [ngClass]=\"contentClasses().spanClass\">\n {{ label() }}\n <flowbite-icon\n svgIcon=\"flowbite-angular:chevron-down\"\n class=\"ml-2 h-4 w-4\" />\n </span>\n </button>\n <div\n [ngClass]=\"contentClasses().containerClass\"\n #dropdown\n [style.display]=\"isOpen() ? 'block' : 'none'\">\n <div [ngClass]=\"contentClasses().contentClass\">\n <ul [ngClass]=\"contentClasses().subContentClass\">\n <ng-content />\n </ul>\n </div>\n </div>\n `,\n host: {\n '(document:click)': 'clickout($event)',\n },\n})\nexport class DropdownComponent extends BaseComponent<DropdownClass> implements AfterViewInit {\n @ViewChild('dropdown') dropdown!: ElementRef;\n @ViewChild('button') button!: ElementRef;\n\n public readonly themeService = inject(DropdownThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n public readonly dropdownItemChildren = contentChildren(DropdownItemComponent);\n public readonly dropdownHeaderChildren = contentChildren(DropdownHeaderComponent);\n public readonly dropdownDividerChildren = contentChildren(DropdownDividerComponent);\n\n //#region properties\n public label = model('Dropdown');\n public isOpen = model<boolean>(false);\n public position = model<keyof DropdownPositions>('bottom-center');\n public customStyle = model<DeepPartial<DropdownTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DropdownClass {\n return this.themeService.getClasses({\n label: this.label(),\n isOpen: booleanToFlowbiteBoolean(this.isOpen()),\n placement: this.position(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-down',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_DOWN_SVG_ICON),\n );\n }\n\n public override verify(): void {\n if (this.dropdownItemChildren().length === 0) {\n throw new Error('No DropdownItemComponent available');\n }\n }\n //#endregion\n\n x = 0;\n y = 0;\n width = 0;\n\n toggle() {\n this.isOpen.set(!this.isOpen());\n }\n\n calculatePosition() {\n computePosition(this.button.nativeElement, this.dropdown.nativeElement, {\n placement: this.convertPosition(this.position()),\n middleware: [offset(8), flip(), shift()],\n }).then(({ x, y }: { x: number; y: number }) => {\n this.dropdown.nativeElement.style.left = x + 'px';\n this.dropdown.nativeElement.style.top = y + 'px';\n this.width = this.button.nativeElement.offsetWidth;\n });\n }\n\n ngAfterViewInit() {\n autoUpdate(this.button.nativeElement, this.dropdown.nativeElement, () => {\n if (!this.isOpen()) return;\n this.calculatePosition();\n });\n }\n\n // Onclick outside the dropdown, close it\n clickout(event: Event) {\n if (\n !this.dropdown.nativeElement.contains(event.target) &&\n this.isOpen() &&\n !this.button.nativeElement.contains(event.target)\n ) {\n this.isOpen.set(false);\n }\n }\n\n convertPosition(pos: keyof DropdownPositions): Placement {\n switch (pos) {\n case 'top-center':\n return 'top';\n case 'bottom-center':\n return 'bottom';\n case 'left-center':\n return 'left';\n case 'right-center':\n return 'right';\n }\n }\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { FlowbitePositions } from '../../common/type-definitions/flowbite.positions';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface DropdownPositions extends Pick<FlowbitePositions, 'bottom-center' | 'top-center'> {\n 'left-center': string;\n 'right-center': string;\n}\n//#endregion\n\nexport interface DropdownProperties {\n label: string;\n isOpen: keyof FlowbiteBoolean;\n placement: keyof DropdownPositions;\n customStyle: DeepPartial<DropdownTheme>;\n}\n\nexport interface DropdownTheme {\n root: {\n base: string;\n };\n dropdown: {\n base: string;\n };\n span: {\n base: string;\n };\n container: {\n base: string;\n isOpen: FlowbiteBoolean;\n placement: DropdownPositions;\n };\n content: {\n base: string;\n };\n subContent: {\n base: string;\n };\n}\n\nexport const dropdownTheme: DropdownTheme = createTheme({\n root: {\n base: '',\n },\n dropdown: {\n base: 'text-white bg-blue-700 border border-transparent hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 disabled:hover:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800 dark:disabled:hover:bg-blue-600 group flex h-min items-center justify-center p-0.5 text-center font-medium focus:z-10 rounded-lg',\n },\n span: {\n base: 'flex items-center rounded-md text-sm px-4 py-2',\n },\n container: {\n base: 'z-10 bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700 min-w-fit absolute',\n isOpen: {\n enabled: 'block',\n disabled: 'hidden',\n },\n placement: {\n 'top-center': '',\n 'bottom-center': '',\n 'left-center': '',\n 'right-center': '',\n },\n },\n content: {\n base: 'py-1 text-sm text-gray-700 dark:text-gray-200 shadow-md',\n },\n subContent: {\n base: 'py-1',\n },\n});\n\nexport interface DropdownClass extends FlowbiteClass {\n dropdownClass: string;\n spanClass: string;\n containerClass: string;\n contentClass: string;\n subContentClass: string;\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\n\nexport interface DropdownItemProperties {\n customStyle: DeepPartial<DropdownItemTheme>;\n}\n\nexport interface DropdownItemTheme {\n root: {\n base: string;\n };\n}\n\nexport const dropdownItemTheme: DropdownItemTheme = {\n root: {\n base: 'flex items-center justify-start py-2 px-4 text-sm text-gray-700 cursor-pointer hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white',\n },\n};\n\nexport type DropdownItemClass = FlowbiteClass;\n","import type { FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface DropdownDividerProperties {\n customStyle: Partial<DropdownDividerTheme>;\n}\n\nexport interface DropdownDividerTheme {\n root: {\n base: string;\n };\n}\n\nexport const dropdownDividerTheme: DropdownDividerTheme = createTheme({\n root: {\n base: 'block my-1 h-px bg-gray-100 dark:bg-gray-600',\n },\n});\n\nexport type DropdownDividerClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface DropdownHeaderProperties {\n customStyle: DeepPartial<DropdownHeaderTheme>;\n}\n\nexport interface DropdownHeaderTheme {\n root: {\n base: string;\n };\n content: {\n base: string;\n };\n}\n\nexport const dropdownHeaderTheme: DropdownHeaderTheme = createTheme({\n root: {\n base: '',\n },\n content: {\n base: 'block py-2 px-4 text-sm text-gray-700 dark:text-gray-200',\n },\n});\n\nexport interface DropdownHeaderClass extends FlowbiteClass {\n root: string;\n}\n","import type { DeepPartial, FlowbiteClass } from '../../../common';\nimport { createTheme } from '../../../utils/theme/create-theme';\n\nexport interface AddonDirectiveProperties {\n customStyle: DeepPartial<AddonDirectiveBaseTheme>;\n}\n\nexport interface AddonDirectiveBaseTheme {\n base: string;\n}\n\nexport const addonDirectiveTheme: AddonDirectiveBaseTheme = createTheme({\n base: 'inline-flex items-center px-3 text-sm text-gray-900 bg-gray-200 border border-r-0 border-gray-300 rounded-l-md dark:bg-gray-600 dark:text-gray-400 dark:border-gray-600',\n});\n\nexport type AddonDirectiveClass = FlowbiteClass;\n\nexport const addonDirectiveClassInstance: AddonDirectiveClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../../services';\nimport { mergeTheme } from '../../../utils/theme/merge-theme';\nimport type { AddonDirectiveBaseTheme, AddonDirectiveClass, AddonDirectiveProperties } from './addon.directive.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DIRECTIVE_ADDON_THEME_TOKEN = new InjectionToken<AddonDirectiveBaseTheme>(\n 'FLOWBITE_DIRECTIVE_ADDON_THEME_TOKEN',\n);\n\nexport class AddonDirectiveThemeService implements FlowbiteThemeService<AddonDirectiveProperties> {\n private readonly baseTheme = inject(FLOWBITE_DIRECTIVE_ADDON_THEME_TOKEN);\n\n public getClasses(properties: AddonDirectiveProperties): AddonDirectiveClass {\n const theme: AddonDirectiveBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AddonDirectiveClass = {\n rootClass: twMerge(theme.base),\n };\n\n return output;\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { FormFieldBaseTheme, FormFieldClass, FormFieldProperties } from './form-field.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_FORM_FIELD_THEME_TOKEN = new InjectionToken<FormFieldBaseTheme>(\n 'FLOWBITE_FORM_FIELD_THEME_TOKEN',\n);\n\nexport class FormFieldThemeService implements FlowbiteThemeService<FormFieldProperties> {\n private readonly baseTheme = inject(FLOWBITE_FORM_FIELD_THEME_TOKEN);\n\n public getClasses(properties: FormFieldProperties): FormFieldClass {\n const theme: FormFieldBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: FormFieldClass = {\n rootClass: twMerge(theme.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type * as properties from './form-field.theme';\nimport { FormFieldThemeService } from './form-field.theme.service';\n\nimport { AsyncPipe, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, AsyncPipe, NgTemplateOutlet],\n selector: 'flowbite-form-field',\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent extends BaseComponent<properties.FormFieldClass> implements OnInit {\n public readonly themeService = inject(FormFieldThemeService);\n\n //#region properties\n public type = model<keyof properties.FormFieldTypes>('text');\n public size = model<keyof properties.FormFieldSizes>('md');\n public isDisabled = model<boolean>(false);\n public validate = model<keyof properties.FormFieldValidations | undefined>(undefined);\n public floatingLabelType = model<keyof properties.FormFieldFloatingLabelTypes | undefined>(undefined);\n public prefix = model<keyof properties.FormFieldPrefixes | undefined>(undefined);\n public customStyle = model<DeepPartial<properties.FormFieldBaseTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): properties.FormFieldClass {\n return this.themeService.getClasses({\n type: this.type(),\n floatingLabelType: this.floatingLabelType(),\n size: this.size(),\n disabled: booleanToFlowbiteBoolean(this.isDisabled()),\n validate: this.validate(),\n prefix: this.prefix(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","<ng-container *ngIf=\"floatingLabelType(); else nonFloatingTemplate\">\n <div\n [ngClass]=\"{\n relative: floatingLabelType(),\n 'z-0': floatingLabelType() === 'standard',\n }\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"hintTemplate\"></ng-container>\n</ng-container>\n<ng-template #nonFloatingTemplate>\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngIf=\"prefix(); else inputTemplate\">\n <ng-container *ngIf=\"prefix() === 'icon'; else inputWithAddon\">\n <div class=\"relative\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"hintTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #inputWithAddon>\n <div class=\"flex\">\n <ng-container *ngTemplateOutlet=\"addonTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content select=\"input[flowbiteInput]\"></ng-content>\n</ng-template>\n<ng-template #labelTemplate>\n <ng-content select=\"label[flowbiteLabel]\"></ng-content>\n</ng-template>\n<ng-template #hintTemplate>\n <ng-content select=\"[flowbiteHelper]\"></ng-content>\n</ng-template>\n<ng-template #iconTemplate>\n <ng-content select=\"[flowbiteIcon]\"></ng-content>\n</ng-template>\n<ng-template #addonTemplate>\n <ng-content select=\"[flowbiteAddon]\"></ng-content>\n</ng-template>\n","import type { FlowbiteClass } from '../../../common';\nimport { FormFieldComponent } from '../form-field.component';\n\nimport type { OnInit } from '@angular/core';\nimport { Directive, effect, inject, Injector, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { '[class]': 'contentClasses()?.rootClass' },\n})\nexport abstract class BaseInputDirective implements OnInit {\n protected contentClasses = signal<FlowbiteClass>({ rootClass: '' });\n\n protected readonly injector = inject(Injector);\n protected readonly formFieldComponent: FormFieldComponent = inject(FormFieldComponent);\n\n ngOnInit(): void {\n effect(\n () => {\n this.fetchClass();\n },\n { injector: this.injector, allowSignalWrites: true },\n );\n }\n\n abstract fetchClass(): void;\n}\n","import type { DeepPartial } from '../../../common';\nimport * as properties from './addon.directive.theme';\nimport { AddonDirectiveThemeService } from './addon.directive.theme.service';\nimport { BaseInputDirective } from './base-input.directive';\n\nimport { Directive, inject, input, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[flowbiteAddon]',\n})\nexport class AddonDirective extends BaseInputDirective {\n protected override contentClasses = signal<properties.AddonDirectiveClass>(properties.addonDirectiveClassInstance);\n\n protected readonly themeService = inject(AddonDirectiveThemeService);\n\n //#region properties\n public customStyle = input<DeepPartial<properties.AddonDirectiveBaseTheme>>({});\n //#endregion\n\n //#region BaseInputDirective implementation\n override fetchClass(): void {\n const propertyClass = this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n\n this.contentClasses.set(propertyClass);\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass } from '../../../common';\nimport { createTheme } from '../../../utils/theme/create-theme';\nimport type { FormFieldValidations } from '../form-field.theme';\n\nexport interface HelperDirectiveProperties {\n validate?: keyof FormFieldValidations;\n customStyle: DeepPartial<HelperDirectiveBaseTheme>;\n}\n\nexport interface HelperDirectiveBaseTheme {\n base: string;\n validation: FormFieldValidations;\n}\n\nexport const helperDirectiveTheme: HelperDirectiveBaseTheme = createTheme({\n base: 'mt-2 text-xs text-gray-500 dark:text-gray-400',\n validation: {\n success: 'text-green-600 dark:text-green-400',\n error: 'text-red-600 dark:text-red-400',\n },\n});\n\nexport type HelperDirectiveClass = FlowbiteClass;\n\nexport const helperDirectiveClassInstance: HelperDirectiveClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../../services';\nimport { mergeTheme } from '../../../utils/theme/merge-theme';\nimport type {\n HelperDirectiveBaseTheme,\n HelperDirectiveClass,\n HelperDirectiveProperties,\n} from './helper.directive.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DIRECTIVE_HELPER_THEME_TOKEN = new InjectionToken<HelperDirectiveBaseTheme>(\n 'FLOWBITE_DIRECTIVE_HELPER_THEME_TOKEN',\n);\n\nexport class HelperDirectiveThemeService implements FlowbiteThemeService<HelperDirectiveProperties> {\n private readonly baseTheme = inject(FLOWBITE_DIRECTIVE_HELPER_THEME_TOKEN);\n\n public getClasses(properties: HelperDirectiveProperties): HelperDirectiveClass {\n const theme: HelperDirectiveBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: HelperDirectiveClass = {\n rootClass: twMerge(theme.base, properties.validate && theme.validation[properties.validate]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial, FlowbiteClass } from '../../../common';\nimport { BaseInputDirective } from './base-input.directive';\nimport * as properties from './helper.directive.theme';\nimport { HelperDirectiveThemeService } from './helper.directive.theme.service';\n\nimport { Directive, inject, input, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[flowbiteHelper]',\n})\nexport class HelperDirective extends BaseInputDirective {\n protected override contentClasses = signal<properties.HelperDirectiveClass>(properties.helperDirectiveClassInstance);\n\n protected readonly themeService = inject(HelperDirectiveThemeService);\n\n //#region properties\n public customStyle = input<DeepPartial<properties.HelperDirectiveBaseTheme>>({});\n //#endregion\n\n //#region BaseInputDirective implementation\n override fetchClass(): FlowbiteClass {\n const propertyClass = this.themeService.getClasses({\n validate: this.formFieldComponent.validate(),\n customStyle: this.customStyle(),\n });\n\n this.contentClasses.set(propertyClass);\n\n return { rootClass: '' };\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass } from '../../../common';\nimport { createTheme } from '../../../utils/theme/create-theme';\n\nexport interface IconDirectiveProperties {\n customStyle: DeepPartial<IconDirectiveBaseTheme>;\n}\n\nexport interface IconDirectiveBaseTheme {\n base: string;\n}\n\nexport const iconDirectiveTheme: IconDirectiveBaseTheme = createTheme({\n base: 'w-5 h-5 text-gray-500 dark:text-gray-400',\n});\n\nexport type IconDirectiveClass = FlowbiteClass;\n\nexport const iconDirectiveClassInstance: IconDirectiveClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../../services';\nimport { mergeTheme } from '../../../utils/theme/merge-theme';\nimport type { IconDirectiveBaseTheme, IconDirectiveClass, IconDirectiveProperties } from './icon.directive.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DIRECTIVE_ICON_THEME_TOKEN = new InjectionToken<IconDirectiveBaseTheme>(\n 'FLOWBITE_DIRECTIVE_ICON_THEME_TOKEN',\n);\n\nexport class IconDirectiveThemeService implements FlowbiteThemeService<IconDirectiveProperties> {\n private readonly baseTheme = inject(FLOWBITE_DIRECTIVE_ICON_THEME_TOKEN);\n\n public getClasses(properties: IconDirectiveProperties): IconDirectiveClass {\n const theme: IconDirectiveBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: IconDirectiveClass = {\n rootClass: twMerge(theme.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../../common';\nimport { BaseInputDirective } from './base-input.directive';\nimport * as properties from './icon.directive.theme';\nimport { IconDirectiveThemeService } from './icon.directive.theme.service';\n\nimport { Directive, inject, input, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[flowbiteIcon]',\n})\nexport class IconDirective extends BaseInputDirective {\n protected override contentClasses = signal<properties.IconDirectiveClass>(properties.iconDirectiveClassInstance);\n\n protected readonly themeService = inject(IconDirectiveThemeService);\n\n //#region properties\n public customStyle = input<DeepPartial<properties.IconDirectiveBaseTheme>>({});\n //#endregion\n\n //#region BaseInputDirective implementation\n override fetchClass(): void {\n const propertyClass = this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n\n this.contentClasses.set(propertyClass);\n }\n //#endregion\n}\n","import type { DeepPartial } from '../../../common';\nimport type { FlowbiteBoolean } from '../../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../../utils/theme/create-theme';\nimport type {\n FormFieldFloatingLabelTypes,\n FormFieldPrefixes,\n FormFieldSizes,\n FormFieldValidations,\n} from '../form-field.theme';\n\nexport interface InputDirectiveProperties {\n size: keyof FormFieldSizes;\n disabled: keyof FlowbiteBoolean;\n validate?: keyof FormFieldValidations;\n floatingLabelType?: keyof FormFieldFloatingLabelTypes;\n prefix?: keyof FormFieldPrefixes;\n customStyle: DeepPartial<InputDirectiveBaseTheme>;\n}\n\nexport interface InputDirectiveBaseTheme {\n base: string;\n default: string;\n size: FormFieldSizes;\n disabled: FlowbiteBoolean;\n validation: FormFieldValidations;\n prefix?: FormFieldPrefixes;\n floatingLabel: Record<keyof FormFieldFloatingLabelTypes, Omit<InputDirectiveBaseTheme, 'floatingLabel'>>;\n}\n\nexport const inputDirectiveTheme: InputDirectiveBaseTheme = createTheme({\n base: 'border rounded-lg block w-full focus:outline-none',\n default:\n 'focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-blue-500 dark:focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white',\n disabled: {\n enabled:\n 'cursor-not-allowed bg-gray-100 border-gray-300 text-gray-900 dark:text-gray-400 dark:bg-gray-700 dark:border-gray-600 dark:focus:ring-blue-500 dark:focus:border-blue-500 dark:placeholder-gray-400',\n disabled: '',\n },\n prefix: {\n addon: 'rounded-none rounded-r-lg flex-1 min-w-0',\n icon: 'pl-10',\n },\n size: {\n sm: 'text-xs p-2',\n md: 'text-sm p-2.5',\n lg: 'text-md p-4',\n },\n validation: {\n success:\n 'text-gray-900 border-green-600 dark:text-white dark:border-green-500 dark:focus:border-green-500 focus:border-green-600 bg-green-50 dark:bg-gray-700',\n error:\n 'text-gray-900 border-red-600 dark:text-white dark:border-red-500 dark:focus:border-red-500 focus:border-red-600 bg-red-50 dark:bg-gray-700',\n },\n floatingLabel: {\n standard: {\n base: 'block w-full text-sm bg-transparent border-0 border-b-2 appearance-none focus:outline-none focus:ring-0 peer',\n default:\n 'text-gray-900 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: {\n enabled:\n 'text-gray-900 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: '',\n },\n size: {\n sm: 'py-2 px-0',\n md: 'py-2.5 px-0',\n lg: '',\n },\n validation: {\n success:\n 'text-gray-900 border-green-600 dark:text-white dark:border-green-500 dark:focus:border-green-500 focus:border-green-600',\n error:\n 'text-gray-900 border-red-600 dark:text-white dark:border-red-500 dark:focus:border-red-500 focus:border-red-600',\n },\n },\n outline: {\n base: 'block w-full text-sm bg-transparent rounded-lg border-2 appearance-none focus:outline-none focus:ring-0 peer',\n default:\n 'text-gray-900 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: {\n enabled:\n 'text-gray-900 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: '',\n },\n size: {\n sm: 'px-2.5 pb-1.5 pt-3',\n md: 'px-2.5 pb-2.5 pt-4',\n lg: '',\n },\n validation: {\n success:\n 'text-gray-900 border-green-600 dark:text-white dark:border-green-500 dark:focus:border-green-500 focus:border-green-600',\n error:\n 'text-gray-900 border-red-600 dark:text-white dark:border-red-500 dark:focus:border-red-500 focus:border-red-600',\n },\n },\n fill: {\n base: 'block rounded-t-lg w-full text-sm border-0 border-b-2 appearance-none focus:outline-none focus:ring-0 peer',\n default:\n 'text-gray-900 bg-gray-50 dark:bg-gray-700 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: {\n enabled:\n 'text-gray-900 bg-gray-50 dark:bg-gray-700 border-gray-300 dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:border-blue-600',\n disabled: '',\n },\n size: {\n sm: 'px-2.5 pb-1.5 pt-4',\n md: 'px-2.5 pb-2.5 pt-5',\n lg: '',\n },\n validation: {\n success:\n 'text-gray-900 bg-gray-50 dark:bg-gray-700 border-green-600 dark:border-green-500 dark:text-white dark:focus:border-green-500 focus:border-green-600',\n error:\n 'text-gray-900 bg-gray-50 dark:bg-gray-700 dark:text-white dark:border-red-500 border-red-600 focus:border-red-600 dark:focus-border-red-500',\n },\n },\n },\n});\n\nexport type InputDirectiveClass = FlowbiteClass;\n\nexport const inputDirectiveClassInstance: InputDirectiveClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../../services';\nimport { mergeTheme } from '../../../utils/theme/merge-theme';\nimport type { InputDirectiveBaseTheme, InputDirectiveClass, InputDirectiveProperties } from './input.directive.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DIRECTIVE_INPUT_THEME_TOKEN = new InjectionToken<InputDirectiveBaseTheme>(\n 'FLOWBITE_DIRECTIVE_INPUT_THEME_TOKEN',\n);\n\nexport class InputDirectiveThemeService implements FlowbiteThemeService<InputDirectiveProperties> {\n private readonly baseTheme = inject(FLOWBITE_DIRECTIVE_INPUT_THEME_TOKEN);\n\n public getClasses(properties: InputDirectiveProperties): InputDirectiveClass {\n const theme: InputDirectiveBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: InputDirectiveClass = {\n rootClass: twMerge(\n properties.floatingLabelType && theme.floatingLabel[properties.floatingLabelType].base,\n properties.floatingLabelType &&\n properties.validate &&\n theme.floatingLabel[properties.floatingLabelType].validation[properties.validate],\n properties.floatingLabelType &&\n !properties.validate &&\n theme.floatingLabel[properties.floatingLabelType].disabled[properties.disabled],\n properties.floatingLabelType &&\n !properties.validate &&\n properties.disabled === 'disabled' &&\n theme.floatingLabel[properties.floatingLabelType].default,\n properties.floatingLabelType && theme.floatingLabel[properties.floatingLabelType].size[properties.size],\n\n !properties.floatingLabelType && theme.base,\n !properties.floatingLabelType && properties.validate && theme.validation[properties.validate],\n !properties.floatingLabelType && !properties.validate && theme.disabled[properties.disabled],\n !properties.floatingLabelType && !properties.validate && properties.disabled === 'disabled' && theme.default,\n !properties.floatingLabelType && properties.prefix && theme.prefix?.[properties.prefix],\n !properties.floatingLabelType && theme.size[properties.size],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../../common';\nimport { booleanToFlowbiteBoolean } from '../../../utils/boolean.util';\nimport { BaseInputDirective } from './base-input.directive';\nimport * as properties from './input.directive.theme';\nimport { InputDirectiveThemeService } from './input.directive.theme.service';\n\nimport { Directive, inject, input, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'input[flowbiteInput]',\n host: {\n '[attr.disabled]': 'formFieldComponent.isDisabled() || null',\n },\n})\nexport class InputDirective extends BaseInputDirective {\n protected override contentClasses = signal<properties.InputDirectiveClass>(properties.inputDirectiveClassInstance);\n\n protected readonly themeService = inject(InputDirectiveThemeService);\n\n //#region properties\n public customStyle = input<DeepPartial<properties.InputDirectiveBaseTheme>>({});\n //#endregion\n\n //#region BaseInputDirective implementation\n override fetchClass(): void {\n const propertyClass = this.themeService.getClasses({\n disabled: booleanToFlowbiteBoolean(this.formFieldComponent.isDisabled()),\n size: this.formFieldComponent.size(),\n validate: this.formFieldComponent.validate(),\n prefix: this.formFieldComponent.prefix(),\n floatingLabelType: this.formFieldComponent.floatingLabelType(),\n customStyle: this.customStyle(),\n });\n\n this.contentClasses.set(propertyClass);\n }\n //#endregion\n}\n","import type { DeepPartial } from '../../../common';\nimport type { FlowbiteBoolean } from '../../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../../utils/theme/create-theme';\nimport type { FormFieldFloatingLabelTypes, FormFieldValidations } from '../form-field.theme';\n\nexport interface LabelDirectiveProperties {\n disabled: keyof FlowbiteBoolean;\n validate?: keyof FormFieldValidations;\n floatingLabelType?: keyof FormFieldFloatingLabelTypes;\n customStyle: DeepPartial<LabelDirectiveBaseTheme>;\n}\n\nexport interface LabelDirectiveBaseTheme {\n base: string;\n default: string;\n disabled?: FlowbiteBoolean;\n validation: FormFieldValidations;\n floatingLabel: Record<keyof FormFieldFloatingLabelTypes, Omit<LabelDirectiveBaseTheme, 'floatingLabel'>>;\n}\n\nexport const labelDirectiveTheme: LabelDirectiveBaseTheme = createTheme({\n base: 'block mb-2 text-sm font-medium',\n default: 'text-gray-900 dark:text-white',\n validation: {\n success: 'text-green-700 dark:text-green-500',\n error: 'text-red-700 dark:text-red-500',\n },\n floatingLabel: {\n standard: {\n base: 'absolute text-sm duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6',\n default: 'text-gray-500 dark:text-gray-400 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: {\n enabled: 'text-gray-400 dark:text-gray-500 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: '',\n },\n validation: {\n success: 'text-green-600 dark:text-green-500',\n error: 'text-red-600 dark:text-red-500',\n },\n },\n outline: {\n base: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] px-2 peer-focus:px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 left-1',\n default:\n 'text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-900 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: {\n enabled:\n 'text-gray-400 dark:text-gray-500 bg-white dark:bg-gray-900 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: '',\n },\n validation: {\n success: 'text-green-600 dark:text-green-500 bg-white dark:bg-gray-900',\n error: 'text-red-600 dark:text-red-500 bg-white dark:bg-gray-900',\n },\n },\n fill: {\n base: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] left-2.5 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4',\n default: 'text-gray-500 dark:text-gray-400 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: {\n enabled: 'text-gray-400 dark:text-gray-500 peer-focus:text-blue-600 peer-focus:dark:text-blue-500',\n disabled: '',\n },\n validation: {\n success: 'text-green-600 dark:text-green-500',\n error: 'text-red-600 dark:text-red-500',\n },\n },\n },\n});\n\nexport type LabelDirectiveClass = FlowbiteClass;\n\nexport const labelDirectiveClassInstance: LabelDirectiveClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../../services';\nimport { mergeTheme } from '../../../utils/theme/merge-theme';\nimport type { LabelDirectiveBaseTheme, LabelDirectiveClass, LabelDirectiveProperties } from './label.directive.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_DIRECTIVE_LABEL_THEME_TOKEN = new InjectionToken<LabelDirectiveBaseTheme>(\n 'FLOWBITE_DIRECTIVE_LABEL_THEME_TOKEN',\n);\n\nexport class LabelDirectiveThemeService implements FlowbiteThemeService<LabelDirectiveProperties> {\n private readonly baseTheme = inject(FLOWBITE_DIRECTIVE_LABEL_THEME_TOKEN);\n\n public getClasses(properties: LabelDirectiveProperties): LabelDirectiveClass {\n const theme: LabelDirectiveBaseTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: LabelDirectiveClass = {\n rootClass: twMerge(\n properties.floatingLabelType && theme.floatingLabel[properties.floatingLabelType].base,\n properties.floatingLabelType &&\n properties.validate &&\n theme.floatingLabel[properties.floatingLabelType].validation[properties.validate],\n properties.floatingLabelType &&\n !properties.validate &&\n theme.floatingLabel[properties.floatingLabelType].default,\n\n !properties.floatingLabelType && theme.base,\n !properties.floatingLabelType && properties.validate && theme.validation[properties.validate],\n !properties.floatingLabelType && !properties.validate && theme.default,\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../../common';\nimport { booleanToFlowbiteBoolean } from '../../../utils/boolean.util';\nimport { FormFieldComponent } from '../form-field.component';\nimport { BaseInputDirective } from './base-input.directive';\nimport * as properties from './label.directive.theme';\nimport { LabelDirectiveThemeService } from './label.directive.theme.service';\n\nimport { Directive, inject, input, signal } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'label[flowbiteLabel]',\n host: {\n '[attr.for]': 'for.flowbiteId()',\n },\n})\nexport class LabelDirective extends BaseInputDirective {\n protected override contentClasses = signal<properties.LabelDirectiveClass>(properties.labelDirectiveClassInstance);\n\n protected readonly themeService = inject(LabelDirectiveThemeService);\n protected readonly for = inject(FormFieldComponent);\n\n //#region properties\n public customStyle = input<DeepPartial<properties.LabelDirectiveBaseTheme>>({});\n //#endregion\n\n //#region BaseInputDirective implementation\n override fetchClass(): void {\n const propertyClass = this.themeService.getClasses({\n disabled: booleanToFlowbiteBoolean(this.formFieldComponent.isDisabled()),\n validate: this.formFieldComponent.validate(),\n floatingLabelType: this.formFieldComponent.floatingLabelType(),\n customStyle: this.customStyle(),\n });\n\n this.contentClasses.set(propertyClass);\n }\n //#endregion\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { FlowbiteSizes } from '../../common/type-definitions/flowbite.sizes';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface FormFieldTypes {\n email: string;\n password: string;\n file: string;\n number: string;\n search: string;\n tel: string;\n text: string;\n url: string;\n}\n\nexport interface FormFieldFloatingLabelTypes {\n standard: string;\n fill: string;\n outline: string;\n}\nexport interface FormFieldValidations {\n success: string;\n error: string;\n}\n\nexport interface FormFieldPrefixes {\n addon: string;\n icon: string;\n}\nexport interface FormFieldSizes extends Pick<FlowbiteSizes, 'sm' | 'md' | 'lg'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface FormFieldProperties {\n type: keyof FormFieldTypes;\n floatingLabelType?: keyof FormFieldFloatingLabelTypes;\n size: keyof FormFieldSizes;\n disabled: keyof FlowbiteBoolean;\n validate?: keyof FormFieldValidations;\n prefix?: keyof FormFieldPrefixes;\n customStyle: DeepPartial<FormFieldBaseTheme>;\n}\n\nexport interface FormFieldBaseTheme {\n base: string;\n}\n\nexport const formFieldTheme: FormFieldBaseTheme = createTheme({\n base: '',\n});\n\nexport type FormFieldClass = FlowbiteClass;\n\nexport const FormFieldClassInstance: FormFieldClass = {\n rootClass: '',\n};\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { indicatorClass, IndicatorProperties, IndicatorTheme } from './indicators.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_INDICATOR_THEME_TOKEN = new InjectionToken<IndicatorTheme>('FLOWBITE_INDICATOR_THEME_TOKEN');\n\nexport class IndicatorThemeService implements FlowbiteThemeService<IndicatorProperties> {\n private readonly baseTheme = inject(FLOWBITE_INDICATOR_THEME_TOKEN);\n\n public getClasses(properties: IndicatorProperties): indicatorClass {\n const theme: IndicatorTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: indicatorClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.hasBorder[properties.hasBorder],\n theme.root.color[properties.color],\n theme.root.isDisabled[properties.isDisabled],\n properties.placement && properties.hasOffset == 'enabled' && theme.root.hasOffset[properties.placement],\n theme.root.isOutline[properties.isOutline],\n theme.root.isPill[properties.isPill],\n properties.placement && 'absolute ' + theme.root.placement[properties.placement],\n theme.root.isRounded[properties.isRounded],\n theme.root.size[properties.size],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type {\n indicatorClass,\n IndicatorColors,\n IndicatorPositions,\n IndicatorSizes,\n IndicatorTheme,\n} from './indicators.theme';\nimport { IndicatorThemeService } from './indicators.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/indicators/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-indicator',\n template: `<ng-content />`,\n})\nexport class IndicatorComponent extends BaseComponent<indicatorClass> {\n public readonly themeService = inject(IndicatorThemeService);\n\n //#region properties\n public isPill = model<boolean>(false);\n public isOutline = model<boolean>(false);\n public isDisabled = model<boolean>(false);\n public hasOffset = model<boolean>(false);\n public isRounded = model<boolean>(false);\n public hasBorder = model<boolean>(false);\n public color = model<keyof IndicatorColors>('primary');\n public size = model<keyof IndicatorSizes>('md');\n public placement = model<keyof IndicatorPositions | undefined>(undefined);\n public customStyle = model<DeepPartial<IndicatorTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): indicatorClass {\n return this.themeService.getClasses({\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n color: this.color(),\n isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),\n hasOffset: booleanToFlowbiteBoolean(this.hasOffset()),\n isOutline: booleanToFlowbiteBoolean(this.isOutline()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n isRounded: booleanToFlowbiteBoolean(this.isRounded()),\n size: this.size(),\n placement: this.placement(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { FlowbitePositions } from '../../common/type-definitions/flowbite.positions';\nimport type { FlowbiteSizes } from '../../common/type-definitions/flowbite.sizes';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface IndicatorColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'gray' | 'blue' | 'green' | 'red' | 'purple' | 'indigo' | 'yellow' | 'teal'\n > {\n [key: string]: string;\n}\n\nexport interface IndicatorSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface IndicatorPositions\n extends Pick<\n FlowbitePositions,\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'center-left'\n | 'center'\n | 'center-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n > {\n [key: string]: string;\n}\n//#endregion\n\nexport interface IndicatorProperties {\n isPill: keyof FlowbiteBoolean;\n isOutline: keyof FlowbiteBoolean;\n isDisabled: keyof FlowbiteBoolean;\n hasOffset: keyof FlowbiteBoolean;\n isRounded: keyof FlowbiteBoolean;\n hasBorder: keyof FlowbiteBoolean;\n color: keyof IndicatorColors;\n size: keyof IndicatorSizes;\n placement?: keyof IndicatorPositions;\n customStyle: DeepPartial<IndicatorTheme>;\n}\n\nexport interface IndicatorTheme {\n root: {\n base: string;\n isPill: FlowbiteBoolean;\n isOutline: FlowbiteBoolean;\n isDisabled: FlowbiteBoolean;\n hasOffset: IndicatorPositions;\n isRounded: FlowbiteBoolean;\n hasBorder: FlowbiteBoolean;\n color: IndicatorColors;\n size: IndicatorSizes;\n placement: IndicatorPositions;\n };\n}\n\nexport const indicatorTheme: IndicatorTheme = createTheme({\n root: {\n base: 'inline-flex items-center justify-center shrink-0 font-bold',\n hasBorder: {\n enabled: 'border-2',\n disabled: '',\n },\n color: {\n dark: 'bg-gray-900 dark:bg-gray-700 border-white dark:border-gray-800 text-white',\n primary: 'bg-primary-500 border-white dark:border-gray-800 text-white',\n gray: 'bg-gray-200 border-white dark:border-gray-800 text-gray-900',\n blue: 'bg-blue-600 border-white dark:border-gray-800 text-white',\n green: 'bg-green-500 border-white dark:border-gray-800 text-white',\n red: 'bg-red-500 border-white dark:border-gray-800 text-white',\n purple: 'bg-purple-500 border-white dark:border-gray-800 text-white',\n indigo: 'bg-indigo-500 border-white dark:border-gray-800 text-white',\n yellow: 'bg-yellow-300 border-white dark:border-gray-800 text-gray-900',\n teal: 'bg-teal-500 border-white dark:border-gray-800 text-white',\n },\n isDisabled: {\n enabled: 'opacity-50',\n disabled: '',\n },\n hasOffset: {\n 'top-left': '-translate-x-1/3 -translate-y-1/3',\n 'top-center': '-translate-y-1/3',\n 'top-right': 'translate-x-1/3 -translate-y-1/3',\n 'center-left': '-translate-x-1/3',\n center: '',\n 'center-right': 'translate-x-1/3',\n 'bottom-left': '-translate-x-1/3 translate-y-1/3',\n 'bottom-center': 'translate-y-1/3',\n 'bottom-right': 'translate-x-1/3 translate-y-1/3',\n },\n placement: {\n 'top-left': 'top-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'top-right': 'top-0 right-0',\n 'center-left': 'top-1/2 -translate-y-1/2 left-0',\n center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',\n 'center-right': 'top-1/2 -translate-y-1/2 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-0 right-0',\n },\n isOutline: {\n enabled: '',\n disabled: '',\n },\n isPill: {\n enabled: '',\n disabled: '',\n },\n isRounded: {\n enabled: 'rounded',\n disabled: 'rounded-full',\n },\n size: {\n xs: 'w-2 h-2 text-xs',\n sm: 'w-2.5 h-2.5 text-sm',\n md: 'w-3 h-3 text-sm',\n lg: 'w-3.5 h-3.5 text-sm',\n xl: 'w-6 h-6 text-sm',\n },\n },\n});\n\nexport type indicatorClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ModalBodyClass, ModalBodyProperties, ModalBodyTheme } from './modal-body.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_MODAL_BODY_THEME_TOKEN = new InjectionToken<ModalBodyTheme>('FLOWBITE_MODAL_BODY_THEME_TOKEN');\n\nexport class ModalBodyThemeService implements FlowbiteThemeService<ModalBodyProperties> {\n private readonly baseTheme = inject(FLOWBITE_MODAL_BODY_THEME_TOKEN);\n\n public getClasses(properties: ModalBodyProperties): ModalBodyClass {\n const theme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ModalBodyClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport type { ModalBodyClass, ModalBodyTheme } from './modal-body.theme';\nimport { ModalBodyThemeService } from './modal-body.theme.service';\nimport { ModalComponent } from './modal.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-modal-body',\n template: `<ng-content />`,\n})\nexport class ModalBodyComponent extends BaseComponent<ModalBodyClass> {\n public readonly themeService = inject(ModalBodyThemeService);\n public readonly modalComponent = inject(ModalComponent);\n\n //#region properties\n public customStyle = model<DeepPartial<ModalBodyTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ModalBodyClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ModalFooterClass, ModalFooterProperties, ModalFooterTheme } from './modal-footer.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_MODAL_FOOTER_THEME_TOKEN = new InjectionToken<ModalFooterTheme>(\n 'FLOWBITE_MODAL_FOOTER_THEME_TOKEN',\n);\n\nexport class ModalFooterThemeService implements FlowbiteThemeService<ModalFooterProperties> {\n private readonly baseTheme = inject(FLOWBITE_MODAL_FOOTER_THEME_TOKEN);\n\n public getClasses(properties: ModalFooterProperties): ModalFooterClass {\n const theme: ModalFooterTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ModalFooterClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport type { ModalFooterClass, ModalFooterTheme } from './modal-footer.theme';\nimport { ModalFooterThemeService } from './modal-footer.theme.service';\nimport { ModalComponent } from './modal.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-modal-footer',\n template: `<ng-content />`,\n})\nexport class ModalFooterComponent extends BaseComponent<ModalFooterClass> {\n public readonly themeService = inject(ModalFooterThemeService);\n public readonly modalComponent = inject(ModalComponent);\n\n //#region properties\n public customStyle = model<DeepPartial<ModalFooterTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ModalFooterClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ModalHeaderClass, ModalHeaderProperties, ModalHeaderTheme } from './modal-header.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_MODAL_HEADER_THEME_TOKEN = new InjectionToken<ModalHeaderTheme>(\n 'FLOWBITE_MODAL_HEADER_THEME_TOKEN',\n);\n\nexport class ModalHeaderThemeService implements FlowbiteThemeService<ModalHeaderProperties> {\n private readonly baseTheme = inject(FLOWBITE_MODAL_HEADER_THEME_TOKEN);\n\n public getClasses(properties: ModalHeaderProperties): ModalHeaderClass {\n const theme: ModalHeaderTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ModalHeaderClass = {\n rootClass: twMerge(theme.root.base),\n modalHeaderTitleClass: twMerge(theme.title.base),\n modalHeaderButtonClass: twMerge(theme.button.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { CLOSE_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { ModalHeaderClass, ModalHeaderTheme } from './modal-header.theme';\nimport { ModalHeaderThemeService } from './modal-header.theme.service';\nimport { ModalComponent } from './modal.component';\n\nimport { NgClass } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgClass, IconComponent],\n selector: 'flowbite-modal-header',\n template: `\n <h3 [ngClass]=\"contentClasses().modalHeaderTitleClass\">\n <ng-content />\n </h3>\n <button\n type=\"button\"\n [ngClass]=\"contentClasses().modalHeaderButtonClass\"\n data-modal-hide=\"medium-modal\"\n (click)=\"modalComponent.close()\">\n <flowbite-icon\n svgIcon=\"flowbite-angular:close\"\n class=\"w-5 h-5\" />\n <span class=\"sr-only\">Close modal</span>\n </button>\n `,\n})\nexport class ModalHeaderComponent extends BaseComponent<ModalHeaderClass> implements OnInit {\n public readonly stateService = inject(ModalHeaderThemeService);\n public readonly modalComponent = inject(ModalComponent);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public customStyle = model<DeepPartial<ModalHeaderTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ModalHeaderClass {\n return this.stateService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'close',\n this.domSanitizer.bypassSecurityTrustHtml(CLOSE_SVG_ICON),\n );\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ModalClass, ModalProperties, ModalTheme } from './modal.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_MODAL_THEME_TOKEN = new InjectionToken<ModalTheme>('FLOWBITE_MODAL_THEME_TOKEN');\n\nexport class ModalThemeService implements FlowbiteThemeService<ModalProperties> {\n private readonly baseTheme = inject(FLOWBITE_MODAL_THEME_TOKEN);\n\n public getClasses(properties: ModalProperties): ModalClass {\n const theme: ModalTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ModalClass = {\n rootClass: twMerge(theme.root.base),\n modalWrapperClass: twMerge(theme.wrapper.base, theme.wrapper.position[properties.position]),\n modalContainerClass: twMerge(theme.container.base, theme.container.size[properties.size]),\n modalContentClass: twMerge(theme.content.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport { ModalBodyComponent } from './modal-body.component';\nimport { ModalFooterComponent } from './modal-footer.component';\nimport { ModalHeaderComponent } from './modal-header.component';\nimport type { ModalClass, ModalPositions, ModalSizes, ModalTheme } from './modal.theme';\nimport { ModalThemeService } from './modal.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport type { EmbeddedViewRef, OnDestroy } from '@angular/core';\nimport { Component, contentChild, inject, model, TemplateRef, viewChild, ViewContainerRef } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter, Subject, takeUntil } from 'rxjs';\n\n/**\n * @see https://flowbite.com/docs/components/modal/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-modal',\n template: `\n <ng-template #modal>\n <div class=\"bg-gray-900 bg-opacity-50 dark:bg-opacity-80 fixed inset-0 z-[99]\"></div>\n\n <div\n [ngClass]=\"contentClasses().modalWrapperClass\"\n (click)=\"onBackdropClick($event)\">\n <div [ngClass]=\"contentClasses().modalContainerClass\">\n <div [ngClass]=\"contentClasses().modalContentClass\">\n <ng-content />\n </div>\n </div>\n </div>\n </ng-template>\n `,\n host: {\n tabindex: '-1',\n '(document:keydown)': 'onKeydownHandler($event)',\n },\n})\nexport class ModalComponent extends BaseComponent<ModalClass> implements OnDestroy {\n private readonly destroyed = new Subject<void>();\n\n public readonly themeService = inject(ModalThemeService);\n public readonly modalHeaderChild = contentChild(ModalHeaderComponent);\n public readonly modalBodyChild = contentChild(ModalBodyComponent);\n public readonly modalFooterChild = contentChild(ModalFooterComponent);\n\n //#region template properties\n private readonly template = viewChild.required('modal', { read: TemplateRef });\n\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly router = inject(Router);\n\n private embeddedView?: EmbeddedViewRef<unknown>;\n //#endregion\n\n //#region properties\n public size = model<keyof ModalSizes>('md');\n public position = model<keyof ModalPositions>('center');\n public isDismissable = model<boolean>(false);\n public isOpen = model<boolean>(false);\n public customStyle = model<DeepPartial<ModalTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ModalClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.isOpen()),\n size: this.size(),\n position: this.position(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n // close modal if it's not destroyed on route change\n this.router.events\n .pipe(\n takeUntil(this.destroyed),\n filter(() => this.isOpen()),\n filter((event) => event instanceof NavigationStart),\n )\n .subscribe(() => this.close());\n }\n\n public override verify(): void {\n if (this.modalBodyChild() === undefined) {\n throw new Error('No ModalBodyComponent available');\n }\n }\n //#endregion\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n open() {\n this.isOpen.set(true);\n this.changeBackdrop();\n }\n\n close() {\n this.isOpen.set(false);\n this.changeBackdrop();\n }\n\n toggle() {\n this.isOpen.set(!this.isOpen());\n this.changeBackdrop();\n }\n\n // If isOpen changes, add or remove template\n changeBackdrop() {\n if (this.isOpen()) {\n this.createTemplate();\n } else {\n this.destroyTemplate();\n }\n }\n\n private createTemplate() {\n if (this.embeddedView) {\n this.destroyTemplate();\n }\n\n this.embeddedView = this.viewContainer.createEmbeddedView(this.template());\n }\n\n private destroyTemplate() {\n this.embeddedView?.destroy();\n }\n\n onKeydownHandler(event: KeyboardEvent) {\n console.log('hello');\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n onBackdropClick(event: MouseEvent) {\n if (event.target == event.currentTarget && this.isDismissable()) {\n this.close();\n }\n }\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport type { FlowbitePositions } from '../../common/type-definitions/flowbite.positions';\nimport type { FlowbiteSizes } from '../../common/type-definitions/flowbite.sizes';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface ModalSizes extends Pick<FlowbiteSizes, 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface ModalPositions\n extends Pick<\n FlowbitePositions,\n | 'center'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n | 'top-center'\n | 'bottom-center'\n | 'center-left'\n | 'center-right'\n > {\n [key: string]: string;\n}\n//#endregion\n\nexport interface ModalProperties {\n isOpen: keyof FlowbiteBoolean;\n size: keyof ModalSizes;\n position: keyof ModalPositions;\n customStyle: DeepPartial<ModalTheme>;\n}\n\nexport interface ModalTheme {\n root: {\n base: string;\n };\n wrapper: {\n base: string;\n position: ModalPositions;\n };\n container: {\n base: string;\n size: ModalSizes;\n };\n content: {\n base: string;\n };\n}\n\nexport const modalTheme: ModalTheme = createTheme({\n root: {\n base: '',\n },\n wrapper: {\n base: 'fixed top-0 left-0 right-0 z-[100] w-full p-4 overflow-x-hidden overflow-y-auto md:inset-0 h-[calc(100%-1rem)] md:h-full flex',\n position: {\n 'top-left': 'items-start justify-start',\n 'top-center': 'items-start justify-center',\n 'top-right': 'items-start justify-end',\n 'center-left': 'items-center justify-start',\n center: 'items-center justify-center',\n 'center-right': 'items-center justify-end',\n 'bottom-left': 'items-end justify-start',\n 'bottom-center': 'items-end justify-center',\n 'bottom-right': 'items-end justify-end',\n },\n },\n container: {\n base: 'relative w-full h-full md:h-auto',\n size: {\n sm: 'max-w-md',\n md: 'max-w-lg',\n lg: 'max-w-4xl',\n xl: 'max-w-7xl',\n },\n },\n content: {\n base: 'relative bg-white rounded-lg shadow dark:bg-gray-700',\n },\n});\n\nexport interface ModalClass extends FlowbiteClass {\n modalWrapperClass: string;\n modalContainerClass: string;\n modalContentClass: string;\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface ModalHeaderProperties {\n customStyle: DeepPartial<ModalHeaderTheme>;\n}\n\nexport interface ModalHeaderTheme {\n root: {\n base: string;\n };\n title: {\n base: string;\n };\n button: {\n base: string;\n };\n}\n\nexport const modalHeaderTheme: ModalHeaderTheme = createTheme({\n root: {\n base: 'flex items-center justify-between p-5 border-b rounded-t dark:border-gray-600',\n },\n title: {\n base: 'text-xl font-medium text-gray-900 dark:text-white',\n },\n button: {\n base: 'text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white',\n },\n});\n\nexport interface ModalHeaderClass extends FlowbiteClass {\n modalHeaderTitleClass: string;\n modalHeaderButtonClass: string;\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface ModalBodyProperties {\n customStyle: DeepPartial<ModalBodyTheme>;\n}\n\nexport interface ModalBodyTheme {\n root: {\n base: string;\n };\n}\n\nexport const modalBodyTheme: ModalBodyTheme = createTheme({\n root: {\n base: 'block p-6 space-y-6',\n },\n});\n\nexport type ModalBodyClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface ModalFooterProperties {\n customStyle: DeepPartial<ModalFooterTheme>;\n}\n\nexport interface ModalFooterTheme {\n root: {\n base: string;\n };\n}\n\nexport const modalFooterTheme: ModalFooterTheme = createTheme({\n root: {\n base: 'flex items-center p-6 space-x-2 border-t border-gray-200 rounded-b dark:border-gray-600',\n },\n});\n\nexport type ModalFooterClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { NavbarBrandClass, NavbarBrandProperties, NavbarBrandTheme } from './navbar-brand.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_BRAND_THEME_TOKEN = new InjectionToken<NavbarBrandTheme>(\n 'FLOWBITE_NAVBAR_BRAND_THEME_TOKEN',\n);\n\nexport class NavbarBrandThemeService implements FlowbiteThemeService<NavbarBrandProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_BRAND_THEME_TOKEN);\n\n public getClasses(properties: NavbarBrandProperties): NavbarBrandClass {\n const theme: NavbarBrandTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarBrandClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { BaseComponent } from '../base-component.directive';\nimport type { NavbarBrandClass, NavbarBrandTheme } from './navbar-brand.theme';\nimport { NavbarBrandThemeService } from './navbar-brand.theme.service';\nimport { NavbarComponent } from './navbar.component';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n selector: 'flowbite-navbar-brand',\n standalone: true,\n imports: [NgClass],\n template: `<ng-content />`,\n})\nexport class NavbarBrandComponent extends BaseComponent<NavbarBrandClass> {\n public readonly themeService = inject(NavbarBrandThemeService);\n public readonly navbarComponent = inject(NavbarComponent);\n\n //#region properties\n public customStyle = model<DeepPartial<NavbarBrandTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarBrandClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { NavbarContentClass, NavbarContentProperties, NavbarContentTheme } from './navbar-content.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN = new InjectionToken<NavbarContentTheme>(\n 'FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN',\n);\n\nexport class NavbarContentThemeService implements FlowbiteThemeService<NavbarContentProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN);\n\n public getClasses(properties: NavbarContentProperties): NavbarContentClass {\n const theme: NavbarContentTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarContentClass = {\n rootClass: twMerge(theme.root.base, theme.root.isOpen[properties.isOpen]),\n navbarContentListClass: twMerge(theme.list.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type { NavbarContentClass, NavbarContentTheme } from './navbar-content.theme';\nimport { NavbarContentThemeService } from './navbar-content.theme.service';\nimport { NavbarComponent } from './navbar.component';\nimport type { NavbarColors } from './navbar.theme';\n\nimport { NgClass } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n selector: 'flowbite-navbar-content',\n standalone: true,\n imports: [NgClass],\n template: `\n <div [ngClass]=\"contentClasses().navbarContentListClass\">\n <ng-content />\n </div>\n `,\n})\nexport class NavbarContentComponent extends BaseComponent<NavbarContentClass> implements OnInit {\n public readonly themeService = inject(NavbarContentThemeService);\n public readonly navbarComponent = model<NavbarComponent>(inject(NavbarComponent));\n\n //#region properties\n public color = model<keyof NavbarColors>(this.navbarComponent().color());\n public customStyle = model<DeepPartial<NavbarContentTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarContentClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.navbarComponent().isOpen()),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { NavbarToggleClass, NavbarToggleProperties, NavbarToggleTheme } from './navbar-toggle.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN = new InjectionToken<NavbarToggleTheme>(\n 'FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN',\n);\n\nexport class NavbarToggleThemeService implements FlowbiteThemeService<NavbarToggleProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN);\n\n public getClasses(properties: NavbarToggleProperties): NavbarToggleClass {\n const theme: NavbarToggleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarToggleClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BARS_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { NavbarToggleClass, NavbarToggleTheme } from './navbar-toggle.theme';\nimport { NavbarToggleThemeService } from './navbar-toggle.theme.service';\nimport { NavbarComponent } from './navbar.component';\n\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'flowbite-navbar-toggle',\n standalone: true,\n imports: [CommonModule, IconComponent],\n template: `\n <flowbite-icon\n svgIcon=\"flowbite-angular:bars\"\n class=\"w-5 h-5\" />\n `,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class NavbarToggleComponent extends BaseComponent<NavbarToggleClass> {\n public readonly themeService = inject(NavbarToggleThemeService);\n public readonly navbarComponent = model<NavbarComponent>(inject(NavbarComponent));\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public customStyle = model<DeepPartial<NavbarToggleTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarToggleClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'bars',\n this.domSanitizer.bypassSecurityTrustHtml(BARS_SVG_ICON),\n );\n }\n //#endregion\n\n public onClick(): void {\n const isCollapsed = this.navbarComponent().isOpen();\n\n this.navbarComponent().isOpen.set(!isCollapsed);\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { NavbarClass, NavbarProperties, NavbarTheme } from './navbar.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_THEME_TOKEN = new InjectionToken<NavbarTheme>('FLOWBITE_NAVBAR_THEME_TOKEN');\n\nexport class NavbarThemeService implements FlowbiteThemeService<NavbarProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_THEME_TOKEN);\n\n public getClasses(properties: NavbarProperties): NavbarClass {\n const theme: NavbarTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color['gray'],\n theme.root.isRounded[properties.isRounded],\n theme.root.hasBorder[properties.hasBorder],\n theme.root.isFixed[properties.isFixed],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport { NavbarBrandComponent } from './navbar-brand.component';\nimport { NavbarContentComponent } from './navbar-content.component';\nimport { NavbarToggleComponent } from './navbar-toggle.component';\nimport type { NavbarClass, NavbarColors, NavbarTheme } from './navbar.theme';\nimport { NavbarThemeService } from './navbar.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport { Component, contentChild, inject, model, untracked } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/navbar/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-navbar',\n template: `<ng-content />`,\n})\nexport class NavbarComponent extends BaseComponent<NavbarClass> {\n public readonly themeService = inject(NavbarThemeService);\n public readonly navbarBrandChild = contentChild(NavbarBrandComponent);\n public readonly navbarToggleChild = contentChild(NavbarToggleComponent);\n public readonly navbarContentChild = contentChild(NavbarContentComponent);\n\n //#region properties\n public color = model<keyof NavbarColors>('primary');\n public isOpen = model<boolean>(false);\n public isRounded = model<boolean>(false);\n public hasBorder = model<boolean>(false);\n public isFixed = model<boolean>(false);\n public customStyle = model<DeepPartial<NavbarTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarClass {\n return this.themeService.getClasses({\n hasBorder: booleanToFlowbiteBoolean(this.isRounded()),\n isRounded: booleanToFlowbiteBoolean(this.hasBorder()),\n isFixed: booleanToFlowbiteBoolean(this.isFixed()),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.navbarContentChild() === undefined) {\n throw new Error('No NavbarContentComponent available');\n }\n }\n //#endregion\n\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n this.isOpen.set(isOpen);\n }\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface NavbarColors extends Pick<FlowbiteColors, 'primary' | 'gray'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface NavbarProperties {\n isRounded: keyof FlowbiteBoolean;\n hasBorder: keyof FlowbiteBoolean;\n isFixed: keyof FlowbiteBoolean;\n customStyle: DeepPartial<NavbarTheme>;\n}\n\nexport interface NavbarTheme {\n root: {\n base: string;\n color: NavbarColors;\n isRounded: FlowbiteBoolean;\n hasBorder: FlowbiteBoolean;\n isFixed: FlowbiteBoolean;\n };\n}\n\nexport const navbarTheme: NavbarTheme = createTheme({\n root: {\n base: 'flex flex-wrap items-center justify-between p-4',\n color: {\n primary: 'bg-primary-200 dark:bg-primary-800 border-primary-200 dark:border-primary-700',\n gray: 'bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700',\n },\n isRounded: {\n enabled: 'rounded',\n disabled: '',\n },\n hasBorder: {\n enabled: 'border',\n disabled: '',\n },\n isFixed: {\n enabled: 'border-b',\n disabled: '',\n },\n },\n});\n\nexport type NavbarClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface NavbarBrandProperties {\n customStyle: DeepPartial<NavbarBrandTheme>;\n}\n\nexport interface NavbarBrandTheme {\n root: {\n base: string;\n };\n}\n\nexport const navbarBrandTheme: NavbarBrandTheme = createTheme({\n root: {\n base: 'cursor-pointer flex items-center space-x-3 rtl:space-x-reverse',\n },\n});\n\nexport type NavbarBrandClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface NavbarContentProperties {\n isOpen: keyof FlowbiteBoolean;\n customStyle: DeepPartial<NavbarContentTheme>;\n}\n\nexport interface NavbarContentTheme {\n root: {\n base: string;\n isOpen: FlowbiteBoolean;\n };\n list: {\n base: string;\n };\n}\n\nexport const navbarContentTheme: NavbarContentTheme = createTheme({\n root: {\n base: 'w-full md:block md:w-auto order-last md:order-none',\n isOpen: {\n enabled: '',\n disabled: 'hidden',\n },\n },\n list: {\n base: 'font-medium flex flex-col p-4 md:p-0 mt-4 items-center border border-gray-100 rounded-lg bg-gray-50 md:flex-row md:space-x-8 rtl:space-x-reverse md:mt-0 md:border-0 md:bg-white dark:bg-gray-900 md:dark:bg-gray-800 dark:border-gray-700',\n },\n});\n\nexport interface NavbarContentClass extends FlowbiteClass {\n navbarContentListClass: string;\n}\n","import routerLinkActiveInputs from '../utils/directives/inputs/router-link-active.input';\nimport routerLinkActiveOutputs from '../utils/directives/outputs/router-link-active.output';\n\nimport type { Signal } from '@angular/core';\nimport { Directive, inject, signal } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\n\n/**\n * Wrapping directive over RouterLinkActive.\n *\n * @usageNotes\n * It provides a clean way to have 'isActive' data with signal base value.\n *\n * @see `RouterLinkActive`\n */\n@Directive({\n standalone: true,\n selector: '[flowbiteRouterLinkActive]',\n host: {\n isActiveChange: 'onIsActiveChange',\n },\n hostDirectives: [\n {\n directive: RouterLinkActive,\n inputs: routerLinkActiveInputs,\n outputs: routerLinkActiveOutputs,\n },\n ],\n})\nexport class FlowbiteRouterLinkActiveDirective {\n private readonly ariaCurrentValue: boolean = true;\n\n public routerLinkActive = inject(RouterLinkActive);\n\n private _isActive = signal<boolean>(this.routerLinkActive.isActive);\n\n public get isActive(): Signal<boolean> {\n return this._isActive.asReadonly();\n }\n\n /**\n * Set the RouterLinkActive's ariaCurrentWhenActive to the value passed to the component (via this Directive).\n */\n constructor() {\n this.routerLinkActive.ariaCurrentWhenActive = this.ariaCurrentValue;\n }\n\n onIsActiveChange(): void {\n this._isActive.set(this.routerLinkActive.isActive);\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { NabvarItemProperties, NavbarItemClass, NavbarItemTheme } from './navbar-item.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_ITEM_THEME_TOKEN = new InjectionToken<NavbarItemTheme>('FLOWBITE_NAVBAR_ITEM_THEME_TOKEN');\n\nexport class NavbarItemThemeService implements FlowbiteThemeService<NabvarItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_ITEM_THEME_TOKEN);\n\n public getClasses(properties: NabvarItemProperties): NavbarItemClass {\n const theme: NavbarItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { FlowbiteRouterLinkActiveDirective } from '../../directives/flowbite-router-link-active.directive';\nimport { FlowbiteRouterLinkDirective } from '../../directives/flowbite-router-link.directive';\nimport { BaseComponent } from '../base-component.directive';\nimport { NavbarContentComponent } from './navbar-content.component';\nimport type { NavbarItemClass, NavbarItemTheme } from './navbar-item.theme';\nimport { NavbarItemThemeService } from './navbar-item.theme.service';\nimport type { NavbarColors } from './navbar.theme';\n\nimport { NgClass } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n selector: 'flowbite-navbar-item',\n standalone: true,\n imports: [NgClass],\n template: `<ng-content />`,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class NavbarItemComponent extends BaseComponent<NavbarItemClass> {\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly flowbiteRouterLinkActive = inject(FlowbiteRouterLinkActiveDirective, { optional: true });\n public readonly themeService = inject(NavbarItemThemeService);\n public readonly navbarContentComponent = inject(NavbarContentComponent);\n\n //#region properties\n public color = model<keyof NavbarColors>(this.navbarContentComponent.color());\n public customStyle = model<DeepPartial<NavbarItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarItemClass {\n return this.themeService.getClasses({\n color: this.color(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n\n public onClick(): void {\n this.navbarContentComponent.navbarComponent().toggleVisibility(false);\n }\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { NavbarColors } from './navbar.theme';\n\nexport interface NabvarItemProperties {\n color: keyof NavbarColors;\n customStyle: DeepPartial<NavbarItemTheme>;\n}\n\nexport interface NavbarItemTheme {\n root: {\n base: string;\n color: NavbarColors;\n };\n}\n\nexport const navbarItemTheme: NavbarItemTheme = createTheme({\n root: {\n base: 'cursor-pointer block py-2 px-3 rounded text-sm text-gray-900 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700 md:hover:bg-transparent md:border-0 md:p-0 md:dark:hover:bg-transparent',\n color: {\n primary:\n 'md:hover:text-primary-700 md:dark:hover:text-primary-500 aria-current:text-primary-500 dark:aria-current:text-primary-300',\n gray: 'md:hover:text-gray-700 md:dark:hover:text-gray-500 aria-current:text-gray-500 dark:aria-current:text-gray-300',\n },\n },\n});\n\nexport type NavbarItemClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\nexport interface NavbarToggleProperties {\n customStyle: DeepPartial<NavbarToggleTheme>;\n}\n\nexport interface NavbarToggleTheme {\n root: {\n base: string;\n };\n}\n\nexport const navbarToogleTheme: NavbarToggleTheme = createTheme({\n root: {\n base: 'cursor-pointer inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg md:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600',\n },\n});\n\nexport type NavbarToggleClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type {\n NavbarIconButtonClass,\n NavbarIconButtonProperties,\n NavbarIconButtonTheme,\n} from './navbar-icon-button.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN = new InjectionToken<NavbarIconButtonTheme>(\n 'FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN',\n);\n\nexport class NavbarIconButtonThemeService implements FlowbiteThemeService<NavbarIconButtonProperties> {\n private readonly baseTheme = inject(FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN);\n\n public getClasses(properties: NavbarIconButtonProperties): NavbarIconButtonClass {\n const theme: NavbarIconButtonTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: NavbarIconButtonClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BaseComponent } from '../base-component.directive';\nimport { NavbarContentComponent } from './navbar-content.component';\nimport type { NavbarIconButtonClass, NavbarIconButtonTheme } from './navbar-icon-button.theme';\nimport { NavbarIconButtonThemeService } from './navbar-icon-button.theme.service';\nimport { NavbarComponent } from './navbar.component';\nimport type { NavbarColors } from './navbar.theme';\n\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n selector: 'flowbite-navbar-icon-button',\n standalone: true,\n imports: [],\n template: `<ng-content />`,\n})\nexport class NavbarIconButtonComponent extends BaseComponent<NavbarIconButtonClass> {\n public readonly themeService = inject(NavbarIconButtonThemeService);\n public readonly navbarComponent = inject(NavbarComponent, { optional: true });\n public readonly navbarContentComponent = inject(NavbarContentComponent, { optional: true });\n\n //#region properties\n public color = model<keyof NavbarColors>(this.navbarContentComponent?.color() || this.navbarComponent!.color());\n public customStyle = model<DeepPartial<NavbarIconButtonTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): NavbarIconButtonClass {\n return this.themeService.getClasses({\n color: this.color(),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.navbarComponent === null && this.navbarContentComponent === null) {\n throw new Error('No NavbarComponent/NavbarContentComponent available');\n }\n }\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { NavbarColors } from './navbar.theme';\n\nexport interface NavbarIconButtonProperties {\n color: keyof NavbarColors;\n customStyle: DeepPartial<NavbarIconButtonTheme>;\n}\n\nexport interface NavbarIconButtonTheme {\n root: {\n base: string;\n color: NavbarColors;\n };\n}\n\nexport const navbarIconButtonTheme: NavbarIconButtonTheme = createTheme({\n root: {\n base: 'cursor-pointer rounded-lg p-2.5 text-sm text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-700',\n color: {\n primary: 'text-primary-500 dark:text-primary-300',\n gray: 'text-gray-500 dark:text-gray-400',\n blue: 'text-blue-500 dark:text-blue-300',\n red: 'text-red-500 dark:text-red-300',\n green: 'text-green-500 dark:text-green-300',\n yellow: 'text-yellow-500 dark:text-yellow-300',\n },\n },\n});\n\nexport type NavbarIconButtonClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { ScrollTopClass, ScrollTopProperties, ScrollTopTheme } from './scroll-top.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SCROLL_TOP_THEME_TOKEN = new InjectionToken<ScrollTopTheme>('FLOWBITE_SCROLL_TOP_THEME_TOKEN');\n\nexport class ScrollTopThemeService implements FlowbiteThemeService<ScrollTopProperties> {\n private readonly baseTheme = inject(FLOWBITE_SCROLL_TOP_THEME_TOKEN);\n\n public getClasses(properties: ScrollTopProperties): ScrollTopClass {\n const theme: ScrollTopTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ScrollTopClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.position[properties.position]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { CHEVRON_UP_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { ScrollTopClass, ScrollTopColors, ScrollTopPositions, ScrollTopTheme } from './scroll-top.theme';\nimport { ScrollTopThemeService } from './scroll-top.theme.service';\n\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'flowbite-scroll-top',\n standalone: true,\n imports: [IconComponent],\n template: `<flowbite-icon\n svgIcon=\"flowbite-angular:chevron-up\"\n class=\"w-5 h-5\" />`,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class ScrollTopComponent extends BaseComponent<ScrollTopClass> implements OnInit {\n public readonly themeService = inject(ScrollTopThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof ScrollTopColors>('primary');\n public position = model<keyof ScrollTopPositions>('bottom-right');\n public customStyle = model<DeepPartial<ScrollTopTheme>>({});\n //#endregion\n\n //#region BaseComponent implemenation\n public override fetchClass(): ScrollTopClass {\n return this.themeService.getClasses({\n color: this.color(),\n position: this.position(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-up',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_UP_SVG_ICON),\n );\n }\n //#endregion\n\n public onClick(): void {\n window.scrollTo(window.scrollX, 0);\n }\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteColors, FlowbitePositions } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region region Component theme option\nexport interface ScrollTopColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'gray' | 'green' | 'lime' | 'purple' | 'red'> {\n [key: string]: string;\n}\n\nexport interface ScrollTopPositions extends Omit<FlowbitePositions, 'center'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface ScrollTopProperties {\n color: keyof ScrollTopPositions;\n position: keyof ScrollTopPositions;\n customStyle: DeepPartial<ScrollTopTheme>;\n}\n\nexport interface ScrollTopTheme {\n root: {\n base: string;\n color: ScrollTopColors;\n position: ScrollTopPositions;\n };\n}\n\nexport const scrollTopTheme: ScrollTopTheme = createTheme({\n root: {\n base: 'cursor-pointer fixed flex flex-row place-items-center p-2 rounded-lg',\n color: {\n primary: 'bg-primary-100',\n dark: 'bg-gray-100 dark:bg-gray-800 dark:text-white',\n blue: 'bg-blue-100',\n gray: 'bg-gray-100',\n green: 'bg-green-100',\n lime: 'bg-lime-100',\n purple: 'bg-purple-100',\n red: 'bg-red-100',\n },\n position: {\n 'bottom-center': 'bottom-3 left-1/2 right-1/2',\n 'bottom-left': 'bottom-3 left-3',\n 'bottom-right': 'bottom-3 right-3',\n 'center-left': 'left-3 top-1/2 bottom-1/2',\n 'center-right': 'right-3 top-1/2 bottom-1/2',\n 'top-center': 'top-3 left-1/2 right-1/2',\n 'top-left': 'top-3 left-3',\n 'top-right': 'top-3 right-3',\n },\n },\n});\n\nexport type ScrollTopClass = FlowbiteClass;\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type {\n SidebarItemGroupClass,\n SidebarItemGroupProperties,\n SidebarItemGroupTheme,\n} from './sidebar-item-group.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN = new InjectionToken<SidebarItemGroupTheme>(\n 'FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN',\n);\n\nexport class SidebarItemGroupThemeService implements FlowbiteThemeService<SidebarItemGroupProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN);\n\n public getClasses(properties: SidebarItemGroupProperties): SidebarItemGroupClass {\n const theme: SidebarItemGroupTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarItemGroupClass = {\n rootClass: twMerge(theme.root.base),\n spanClass: twMerge(theme.spanText.base, theme.spanText.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { inject, Pipe } from '@angular/core';\nimport type { SafeHtml } from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Sanitize a string as trusted HTML.\n *\n * @see `DomSanitizer`\n */\n@Pipe({\n standalone: true,\n name: 'sanitizeHtml',\n})\nexport class SanitizeHtmlPipe implements PipeTransform {\n private _sanitizer = inject(DomSanitizer);\n\n /**\n * Return the result of 'bypassSecurityTrustHtml' function of DomSanitizer for the parameter.\n *\n * @param v The string to be transformed.\n * @returns The SfeHtml from the DomSanitizer.\n */\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { SidebarItemClass, SidebarItemProperties, SidebarItemTheme } from './sidebar-item.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN = new InjectionToken<SidebarItemTheme>(\n 'FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN',\n);\n\nexport class SidebarItemThemeService implements FlowbiteThemeService<SidebarItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN);\n\n public getClasses(properties: SidebarItemProperties): SidebarItemClass {\n const theme: SidebarItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n sidebarIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { FlowbiteRouterLinkActiveDirective } from '../../directives/flowbite-router-link-active.directive';\nimport { FlowbiteRouterLinkDirective } from '../../directives/flowbite-router-link.directive';\nimport { SanitizeHtmlPipe } from '../../pipes';\nimport { BadgeComponent } from '../badge';\nimport { BaseComponent } from '../base-component.directive';\nimport { SidebarItemGroupComponent } from './sidebar-item-group.component';\nimport type { SidebarItemClass, SidebarItemTheme } from './sidebar-item.theme';\nimport { SidebarItemThemeService } from './sidebar-item.theme.service';\nimport { SidebarMenuComponent } from './sidebar-menu.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport { NgClass, NgIf } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, SanitizeHtmlPipe, BadgeComponent],\n selector: 'flowbite-sidebar-item',\n template: `\n <span\n class=\"flex-shrink-0\"\n [innerHTML]=\"icon()! | sanitizeHtml\"\n *ngIf=\"icon()\"></span>\n <span\n [ngClass]=\"contentClasses().sidebarIconClass\"\n [class.ml-3]=\"icon()\">\n <ng-content />\n </span>\n <flowbite-badge *ngIf=\"label()\">{{ label() }}</flowbite-badge>\n `,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class SidebarItemComponent extends BaseComponent<SidebarItemClass> {\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly flowbiteRouterLinkActive = inject(FlowbiteRouterLinkActiveDirective, { optional: true });\n public readonly themeService = inject(SidebarItemThemeService);\n public readonly sidebarItemGroupComponent = inject<SidebarItemGroupComponent | undefined>(SidebarItemGroupComponent, {\n optional: true,\n });\n public readonly sidebarMenuComponent = inject<SidebarMenuComponent | undefined>(SidebarMenuComponent);\n\n //#region properties\n public icon = model<string | undefined>(undefined);\n public color = model<keyof SidebarColors>((this.sidebarItemGroupComponent ?? this.sidebarMenuComponent)!.color());\n public label = model<string | undefined>(undefined);\n public customStyle = model<DeepPartial<SidebarItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarItemClass {\n return this.themeService.getClasses({\n icon: this.icon(),\n color: this.color(),\n label: this.label(),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.sidebarMenuComponent === undefined && this.sidebarItemGroupComponent === undefined) {\n throw new Error('No SidebarMenuComponent/SidebarItemGroupComponent available');\n }\n }\n //#endregion\n\n onClick(): void {\n (this.sidebarMenuComponent || this.sidebarItemGroupComponent?.sidebarMenuComponent)?.closeAll();\n (\n this.sidebarMenuComponent || this.sidebarItemGroupComponent?.sidebarMenuComponent\n )?.sidebarComponent.toggleVisibility(false);\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { CHEVRON_DOWN_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { SidebarItemGroupClass, SidebarItemGroupTheme } from './sidebar-item-group.theme';\nimport { SidebarItemGroupThemeService } from './sidebar-item-group.theme.service';\nimport { SidebarItemComponent } from './sidebar-item.component';\nimport { SidebarMenuComponent } from './sidebar-menu.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport { NgClass, NgIf } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, contentChildren, inject, model, untracked } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgClass, NgIf, IconComponent],\n selector: 'flowbite-sidebar-item-group',\n template: `\n <span\n [class]=\"contentClasses().spanClass\"\n (click)=\"onSpanClick()\">\n <h4>{{ title() }}</h4>\n <flowbite-icon\n svgIcon=\"flowbite-angular:chevron-down\"\n class=\"h-6 w-6 shrink-0 duration-200\"\n [class.rotate-180]=\"!isOpen()\" />\n </span>\n <ng-content *ngIf=\"isOpen()\" />\n `,\n})\nexport class SidebarItemGroupComponent extends BaseComponent<SidebarItemGroupClass> implements OnInit {\n public readonly themeService = inject(SidebarItemGroupThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n public readonly sidebarMenuComponent = inject(SidebarMenuComponent);\n public readonly sidebarItemChildren = contentChildren(SidebarItemComponent);\n\n //#region properties\n public isOpen = model<boolean>(\n this.sidebarItemChildren().some((x) => x.flowbiteRouterLinkActive?.isActive() ?? false),\n );\n public color = model<keyof SidebarColors>(this.sidebarMenuComponent.color());\n public title = model.required<string>();\n public customStyle = model<DeepPartial<SidebarItemGroupTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarItemGroupClass {\n return this.themeService.getClasses({\n color: this.color(),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.sidebarItemChildren().length === 0) {\n throw new Error('No SidebarItemComponent available');\n }\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-down',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_DOWN_SVG_ICON),\n );\n }\n //#endregion\n\n public onSpanClick(): void {\n this.toggleVisibility();\n }\n\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n this.isOpen.set(isOpen);\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils';\nimport type { SidebarMenuClass, SidebarMenuProperties, SidebarMenuTheme } from './sidebar-menu.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_MENU_THEME_TOKEN = new InjectionToken<SidebarMenuTheme>(\n 'FLOWBITE_SIDEBAR_MENU_THEME_TOKEN',\n);\n\nexport class SidebarMenuThemeService implements FlowbiteThemeService<SidebarMenuProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_MENU_THEME_TOKEN);\n\n public getClasses(properties: SidebarMenuProperties): SidebarMenuClass {\n const theme: SidebarMenuTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarMenuClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.isOpen[properties.isOpen],\n properties.isOpen === 'enabled' && theme.root.displayMode[properties.displayMode],\n theme.root.color[properties.color],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport { SidebarItemGroupComponent } from './sidebar-item-group.component';\nimport { SidebarItemComponent } from './sidebar-item.component';\nimport type { SidebarMenuClass, SidebarMenuTheme } from './sidebar-menu.theme';\nimport { SidebarMenuThemeService } from './sidebar-menu.theme.service';\nimport { SidebarComponent } from './sidebar.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport { Component, contentChildren, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [],\n selector: 'flowbite-sidebar-menu',\n template: '<ng-content />',\n})\nexport class SidebarMenuComponent extends BaseComponent<SidebarMenuClass> {\n public readonly themeService = inject(SidebarMenuThemeService);\n public readonly sidebarComponent = inject(SidebarComponent);\n public readonly sidebarItemGroupChildren = contentChildren(SidebarItemGroupComponent);\n public readonly sidebarItemChildren = contentChildren(SidebarItemComponent);\n\n //#region properties\n public color = model<keyof SidebarColors>(this.sidebarComponent.color());\n public customStyle = model<DeepPartial<SidebarMenuTheme>>({});\n //#endregion\n\n public override fetchClass(): SidebarMenuClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.sidebarComponent.isOpen()),\n color: this.color(),\n displayMode: this.sidebarComponent.displayMode(),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.sidebarItemChildren().length === 0 && this.sidebarItemGroupChildren().length === 0) {\n throw new Error('No SidebarItemComponent/SidebarItemGroupComponent available');\n }\n }\n\n public closeAll(): void {\n this.sidebarItemGroupChildren().forEach((x) => x.toggleVisibility(false));\n }\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils';\nimport type {\n SidebarPageContentClass,\n SidebarPageContentProperties,\n SidebarPageContentTheme,\n} from './sidebar-page-content.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN = new InjectionToken<SidebarPageContentTheme>(\n 'FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN',\n);\n\nexport class SidebarPageContentThemeService implements FlowbiteThemeService<SidebarPageContentProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN);\n\n public getClasses(properties: SidebarPageContentProperties): SidebarPageContentClass {\n const theme: SidebarPageContentTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarPageContentClass = {\n rootClass: twMerge(\n theme.root.base,\n properties.isOpen === 'enabled' && theme.root.displayMode[properties.displayMode],\n ),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport type { SidebarPageContentClass, SidebarPageContentTheme } from './sidebar-page-content.theme';\nimport { SidebarPageContentThemeService } from './sidebar-page-content.theme.service';\nimport { SidebarComponent } from './sidebar.component';\n\nimport { Component, inject, model } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [],\n selector: 'flowbite-sidebar-page-content',\n template: `<ng-content />`,\n})\nexport class SidebarPageContentComponent extends BaseComponent<SidebarPageContentClass> {\n public readonly themeService = inject(SidebarPageContentThemeService);\n public readonly sidebarComponent = inject(SidebarComponent);\n\n //#region properties\n public customStyle = model<DeepPartial<SidebarPageContentTheme>>({});\n //endregion\n\n //region BaseComponent implementation\n public override fetchClass(): SidebarPageContentClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.sidebarComponent.isOpen()),\n displayMode: this.sidebarComponent.displayMode(),\n customStyle: this.customStyle(),\n });\n }\n //endregion\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { SidebarClass, SidebarProperties, SidebarTheme } from './sidebar.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_THEME_TOKEN = new InjectionToken<SidebarTheme>('FLOWBITE_SIDEBAR_THEME_TOKEN');\n\nexport class SidebarThemeService implements FlowbiteThemeService<SidebarProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_THEME_TOKEN);\n\n public getClasses(properties: SidebarProperties): SidebarClass {\n const theme: SidebarTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarClass = {\n rootClass: twMerge(theme.root.base, theme.root.isRounded[properties.isRounded]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { booleanToFlowbiteBoolean } from '../../utils/boolean.util';\nimport { BaseComponent } from '../base-component.directive';\nimport { SidebarMenuComponent } from './sidebar-menu.component';\nimport { SidebarPageContentComponent } from './sidebar-page-content.component';\nimport type { SidebarClass, SidebarColors, SidebarDisplayMode, SidebarTheme } from './sidebar.theme';\nimport { SidebarThemeService } from './sidebar.theme.service';\n\nimport { NgClass } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport { Component, contentChild, inject, model, untracked } from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-sidebar',\n template: `<ng-content />`,\n})\nexport class SidebarComponent extends BaseComponent<SidebarClass> implements OnInit {\n public readonly themeService = inject(SidebarThemeService);\n public readonly sidebarMenuChild = contentChild(SidebarMenuComponent);\n public readonly sidebarPageContentChild = contentChild(SidebarPageContentComponent);\n\n //#region properties\n public color = model<keyof SidebarColors>('primary');\n public displayMode = model<keyof SidebarDisplayMode>('push');\n public isOpen = model<boolean>(false);\n public isRounded = model<boolean>(false);\n public customStyle = model<DeepPartial<SidebarTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarClass {\n return this.themeService.getClasses({\n displayMode: this.displayMode(),\n isRounded: booleanToFlowbiteBoolean(this.isRounded()),\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.sidebarMenuChild() === undefined) {\n throw new Error('No SidebarMenuComponent available');\n }\n\n if (this.sidebarPageContentChild() === undefined) {\n throw new Error('No SidebarPageContentComponent available');\n }\n }\n //#endregion\n\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n this.isOpen.set(isOpen);\n }\n}\n","import type { DeepPartial } from '../../common';\nimport type { FlowbiteColors } from '../../common/type-definitions/colors/flowbite.colors';\nimport type { FlowbiteBoolean } from '../../common/type-definitions/flowbite.boolean';\nimport type { FlowbiteClass } from '../../common/type-definitions/flowbite.class';\nimport { createTheme } from '../../utils/theme/create-theme';\n\n//#region Component theme option\nexport interface SidebarColors extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n\nexport interface SidebarDisplayMode {\n push: string;\n over: string;\n backdrop: string;\n}\n//endregion\n\nexport interface SidebarProperties {\n displayMode: keyof SidebarDisplayMode;\n isRounded: keyof FlowbiteBoolean;\n customStyle: DeepPartial<SidebarTheme>;\n}\n\nexport interface SidebarTheme {\n root: {\n base: string;\n isRounded: FlowbiteBoolean;\n };\n}\n\nexport const sidebarTheme: SidebarTheme = createTheme({\n root: {\n base: 'flex flex-row min-h-full',\n isRounded: {\n enabled: 'rounded',\n disabled: '',\n },\n },\n});\n\nexport type SidebarClass = FlowbiteClass;\n","import type { FlowbiteClass } from '../../common';\nimport type { DeepPartial } from '../../common/type-definitions/flowbite.deep-partial';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { SidebarColors } from './sidebar.theme';\n\nexport interface SidebarItemProperties {\n icon: string | undefined;\n color: keyof SidebarColors;\n label: string | undefined;\n customStyle: DeepPartial<SidebarItemTheme>;\n}\n\nexport interface SidebarItemTheme {\n root: {\n base: string;\n color: SidebarColors;\n };\n icon: {\n base: string;\n };\n}\n\nexport const sidebarItemTheme: SidebarItemTheme = createTheme({\n root: {\n base: 'group flex cursor-pointer items-center rounded-lg p-2 text-base font-normal text-gray-900 dark:text-white',\n color: {\n primary:\n 'aria-current:text-primary-500 dark:aria-current:text-primary-300 hover:bg-primary-200/35 dark:hover:bg-primary-700/35',\n dark: 'aria-current:text-gray-500 dark:aria-current:text-gray-300 hover:bg-gray-200/35 dark:hover:bg-gray-700/35',\n blue: 'aria-current:text-blue-500 dark:aria-current:text-blue-300 hover:bg-blue-200/35 dark:hover:bg-blue-700/35',\n red: 'aria-current:text-red-500 dark:aria-current:text-red-300 hover:bg-red-200/35 dark:hover:bg-red-700/35',\n green:\n 'aria-current:text-green-500 dark:aria-current:text-green-300 hover:bg-green-200/35 dark:hover:bg-green-700/35',\n yellow:\n 'aria-current:text-yellow-500 dark:aria-current:text-yellow-300 hover:bg-yellow-200/35 dark:hover:bg-yellow-700/35',\n },\n },\n icon: {\n base: 'flex-1 whitespace-nowrap',\n },\n});\n\nexport interface SidebarItemClass extends FlowbiteClass {\n sidebarIconClass: string;\n}\n","import type { DeepPartial, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { SidebarColors } from './sidebar.theme';\n\nexport interface SidebarItemGroupProperties {\n color: keyof SidebarColors;\n customStyle: DeepPartial<SidebarItemGroupTheme>;\n}\n\nexport interface SidebarItemGroupTheme {\n root: {\n base: string;\n };\n spanText: {\n base: string;\n color: SidebarColors;\n };\n}\n\nexport const sidebarItemGroupTheme: SidebarItemGroupTheme = createTheme({\n root: {\n base: 'flex flex-col py-2 font-semibold cursor-pointer',\n },\n spanText: {\n base: 'flex flex-row justify-between m-2',\n color: {\n primary: 'text-primary-600',\n dark: 'text-gray-600',\n blue: 'text-blue-600',\n red: 'text-red-600',\n green: 'text-green-600',\n yellow: 'text-yellow-600',\n },\n },\n});\n\nexport interface SidebarItemGroupClass extends FlowbiteClass {\n spanClass: string;\n}\n","import type { FlowbiteThemeService } from '../../services';\nimport { mergeTheme } from '../../utils/theme/merge-theme';\nimport type { SidebarToggleClass, SidebarToggleProperties, SidebarToggleTheme } from './sidebar-toggle.theme';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN = new InjectionToken<SidebarToggleTheme>(\n 'FLOWBITE_TOGGLE_SIDEBAR_THEME_TOKEN',\n);\n\nexport class SidebarToggleThemeService implements FlowbiteThemeService<SidebarToggleProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN);\n\n public getClasses(properties: SidebarToggleProperties): SidebarToggleClass {\n const theme: SidebarToggleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarToggleClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.size[properties.color]),\n };\n\n return output;\n }\n}\n","import type { DeepPartial } from '../../common';\nimport { BARS_SVG_ICON } from '../../utils/icon.list';\nimport { BaseComponent } from '../base-component.directive';\nimport { IconComponent, IconRegistry } from '../icon';\nimport type { SidebarToggleClass, SidebarToggleSizes, SidebarToggleTheme } from './sidebar-toggle.theme';\nimport { SidebarToggleThemeService } from './sidebar-toggle.theme.service';\nimport { SidebarComponent } from './sidebar.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport type { OnInit } from '@angular/core';\nimport { Component, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [IconComponent],\n selector: 'flowbite-sidebar-toggle',\n template: `<flowbite-icon svgIcon=\"flowbite-angular:bars\" />`,\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class SidebarToggleComponent extends BaseComponent<SidebarToggleClass> implements OnInit {\n public readonly themeService = inject(SidebarToggleThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n public readonly sidebarComponent = model<SidebarComponent>(inject(SidebarComponent));\n\n //#region properties\n public color = model<keyof SidebarColors>('primary');\n public size = model<keyof SidebarToggleSizes>('sm');\n public customStyle = model<DeepPartial<SidebarToggleTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarToggleClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'tabs',\n this.domSanitizer.bypassSecurityTrustHtml(BARS_SVG_ICON),\n );\n }\n //#endregion\n\n public onClick(): void {\n const isOpen = this.sidebarComponent().isOpen();\n\n this.sidebarComponent().isOpen.set(!isOpen);\n }\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteSizes } from '../../common';\nimport { createTheme } from '../../utils/theme/create-theme';\nimport type { SidebarColors } from './sidebar.theme';\n\n//#region region Component theme option\nexport interface SidebarToggleSizes extends Pick<FlowbiteSizes, 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface SidebarToggleProperties {\n color: keyof SidebarColors;\n size: keyof SidebarToggleSizes;\n customStyle: DeepPartial<SidebarToggleTheme>;\n}\n\nexport interface SidebarToggleTheme {\n root: {\n base: string;\n color: SidebarColors;\n size: SidebarToggleSizes;\n };\n}\n\nexport const sidebarToggleTheme: SidebarToggleTheme = createTheme({\n root: {\n base: 'cursor-pointer inline-flex items-center p-2 justify-center rounded-lg focus:outline-none focus:ring-2',\n color: {\n primary:\n 'text-primary-500 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-gray-700 focus:ring-primary-200 dark:focus:ring-primary-600',\n dark: 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:ring-gray-200 dark:focus:ring-gray-600',\n blue: 'text-blue-500 dark:text-blue-400 hover:bg-blue-100 dark:hover:bg-blue-700 focus:ring-blue-200 dark:focus:ring-blue-600',\n red: 'text-red-500 dark:text-red-400 hover:bg-red-100 dark:hover:bg-red-700 focus:ring-red-200 dark:focus:ring-red-600',\n green:\n 'text-green-500 dark:text-green-400 hover:bg-green-100 dark:hover:bg-green-700 focus:ring-green-200 dark:focus:ring-green-600',\n yellow:\n 'text-yellow-500 dark:text-yellow-400 hover:bg-yellow-100 dark:hover:bg-yellow-700 focus:ring-yellow-200 dark:focus:ring-yellow-600',\n },\n size: {\n sm: 'text-sm',\n },\n },\n});\n\nexport type SidebarToggleClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils';\nimport type { SidebarDisplayMode } from './sidebar.theme';\n\nexport interface SidebarPageContentProperties {\n isOpen: keyof FlowbiteBoolean;\n displayMode: keyof SidebarDisplayMode;\n customStyle: DeepPartial<SidebarPageContentTheme>;\n}\n\nexport interface SidebarPageContentTheme {\n root: {\n base: string;\n displayMode: SidebarDisplayMode;\n };\n}\n\nexport const sidebarPageContentTheme: SidebarPageContentTheme = createTheme({\n root: {\n base: 'flex flex-1',\n displayMode: {\n push: '',\n over: '',\n backdrop: 'sticky left-0 right-0 z-30 bg-gray-500 bg-opacity-50 blur-md',\n },\n },\n});\n\nexport type SidebarPageContentClass = FlowbiteClass;\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from '../../common';\nimport { createTheme } from '../../utils';\nimport type { SidebarColors, SidebarDisplayMode } from './sidebar.theme';\n\nexport interface SidebarMenuProperties {\n isOpen: keyof FlowbiteBoolean;\n color: keyof SidebarColors;\n displayMode: keyof SidebarDisplayMode;\n customStyle: DeepPartial<SidebarMenuTheme>;\n}\n\nexport interface SidebarMenuTheme {\n root: {\n base: string;\n displayMode: SidebarDisplayMode;\n isOpen: FlowbiteBoolean;\n color: SidebarColors;\n };\n}\n\nexport const sidebarMenuTheme: SidebarMenuTheme = createTheme({\n root: {\n base: 'flex-col min-h-full overflow-y-auto shrink-0 pr-1 border-r bg-white dark:bg-gray-800',\n displayMode: {\n push: '',\n over: 'sticky top-0 z-50',\n backdrop: 'sticky top-0 z-50',\n },\n isOpen: {\n enabled: 'flex',\n disabled: 'hidden',\n },\n color: {\n primary: 'border-primary-200 dark:border-primary-700',\n dark: 'border-gray-200 dark:border-gray-800',\n blue: 'border-blue-200 dark:border-blue-700',\n red: 'border-red-200 dark:border-red-700',\n green: 'border-green-200 dark:border-green-700',\n yellow: 'border-yellow-200 dark:border-yellow-700',\n },\n },\n});\n\nexport type SidebarMenuClass = FlowbiteClass;\n","import {\n accordionContentTheme,\n AccordionContentThemeService,\n accordionPanelTheme,\n AccordionPanelThemeService,\n accordionTheme,\n AccordionThemeService,\n accordionTitleTheme,\n AccordionTitleThemeService,\n addonDirectiveTheme,\n AddonDirectiveThemeService,\n alertTheme,\n AlertThemeService,\n badgeTheme,\n BadgeThemeService,\n breadcrumbItemTheme,\n BreadcrumbItemThemeService,\n breadcrumbTheme,\n BreadcrumbThemeService,\n buttonTheme,\n ButtonThemeService,\n darkThemeToggleTheme,\n DarkThemeToggleThemeService,\n dropdownDividerTheme,\n DropdownDividerThemeService,\n dropdownHeaderTheme,\n DropdownHeaderThemeService,\n dropdownItemTheme,\n DropdownItemThemeService,\n dropdownTheme,\n DropdownThemeService,\n FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN,\n FLOWBITE_ACCORDION_PANEL_THEME_TOKEN,\n FLOWBITE_ACCORDION_THEME_TOKEN,\n FLOWBITE_ACCORDION_TITLE_THEME_TOKEN,\n FLOWBITE_ALERT_THEME_TOKEN,\n FLOWBITE_BADGE_THEME_TOKEN,\n FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN,\n FLOWBITE_BREADCRUMB_THEME_TOKEN,\n FLOWBITE_BUTTON_THEME_TOKEN,\n FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN,\n FLOWBITE_DIRECTIVE_ADDON_THEME_TOKEN,\n FLOWBITE_DIRECTIVE_HELPER_THEME_TOKEN,\n FLOWBITE_DIRECTIVE_ICON_THEME_TOKEN,\n FLOWBITE_DIRECTIVE_INPUT_THEME_TOKEN,\n FLOWBITE_DIRECTIVE_LABEL_THEME_TOKEN,\n FLOWBITE_DROPDOWN_DIVIDER_THEME_TOKEN,\n FLOWBITE_DROPDOWN_HEADER_THEME_TOKEN,\n FLOWBITE_DROPDOWN_ITEM_THEME_TOKEN,\n FLOWBITE_DROPDOWN_THEME_TOKEN,\n FLOWBITE_FORM_FIELD_THEME_TOKEN,\n FLOWBITE_INDICATOR_THEME_TOKEN,\n FLOWBITE_MODAL_BODY_THEME_TOKEN,\n FLOWBITE_MODAL_FOOTER_THEME_TOKEN,\n FLOWBITE_MODAL_HEADER_THEME_TOKEN,\n FLOWBITE_MODAL_THEME_TOKEN,\n FLOWBITE_NAVBAR_BRAND_THEME_TOKEN,\n FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN,\n FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN,\n FLOWBITE_NAVBAR_ITEM_THEME_TOKEN,\n FLOWBITE_NAVBAR_THEME_TOKEN,\n FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN,\n FLOWBITE_SCROLL_TOP_THEME_TOKEN,\n FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN,\n FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN,\n FLOWBITE_SIDEBAR_MENU_THEME_TOKEN,\n FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN,\n FLOWBITE_SIDEBAR_THEME_TOKEN,\n FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN,\n formFieldTheme,\n FormFieldThemeService,\n helperDirectiveTheme,\n HelperDirectiveThemeService,\n iconDirectiveTheme,\n IconDirectiveThemeService,\n indicatorTheme,\n IndicatorThemeService,\n inputDirectiveTheme,\n InputDirectiveThemeService,\n labelDirectiveTheme,\n LabelDirectiveThemeService,\n modalBodyTheme,\n ModalBodyThemeService,\n modalFooterTheme,\n ModalFooterThemeService,\n modalHeaderTheme,\n ModalHeaderThemeService,\n modalTheme,\n ModalThemeService,\n navbarBrandTheme,\n NavbarBrandThemeService,\n navbarContentTheme,\n NavbarContentThemeService,\n navbarIconButtonTheme,\n NavbarIconButtonThemeService,\n navbarItemTheme,\n NavbarItemThemeService,\n navbarTheme,\n NavbarThemeService,\n NavbarToggleThemeService,\n navbarToogleTheme,\n scrollTopTheme,\n ScrollTopThemeService,\n sidebarItemGroupTheme,\n SidebarItemGroupThemeService,\n sidebarItemTheme,\n SidebarItemThemeService,\n sidebarMenuTheme,\n SidebarMenuThemeService,\n sidebarPageContentTheme,\n SidebarPageContentThemeService,\n sidebarTheme,\n SidebarThemeService,\n sidebarToggleTheme,\n SidebarToggleThemeService,\n} from '../components';\n\nimport type { EnvironmentProviders } from '@angular/core';\nimport { makeEnvironmentProviders } from '@angular/core';\n\n/**\n * This function define base implementation of injected services and value used all over flowbite-angular library.\n *\n * @returns Return the configuration for flowbite-angular ThemeServices, themeProviders and settingsProviders.\n *\n * @see `EnvironmentProviders`\n */\nexport function initFlowbite(): EnvironmentProviders {\n const serviceProviders = makeEnvironmentProviders([\n {\n provide: AccordionContentThemeService,\n useClass: AccordionContentThemeService,\n },\n {\n provide: AccordionPanelThemeService,\n useClass: AccordionPanelThemeService,\n },\n {\n provide: AccordionTitleThemeService,\n useClass: AccordionTitleThemeService,\n },\n {\n provide: AccordionThemeService,\n useClass: AccordionThemeService,\n },\n {\n provide: AlertThemeService,\n useClass: AlertThemeService,\n },\n {\n provide: BadgeThemeService,\n useClass: BadgeThemeService,\n },\n {\n provide: BreadcrumbItemThemeService,\n useClass: BreadcrumbItemThemeService,\n },\n {\n provide: BreadcrumbThemeService,\n useClass: BreadcrumbThemeService,\n },\n {\n provide: ButtonThemeService,\n useClass: ButtonThemeService,\n },\n {\n provide: DarkThemeToggleThemeService,\n useClass: DarkThemeToggleThemeService,\n },\n {\n provide: DropdownDividerThemeService,\n useClass: DropdownDividerThemeService,\n },\n {\n provide: DropdownHeaderThemeService,\n useClass: DropdownHeaderThemeService,\n },\n {\n provide: DropdownItemThemeService,\n useClass: DropdownItemThemeService,\n },\n {\n provide: DropdownThemeService,\n useClass: DropdownThemeService,\n },\n {\n provide: FormFieldThemeService,\n useClass: FormFieldThemeService,\n },\n {\n provide: IndicatorThemeService,\n useClass: IndicatorThemeService,\n },\n {\n provide: ModalBodyThemeService,\n useClass: ModalBodyThemeService,\n },\n {\n provide: ModalFooterThemeService,\n useClass: ModalFooterThemeService,\n },\n {\n provide: ModalHeaderThemeService,\n useClass: ModalHeaderThemeService,\n },\n {\n provide: ModalThemeService,\n useClass: ModalThemeService,\n },\n {\n provide: NavbarBrandThemeService,\n useClass: NavbarBrandThemeService,\n },\n {\n provide: NavbarContentThemeService,\n useClass: NavbarContentThemeService,\n },\n {\n provide: NavbarItemThemeService,\n useClass: NavbarItemThemeService,\n },\n {\n provide: NavbarToggleThemeService,\n useClass: NavbarToggleThemeService,\n },\n {\n provide: NavbarIconButtonThemeService,\n useClass: NavbarIconButtonThemeService,\n },\n {\n provide: NavbarThemeService,\n useClass: NavbarThemeService,\n },\n {\n provide: ScrollTopThemeService,\n useClass: ScrollTopThemeService,\n },\n {\n provide: SidebarItemGroupThemeService,\n useClass: SidebarItemGroupThemeService,\n },\n {\n provide: SidebarItemThemeService,\n useClass: SidebarItemThemeService,\n },\n {\n provide: SidebarMenuThemeService,\n useClass: SidebarMenuThemeService,\n },\n {\n provide: SidebarPageContentThemeService,\n useClass: SidebarPageContentThemeService,\n },\n {\n provide: SidebarToggleThemeService,\n useClass: SidebarToggleThemeService,\n },\n {\n provide: SidebarThemeService,\n useClass: SidebarThemeService,\n },\n {\n provide: IconDirectiveThemeService,\n useClass: IconDirectiveThemeService,\n },\n {\n provide: AddonDirectiveThemeService,\n useClass: AddonDirectiveThemeService,\n },\n {\n provide: InputDirectiveThemeService,\n useClass: InputDirectiveThemeService,\n },\n {\n provide: LabelDirectiveThemeService,\n useClass: LabelDirectiveThemeService,\n },\n {\n provide: HelperDirectiveThemeService,\n useClass: HelperDirectiveThemeService,\n },\n ]);\n\n const themeProviders = makeEnvironmentProviders([\n {\n provide: FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN,\n useValue: accordionContentTheme,\n },\n {\n provide: FLOWBITE_ACCORDION_PANEL_THEME_TOKEN,\n useValue: accordionPanelTheme,\n },\n {\n provide: FLOWBITE_ACCORDION_TITLE_THEME_TOKEN,\n useValue: accordionTitleTheme,\n },\n { provide: FLOWBITE_ACCORDION_THEME_TOKEN, useValue: accordionTheme },\n {\n provide: FLOWBITE_ALERT_THEME_TOKEN,\n useValue: alertTheme,\n },\n {\n provide: FLOWBITE_BADGE_THEME_TOKEN,\n useValue: badgeTheme,\n },\n {\n provide: FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN,\n useValue: breadcrumbItemTheme,\n },\n {\n provide: FLOWBITE_BREADCRUMB_THEME_TOKEN,\n useValue: breadcrumbTheme,\n },\n {\n provide: FLOWBITE_BUTTON_THEME_TOKEN,\n useValue: buttonTheme,\n },\n {\n provide: FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN,\n useValue: darkThemeToggleTheme,\n },\n {\n provide: FLOWBITE_DROPDOWN_DIVIDER_THEME_TOKEN,\n useValue: dropdownDividerTheme,\n },\n {\n provide: FLOWBITE_DROPDOWN_HEADER_THEME_TOKEN,\n useValue: dropdownHeaderTheme,\n },\n {\n provide: FLOWBITE_DROPDOWN_ITEM_THEME_TOKEN,\n useValue: dropdownItemTheme,\n },\n {\n provide: FLOWBITE_DROPDOWN_THEME_TOKEN,\n useValue: dropdownTheme,\n },\n {\n provide: FLOWBITE_FORM_FIELD_THEME_TOKEN,\n useValue: formFieldTheme,\n },\n {\n provide: FLOWBITE_INDICATOR_THEME_TOKEN,\n useValue: indicatorTheme,\n },\n {\n provide: FLOWBITE_MODAL_BODY_THEME_TOKEN,\n useValue: modalBodyTheme,\n },\n {\n provide: FLOWBITE_MODAL_FOOTER_THEME_TOKEN,\n useValue: modalFooterTheme,\n },\n {\n provide: FLOWBITE_MODAL_HEADER_THEME_TOKEN,\n useValue: modalHeaderTheme,\n },\n {\n provide: FLOWBITE_MODAL_THEME_TOKEN,\n useValue: modalTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_BRAND_THEME_TOKEN,\n useValue: navbarBrandTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN,\n useValue: navbarContentTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_ITEM_THEME_TOKEN,\n useValue: navbarItemTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN,\n useValue: navbarToogleTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN,\n useValue: navbarIconButtonTheme,\n },\n {\n provide: FLOWBITE_NAVBAR_THEME_TOKEN,\n useValue: navbarTheme,\n },\n {\n provide: FLOWBITE_SCROLL_TOP_THEME_TOKEN,\n useValue: scrollTopTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN,\n useValue: sidebarItemGroupTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN,\n useValue: sidebarItemTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_MENU_THEME_TOKEN,\n useValue: sidebarMenuTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN,\n useValue: sidebarPageContentTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN,\n useValue: sidebarToggleTheme,\n },\n {\n provide: FLOWBITE_SIDEBAR_THEME_TOKEN,\n useValue: sidebarTheme,\n },\n {\n provide: FLOWBITE_DIRECTIVE_ADDON_THEME_TOKEN,\n useValue: addonDirectiveTheme,\n },\n {\n provide: FLOWBITE_DIRECTIVE_HELPER_THEME_TOKEN,\n useValue: helperDirectiveTheme,\n },\n {\n provide: FLOWBITE_DIRECTIVE_LABEL_THEME_TOKEN,\n useValue: labelDirectiveTheme,\n },\n {\n provide: FLOWBITE_DIRECTIVE_ICON_THEME_TOKEN,\n useValue: iconDirectiveTheme,\n },\n {\n provide: FLOWBITE_DIRECTIVE_INPUT_THEME_TOKEN,\n useValue: inputDirectiveTheme,\n },\n ]);\n\n return makeEnvironmentProviders([serviceProviders, themeProviders]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["properties.addonDirectiveClassInstance","properties.helperDirectiveClassInstance","properties.iconDirectiveClassInstance","properties.inputDirectiveClassInstance","properties.labelDirectiveClassInstance"],"mappings":";;;;;;;;;;;AAEA;;;;;AAKG;AACG,SAAU,wBAAwB,CAAC,KAAc,EAAA;IACrD,OAAO,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AACxC;;ACVA;;;;AAIG;MACU,IAAI,CAAA;AAGf;;;;AAIG;AACH,IAAA,WAAA,CAAY,KAAc,EAAA;AAPlB,QAAA,IAAA,CAAA,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC;QAQjC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;SACF;KACF;AAED;;;;AAIG;AACI,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KACtC;AAED;;;;AAIG;AACI,IAAA,WAAW,KAAK,GAAA;AACrB,QAAA,OAAO,sCAAsC,CAAC;KAC/C;AAED;;;;AAIG;AACH,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED;;;;;AAKG;IACI,OAAO,OAAO,CAAC,GAAW,EAAA;QAC/B,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAChG,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;AAED;;;;AAIG;IACI,QAAQ,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED;;;;AAIG;IACI,MAAM,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AACF,CAAA;AAED;;;;;;AAMG;SACa,UAAU,GAAA;AACxB,IAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB;;MC1EsB,aAAa,CAAA;AAPnC,IAAA,WAAA,GAAA;AAQkB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAU,CAAA,UAAA,GAAG,MAAM,CAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,IAAc,CAAA,cAAA,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAwBnE,KAAA;IAtBQ,QAAQ,GAAA;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,eAAe,CACb,MAAK;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;SACnC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;KACH;;AAGM,IAAA,IAAI,MAAW;;AAGf,IAAA,MAAM,MAAW;8GAvBJ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iCAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,iCAAiC;AAC5C,wBAAA,oBAAoB,EAAE,mBAAmB;AAC1C,qBAAA;AACF,iBAAA,CAAA;;;ACZD;;;;;AAKG;AACG,SAAU,QAAQ,CAAC,IAAa,EAAA;AACpC,IAAA,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;AAClF;;ACNA;;;;;AAKG;AACG,SAAU,SAAS,CAAI,MAAS,EAAA;AACpC,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACrB,QAAA,OAAO,MAAM,CAAC;KACf;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;AAE3C,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KACtC;AAED,IAAA,OAAO,MAAW,CAAC;AACrB;;ACjBA;;;;;;AAMG;AACa,SAAA,UAAU,CAAqC,MAAS,EAAE,MAAS,EAAA;AACjF,IAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxD,OAAO,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;KAC5C;IAED,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAExC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACxC,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,gBAAA,MAAkC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAW,EAAE,MAAM,CAAC,GAAG,CAAW,CAAC,CAAC;aACrG;iBAAM;AACJ,gBAAA,MAAkC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aACzG;SACF;KACF;AAED,IAAA,OAAO,MAAM,CAAC;AAChB;;MCjBa,sCAAsC,GAAG,IAAI,cAAc,CACtE,wCAAwC,EACxC;MAEW,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;KAW7E;AATQ,IAAA,UAAU,CAAC,UAAsC,EAAA;AACtD,QAAA,MAAM,KAAK,GAA0B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAExF,QAAA,MAAM,MAAM,GAA0B;AACpC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC9G,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACNK,MAAO,yBAA0B,SAAQ,aAAoC,CAAA;AAVnF,IAAA,WAAA,GAAA;;AAWkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;;QAGnE,IAAK,CAAA,KAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAqC,EAAE,CAAC,CAAC;AAYpE,KAAA;;;IARiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC9D,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;AACvE,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAhBU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAN1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EANS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAQH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACxB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCZY,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAW3E;AATQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEtF,QAAA,MAAM,MAAM,GAAwB;YAClC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACxBM,MAAM,cAAc,GAAG,CAAA;;;;;CAK7B,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAA;;;;CAIlC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAA;;;;CAIpC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAA;;;;CAIrC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAA;;;;;CAK3B,CAAC;AAEK,MAAM,aAAa,GAAG,CAAA;;;;;CAK5B,CAAC;AAEK,MAAM,aAAa,GAAG,CAAA;;;;CAI5B;;AC3CD;;AAEG;AAmBH,IAAI,MAAqC,CAAC;AAE1C,SAAS,SAAS,GAAA;IAChB,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,OAAO,GAAG,MAAgE,CAAC;AAEjF,YAAA,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;gBACtC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,oBAAoB,EAAE;AAC/D,oBAAA,UAAU,EAAE,CAAC,CAAS,KAAK,CAAC;AAC7B,iBAAA,CAAC,CAAC;aACJ;SACF;KACF;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEK,SAAU,qBAAqB,CAAC,GAAW,EAAA;IAC/C,OAAO,SAAS,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,IAAK,GAA8B,CAAC;AACzE;;ACzCA;;AAEG;AAaG,SAAU,wBAAwB,CAAC,QAAgB,EAAA;AACvD,IAAA,OAAO,KAAK,CAAC,CAAA,8BAAA,EAAiC,QAAQ,CAAA,CAAE,CAAC,CAAC;AAC5D,CAAC;AAEK,SAAU,kCAAkC,CAAC,GAAa,EAAA;AAC9D,IAAA,OAAO,KAAK,CACV,CAAA,6GAAA,EAAgH,GAAa,CAAA,CAAE,CAChI,CAAC;AACJ,CAAC;AAEK,SAAU,kCAAkC,CAAC,GAAoB,EAAA;AACrE,IAAA,OAAO,KAAK,CACV,CAAA,mHAAA,EAAsH,GAAa,CAAA,CAAE,CACtI,CAAC;AACJ,CAAC;SAEe,mCAAmC,GAAA;AACjD,IAAA,OAAO,KAAK,CACV,CAA0J,wJAAA,CAAA,CAC3J,CAAC;AACJ,CAAC;MAMY,aAAa,CAAA;AAGxB,IAAA,WAAA,CACS,GAAoB,EACpB,OAAgC,EAChC,OAAwB,EAAA;QAFxB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;QACpB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAChC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QALjC,IAAU,CAAA,UAAA,GAAsB,IAAI,CAAC;KAMjC;AACL,CAAA;MAOY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAEjC,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE7B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;AAClD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,GAAG,EAAsB,CAAC;AACpD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAqJ9E,KAAA;AAnJQ,IAAA,UAAU,CAAC,QAAgB,EAAE,GAAoB,EAAE,OAAwB,EAAA;AAChF,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KAC/D;AAEM,IAAA,aAAa,CAAC,QAAgB,EAAE,GAAa,EAAE,OAAwB,EAAA;AAC5E,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KAClE;AAEM,IAAA,qBAAqB,CAC1B,SAAiB,EACjB,QAAgB,EAChB,GAAoB,EACpB,OAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;KAChG;AAEM,IAAA,wBAAwB,CAAC,SAAiB,EAAE,QAAgB,EAAE,GAAa,EAAE,OAAwB,EAAA;AAC1G,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAErE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,kCAAkC,CAAC,GAAG,CAAC,CAAC;SAC/C;AAED,QAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;KAChG;AAEM,IAAA,iBAAiB,CAAC,OAAwB,EAAA;AAC/C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;SACnD;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErD,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;SACjC;AAED,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;KAC3E;IAEM,kBAAkB,CAAC,QAAgB,EAAE,SAAiB,EAAA;QAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;SAC3C;QAED,OAAO,UAAU,CAAC,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC;KACxD;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;KAClC;AAEO,IAAA,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,MAAqB,EAAA;AAClF,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAE9D,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,qBAAqB,CAAC,MAAqB,EAAA;AACjD,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAA6B,CAAC,CAAC,CAAC,CAAC;SAChF;aAAM;YACL,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9E;KACF;AAEO,IAAA,sBAAsB,CAAC,MAAqB,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,EAC5C,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAA6B,CAAC,CAAC,CACrE,CAAC;KACH;IAEO,iBAAiB,CAAC,GAAe,EAAE,OAAwB,EAAA;AACjE,QAAA,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5B,QAAA,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnC,QAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClC,QAAA,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AACzD,QAAA,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAEvC,QAAA,IAAI,OAAO,EAAE,OAAO,EAAE;YACpB,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SAC9C;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,qBAAqB,CAAC,MAA2B,EAAA;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5C,YAAA,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;SACzB;QAED,OAAO,MAAM,CAAC,UAAU,CAAC;KAC1B;AAEO,IAAA,qBAAqB,CAAC,GAAgB,EAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,QAAA,GAAG,CAAC,SAAS,GAAG,GAAwB,CAAC;QAEzC,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAe,CAAC;AAEnD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,UAAU,CAAC,UAAyB,EAAA;AAC1C,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,MAAM,mCAAmC,EAAE,CAAC;aAC7C;AAED,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YAEnF,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,MAAM,kCAAkC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC1D;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE9D,IAAI,eAAe,EAAE;AACnB,gBAAA,OAAO,eAAe,CAAC;aACxB;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAClE,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,gBAAA,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;aACnC,CAAC,EACF,QAAQ,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACxD,KAAK,EAAE,CACR,CAAC;YAEF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,YAAA,OAAO,GAAG,CAAC;SACZ;aAAM;AACL,YAAA,OAAO,EAAE,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;SACjD;KACF;8GA7JU,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;AAiKD,SAAS,QAAQ,CAAC,GAAe,EAAA;AAC/B,IAAA,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAe,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB,EAAE,QAAgB,EAAA;AAClD,IAAA,OAAO,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;AACpC;;AC7MM,MAAO,aAAc,SAAQ,aAA4B,CAAA;AAL/D,IAAA,WAAA,GAAA;;AAMS,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAA0B,UAAuB,EAAC,CAAC;AACvE,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAErC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AA0D3C,KAAA;IAxDiB,IAAI,GAAA;QAClB,MAAM,CACJ,MAAK;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;KACH;IAEe,UAAU,GAAA;AACxB,QAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAC1B;AAEO,IAAA,cAAc,CAAC,QAAgB,EAAA;QACrC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACjB;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,QAAQ,KAAK,CAAC,MAAM;AAClB,YAAA,KAAK,CAAC;gBACJ,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAyB,KAAK,CAAC;AACjC,YAAA;AACE,gBAAA,MAAM,KAAK,CAAC,CAAA,oBAAA,EAAuB,QAAQ,CAAA,CAAA,CAAG,CAAC,CAAC;SACnD;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;AACvC,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,SAAS,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACjD;AAEO,IAAA,cAAc,CAAC,GAAe,EAAA;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACjD;IAEO,iBAAiB,GAAA;AACvB,QAAA,MAAM,aAAa,GAAgB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAClE,QAAA,IAAI,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;QAEjD,OAAO,UAAU,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAEnD,YAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;gBAClE,KAAK,CAAC,MAAM,EAAE,CAAC;aAChB;SACF;KACF;8GA7DU,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,gRAFd,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCTY,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAiB3E;AAfQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEtF,QAAA,MAAM,MAAM,GAAwB;AAClC,YAAA,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EACtC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CACrC;YACD,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACGK,MAAO,uBAAwB,SAAQ,aAAkC,CAAA;AAjB/E,IAAA,WAAA,GAAA;;AAkBkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;QAG7C,IAAK,CAAA,KAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAmC,EAAE,CAAC,CAAC;AAyBlE,KAAA;;;IArBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC9D,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC5F,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;AACvE,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,cAAc,EACd,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CACjE,CAAC;KACH;;IAGM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;KACjD;8GAhCU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAbxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;GAQT,EAVS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAerB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;AACjC,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACbK,MAAO,uBAAwB,SAAQ,aAAkC,CAAA;AAN/E,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,qBAAqB,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;;QAGzE,IAAK,CAAA,KAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAmC,EAAE,CAAC,CAAC;AA+BlE,KAAA;;;IA3BiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,SAAS,EAAE;AAC5C,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;AACD,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,SAAS,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;KACF;;AAGM,IAAA,gBAAgB,CAAC,MAAgB,EAAA;AACtC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1C;AAED,QAAA,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,EAAE;AACtE,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;SACpC;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzB;8GAvCU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAGiB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAuB,EACrB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,uFANpE,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCVY,8BAA8B,GAAG,IAAI,cAAc,CAAiB,gCAAgC,EAAE;MAEtG,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;KAWrE;AATQ,IAAA,UAAU,CAAC,UAA+B,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAmB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEjF,QAAA,MAAM,MAAM,GAAmB;AAC7B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChH,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACLK,MAAO,kBAAmB,SAAQ,aAA6B,CAAA;AANrE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,sBAAsB,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;;AAG3E,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAwB,SAAS,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,EAAE,CAAC,CAAC;AAsB7D,KAAA;;;IAlBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACjD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;QACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;KACF;;IAGM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACjF;8GA7BU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EAE4B,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJtE,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;ACfD;;;;;AAKG;AACG,SAAU,WAAW,CAAI,KAAQ,EAAA;AACrC,IAAA,OAAO,KAAK,CAAC;AACf;;ACmBO,MAAM,cAAc,GAAmB,WAAW,CAAC;AACxD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,uFAAuF;AAChG,YAAA,KAAK,EAAE,2EAA2E;AAClF,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,GAAG,EAAE,uEAAuE;AAC5E,YAAA,KAAK,EAAE,+EAA+E;AACtF,YAAA,MAAM,EAAE,mFAAmF;AAC5F,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,6BAA6B;AACxC,SAAA;AACF,KAAA;AACF,CAAA;;AC3CD;;;;;AAKG;AACH,uBAAe;IACb,QAAQ;IACR,aAAa;IACb,UAAU;IACV,qBAAqB;IACrB,OAAO;IACP,MAAM;IACN,YAAY;IACZ,kBAAkB;IAClB,oBAAoB;IACpB,YAAY;IACZ,YAAY;CACD;;AClBb;;;;;AAKG;AACH,6BAAe,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,kBAAkB,CAAa;;ACNnG;;;;;AAKG;AACH,wBAAe,EAAc;;ACN7B;;;;;AAKG;AACH,8BAAe,CAAC,gBAAgB,CAAa;;ACN7C;;;;;AAKG;AACG,SAAU,WAAW,CAAI,KAAQ,EAAA;AACrC,IAAA,OAAO,KAAK,CAAC;AACf;;ACRA;;;;;AAKG;AACG,SAAU,aAAa,CAAC,KAAc,EAAA;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC7C;;ACUO,MAAM,qBAAqB,GAA0B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,4CAA4C;AACrD,YAAA,KAAK,EAAE,sCAAsC;AAC7C,YAAA,IAAI,EAAE,sCAAsC;AAC5C,YAAA,GAAG,EAAE,oCAAoC;AACzC,YAAA,KAAK,EAAE,wCAAwC;AAC/C,YAAA,MAAM,EAAE,0CAA0C;AACnD,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACF,CAAA;;ACrBM,MAAM,mBAAmB,GAAwB,WAAW,CAAC;AAClE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,OAAO;AACd,KAAA;AACF,CAAA;;ACOM,MAAM,mBAAmB,GAAwB,WAAW,CAAC;AAClE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,+EAA+E;AACrF,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,oKAAoK;AACtK,YAAA,KAAK,EACH,4IAA4I;AAC9I,YAAA,IAAI,EAAE,4IAA4I;AAClJ,YAAA,GAAG,EAAE,oIAAoI;AACzI,YAAA,KAAK,EACH,oJAAoJ;AACtJ,YAAA,MAAM,EACJ,4JAA4J;AAC/J,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,8CAA8C;AACvD,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,mDAAmD;AAC9D,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,yBAAyB;AAChC,KAAA;AACF,CAAA;;MC5CY,2BAA2B,GAAG,IAAI,cAAc,CAAc,6BAA6B,EAAE;MAE7F,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;KAuBlE;AArBQ,IAAA,UAAU,CAAC,UAA4B,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAgB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE9E,QAAA,MAAM,MAAM,GAAgB;YAC1B,SAAS,EAAE,OAAO,CAChB,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI,IAAI,SAAS;kBACtD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;kBACvB,CAAG,EAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAE,CAAA,EACvE,UAAU,CAAC,eAAe;AACxB,kBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;kBACvE,UAAU,CAAC,kBAAkB;sBAC3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAC9D,sBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACpC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAC7C;AACD,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC5G,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;AChBD;;AAEG;AAwBG,MAAO,eAAgB,SAAQ,aAA0B,CAAA;AAvB/D,IAAA,WAAA,GAAA;;AAwBkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;;AAGnD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,OAAO,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAA2C,SAAS,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAwC,SAAS,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA2B,EAAE,CAAC,CAAC;AAiB1D,KAAA;;;IAbiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACvD,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC7C,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;AACvC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GA1BU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAnBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAhBS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAqB9B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC;AAC1C,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,QAAQ;AACxB,qBAAA;AACF,iBAAA,CAAA;;;MCnCY,0BAA0B,GAAG,IAAI,cAAc,CAAa,4BAA4B,EAAE;MAE1F,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;KAiBjE;AAfQ,IAAA,UAAU,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE7E,QAAA,MAAM,MAAM,GAAe;AACzB,YAAA,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CACvD;AACD,YAAA,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7F,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACeK,MAAO,cAAe,SAAQ,aAAyB,CAAA;AA5B7D,IAAA,WAAA,GAAA;;AA6BkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,EAAE,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;QACtC,IAAS,CAAA,SAAA,GAAG,KAAK,EAA0B,CAAC;AA2BpD,KAAA;;;IAvBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,eAAe,EAAE,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AACjE,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAC1D,CAAC;KACH;;IAGM,cAAc,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,EAAE,CAAC;KAClB;8GAvCU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAxBf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EArBS,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA0B7C,cAAc,EAAA,UAAA,EAAA,CAAA;kBA5B1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC;AAC1E,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,OAAO;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACXM,MAAM,UAAU,GAAe,WAAW,CAAC;AAChD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,4CAA4C;AAClD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,kHAAkH;AACpH,YAAA,IAAI,EAAE,oGAAoG;AAC1G,YAAA,IAAI,EAAE,mGAAmG;AACzG,YAAA,GAAG,EAAE,+FAA+F;AACpG,YAAA,KAAK,EAAE,yGAAyG;AAChH,YAAA,MAAM,EACJ,8GAA8G;AACjH,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,2EAA2E;AACjF,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,uFAAuF;AAChG,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,GAAG,EAAE,uEAAuE;AAC5E,YAAA,KAAK,EAAE,+EAA+E;AACtF,YAAA,MAAM,EAAE,mFAAmF;AAC5F,SAAA;AACF,KAAA;AACF,CAAA;;ACzDD;;;;AAIG;MAeU,2BAA2B,CAAA;AAdxC,IAAA,WAAA,GAAA;AAekB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU,CAAC;AAS/B,KAAA;IAPC,OAAO,GAAA;AACL,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACtC;KACF;8GAZU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAdvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACD,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,UAAU;AACrB,4BAAA,MAAM,EAAE,gBAAgB;AACxB,4BAAA,OAAO,EAAE,iBAAiB;AAC3B,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MCjBY,0BAA0B,GAAG,IAAI,cAAc,CAAa,4BAA4B,EAAE;MAE1F,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;KAoBjE;AAlBQ,IAAA,UAAU,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE7E,QAAA,MAAM,MAAM,GAAe;AACzB,YAAA,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CACf,UAAU,CAAC,MAAM,IAAI,SAAS,IAAI,UAAU,CAAC,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CACrG,EACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC,CAC1D;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACpBD;;AAEG;AAOG,MAAO,cAAe,SAAQ,aAAyB,CAAA;AAN7D,IAAA,WAAA,GAAA;;QAOkB,IAAkB,CAAA,kBAAA,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGlD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,EAAE,CAAC,CAAC;AAezD,KAAA;;;IAXiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACvD,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;AACzD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAtBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,u3BAFf,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;ACwBM,MAAM,UAAU,GAAe,WAAW,CAAC;AAChD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,6CAA6C;AACnD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,sIAAsI;AACxI,YAAA,IAAI,EAAE,oHAAoH;AAC1H,YAAA,IAAI,EAAE,oHAAoH;AAC1H,YAAA,GAAG,EAAE,8GAA8G;AACnH,YAAA,KAAK,EACH,0HAA0H;AAC5H,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,IAAI,EAAE,oHAAoH;AAC3H,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,aAAa;AACjB,YAAA,EAAE,EAAE,eAAe;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;AACF,KAAA;AACF,CAAA;;MCvEY,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAY3E;AAVQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEtF,QAAA,MAAM,MAAM,GAAwB;AAClC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvE,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9C,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACEK,MAAO,uBAAwB,SAAQ,aAAkC,CAAA;AAX/E,IAAA,WAAA,GAAA;;AAYkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAkB,CAAA,kBAAA,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;QAG7C,IAAK,CAAA,KAAA,GAAG,KAAK,CAAyB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAmC,EAAE,CAAC,CAAC;AAoBlE,KAAA;;;IAhBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;AACzD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CAClE,CAAC;KACH;8GA3BU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAPxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;GAKT,EAPe,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAoB,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAS7C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC;AACzD,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MClBY,+BAA+B,GAAG,IAAI,cAAc,CAAkB,iCAAiC,EAAE;MAEzG,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;KAWtE;AATQ,IAAA,UAAU,CAAC,UAAgC,EAAA;AAChD,QAAA,MAAM,KAAK,GAAoB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAElF,QAAA,MAAM,MAAM,GAAoB;YAC9B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACZD;;AAEG;AAUG,MAAO,mBAAoB,SAAQ,aAA8B,CAAA;AATvE,IAAA,WAAA,GAAA;;AAUkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,sBAAsB,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;;AAG3E,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAyB,SAAS,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA+B,EAAE,CAAC,CAAC;AAgB9D,KAAA;;;IAZiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;QACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;KACF;8GApBU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EAE2B,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPtE,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC1B,oBAAA,IAAI,EAAE;AACJ,wBAAA,mBAAmB,EAAE,YAAY;AAClC,qBAAA;AACF,iBAAA,CAAA;;;ACFM,MAAM,eAAe,GAAoB,WAAW,CAAC;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;AACF,CAAA;;ACCM,MAAM,mBAAmB,GAAwB,WAAW,CAAC;AAClE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,4DAA4D;AAClE,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,2FAA2F;AACpG,YAAA,IAAI,EAAE,4EAA4E;AAClF,YAAA,IAAI,EAAE,+EAA+E;AACrF,YAAA,GAAG,EAAE,2EAA2E;AAChF,YAAA,KAAK,EAAE,mFAAmF;AAC1F,YAAA,MAAM,EAAE,uFAAuF;AAChG,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,yCAAyC;AAChD,KAAA;AACF,CAAA;;AC+BM,MAAM,WAAW,GAAgB,WAAW,CAAC;AAClD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EACL,4GAA4G;AAC9G,YAAA,IAAI,EAAE,yGAAyG;AAChH,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EACH,sPAAsP;AACxP,gBAAA,OAAO,EACL,2OAA2O;AAC9O,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EACH,wLAAwL;AAC1L,gBAAA,OAAO,EACL,mQAAmQ;AACtQ,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EACH,gKAAgK;AAClK,gBAAA,OAAO,EACL,mOAAmO;AACtO,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EACH,sKAAsK;AACxK,gBAAA,OAAO,EACL,2OAA2O;AAC9O,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EACH,mOAAmO;AACrO,gBAAA,OAAO,EACL,4PAA4P;AAC/P,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EACH,kLAAkL;AACpL,gBAAA,OAAO,EACL,2PAA2P;AAC9P,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EACH,4KAA4K;AAC9K,gBAAA,OAAO,EACL,mPAAmP;AACtP,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EACH,sIAAsI;AACxI,gBAAA,OAAO,EACL,2PAA2P;AAC9P,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,IAAI,EAAE,sJAAsJ;AAC5J,YAAA,GAAG,EAAE,iJAAiJ;AACtJ,YAAA,IAAI,EAAE,sJAAsJ;AAC5J,YAAA,IAAI,EAAE,yJAAyJ;AAC/J,YAAA,IAAI,EAAE,sJAAsJ;AAC5J,YAAA,MAAM,EACJ,gKAAgK;AAClK,YAAA,KAAK,EACH,2JAA2J;AAC7J,YAAA,IAAI,EAAE,sJAAsJ;AAC7J,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EACH,+JAA+J;AACjK,gBAAA,OAAO,EACL,+NAA+N;AAClO,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,KAAK,EACH,4JAA4J;AAC9J,gBAAA,OAAO,EACL,2NAA2N;AAC9N,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EACH,gKAAgK;AAClK,gBAAA,OAAO,EACL,+NAA+N;AAClO,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EACH,iKAAiK;AACnK,gBAAA,OAAO,EACL,mOAAmO;AACtO,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EACH,+JAA+J;AACjK,gBAAA,OAAO,EACL,+NAA+N;AAClO,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,KAAK,EACH,oMAAoM;AACtM,gBAAA,OAAO,EACL,mOAAmO;AACtO,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EACH,0KAA0K;AAC5K,gBAAA,OAAO,EACL,uQAAuQ;AAC1Q,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,mBAAmB;AACvB,YAAA,EAAE,EAAE,mBAAmB;AACvB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,uBAAuB;AAC5B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE,YAAY;AACvB,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,wIAAwI;AAC9I,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE,YAAY;AACvB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,mBAAmB;AACvB,YAAA,EAAE,EAAE,mBAAmB;AACvB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,uBAAuB;AAC5B,SAAA;AACF,KAAA;AACF,CAAA;;ACjND;;;;;;;;AAQG;MACmB,kBAAkB,CAAA;AAAxC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,EAAO,CAAC,CAAC;KAqClC;AAnCC;;AAEG;AACH,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;KACjC;AAED;;;;;AAKG;AACI,IAAA,MAAM,CAAoB,GAAM,EAAA;AACrC,QAAA,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3C;AAED;;;;;AAKG;IACI,GAAG,CAAoB,GAAM,EAAE,IAAU,EAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1E;AAED;;;;AAIG;AACI,IAAA,QAAQ,CAAC,KAAQ,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;AACF,CAAA;AAED;;;AAGG;AAEG,MAAgB,wBAA4B,SAAQ,kBAAqB,CAAA;8GAAzD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADpB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACV,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAD7C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACpDlC;;AAEG;MAImB,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAF5B,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEE,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCFY,sCAAsC,GAAG,IAAI,cAAc,CACtE,wCAAwC,EACxC;MAEW,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;KAW7E;AATQ,IAAA,UAAU,CAAC,UAAqC,EAAA;AACrD,QAAA,MAAM,KAAK,GAAyB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEvF,QAAA,MAAM,MAAM,GAAyB;YACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACMK,MAAO,wBAAyB,SAAQ,aAAmC,CAAA;AAhBjF,IAAA,WAAA,GAAA;;AAiBkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,EACxC,wBAAoC,EACrC,CAAC;AACc,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoC,EAAE,CAAC,CAAC;AA0DnE,KAAA;;;IAtDiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;QAClB,eAAe,CACb,MAAK;YACH,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE9D,IACE,iBAAiB,KAAK,MAAM;AAC5B,iBAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,EACjF;gBACA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5C,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aAChD;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACnD;YAED,MAAM,CACJ,MAAK;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;AAEvD,gBAAA,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC3C,gBAAA,KAAK,KAAK,MAAM;sBACZ,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;sBAC9C,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACvD,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;SACH,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,KAAK,EACL,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,YAAY,CAAC,CACxD,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,aAAa,CAAC,CACzD,CAAC;KACH;;IAGM,OAAO,GAAA;QACZ,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO;YAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;;YACjG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACnD;8GAlEU,wBAAwB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAZzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATwB,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAc3B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAhBpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;AACvC,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;AAOT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;AChBM,MAAM,oBAAoB,GAAyB,WAAW,CAAC;AACpE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,gMAAgM;AACvM,KAAA;AACF,CAAA;;MCTY,qCAAqC,GAAG,IAAI,cAAc,CACrE,uCAAuC,EACvC;MAEW,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qCAAqC,CAAC,CAAC;KAW5E;AATQ,IAAA,UAAU,CAAC,UAAqC,EAAA;AACrD,QAAA,MAAM,KAAK,GAAyB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEvF,QAAA,MAAM,MAAM,GAAyB;YACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACTK,MAAO,wBAAyB,SAAQ,aAAmC,CAAA;AANjF,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGvD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AAU/D,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,wBAAwB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,wBAAwB,iTAFzB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACb,iBAAA,CAAA;;;MCNY,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAY3E;AAVQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEtF,QAAA,MAAM,MAAM,GAAwB;YAClC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACLK,MAAO,uBAAwB,SAAQ,aAAkC,CAAA;AAX/E,IAAA,WAAA,GAAA;;AAYkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGvD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA+B,EAAE,CAAC,CAAC;AAU9D,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAPxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FASN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCXY,kCAAkC,GAAG,IAAI,cAAc,CAClE,oCAAoC,EACpC;MAEW,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;KAWzE;AATQ,IAAA,UAAU,CAAC,UAAkC,EAAA;AAClD,QAAA,MAAM,KAAK,GAAsB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEpF,QAAA,MAAM,MAAM,GAAsB;YAChC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACRK,MAAO,qBAAsB,SAAQ,aAAgC,CAAA;AAN3E,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGvD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiC,EAAE,CAAC,CAAC;AAUhE,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,qBAAqB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,8SAFtB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCPY,6BAA6B,GAAG,IAAI,cAAc,CAAgB,+BAA+B,EAAE;MAEnG,oBAAoB,CAAA;AAAjC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;KAoBpE;AAlBQ,IAAA,UAAU,CAAC,UAA8B,EAAA;AAC9C,QAAA,MAAM,KAAK,GAAkB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhF,QAAA,MAAM,MAAM,GAAkB;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,YAAA,cAAc,EAAE,OAAO,CACrB,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACzC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAChD;YACD,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACzC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;SAChD,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACZD;;AAEG;AAiCG,MAAO,iBAAkB,SAAQ,aAA4B,CAAA;AAhCnE,IAAA,WAAA,GAAA;;AAoCkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,oBAAoB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,sBAAsB,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,uBAAuB,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;;AAG7E,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA0B,eAAe,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA6B,EAAE,CAAC,CAAC;;QA4B3D,IAAC,CAAA,CAAA,GAAG,CAAC,CAAC;QACN,IAAC,CAAA,CAAA,GAAG,CAAC,CAAC;QACN,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AA+CX,KAAA;;;IAzEiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/C,YAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,cAAc,EACd,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CACjE,CAAC;KACH;IAEe,MAAM,GAAA;QACpB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;KACF;IAOD,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;IAED,iBAAiB,GAAA;AACf,QAAA,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YACtE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChD,YAAA,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;SACzC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAA4B,KAAI;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAK;AACtE,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,QAAA,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACjD;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;AAED,IAAA,eAAe,CAAC,GAA4B,EAAA;QAC1C,QAAQ,GAAG;AACT,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,QAAQ,CAAC;AAClB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,MAAM,CAAC;AAChB,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,OAAO,CAAC;SAClB;KACF;8GA3FU,iBAAiB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,ozBAO2B,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EACnB,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,SAAA,EACtB,wBAAwB,EArCxE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBT,EAzBS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA8BrB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhC7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;AACjC,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,kBAAkB,EAAE,kBAAkB;AACvC,qBAAA;AACF,iBAAA,CAAA;8BAEwB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACA,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;;;ACZd,MAAM,aAAa,GAAkB,WAAW,CAAC;AACtD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,EAAE;AACT,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,kUAAkU;AACzU,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,gDAAgD;AACvD,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,8FAA8F;AACpG,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,cAAc,EAAE,EAAE;AACnB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,yDAAyD;AAChE,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;AACF,CAAA;;AC5DY,MAAA,iBAAiB,GAAsB;AAClD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,kKAAkK;AACzK,KAAA;;;ACFI,MAAM,oBAAoB,GAAyB,WAAW,CAAC;AACpE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,8CAA8C;AACrD,KAAA;AACF,CAAA;;ACDM,MAAM,mBAAmB,GAAwB,WAAW,CAAC;AAClE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,EAAE;AACT,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,0DAA0D;AACjE,KAAA;AACF,CAAA;;ACZM,MAAM,mBAAmB,GAA4B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE,yKAAyK;AAChL,CAAA,EAAE;AAIU,MAAA,2BAA2B,GAAwB;AAC9D,IAAA,SAAS,EAAE,EAAE;;;MCXF,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAW3E;AATQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAA4B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1F,QAAA,MAAM,MAAM,GAAwB;AAClC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SAC/B,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;MChBY,+BAA+B,GAAG,IAAI,cAAc,CAC/D,iCAAiC,EACjC;MAEW,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;KAWtE;AATQ,IAAA,UAAU,CAAC,UAA+B,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAuB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAErF,QAAA,MAAM,MAAM,GAAmB;AAC7B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SAC/B,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACPK,MAAO,kBAAmB,SAAQ,aAAwC,CAAA;AANhF,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;;AAGtD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkC,MAAM,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkC,IAAI,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,CAAC,CAAC;AAC/E,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA2D,SAAS,CAAC,CAAC;AAC/F,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAiD,SAAS,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA6C,EAAE,CAAC,CAAC;AAgB5E,KAAA;;;IAZiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC3C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACrD,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAxBU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,8tCChB/B,qzDAgDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpCY,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAa,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIzC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;iCACI,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAC3C,qBAAqB,EAAA,QAAA,EAAA,qzDAAA,EAAA,CAAA;;;MEFX,kBAAkB,CAAA;AALxC,IAAA,WAAA,GAAA;QAMY,IAAc,CAAA,cAAA,GAAG,MAAM,CAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;AAEjD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,kBAAkB,GAAuB,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAYxF,KAAA;IAVC,QAAQ,GAAA;QACN,MAAM,CACJ,MAAK;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,SAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CACrD,CAAC;KACH;8GAbmB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;;AAEhB,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE;AACnD,iBAAA,CAAA;;;ACCK,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAJtD,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAiCA,2BAAsC,CAAC,CAAC;AAEhG,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;;AAG9D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkD,EAAE,CAAC,CAAC;AAYjF,KAAA;;;IARU,UAAU,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACjD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACxC;8GAhBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA,CAAA;;;ACIM,MAAM,oBAAoB,GAA6B,WAAW,CAAC;AACxE,IAAA,IAAI,EAAE,+CAA+C;AACrD,IAAA,UAAU,EAAE;AACV,QAAA,OAAO,EAAE,oCAAoC;AAC7C,QAAA,KAAK,EAAE,gCAAgC;AACxC,KAAA;AACF,CAAA,EAAE;AAIU,MAAA,4BAA4B,GAAyB;AAChE,IAAA,SAAS,EAAE,EAAE;;;MCdF,qCAAqC,GAAG,IAAI,cAAc,CACrE,uCAAuC,EACvC;MAEW,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qCAAqC,CAAC,CAAC;KAW5E;AATQ,IAAA,UAAU,CAAC,UAAqC,EAAA;AACrD,QAAA,MAAM,KAAK,GAA6B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE3F,QAAA,MAAM,MAAM,GAAyB;AACnC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC7F,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;AChBK,MAAO,eAAgB,SAAQ,kBAAkB,CAAA;AAJvD,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAkCC,4BAAuC,CAAC,CAAC;AAElG,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;;AAG/D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAmD,EAAE,CAAC,CAAC;AAelF,KAAA;;;IAXU,UAAU,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACjD,YAAA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AAC5C,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvC,QAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAC1B;8GAnBU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;;ACCM,MAAM,kBAAkB,GAA2B,WAAW,CAAC;AACpE,IAAA,IAAI,EAAE,0CAA0C;AACjD,CAAA,EAAE;AAIU,MAAA,0BAA0B,GAAuB;AAC5D,IAAA,SAAS,EAAE,EAAE;;;MCXF,mCAAmC,GAAG,IAAI,cAAc,CACnE,qCAAqC,EACrC;MAEW,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAC;KAW1E;AATQ,IAAA,UAAU,CAAC,UAAmC,EAAA;AACnD,QAAA,MAAM,KAAK,GAA2B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEzF,QAAA,MAAM,MAAM,GAAuB;AACjC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SAC/B,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACZK,MAAO,aAAc,SAAQ,kBAAkB,CAAA;AAJrD,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAgCC,0BAAqC,CAAC,CAAC;AAE9F,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;;AAG7D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiD,EAAE,CAAC,CAAC;AAYhF,KAAA;;;IARU,UAAU,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACjD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACxC;8GAhBU,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;ACoBM,MAAM,mBAAmB,GAA4B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE,mDAAmD;AACzD,IAAA,OAAO,EACL,+KAA+K;AACjL,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EACL,qMAAqM;AACvM,QAAA,QAAQ,EAAE,EAAE;AACb,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,0CAA0C;AACjD,QAAA,IAAI,EAAE,OAAO;AACd,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,EAAE,aAAa;AACjB,QAAA,EAAE,EAAE,eAAe;AACnB,QAAA,EAAE,EAAE,aAAa;AAClB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,OAAO,EACL,sJAAsJ;AACxJ,QAAA,KAAK,EACH,4IAA4I;AAC/I,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,8GAA8G;AACpH,YAAA,OAAO,EACL,qHAAqH;AACvH,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EACL,qHAAqH;AACvH,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,EAAE,EAAE,EAAE;AACP,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EACL,yHAAyH;AAC3H,gBAAA,KAAK,EACH,iHAAiH;AACpH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,8GAA8G;AACpH,YAAA,OAAO,EACL,qHAAqH;AACvH,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EACL,qHAAqH;AACvH,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,EAAE,EAAE,EAAE;AACP,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EACL,yHAAyH;AAC3H,gBAAA,KAAK,EACH,iHAAiH;AACpH,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,4GAA4G;AAClH,YAAA,OAAO,EACL,iJAAiJ;AACnJ,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EACL,iJAAiJ;AACnJ,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,EAAE,EAAE,EAAE;AACP,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EACL,qJAAqJ;AACvJ,gBAAA,KAAK,EACH,6IAA6I;AAChJ,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,EAAE;AAIU,MAAA,2BAA2B,GAAwB;AAC9D,IAAA,SAAS,EAAE,EAAE;;;MCrHF,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KA+B3E;AA7BQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAA4B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1F,QAAA,MAAM,MAAM,GAAwB;YAClC,SAAS,EAAE,OAAO,CAChB,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EACtF,UAAU,CAAC,iBAAiB;AAC1B,gBAAA,UAAU,CAAC,QAAQ;AACnB,gBAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnF,UAAU,CAAC,iBAAiB;gBAC1B,CAAC,UAAU,CAAC,QAAQ;AACpB,gBAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EACjF,UAAU,CAAC,iBAAiB;gBAC1B,CAAC,UAAU,CAAC,QAAQ;gBACpB,UAAU,CAAC,QAAQ,KAAK,UAAU;AAClC,gBAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAC3D,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAEvG,CAAC,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,EAC3C,CAAC,UAAU,CAAC,iBAAiB,IAAI,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7F,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5F,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,EAC5G,CAAC,UAAU,CAAC,iBAAiB,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EACvF,CAAC,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAC7D;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;AC5BK,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAPtD,IAAA,WAAA,GAAA;;AAQqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAiCC,2BAAsC,CAAC,CAAC;AAEhG,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;;AAG9D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkD,EAAE,CAAC,CAAC;AAiBjF,KAAA;;;IAbU,UAAU,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YACjD,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACxE,YAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACpC,YAAA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AAC5C,YAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACxC,YAAA,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;AAC9D,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACxC;8GArBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,yCAAyC;AAC7D,qBAAA;AACF,iBAAA,CAAA;;;ACOM,MAAM,mBAAmB,GAA4B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,OAAO,EAAE,+BAA+B;AACxC,IAAA,UAAU,EAAE;AACV,QAAA,OAAO,EAAE,oCAAoC;AAC7C,QAAA,KAAK,EAAE,gCAAgC;AACxC,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,8NAA8N;AACpO,YAAA,OAAO,EAAE,yFAAyF;AAClG,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,yFAAyF;AAClG,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,KAAK,EAAE,gCAAgC;AACxC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,0RAA0R;AAChS,YAAA,OAAO,EACL,mHAAmH;AACrH,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EACL,mHAAmH;AACrH,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,8DAA8D;AACvE,gBAAA,KAAK,EAAE,0DAA0D;AAClE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,oNAAoN;AAC1N,YAAA,OAAO,EAAE,yFAAyF;AAClG,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,yFAAyF;AAClG,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,KAAK,EAAE,gCAAgC;AACxC,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,EAAE;AAIU,MAAA,2BAA2B,GAAwB;AAC9D,IAAA,SAAS,EAAE,EAAE;;;MClEF,oCAAoC,GAAG,IAAI,cAAc,CACpE,sCAAsC,EACtC;MAEW,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAuB3E;AArBQ,IAAA,UAAU,CAAC,UAAoC,EAAA;AACpD,QAAA,MAAM,KAAK,GAA4B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1F,QAAA,MAAM,MAAM,GAAwB;YAClC,SAAS,EAAE,OAAO,CAChB,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EACtF,UAAU,CAAC,iBAAiB;AAC1B,gBAAA,UAAU,CAAC,QAAQ;AACnB,gBAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnF,UAAU,CAAC,iBAAiB;gBAC1B,CAAC,UAAU,CAAC,QAAQ;gBACpB,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAE3D,CAAC,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,EAC3C,CAAC,UAAU,CAAC,iBAAiB,IAAI,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7F,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CACvE;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACnBK,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAPtD,IAAA,WAAA,GAAA;;AAQqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAiCC,2BAAsC,CAAC,CAAC;AAEhG,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkD,EAAE,CAAC,CAAC;AAejF,KAAA;;;IAXU,UAAU,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YACjD,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACxE,YAAA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AAC5C,YAAA,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;AAC9D,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACxC;8GApBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,YAAY,EAAE,kBAAkB;AACjC,qBAAA;AACF,iBAAA,CAAA;;;ACoCM,MAAM,cAAc,GAAuB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE,EAAE;AACT,CAAA,EAAE;AAIU,MAAA,sBAAsB,GAAmB;AACpD,IAAA,SAAS,EAAE,EAAE;;;MCnDF,8BAA8B,GAAG,IAAI,cAAc,CAAiB,gCAAgC,EAAE;MAEtG,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;KAsBrE;AApBQ,IAAA,UAAU,CAAC,UAA+B,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAmB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEjF,QAAA,MAAM,MAAM,GAAmB;YAC7B,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5C,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACvG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACpC,UAAU,CAAC,SAAS,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAChF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CACjC;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACjBD;;AAEG;AAOG,MAAO,kBAAmB,SAAQ,aAA6B,CAAA;AANrE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;;AAGtD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAwB,SAAS,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAuC,SAAS,CAAC,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,EAAE,CAAC,CAAC;AAmB7D,KAAA;;;IAfiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACvD,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/C,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GA9BU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,qqDAFnB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;AC2CM,MAAM,cAAc,GAAmB,WAAW,CAAC;AACxD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,4DAA4D;AAClE,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,OAAO,EAAE,6DAA6D;AACtE,YAAA,IAAI,EAAE,6DAA6D;AACnE,YAAA,IAAI,EAAE,0DAA0D;AAChE,YAAA,KAAK,EAAE,2DAA2D;AAClE,YAAA,GAAG,EAAE,yDAAyD;AAC9D,YAAA,MAAM,EAAE,4DAA4D;AACpE,YAAA,MAAM,EAAE,4DAA4D;AACpE,YAAA,MAAM,EAAE,+DAA+D;AACvE,YAAA,IAAI,EAAE,0DAA0D;AACjE,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,mCAAmC;AAC/C,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,WAAW,EAAE,kCAAkC;AAC/C,YAAA,aAAa,EAAE,kBAAkB;AACjC,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,cAAc,EAAE,iBAAiB;AACjC,YAAA,aAAa,EAAE,kCAAkC;AACjD,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,cAAc,EAAE,iCAAiC;AAClD,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,YAAY,EAAE,iCAAiC;AAC/C,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,aAAa,EAAE,iCAAiC;AAChD,YAAA,MAAM,EAAE,oDAAoD;AAC5D,YAAA,cAAc,EAAE,kCAAkC;AAClD,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,eAAe,EAAE,oCAAoC;AACrD,YAAA,cAAc,EAAE,kBAAkB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,cAAc;AACzB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,iBAAiB;AACtB,SAAA;AACF,KAAA;AACF,CAAA;;MC5HY,+BAA+B,GAAG,IAAI,cAAc,CAAiB,iCAAiC,EAAE;MAExG,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;KAWtE;AATQ,IAAA,UAAU,CAAC,UAA+B,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEjE,QAAA,MAAM,MAAM,GAAmB;YAC7B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACNK,MAAO,kBAAmB,SAAQ,aAA6B,CAAA;AANrE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;;AAGjD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,EAAE,CAAC,CAAC;AAU7D,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,2SAFnB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCPY,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;MAEW,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAWxE;AATQ,IAAA,UAAU,CAAC,UAAiC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnF,QAAA,MAAM,MAAM,GAAqB;YAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACRK,MAAO,oBAAqB,SAAQ,aAA+B,CAAA;AANzE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;;AAGjD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AAU/D,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,6SAFrB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCPY,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;MAEW,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAaxE;AAXQ,IAAA,UAAU,CAAC,UAAiC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnF,QAAA,MAAM,MAAM,GAAqB;YAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,qBAAqB,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YAChD,sBAAsB,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;SACnD,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACQK,MAAO,oBAAqB,SAAQ,aAA+B,CAAA;AApBzE,IAAA,WAAA,GAAA;;AAqBkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AAkB/D,KAAA;;;IAdiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAC1D,CAAC;KACH;8GAvBU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAhBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;GAcT,EAhBS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAkBrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBApBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;AACjC,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCzBY,0BAA0B,GAAG,IAAI,cAAc,CAAa,4BAA4B,EAAE;MAE1F,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;KAcjE;AAZQ,IAAA,UAAU,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE7E,QAAA,MAAM,MAAM,GAAe;YACzB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,YAAA,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC3F,YAAA,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzF,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/C,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACTD;;AAEG;AAyBG,MAAO,cAAe,SAAQ,aAAyB,CAAA;AAxB7D,IAAA,WAAA,GAAA;;AAyBmB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;;AAGrD,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAE9D,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;;;AAMlC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAuB,QAAQ,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,EAAE,CAAC,CAAC;AAoFzD,KAAA;;;IAhFiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;;QAElB,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACzB,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAC3B,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC,CACpD;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAClC;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;KACF;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC5E;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;KAC9B;AAED,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;AAED,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;8GAzGU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIuB,oBAAoB,EACtB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,mGAChB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGJ,WAAW,EA7BjE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAhBS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAsBN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAxB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,oBAAoB,EAAE,0BAA0B;AACjD,qBAAA;AACF,iBAAA,CAAA;;;ACYM,MAAM,UAAU,GAAe,WAAW,CAAC;AAChD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,EAAE;AACT,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,+HAA+H;AACrI,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,2BAA2B;AACvC,YAAA,YAAY,EAAE,4BAA4B;AAC1C,YAAA,WAAW,EAAE,yBAAyB;AACtC,YAAA,aAAa,EAAE,4BAA4B;AAC3C,YAAA,MAAM,EAAE,6BAA6B;AACrC,YAAA,cAAc,EAAE,0BAA0B;AAC1C,YAAA,aAAa,EAAE,yBAAyB;AACxC,YAAA,eAAe,EAAE,0BAA0B;AAC3C,YAAA,cAAc,EAAE,uBAAuB;AACxC,SAAA;AACF,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,kCAAkC;AACxC,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,sDAAsD;AAC7D,KAAA;AACF,CAAA;;AChEM,MAAM,gBAAgB,GAAqB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,+EAA+E;AACtF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,mDAAmD;AAC1D,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,2KAA2K;AAClL,KAAA;AACF,CAAA;;AChBM,MAAM,cAAc,GAAmB,WAAW,CAAC;AACxD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,qBAAqB;AAC5B,KAAA;AACF,CAAA;;ACJM,MAAM,gBAAgB,GAAqB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,yFAAyF;AAChG,KAAA;AACF,CAAA;;MCVY,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;MAEW,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAWxE;AATQ,IAAA,UAAU,CAAC,UAAiC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnF,QAAA,MAAM,MAAM,GAAqB;YAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACRK,MAAO,oBAAqB,SAAQ,aAA+B,CAAA;AANzE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;;AAGnD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AAU/D,KAAA;;;IANiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAbU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,6SAFrB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCPY,mCAAmC,GAAG,IAAI,cAAc,CACnE,qCAAqC,EACrC;MAEW,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAC;KAY1E;AAVQ,IAAA,UAAU,CAAC,UAAmC,EAAA;AACnD,QAAA,MAAM,KAAK,GAAuB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAErF,QAAA,MAAM,MAAM,GAAuB;AACjC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzE,sBAAsB,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACjD,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACFK,MAAO,sBAAuB,SAAQ,aAAiC,CAAA;AAV7E,IAAA,WAAA,GAAA;;AAWkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACjD,IAAe,CAAA,eAAA,GAAG,KAAK,CAAkB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;;QAG3E,IAAK,CAAA,KAAA,GAAG,KAAK,CAAqB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkC,EAAE,CAAC,CAAC;AAWjE,KAAA;;;IAPiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC;AACjE,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAfU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EANvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EALS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAON,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCdY,kCAAkC,GAAG,IAAI,cAAc,CAClE,oCAAoC,EACpC;MAEW,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;KAWzE;AATQ,IAAA,UAAU,CAAC,UAAkC,EAAA;AAClD,QAAA,MAAM,KAAK,GAAsB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEpF,QAAA,MAAM,MAAM,GAAsB;YAChC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACEK,MAAO,qBAAsB,SAAQ,aAAgC,CAAA;AAb3E,IAAA,WAAA,GAAA;;AAckB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAChD,IAAe,CAAA,eAAA,GAAG,KAAK,CAAkB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiC,EAAE,CAAC,CAAC;AAwBhE,KAAA;;;IApBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,aAAa,CAAC,CACzD,CAAC;KACH;;IAGM,OAAO,GAAA;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC;QAEpD,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;KACjD;8GA9BU,qBAAqB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,EATtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EALS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAU1B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;MCjBY,2BAA2B,GAAG,IAAI,cAAc,CAAc,6BAA6B,EAAE;MAE7F,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;KAiBlE;AAfQ,IAAA,UAAU,CAAC,UAA4B,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAgB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE9E,QAAA,MAAM,MAAM,GAAgB;YAC1B,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CACvC;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACfD;;AAEG;AAOG,MAAO,eAAgB,SAAQ,aAA0B,CAAA;AAN/D,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,kBAAkB,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAC;;AAGnE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA2B,EAAE,CAAC,CAAC;AA2B1D,KAAA;;;IAvBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACjD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,SAAS,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;KACF;;AAGM,IAAA,gBAAgB,CAAC,MAAgB,EAAA;AACtC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzB;8GAtCU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,2jCAEsB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACnB,qBAAqB,EACpB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,uFAN9D,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;ACSM,MAAM,WAAW,GAAgB,WAAW,CAAC;AAClD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,iDAAiD;AACvD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,+EAA+E;AACxF,YAAA,IAAI,EAAE,gEAAgE;AACvE,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACF,CAAA;;ACpCM,MAAM,gBAAgB,GAAqB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,gEAAgE;AACvE,KAAA;AACF,CAAA;;ACCM,MAAM,kBAAkB,GAAuB,WAAW,CAAC;AAChE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,oDAAoD;AAC1D,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,4OAA4O;AACnP,KAAA;AACF,CAAA;;ACtBD;;;;;;;AAOG;MAeU,iCAAiC,CAAA;AAO5C,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KACpC;AAED;;AAEG;AACH,IAAA,WAAA,GAAA;QAbiB,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AAE3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE3C,IAAS,CAAA,SAAA,GAAG,MAAM,CAAU,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAUlE,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC;KACrE;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACpD;8GApBU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAd7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,cAAc,EAAE,kBAAkB;AACnC,qBAAA;AACD,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,gBAAgB;AAC3B,4BAAA,MAAM,EAAE,sBAAsB;AAC9B,4BAAA,OAAO,EAAE,uBAAuB;AACjC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MCrBY,gCAAgC,GAAG,IAAI,cAAc,CAAkB,kCAAkC,EAAE;MAE3G,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;KAWvE;AATQ,IAAA,UAAU,CAAC,UAAgC,EAAA;AAChD,QAAA,MAAM,KAAK,GAAoB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAElF,QAAA,MAAM,MAAM,GAAoB;AAC9B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxE,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACAK,MAAO,mBAAoB,SAAQ,aAA8B,CAAA;AATvE,IAAA,WAAA,GAAA;;QAUkB,IAAkB,CAAA,kBAAA,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAwB,CAAA,wBAAA,GAAG,MAAM,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;;QAGjE,IAAK,CAAA,KAAA,GAAG,KAAK,CAAqB,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC;AACvE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA+B,EAAE,CAAC,CAAC;AAe9D,KAAA;;;IAXiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;;IAGM,OAAO,GAAA;QACZ,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KACvE;8GAtBU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,yeALpB,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC1B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACHM,MAAM,eAAe,GAAoB,WAAW,CAAC;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,+LAA+L;AACrM,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,2HAA2H;AAC7H,YAAA,IAAI,EAAE,+GAA+G;AACtH,SAAA;AACF,KAAA;AACF,CAAA;;ACbM,MAAM,iBAAiB,GAAsB,WAAW,CAAC;AAC9D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,0PAA0P;AACjQ,KAAA;AACF,CAAA;;MCNY,uCAAuC,GAAG,IAAI,cAAc,CACvE,oCAAoC,EACpC;MAEW,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAC;KAW9E;AATQ,IAAA,UAAU,CAAC,UAAsC,EAAA;AACtD,QAAA,MAAM,KAAK,GAA0B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAExF,QAAA,MAAM,MAAM,GAA0B;AACpC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxE,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACXK,MAAO,yBAA0B,SAAQ,aAAoC,CAAA;AANnF,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;QACpD,IAAe,CAAA,eAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAsB,CAAA,sBAAA,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;AAGrF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;AACzG,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAqC,EAAE,CAAC,CAAC;AAgBpE,KAAA;;;IAZiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE;AACzE,YAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;KACF;8GAtBU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,icAF1B,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;ACCM,MAAM,qBAAqB,GAA0B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,gMAAgM;AACtM,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,wCAAwC;AACjD,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,GAAG,EAAE,gCAAgC;AACrC,YAAA,KAAK,EAAE,oCAAoC;AAC3C,YAAA,MAAM,EAAE,sCAAsC;AAC/C,SAAA;AACF,KAAA;AACF,CAAA;;MCrBY,+BAA+B,GAAG,IAAI,cAAc,CAAiB,iCAAiC,EAAE;MAExG,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;KAWtE;AATQ,IAAA,UAAU,CAAC,UAA+B,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAmB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEjF,QAAA,MAAM,MAAM,GAAmB;AAC7B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAClH,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACCK,MAAO,kBAAmB,SAAQ,aAA6B,CAAA;AAXrE,IAAA,WAAA,GAAA;;AAYkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAwB,SAAS,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA2B,cAAc,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,EAAE,CAAC,CAAC;AAwB7D,KAAA;;;IApBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,YAAY,EACZ,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAC/D,CAAC;KACH;;IAGM,OAAO,GAAA;QACZ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KACpC;8GA/BU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAPnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAEW,sBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAHX,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAQZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,QAAQ,EAAE,CAAA;;AAEW,sBAAA,CAAA;AACrB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACOM,MAAM,cAAc,GAAmB,WAAW,CAAC;AACxD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,sEAAsE;AAC5E,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,IAAI,EAAE,8CAA8C;AACpD,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,GAAG,EAAE,YAAY;AAClB,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,eAAe,EAAE,6BAA6B;AAC9C,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,aAAa,EAAE,2BAA2B;AAC1C,YAAA,cAAc,EAAE,4BAA4B;AAC5C,YAAA,YAAY,EAAE,0BAA0B;AACxC,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,WAAW,EAAE,eAAe;AAC7B,SAAA;AACF,KAAA;AACF,CAAA;;MCzCY,uCAAuC,GAAG,IAAI,cAAc,CACvE,yCAAyC,EACzC;MAEW,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,uCAAuC,CAAC,CAAC;KAY9E;AAVQ,IAAA,UAAU,CAAC,UAAsC,EAAA;AACtD,QAAA,MAAM,KAAK,GAA0B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAExF,QAAA,MAAM,MAAM,GAA0B;YACpC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACvBD;;;;AAIG;MAKU,gBAAgB,CAAA;AAJ7B,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAW3C,KAAA;AATC;;;;;AAKG;AACH,IAAA,SAAS,CAAC,CAAS,EAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;KACnD;8GAXU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCNY,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;MAEW,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAYxE;AAVQ,IAAA,UAAU,CAAC,UAAiC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnF,QAAA,MAAM,MAAM,GAAqB;AAC/B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvE,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACWK,MAAO,oBAAqB,SAAQ,aAA+B,CAAA;AApBzE,IAAA,WAAA,GAAA;;QAqBkB,IAAkB,CAAA,kBAAA,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAwB,CAAA,wBAAA,GAAG,MAAM,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,yBAAyB,GAAG,MAAM,CAAwC,yBAAyB,EAAE;AACnH,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;AACa,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAmC,oBAAoB,CAAC,CAAC;;AAG/F,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,oBAAoB,EAAG,KAAK,EAAE,CAAC,CAAC;AAC3G,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AA0B/D,KAAA;;;IAtBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS,EAAE;AAC3F,YAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;KACF;;IAGD,OAAO,GAAA;AACL,QAAA,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,yBAAyB,EAAE,oBAAoB,GAAG,QAAQ,EAAE,CAAC;AAChG,QAAA,CACE,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,yBAAyB,EAAE,oBAAoB,GAChF,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC7C;8GAtCU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAhBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAbS,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,gBAAgB,qDAAE,cAAc,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAkB9C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBApBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC;AAC1D,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACFK,MAAO,yBAA0B,SAAQ,aAAoC,CAAA;AAjBnF,IAAA,WAAA,GAAA;;AAkBkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,mBAAmB,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;;QAGrE,IAAM,CAAA,MAAA,GAAG,KAAK,CACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,CACxF,CAAC;QACK,IAAK,CAAA,KAAA,GAAG,KAAK,CAAsB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAqC,EAAE,CAAC,CAAC;AAqCpE,KAAA;;;IAjCiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;QACpB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;KACF;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,cAAc,EACd,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CACjE,CAAC;KACH;;IAGM,WAAW,GAAA;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAEM,IAAA,gBAAgB,CAAC,MAAgB,EAAA;AACtC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzB;8GAjDU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAKkB,oBAAoB,EAlBhE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;GAWT,EAbkB,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAe3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC;AACvC,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCxBY,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;MAEW,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAgBxE;AAdQ,IAAA,UAAU,CAAC,UAAiC,EAAA;AACjD,QAAA,MAAM,KAAK,GAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAEnF,QAAA,MAAM,MAAM,GAAqB;YAC/B,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACpC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EACjF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CACnC;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACVK,MAAO,oBAAqB,SAAQ,aAA+B,CAAA;AANzE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,wBAAwB,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,mBAAmB,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;;QAGrE,IAAK,CAAA,KAAA,GAAG,KAAK,CAAsB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,EAAE,CAAC,CAAC;AAqB/D,KAAA;;IAlBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAChE,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AAChD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3F,YAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;KACF;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3E;8GA5BU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAG4B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,yBAAyB,EAC9B,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,oBAAoB,oEANhE,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;MCNY,yCAAyC,GAAG,IAAI,cAAc,CACzE,2CAA2C,EAC3C;MAEW,8BAA8B,CAAA;AAA3C,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,yCAAyC,CAAC,CAAC;KAchF;AAZQ,IAAA,UAAU,CAAC,UAAwC,EAAA;AACxD,QAAA,MAAM,KAAK,GAA4B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1F,QAAA,MAAM,MAAM,GAA4B;YACtC,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAClF;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACfK,MAAO,2BAA4B,SAAQ,aAAsC,CAAA;AANvF,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;;AAGrD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAuC,EAAE,CAAC,CAAC;AAYtE,KAAA;;;IARiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAChE,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AAChD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAfU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,qTAF5B,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;MCPY,4BAA4B,GAAG,IAAI,cAAc,CAAe,8BAA8B,EAAE;MAEhG,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;KAWnE;AATQ,IAAA,UAAU,CAAC,UAA6B,EAAA;AAC7C,QAAA,MAAM,KAAK,GAAiB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE/E,QAAA,MAAM,MAAM,GAAiB;AAC3B,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAChF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACTD;;AAEG;AAOG,MAAO,gBAAiB,SAAQ,aAA2B,CAAA;AANjE,IAAA,WAAA,GAAA;;AAOkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,uBAAuB,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;;AAG7E,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,SAAS,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA2B,MAAM,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA4B,EAAE,CAAC,CAAC;AA8B3D,KAAA;;;IA1BiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,MAAM,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;AAED,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,KAAK,SAAS,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;KACF;;AAGM,IAAA,gBAAgB,CAAC,MAAgB,EAAA;AACtC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACzB;8GAvCU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAEqB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EACb,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,uFALxE,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;AAC3B,iBAAA,CAAA;;;ACWM,MAAM,YAAY,GAAiB,WAAW,CAAC;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,0BAA0B;AAChC,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACF,CAAA;;ACjBM,MAAM,gBAAgB,GAAqB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,2GAA2G;AACjH,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,uHAAuH;AACzH,YAAA,IAAI,EAAE,2GAA2G;AACjH,YAAA,IAAI,EAAE,2GAA2G;AACjH,YAAA,GAAG,EAAE,uGAAuG;AAC5G,YAAA,KAAK,EACH,+GAA+G;AACjH,YAAA,MAAM,EACJ,mHAAmH;AACtH,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,0BAA0B;AACjC,KAAA;AACF,CAAA;;ACrBM,MAAM,qBAAqB,GAA0B,WAAW,CAAC;AACtE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,iDAAiD;AACxD,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,mCAAmC;AACzC,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,GAAG,EAAE,cAAc;AACnB,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,MAAM,EAAE,iBAAiB;AAC1B,SAAA;AACF,KAAA;AACF,CAAA;;MC3BY,mCAAmC,GAAG,IAAI,cAAc,CACnE,qCAAqC,EACrC;MAEW,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAC;KAW1E;AATQ,IAAA,UAAU,CAAC,UAAmC,EAAA;AACnD,QAAA,MAAM,KAAK,GAAuB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAErF,QAAA,MAAM,MAAM,GAAuB;AACjC,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3G,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACDK,MAAO,sBAAuB,SAAQ,aAAiC,CAAA;AAT7E,IAAA,WAAA,GAAA;;AAUkB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAmB,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;;AAG9E,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,SAAS,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA2B,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkC,EAAE,CAAC,CAAC;AA0BjE,KAAA;;;IAtBiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,aAAa,CAAC,CACzD,CAAC;KACH;;IAGM,OAAO,GAAA;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC;QAEhD,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;KAC7C;8GAlCU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,aAAA,EAAA,IAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALvB,CAAmD,iDAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAFnD,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAOZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAAmD,iDAAA,CAAA;AAC7D,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACGM,MAAM,kBAAkB,GAAuB,WAAW,CAAC;AAChE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,uGAAuG;AAC7G,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,uIAAuI;AACzI,YAAA,IAAI,EAAE,wHAAwH;AAC9H,YAAA,IAAI,EAAE,wHAAwH;AAC9H,YAAA,GAAG,EAAE,kHAAkH;AACvH,YAAA,KAAK,EACH,8HAA8H;AAChI,YAAA,MAAM,EACJ,oIAAoI;AACvI,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACd,SAAA;AACF,KAAA;AACF,CAAA;;ACzBM,MAAM,uBAAuB,GAA4B,WAAW,CAAC;AAC1E,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,8DAA8D;AACzE,SAAA;AACF,KAAA;AACF,CAAA;;ACNM,MAAM,gBAAgB,GAAqB,WAAW,CAAC;AAC5D,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,sFAAsF;AAC5F,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,4CAA4C;AACrD,YAAA,IAAI,EAAE,sCAAsC;AAC5C,YAAA,IAAI,EAAE,sCAAsC;AAC5C,YAAA,GAAG,EAAE,oCAAoC;AACzC,YAAA,KAAK,EAAE,wCAAwC;AAC/C,YAAA,MAAM,EAAE,0CAA0C;AACnD,SAAA;AACF,KAAA;AACF,CAAA;;AC+ED;;;;;;AAMG;SACa,YAAY,GAAA;IAC1B,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAChD,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,4BAA4B;AACvC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,iBAAiB;AAC5B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,iBAAiB;AAC5B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,sBAAsB;AACjC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,2BAA2B;AACtC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,2BAA2B;AACtC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,QAAQ,EAAE,wBAAwB;AACnC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,iBAAiB;AAC5B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,yBAAyB;AACpC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,sBAAsB;AACjC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,QAAQ,EAAE,wBAAwB;AACnC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,4BAA4B;AACvC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,4BAA4B;AACvC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,8BAA8B;AACvC,YAAA,QAAQ,EAAE,8BAA8B;AACzC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,yBAAyB;AACpC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,yBAAyB;AACpC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,0BAA0B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,2BAA2B;AACtC,SAAA;AACF,KAAA,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAC9C,QAAA;AACE,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,cAAc,EAAE;AACrE,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,QAAQ,EAAE,eAAe;AAC1B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,WAAW;AACtB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qCAAqC;AAC9C,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,kCAAkC;AAC3C,YAAA,QAAQ,EAAE,iBAAiB;AAC5B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,6BAA6B;AACtC,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,QAAQ,EAAE,cAAc;AACzB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,8BAA8B;AACvC,YAAA,QAAQ,EAAE,cAAc;AACzB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,QAAQ,EAAE,cAAc;AACzB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mCAAmC;AAC5C,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,QAAQ,EAAE,eAAe;AAC1B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,kCAAkC;AAC3C,YAAA,QAAQ,EAAE,iBAAiB;AAC5B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uCAAuC;AAChD,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,WAAW;AACtB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,QAAQ,EAAE,cAAc;AACzB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,uCAAuC;AAChD,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,QAAQ,EAAE,gBAAgB;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,yCAAyC;AAClD,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mCAAmC;AAC5C,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,YAAY;AACvB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qCAAqC;AAC9C,YAAA,QAAQ,EAAE,oBAAoB;AAC/B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mCAAmC;AAC5C,YAAA,QAAQ,EAAE,kBAAkB;AAC7B,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACF,KAAA,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC;AACtE;;ACpbA;;AAEG;;;;"}
|