@ascentgl/ads-ui 0.0.12 → 0.0.13
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/esm2022/index.mjs +2 -13
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +3 -5
- package/esm2022/lib/components/breadcrumb/breadcrumb.type.mjs +1 -1
- package/esm2022/lib/components/card/card.component.mjs +20 -4
- package/esm2022/lib/components/drag-and-drop-list/drag-and-drop-list.component.mjs +2 -2
- package/esm2022/lib/components/error-page/error-page.component.mjs +2 -2
- package/esm2022/lib/components/header/header.component.mjs +2 -2
- package/esm2022/lib/components/nav-bar/nav-menu/nav-menu.component.mjs +3 -3
- package/esm2022/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.mjs +3 -3
- package/esm2022/lib/components/snackbars/snackbar/snackbar.component.mjs +14 -5
- package/esm2022/lib/components/steppers/numeric-stepper/numeric-step.type.mjs +2 -0
- package/esm2022/lib/components/steppers/numeric-stepper/numeric-stepper.component.mjs +3 -3
- package/esm2022/lib/components/steppers/numeric-stepper/public-api.mjs +2 -1
- package/esm2022/lib/components/{widgets/widget-title → steppers/stepper}/index.mjs +1 -1
- package/esm2022/lib/components/steppers/stepper/public-api.mjs +4 -0
- package/esm2022/lib/components/steppers/stepper/step.type.mjs +2 -0
- package/esm2022/lib/components/steppers/stepper/stepper.component.mjs +33 -0
- package/esm2022/lib/components/steppers/stepper/stepper.module.mjs +20 -0
- package/esm2022/lib/components/steppers/vertical-stepper/vertical-step.type.mjs +2 -8
- package/esm2022/lib/components/steppers/vertical-stepper/vertical-stepper.component.mjs +10 -4
- package/esm2022/lib/components/tags/create-tag/create-tag.component.mjs +75 -33
- package/esm2022/lib/components/tags/create-tag/create-tag.module.mjs +11 -3
- package/esm2022/lib/components/tags/tag/tag.component.mjs +3 -3
- package/esm2022/lib/components/tags/tag-container/tag-container.component.mjs +2 -2
- package/esm2022/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.mjs +2 -2
- package/esm2022/src/lib/components/header/header.component.mjs +2 -2
- package/esm2022/src/lib/components/tags/tag-container/tag-container.component.mjs +2 -2
- package/fesm2022/ascentgl-ads-ui-src-lib-components-drag-and-drop-list.mjs +2 -2
- package/fesm2022/ascentgl-ads-ui-src-lib-components-drag-and-drop-list.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header.mjs +2 -2
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-tags-tag-container.mjs +2 -2
- package/fesm2022/ascentgl-ads-ui-src-lib-components-tags-tag-container.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui.mjs +340 -707
- package/fesm2022/ascentgl-ads-ui.mjs.map +1 -1
- package/index.d.ts +1 -12
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +1 -3
- package/lib/components/breadcrumb/breadcrumb.type.d.ts +0 -1
- package/lib/components/card/card.component.d.ts +12 -1
- package/lib/components/snackbars/snackbar/snackbar.component.d.ts +3 -0
- package/lib/components/steppers/numeric-stepper/numeric-step.type.d.ts +9 -0
- package/lib/components/steppers/numeric-stepper/numeric-stepper.component.d.ts +1 -9
- package/lib/components/steppers/numeric-stepper/public-api.d.ts +1 -0
- package/lib/components/steppers/stepper/public-api.d.ts +3 -0
- package/lib/components/steppers/stepper/step.type.d.ts +8 -0
- package/lib/components/steppers/stepper/stepper.component.d.ts +21 -0
- package/lib/components/steppers/stepper/stepper.module.d.ts +10 -0
- package/lib/components/steppers/vertical-stepper/vertical-step.type.d.ts +1 -6
- package/lib/components/steppers/vertical-stepper/vertical-stepper.component.d.ts +7 -1
- package/lib/components/tags/create-tag/create-tag.component.d.ts +18 -11
- package/lib/components/tags/create-tag/create-tag.module.d.ts +3 -1
- package/lib/components/tags/tag/tag.component.d.ts +1 -1
- package/package.json +17 -95
- package/esm2022/lib/components/header/org-display-text/index.mjs +0 -2
- package/esm2022/lib/components/header/org-display-text/org-display-text.component.mjs +0 -22
- package/esm2022/lib/components/header/org-display-text/org-display-text.module.mjs +0 -18
- package/esm2022/lib/components/header/org-display-text/public-api.mjs +0 -3
- package/esm2022/lib/components/pagination/container/index.mjs +0 -2
- package/esm2022/lib/components/pagination/container/pagination-container.component.mjs +0 -11
- package/esm2022/lib/components/pagination/container/pagination-container.module.mjs +0 -16
- package/esm2022/lib/components/pagination/container/public-api.mjs +0 -3
- package/esm2022/lib/components/pagination/index.mjs +0 -2
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -85
- package/esm2022/lib/components/pagination/pagination.module.mjs +0 -19
- package/esm2022/lib/components/pagination/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-actions/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-actions/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-actions/widget-actions.component.mjs +0 -11
- package/esm2022/lib/components/widgets/widget-actions/widget-actions.module.mjs +0 -16
- package/esm2022/lib/components/widgets/widget-bar/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-bar/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-bar/widget-bar.component.mjs +0 -20
- package/esm2022/lib/components/widgets/widget-bar/widget-bar.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-container/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-container/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-container/widget-container.component.mjs +0 -11
- package/esm2022/lib/components/widgets/widget-container/widget-container.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-footer/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-footer/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-footer/widget-footer.component.mjs +0 -11
- package/esm2022/lib/components/widgets/widget-footer/widget-footer.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-header/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-header/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-header/widget-header.component.mjs +0 -11
- package/esm2022/lib/components/widgets/widget-header/widget-header.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-preview/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-preview/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-preview/widget-preview.component.mjs +0 -25
- package/esm2022/lib/components/widgets/widget-preview/widget-preview.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-thumbnail/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-thumbnail/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.mjs +0 -100
- package/esm2022/lib/components/widgets/widget-thumbnail/widget-thumbnail.module.mjs +0 -20
- package/esm2022/lib/components/widgets/widget-thumbnail-container/index.mjs +0 -2
- package/esm2022/lib/components/widgets/widget-thumbnail-container/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.mjs +0 -12
- package/esm2022/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.module.mjs +0 -18
- package/esm2022/lib/components/widgets/widget-title/public-api.mjs +0 -3
- package/esm2022/lib/components/widgets/widget-title/widget-title.component.mjs +0 -22
- package/esm2022/lib/components/widgets/widget-title/widget-title.module.mjs +0 -18
- package/esm2022/src/lib/components/card/ascentgl-ads-ui-src-lib-components-card.mjs +0 -5
- package/esm2022/src/lib/components/card/card.component.mjs +0 -11
- package/esm2022/src/lib/components/card/card.module.mjs +0 -18
- package/esm2022/src/lib/components/card/public-api.mjs +0 -3
- package/esm2022/src/lib/components/header/org-display-text/ascentgl-ads-ui-src-lib-components-header-org-display-text.mjs +0 -5
- package/esm2022/src/lib/components/header/org-display-text/org-display-text.component.mjs +0 -22
- package/esm2022/src/lib/components/header/org-display-text/org-display-text.module.mjs +0 -18
- package/esm2022/src/lib/components/header/org-display-text/public-api.mjs +0 -3
- package/esm2022/src/lib/components/pagination/ascentgl-ads-ui-src-lib-components-pagination.mjs +0 -5
- package/esm2022/src/lib/components/pagination/container/ascentgl-ads-ui-src-lib-components-pagination-container.mjs +0 -5
- package/esm2022/src/lib/components/pagination/container/pagination-container.component.mjs +0 -11
- package/esm2022/src/lib/components/pagination/container/pagination-container.module.mjs +0 -16
- package/esm2022/src/lib/components/pagination/container/public-api.mjs +0 -3
- package/esm2022/src/lib/components/pagination/pagination.component.mjs +0 -85
- package/esm2022/src/lib/components/pagination/pagination.module.mjs +0 -19
- package/esm2022/src/lib/components/pagination/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-actions/ascentgl-ads-ui-src-lib-components-widgets-widget-actions.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-actions/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-actions/widget-actions.component.mjs +0 -11
- package/esm2022/src/lib/components/widgets/widget-actions/widget-actions.module.mjs +0 -16
- package/esm2022/src/lib/components/widgets/widget-bar/ascentgl-ads-ui-src-lib-components-widgets-widget-bar.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-bar/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-bar/widget-bar.component.mjs +0 -20
- package/esm2022/src/lib/components/widgets/widget-bar/widget-bar.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-container/ascentgl-ads-ui-src-lib-components-widgets-widget-container.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-container/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-container/widget-container.component.mjs +0 -11
- package/esm2022/src/lib/components/widgets/widget-container/widget-container.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-footer/ascentgl-ads-ui-src-lib-components-widgets-widget-footer.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-footer/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-footer/widget-footer.component.mjs +0 -11
- package/esm2022/src/lib/components/widgets/widget-footer/widget-footer.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-header/ascentgl-ads-ui-src-lib-components-widgets-widget-header.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-header/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-header/widget-header.component.mjs +0 -11
- package/esm2022/src/lib/components/widgets/widget-header/widget-header.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-preview/ascentgl-ads-ui-src-lib-components-widgets-widget-preview.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-preview/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-preview/widget-preview.component.mjs +0 -25
- package/esm2022/src/lib/components/widgets/widget-preview/widget-preview.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-thumbnail/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-thumbnail/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.mjs +0 -100
- package/esm2022/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.module.mjs +0 -20
- package/esm2022/src/lib/components/widgets/widget-thumbnail-container/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail-container.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-thumbnail-container/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.mjs +0 -12
- package/esm2022/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.module.mjs +0 -18
- package/esm2022/src/lib/components/widgets/widget-title/ascentgl-ads-ui-src-lib-components-widgets-widget-title.mjs +0 -5
- package/esm2022/src/lib/components/widgets/widget-title/public-api.mjs +0 -3
- package/esm2022/src/lib/components/widgets/widget-title/widget-title.component.mjs +0 -22
- package/esm2022/src/lib/components/widgets/widget-title/widget-title.module.mjs +0 -18
- package/fesm2022/ascentgl-ads-ui-src-lib-components-card.mjs +0 -33
- package/fesm2022/ascentgl-ads-ui-src-lib-components-card.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header-org-display-text.mjs +0 -44
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header-org-display-text.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-pagination-container.mjs +0 -31
- package/fesm2022/ascentgl-ads-ui-src-lib-components-pagination-container.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-pagination.mjs +0 -107
- package/fesm2022/ascentgl-ads-ui-src-lib-components-pagination.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-actions.mjs +0 -31
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-actions.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-bar.mjs +0 -42
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-bar.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-container.mjs +0 -33
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-container.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-footer.mjs +0 -33
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-footer.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-header.mjs +0 -33
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-header.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-preview.mjs +0 -47
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-preview.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail-container.mjs +0 -34
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail-container.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail.mjs +0 -123
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-thumbnail.mjs.map +0 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-title.mjs +0 -44
- package/fesm2022/ascentgl-ads-ui-src-lib-components-widgets-widget-title.mjs.map +0 -1
- package/lib/components/header/org-display-text/org-display-text.component.d.ts +0 -13
- package/lib/components/header/org-display-text/org-display-text.module.d.ts +0 -8
- package/lib/components/header/org-display-text/public-api.d.ts +0 -2
- package/lib/components/pagination/container/index.d.ts +0 -1
- package/lib/components/pagination/container/pagination-container.component.d.ts +0 -5
- package/lib/components/pagination/container/pagination-container.module.d.ts +0 -7
- package/lib/components/pagination/container/public-api.d.ts +0 -2
- package/lib/components/pagination/index.d.ts +0 -1
- package/lib/components/pagination/pagination.component.d.ts +0 -41
- package/lib/components/pagination/pagination.module.d.ts +0 -9
- package/lib/components/pagination/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-actions/index.d.ts +0 -1
- package/lib/components/widgets/widget-actions/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-actions/widget-actions.component.d.ts +0 -5
- package/lib/components/widgets/widget-actions/widget-actions.module.d.ts +0 -7
- package/lib/components/widgets/widget-bar/index.d.ts +0 -1
- package/lib/components/widgets/widget-bar/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-bar/widget-bar.component.d.ts +0 -9
- package/lib/components/widgets/widget-bar/widget-bar.module.d.ts +0 -8
- package/lib/components/widgets/widget-container/index.d.ts +0 -1
- package/lib/components/widgets/widget-container/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-container/widget-container.component.d.ts +0 -5
- package/lib/components/widgets/widget-container/widget-container.module.d.ts +0 -8
- package/lib/components/widgets/widget-footer/index.d.ts +0 -1
- package/lib/components/widgets/widget-footer/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-footer/widget-footer.component.d.ts +0 -5
- package/lib/components/widgets/widget-footer/widget-footer.module.d.ts +0 -8
- package/lib/components/widgets/widget-header/index.d.ts +0 -1
- package/lib/components/widgets/widget-header/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-header/widget-header.component.d.ts +0 -5
- package/lib/components/widgets/widget-header/widget-header.module.d.ts +0 -8
- package/lib/components/widgets/widget-preview/index.d.ts +0 -1
- package/lib/components/widgets/widget-preview/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-preview/widget-preview.component.d.ts +0 -28
- package/lib/components/widgets/widget-preview/widget-preview.module.d.ts +0 -8
- package/lib/components/widgets/widget-thumbnail/index.d.ts +0 -1
- package/lib/components/widgets/widget-thumbnail/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.d.ts +0 -68
- package/lib/components/widgets/widget-thumbnail/widget-thumbnail.module.d.ts +0 -10
- package/lib/components/widgets/widget-thumbnail-container/index.d.ts +0 -1
- package/lib/components/widgets/widget-thumbnail-container/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.d.ts +0 -5
- package/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.module.d.ts +0 -8
- package/lib/components/widgets/widget-title/index.d.ts +0 -1
- package/lib/components/widgets/widget-title/public-api.d.ts +0 -2
- package/lib/components/widgets/widget-title/widget-title.component.d.ts +0 -13
- package/lib/components/widgets/widget-title/widget-title.module.d.ts +0 -8
- package/src/lib/components/card/card.component.d.ts +0 -5
- package/src/lib/components/card/card.module.d.ts +0 -8
- package/src/lib/components/card/index.d.ts +0 -5
- package/src/lib/components/card/public-api.d.ts +0 -2
- package/src/lib/components/header/org-display-text/index.d.ts +0 -5
- package/src/lib/components/header/org-display-text/org-display-text.component.d.ts +0 -13
- package/src/lib/components/header/org-display-text/org-display-text.module.d.ts +0 -8
- package/src/lib/components/header/org-display-text/public-api.d.ts +0 -2
- package/src/lib/components/pagination/container/index.d.ts +0 -5
- package/src/lib/components/pagination/container/pagination-container.component.d.ts +0 -5
- package/src/lib/components/pagination/container/pagination-container.module.d.ts +0 -7
- package/src/lib/components/pagination/container/public-api.d.ts +0 -2
- package/src/lib/components/pagination/index.d.ts +0 -5
- package/src/lib/components/pagination/pagination.component.d.ts +0 -41
- package/src/lib/components/pagination/pagination.module.d.ts +0 -9
- package/src/lib/components/pagination/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-actions/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-actions/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-actions/widget-actions.component.d.ts +0 -5
- package/src/lib/components/widgets/widget-actions/widget-actions.module.d.ts +0 -7
- package/src/lib/components/widgets/widget-bar/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-bar/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-bar/widget-bar.component.d.ts +0 -9
- package/src/lib/components/widgets/widget-bar/widget-bar.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-container/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-container/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-container/widget-container.component.d.ts +0 -5
- package/src/lib/components/widgets/widget-container/widget-container.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-footer/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-footer/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-footer/widget-footer.component.d.ts +0 -5
- package/src/lib/components/widgets/widget-footer/widget-footer.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-header/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-header/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-header/widget-header.component.d.ts +0 -5
- package/src/lib/components/widgets/widget-header/widget-header.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-preview/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-preview/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-preview/widget-preview.component.d.ts +0 -28
- package/src/lib/components/widgets/widget-preview/widget-preview.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-thumbnail/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-thumbnail/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.d.ts +0 -68
- package/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.module.d.ts +0 -10
- package/src/lib/components/widgets/widget-thumbnail-container/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-thumbnail-container/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.d.ts +0 -5
- package/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.module.d.ts +0 -8
- package/src/lib/components/widgets/widget-title/index.d.ts +0 -5
- package/src/lib/components/widgets/widget-title/public-api.d.ts +0 -2
- package/src/lib/components/widgets/widget-title/widget-title.component.d.ts +0 -13
- package/src/lib/components/widgets/widget-title/widget-title.module.d.ts +0 -8
- /package/lib/components/{header/org-display-text → steppers/stepper}/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascentgl-ads-ui.mjs","sources":["../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.ts","../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.html","../../../../libs/ads-ui/src/lib/components/avatar/avatar.module.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.html","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.module.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.html","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.visual-processor.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button/button.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.module.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.html","../../../../libs/ads-ui/src/lib/components/card/card.module.ts","../../../../libs/ads-ui/src/lib/components/general/color-palette/colors.enums.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.module.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.html","../../../../libs/ads-ui/src/lib/components/divider/divider.module.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dom.element.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dragged.placeholder.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.html","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.types.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.html","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.module.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.html","../../../../libs/ads-ui/src/lib/components/footer/footer.module.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.html","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.module.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.html","../../../../libs/ads-ui/src/lib/components/header/header.module.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.html","../../../../libs/ads-ui/src/lib/components/header/container/header-container.module.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.html","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.module.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.module.ts","../../../../libs/ads-ui/src/lib/components/pagination/pagination.component.ts","../../../../libs/ads-ui/src/lib/components/pagination/pagination.component.html","../../../../libs/ads-ui/src/lib/components/pagination/pagination.module.ts","../../../../libs/ads-ui/src/lib/components/pagination/container/pagination-container.component.ts","../../../../libs/ads-ui/src/lib/components/pagination/container/pagination-container.component.html","../../../../libs/ads-ui/src/lib/components/pagination/container/pagination-container.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.types.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.module.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.html","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.base.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/input.tooltip.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/common/hint/hint.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown-highlighter.pipe.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime-format.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-template.formatter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-picker-format-directive.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime.adapter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-actions/widget-actions.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-actions/widget-actions.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-actions/widget-actions.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-bar/widget-bar.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-bar/widget-bar.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-bar/widget-bar.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-container/widget-container.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-container/widget-container.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-container/widget-container.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-footer/widget-footer.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-footer/widget-footer.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-footer/widget-footer.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-header/widget-header.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-header/widget-header.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-header/widget-header.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-preview/widget-preview.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-preview/widget-preview.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-preview/widget-preview.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail/widget-thumbnail.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-thumbnail-container/widget-thumbnail-container.module.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-title/widget-title.component.ts","../../../../libs/ads-ui/src/lib/components/widgets/widget-title/widget-title.component.html","../../../../libs/ads-ui/src/lib/components/widgets/widget-title/widget-title.module.ts","../../../../libs/ads-ui/src/lib/services/viewport/viewport.service.ts","../../../../libs/ads-ui/src/lib/services/window/window.service.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.html","../../../../libs/ads-ui/src/lib/components/modal/modal.module.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.html","../../../../libs/ads-ui/src/lib/components/chip/chip.module.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.html","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.module.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.html","../../../../libs/ads-ui/src/lib/components/table/table.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-step.type.ts","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.module.ts","../../../../libs/ads-ui/src/ascentgl-ads-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\nimport { Size } from './avatar.types';\n\n@Component({\n selector: 'ads-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AdsAvatarComponent implements OnChanges {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconUserCircle);\n }\n\n /**\n * The alt text for the avatar\n */\n @Input() alt?: string = 'Avatar for user';\n\n /**\n * The id attribute for the avatar icon\n */\n @Input() id = 'ads-avatar';\n\n /**\n * The size of the avatar\n */\n @Input() size: Size = 'md';\n\n /**\n * The path to the image to display\n */\n @Input() src?: string;\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.size?.currentValue) {\n this.size = changes.size.currentValue;\n }\n\n if (changes?.image?.currentValue) {\n this.src = changes.image.currentValue;\n }\n }\n}\n","<div class=\"avatar\" [ngClass]=\"size\">\n <img *ngIf=\"src; else icon\" [src]=\"src\" [alt]=\"alt\" />\n <ng-template #icon>\n <ads-icon\n [id]=\"id\"\n name=\"user_circle\"\n [size]=\"size\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsAvatarComponent } from './avatar.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsAvatarComponent],\n imports: [CommonModule, AdsIconModule],\n exports: [AdsAvatarComponent],\n})\nexport class AdsAvatarModule {}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'ads-icon-hover',\n styleUrls: ['icon-hover.component.scss'],\n templateUrl: 'icon-hover.component.html',\n})\nexport class AdsIconHoverComponent {\n /**\n * The aria-label for the button\n */\n ariaLabel = input<string>('');\n /**\n * Whether the icon button is disabled.\n */\n disabled = input<boolean>(false);\n\n /**\n * The unique ID for the icon button.\n */\n id = input<string>('');\n\n /**\n * Event emitted when the icon button is clicked.\n */\n clicked = output();\n\n /** @ignore */\n public onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"icon-hover\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.id]=\"id()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { AdsIconHoverComponent } from './icon-hover.component';\n\n@NgModule({\n exports: [AdsIconHoverComponent],\n declarations: [AdsIconHoverComponent],\n})\nexport class AdsIconHoverModule {}\n","import { Component, computed, input } from '@angular/core';\nimport { AdsIconHoverComponent } from '../icon-hover';\nimport { adsIcon } from '@ascentgl/ads-icons/icons';\n\nexport enum BadgeColor {\n primary = 'primary',\n secondary = 'secondary',\n alert = 'alert',\n}\n\n@Component({\n selector: 'ads-numeric-badge',\n templateUrl: './numeric-badge.component.html',\n styleUrls: ['../icon-hover/icon-hover.component.scss', './numeric-badge.component.scss'],\n})\nexport class AdsNumericBadgeComponent extends AdsIconHoverComponent {\n /** choose badge color mode \"primary\" or \"alert\" **/\n color = input<BadgeColor>(BadgeColor.secondary);\n\n /** provide icon name. NOTE: the icon must be registered in icon registry **/\n name = input<adsIcon>('bell');\n\n /** choose ads icon theme **/\n theme = input<'iconPrimary' | 'primary' | 'success' | 'warn' | 'white'>('iconPrimary');\n\n /** set badge value as number **/\n value = input<number>(0);\n\n /** @ignore **/\n calculatedValue = computed<string>(() => {\n return this.value().toString().length > 2 ? '99..' : this.value().toString();\n });\n}\n","<button\n class=\"icon-hover color-{{ color() }}\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.id]=\"id()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick()\"\n>\n <ads-icon\n [name]=\"name()\"\n [size]=\"'sm'\"\n [theme]=\"theme()\"\n [matBadgeSize]=\"'small'\"\n [matBadge]=\"calculatedValue()\"\n ></ads-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatBadge } from '@angular/material/badge';\nimport { AdsNumericBadgeComponent } from './numeric-badge.component';\n\n@NgModule({\n declarations: [AdsNumericBadgeComponent],\n exports: [AdsNumericBadgeComponent],\n imports: [AdsIconModule, MatBadge],\n})\nexport class AdsNumericBadgeModule {}\n","import { signal } from '@angular/core';\n\nexport class BreadcrumbVisualProcessor {\n canScrollLeft = signal<boolean>(false);\n canScrollRight = signal<boolean>(false);\n\n private position: {\n containerWidth: number;\n listWidth: number;\n listX: number;\n } = {\n containerWidth: 0,\n listWidth: 0,\n listX: 0,\n };\n\n constructor(\n private containerElement: HTMLElement,\n private listElement: HTMLElement,\n ) {\n this.scrollActiveIntoView();\n this.calculatePositions();\n this.toggleScrollButtons();\n }\n\n onWindowResize(): void {\n this.calculatePositions();\n\n /**\n * disable animation when we reposition breadcrumb list on window resize\n */\n this.listElement.classList.remove('animated');\n\n /**\n * if list is scrolled to the left, but we have empty space to the right - reposition the list\n * to fill the empty space\n */\n if (this.position.listX < 0) {\n const diff = this.position.containerWidth - this.position.listWidth;\n\n if (this.position.listX < diff) {\n this.applyScrollPos(diff);\n }\n }\n\n this.toggleScrollButtons();\n }\n\n onScrollLeft(): void {\n let [, scrollStep] = this.beforeApplyScrollPos();\n\n /**\n * make sure scrollStep is not more than current x position of the list;\n * otherwise the list will be scrolled too much to the left\n */\n if (scrollStep > this.position.listX * -1) {\n scrollStep = this.position.listX * -1;\n }\n\n /**\n * calculate new list x position (scrolling to the left)\n */\n let listX = this.position.listX + scrollStep;\n\n /**\n * if the remainder of the scrollable width is too small (less than 100px);\n * set listX position to 0\n * NOTE: remainder correction is done to avoid possible extra tiny scroll step remaining\n */\n const remainingScrollWidth = listX * -1;\n\n if (remainingScrollWidth <= 100) {\n listX = 0;\n }\n\n this.applyScrollPos(listX);\n }\n\n onScrollRight(): void {\n const [maxScrollDistance, maxScrollStep] = this.beforeApplyScrollPos();\n\n let scrollStep = maxScrollStep;\n\n /**\n * make sure scrollStep is not less than current x position of the list;\n * otherwise the list will be scrolled too much to the right\n */\n if (scrollStep > maxScrollDistance + this.position.listX) {\n scrollStep = maxScrollDistance + this.position.listX;\n }\n\n /**\n * calculate new list x position (scrolling to the right)\n */\n let listX = Math.round(this.position.listX - scrollStep);\n\n /**\n * if the remainder of the scrollable width is too small (less than 100px);\n * add remainder to the x position to scroll all the way to the right\n * NOTE: remainder correction is done to avoid possible extra tiny scroll step remaining\n */\n const remainingScrollWidth = this.position.listWidth - (listX * -1 + this.position.containerWidth);\n\n if (remainingScrollWidth <= 100) {\n listX -= remainingScrollWidth;\n }\n\n this.applyScrollPos(listX);\n }\n\n private beforeApplyScrollPos(): [number, number] {\n this.calculatePositions();\n\n /**\n * make sure that scrolling is animated\n */\n this.listElement.classList.add('animated');\n\n /**\n * get max scroll distance which is the difference between container width and breadcrumbs list width\n */\n const maxScrollDistance = this.position.listWidth - this.position.containerWidth;\n\n /**\n * calculate max scroll step that is not more than 50% of the list but not less than 50px\n */\n const maxScrollStep = Math.max(maxScrollDistance * 0.5, 50);\n\n return [maxScrollDistance, maxScrollStep];\n }\n\n private applyScrollPos(listX: number): void {\n /**\n * scroll breadcrumb list by changing its left position\n */\n this.listElement.style.left = listX + 'px';\n\n /**\n * store new x position\n */\n this.position.listX = listX;\n\n this.toggleScrollButtons();\n }\n\n private toggleScrollButtons(): void {\n const listIsBiggerThanContainer = this.position.containerWidth < this.position.listWidth;\n\n /**\n * we can scroll to the left if list is bigger than container and current list x position is on 0\n */\n this.canScrollLeft.set(listIsBiggerThanContainer && this.position.listX < 0);\n\n /**\n * we can scroll to the right if list width plus its x position is greater than container width\n * NOTE: since x position is a negative value or null, we add it to list width\n */\n this.canScrollRight.set(\n listIsBiggerThanContainer && this.position.listWidth + this.position.listX > this.position.containerWidth,\n );\n }\n\n private scrollActiveIntoView(): void {\n /**\n * gert active breadcrumb\n */\n const active = this.listElement.querySelector('.breadcrumb.active');\n\n /**\n * if found scroll it into view\n */\n if (active) {\n active.scrollIntoView({ behavior: 'instant', inline: 'center' });\n\n /**\n * replace scrollLeft of the container with x position of the list as we use x position\n * for scrolling\n */\n if (this.containerElement.scrollLeft) {\n this.listElement.style.left = this.containerElement.scrollLeft * -1 + 'px';\n this.containerElement.scrollLeft = 0;\n }\n }\n }\n\n private calculatePositions(): void {\n this.position = {\n containerWidth: this.containerElement.offsetWidth,\n listWidth: this.listElement.offsetWidth,\n listX: this.listElement.offsetLeft,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n})\nexport class AdsIconButtonComponent {\n /**\n * aria-label for the button\n */\n @Input() ariaLabel!: string;\n\n /**\n * The unique ID for the icon button\n */\n @Input() id!: string;\n\n /**\n * Theme color palette for the component\n */\n @Input() theme: 'primary' | 'success' | 'warn' | 'white' = 'primary';\n\n /**\n * Whether the button is disabled\n */\n @Input() disabled = false;\n\n /**\n * Sets the \"type\" attribute on the button\n */\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n}\n","<button\n type=\"button\"\n class=\"ads-icon-btn\"\n [ngClass]=\"['bg-' + theme]\"\n [disabled]=\"disabled\"\n [type]=\"type\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"id\"\n>\n <span class=\"icon-wrapper\">\n <ng-content></ng-content>\n </span>\n</button>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n input,\n OnChanges,\n SimpleChange,\n viewChild,\n} from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconChevronLeft, adsIconChevronRight } from '@ascentgl/ads-icons/icons';\nimport { Breadcrumb } from './breadcrumb.type';\nimport { BreadcrumbVisualProcessor } from './breadcrumb.visual-processor';\nimport { asapScheduler } from 'rxjs';\n\n@Component({\n selector: 'ads-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class AdsBreadcrumbComponent<T> implements OnChanges, AfterViewInit {\n /** @ignore */\n containerRef = viewChild<ElementRef>('container');\n\n /** @ignore */\n listRef = viewChild<ElementRef>('list');\n\n /** provide an array of breadcrumbs of Breadcrumb<T> type */\n breadcrumbs = input.required<Breadcrumb<T>[]>();\n\n /** set to \"true\" to show sequence number for every breadcrumb */\n showNumber = input<boolean>(false);\n\n /** @ignore */\n visualProcessor?: BreadcrumbVisualProcessor;\n\n /** @ignore */\n constructor(\n private registry: AdsIconRegistry,\n private cdr: ChangeDetectorRef,\n ) {\n this.registry.register([adsIconChevronLeft, adsIconChevronRight]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { breadcrumbs: SimpleChange }): void {\n if (changes.breadcrumbs && !changes.breadcrumbs.isFirstChange()) {\n asapScheduler.schedule(() => this.visualProcessor?.onWindowResize());\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n this.visualProcessor = new BreadcrumbVisualProcessor(\n this.containerRef()?.nativeElement,\n this.listRef()?.nativeElement,\n );\n\n this.cdr.detectChanges();\n }\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n this.visualProcessor?.onWindowResize();\n }\n\n /** @ignore */\n onClick(breadcrumb: Breadcrumb<T>): void {\n breadcrumb.callback(breadcrumb.payload);\n }\n\n /** @ignore */\n scrollLeft(): void {\n this.visualProcessor?.onScrollLeft();\n }\n\n /** @ignore */\n scrollRight(): void {\n this.visualProcessor?.onScrollRight();\n }\n}\n","@if (breadcrumbs().length > 1 && visualProcessor?.canScrollLeft()) {\n <div class=\"scroller-wrapper\">\n <ads-icon-button [type]=\"'button'\" class=\"scroller left\" [theme]=\"'white'\" (click)=\"scrollLeft()\">\n <ads-icon [name]=\"'chevron_left'\" [size]=\"'xxxs'\" [theme]=\"'primary'\" />\n </ads-icon-button>\n </div>\n}\n<div\n class=\"container\"\n #container\n [ngClass]=\"{\n 'can-scroll-left': visualProcessor?.canScrollLeft(),\n 'can-scroll-right': visualProcessor?.canScrollRight(),\n }\"\n>\n <div class=\"list\" #list>\n @for (breadcrumb of breadcrumbs(); track $index) {\n <div\n class=\"breadcrumb\"\n (click)=\"!breadcrumb.active ? onClick(breadcrumb) : null\"\n [ngClass]=\"{ active: breadcrumb.active, 'has-badge': showNumber() }\"\n >\n @if (showNumber()) {\n <span class=\"badge\">{{ $index + 1 }}</span>\n }\n <span class=\"label-primary\">{{ breadcrumb.primaryLabel }}</span>\n @if (breadcrumb.secondaryLabel && !breadcrumb.active) {\n <span class=\"label-secondary\">{{ breadcrumb.secondaryLabel }}</span>\n }\n </div>\n @if (!$last) {\n <ads-icon class=\"separator\" [name]=\"'chevron_right'\" [color]=\"'#8484a0'\" [size]=\"'xxxs'\" />\n }\n }\n </div>\n</div>\n@if (breadcrumbs().length > 1 && visualProcessor?.canScrollRight()) {\n <div class=\"scroller-wrapper right\">\n <ads-icon-button class=\"scroller\" [theme]=\"'white'\" (click)=\"scrollRight()\">\n <ads-icon [name]=\"'chevron_right'\" [size]=\"'xxxs'\" [theme]=\"'primary'\" />\n </ads-icon-button>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsIconButtonComponent } from './icon-button.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [AdsIconButtonComponent],\n exports: [AdsIconButtonComponent],\n imports: [CommonModule, MatButtonModule, AdsIconModule],\n})\nexport class AdsIconButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsBreadcrumbComponent } from './breadcrumb.component';\nimport { RouterModule } from '@angular/router';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsIconButtonModule } from '../buttons/icon-button';\n\n@NgModule({\n imports: [CommonModule, RouterModule, AdsIconModule, AdsIconButtonModule],\n declarations: [AdsBreadcrumbComponent],\n exports: [AdsBreadcrumbComponent],\n})\nexport class AdsBreadcrumbModule {}\n","import { Component, computed, input, Signal } from '@angular/core';\n\nexport type Variant = 'primary' | 'error' | 'secondary';\nexport type Size = 'base' | 'sm' | 'xs';\n\n@Component({\n selector: 'ads-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class AdsButtonComponent {\n /** The unique ID for the button */\n id = input<string>('');\n\n /** The button appearance style */\n variant = input<Variant>('primary');\n\n /** Whether the button is disabled */\n disabled = input<boolean>(false);\n\n /** Whether the button is a smaller version */\n size = input<Size>('base');\n\n /** Whether the button is rounded or squared */\n rounded = input<boolean>(false);\n\n /** Sets the \"type\" attribute on the button */\n type = input<'button' | 'submit' | 'reset'>('button');\n\n /** @ignore */\n calcVariant: Signal<Variant> = computed(() => (this.variant() === 'secondary' ? 'primary' : this.variant()));\n\n /** @ignore */\n calcReverse: Signal<boolean> = computed(() => this.variant() === 'secondary');\n}\n","<button\n mat-flat-button\n [id]=\"id()\"\n [class.rounded]=\"rounded()\"\n [class.reverse]=\"calcReverse()\"\n [ngClass]=\"[calcVariant(), size()]\"\n [disabled]=\"disabled()\"\n [disableRipple]=\"true\"\n>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [AdsButtonComponent],\n exports: [AdsButtonComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class AdsButtonModule {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ads-button-container',\n templateUrl: './button-container.component.html',\n styleUrls: ['./button-container.component.scss'],\n})\nexport class AdsButtonContainerComponent {\n /** How buttons in the container should be placed */\n justify = input<'flex-start' | 'flex-end' | 'center'>('flex-start');\n\n /** The gap between elements */\n gap = input<number>(16);\n}\n","<div class=\"button-container\" [style.justify-content]=\"justify()\" [style.gap]=\"gap() + 'px'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsButtonContainerComponent } from './button-container.component';\n\n@NgModule({\n declarations: [AdsButtonContainerComponent],\n imports: [CommonModule],\n exports: [AdsButtonContainerComponent],\n})\nexport class AdsButtonContainerModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-card',\n styleUrls: ['card.component.scss'],\n templateUrl: 'card.component.html',\n})\nexport class AdsCardComponent {}\n","<div class=\"card\"><ng-content></ng-content></div>\n<div class=\"drop-zone\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AdsCardComponent } from './card.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsCardComponent],\n declarations: [AdsCardComponent],\n})\nexport class AdsCardModule {}\n","export enum Colors {\n White = 'white',\n Muted30 = 'muted-30',\n Muted50 = 'muted-50',\n Muted = 'muted',\n Light30 = 'light-30',\n Light80 = 'light-80',\n Light = 'light',\n LightOpacity50 = 'light-opacity-50',\n Medium30 = 'medium-30',\n Medium50 = 'medium-50',\n Medium = 'medium',\n MediumOpacity50 = 'medium-opacity-50',\n Dark10 = 'dark-10',\n Dark30 = 'dark-30',\n Dark50 = 'dark-50',\n Dark80 = 'dark-80',\n Dark90 = 'dark-90',\n Dark = 'dark',\n Black = 'black',\n Primary = 'primary',\n PrimaryHover = 'primary-hover',\n PrimaryPressed = 'primary-pressed',\n Secondary = 'secondary',\n SecondaryHover = 'secondary-hover',\n SecondaryPressed = 'secondary-pressed',\n Link = 'link',\n LinkHover = 'link-hover',\n LinkPressed = 'link-pressed',\n Error = 'error',\n ErrorHover = 'error-hover',\n ErrorPressed = 'error-pressed',\n Success = 'success',\n SuccessHover = 'success-hover',\n SuccessPressed = 'success-pressed',\n Logo = 'logo',\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconPlus } from '@ascentgl/ads-icons/icons';\nimport { Subscription } from 'rxjs';\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { Colors } from '../../general/color-palette/colors.enums';\nimport { Tag } from '../tag';\n\n@Component({\n selector: 'ads-create-tag',\n templateUrl: './create-tag.component.html',\n styleUrls: ['./create-tag.component.scss'],\n})\nexport class AdsCreateTagComponent implements OnChanges, OnDestroy {\n constructor(\n private fb: FormBuilder,\n private registry: AdsIconRegistry,\n ) {\n this.registry.register(adsIconPlus);\n this.createForm();\n }\n\n /** The total number of tags that can be created */\n limit = input<number>(10);\n\n /** Holds all the tags you create or tags you previously created. Required for proper unique tag validation\n * and total number of existing tags calculation */\n tags = input<Tag[]>([]);\n\n /** The color palette for the tag background */\n palette = input<Colors[]>([\n Colors.Primary,\n Colors.PrimaryPressed,\n Colors.Secondary,\n Colors.SecondaryPressed,\n Colors.Light30,\n Colors.Light,\n Colors.Medium,\n Colors.Dark10,\n ]);\n\n /** Reference to a tag which can be used for editing existing tags */\n tag = input<Tag>();\n\n /** If true - all the letters will be transformed to lowercase */\n lowercase = input<boolean>(false);\n\n /** Total number of characters that can be in input field */\n maxlength = input<number>(30);\n\n /** If true - only alphanumeric characters are allowed */\n alphanumeric = input<boolean>(true);\n\n /** Event emitted when a tag is created */\n @Output() tagCreated = new EventEmitter<Tag>();\n\n /** Event emitted when an existing tag has been updated */\n @Output() tagUpdated = new EventEmitter<Tag>();\n\n /** @ignore */\n form!: FormGroup;\n\n /** @ignore */\n selectedColor = '';\n\n /** @ignore */\n showInput = false;\n\n /** @ignore\n * preset positions are required to properly control how overlay is positioned relative to the button\n * NOTE: default positioning is not optimal\n * NOTE: if none of the positions fits - overlay will be positioned automatically\n */\n positions: ConnectionPositionPair[] = [\n new ConnectionPositionPair({ originX: 'end', originY: 'top' }, { overlayX: 'end', overlayY: 'top' }, 0, 0),\n new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'bottom' }, 0, 24),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'top' }, 0, 0),\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'bottom' },\n 0,\n 24,\n ),\n ];\n\n /** @ignore */\n @ViewChild('tagInput') tagInput?: ElementRef;\n\n /** @ignore */\n private tagControlSubscription?: Subscription;\n\n /** @ignore */\n ngOnChanges(changes: { tag?: SimpleChange; palette?: SimpleChange; suggestions?: SimpleChange }): void {\n if (changes.tag && changes.tag.currentValue && this.form) {\n this.form.patchValue(changes.tag.currentValue);\n this.selectedColor = changes.tag.currentValue.color;\n this.showInput = true;\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.tagControlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n addTag(): void {\n this.tagCreated.emit(this.getModifiedTag());\n this.reset();\n }\n\n /** @ignore */\n updateTag(): void {\n this.tagUpdated.emit(this.getModifiedTag());\n this.reset();\n }\n\n /** @ignore */\n onColorChange(color: string): void {\n this.selectedColor = color === this.selectedColor ? '' : color;\n this.form.patchValue({ color: this.selectedColor });\n }\n\n /** @ignore */\n reset(): void {\n this.resetForm();\n this.selectedColor = '';\n this.showInput = false;\n this.tag();\n }\n\n /** @ignore */\n hide(): void {\n /**\n * reset form if we are closing after editing an existing tag\n * to avoid existing tag being loaded when we create a new one\n */\n if (this.form.value.id) {\n this.reset();\n } else {\n this.showInput = false;\n }\n }\n\n /** @ignore */\n displayInput(): void {\n this.setDefaultSelectedColor();\n this.showInput = true;\n\n setTimeout(() => {\n if (this.tagInput) {\n this.tagInput.nativeElement.focus();\n }\n });\n }\n\n /** @ignore */\n isValueInvalid(): boolean {\n /**\n * value is invalid if form us invalid\n * OR palette is enabled, but we have no color selected\n * OR tag is not unique\n * tag is not unique if already exists a tag with such name\n * AND color\n * AND current tag's id is different from existing tag's id\n */\n return (\n !this.form.valid ||\n !this.selectedColor ||\n this.tags().filter((tag) => {\n return (\n this.trimTagName(tag.tag) === this.trimTagName(this.form.value.tag) &&\n tag.color === this.form.value.color &&\n tag.id !== this.form.value.id\n );\n }).length > 0\n );\n }\n\n /** @ignore */\n private createForm(): void {\n this.form = this.fb.group({\n tag: new FormControl('', [Validators.required, Validators.maxLength(this.maxlength())]),\n color: new FormControl(''),\n id: new FormControl(''),\n });\n\n this.form.controls.tag.valueChanges.subscribe((value) => {\n const modifiedValue = this.formatTagName(value);\n\n /** update form value only if it got modified*/\n if (modifiedValue !== value) {\n this.form.controls.tag.setValue(modifiedValue, { emitEvent: false });\n }\n });\n }\n\n /** @ignore */\n private resetForm(): void {\n this.form.reset({ tag: '', color: '', id: '' });\n }\n\n /** @ignore */\n private getModifiedTag(): Tag {\n return {\n id: this.form.value.id,\n tag: this.form.value.tag.trim(), //make sure tag value does not contain trailing slash\n color: this.form.value.color,\n };\n }\n\n /** @ignore */\n private setDefaultSelectedColor(): void {\n /**\n * set default color only if tag id is empty - meaning it is a new tag\n */\n if (!this.form.value.id && !this.form.value.color && this.palette.length) {\n this.onColorChange(this.palette()[0]);\n }\n }\n\n /** @ignore */\n private formatTagName(tagName: string): string {\n let formattedName = tagName;\n\n /** if \"alphanumeric\" is true - allow only alphanumerics and spaces */\n if (this.alphanumeric()) {\n formattedName = formattedName.replace(/[^a-z0-9\\s]/gi, '');\n }\n\n /** if \"lowercase\" is true - turn all letters to lowercase */\n if (this.lowercase()) {\n formattedName = formattedName.toLowerCase();\n }\n\n /** do not allow space at the beginning of the string*/\n if (formattedName.startsWith(' ')) {\n formattedName = formattedName.replace(/^\\s+/gm, '');\n }\n\n /** do not allow multi-space sequences*/\n if (formattedName.includes(' ')) {\n formattedName = formattedName.replace(/\\s\\s+/gm, ' ');\n }\n\n return formattedName;\n }\n\n /** @ignore */\n private trimTagName(tagName: string): string {\n return tagName.trim().toLowerCase();\n }\n\n /** @ignore */\n getBackgroundColor(color: string): string {\n return `var(--color-${color})`;\n }\n}\n","<div class=\"container\">\n @if (showInput) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #tagInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"sm\" (click)=\"reset()\">{{ 'Cancel' | transloco }} </ads-button>\n @if (!tag()) {\n <ads-button size=\"sm\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\"\n >{{ 'Add' | transloco }}\n </ads-button>\n } @else {\n <ads-button size=\"sm\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\n {{ 'Save' | transloco }}\n </ads-button>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n }\n\n @if (this.tags().length < this.limit()) {\n <ads-button (click)=\"displayInput()\" size=\"xs\">\n {{ 'AddTag' | transloco }}\n </ads-button>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsCreateTagComponent } from './create-tag.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsButtonModule } from '../../buttons/button';\nimport { TranslocoPipe } from '@jsverse/transloco';\n\n@NgModule({\n declarations: [AdsCreateTagComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n OverlayModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsButtonModule,\n TranslocoPipe,\n ],\n exports: [AdsCreateTagComponent],\n})\nexport class AdsCreateTagModule {}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\n\nexport type DividerStyle = {\n margin: string | number;\n 'background-color': string;\n};\n\n@Component({\n selector: 'ads-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent implements OnInit {\n /**\n * The divider left and right margin\n */\n @Input() margin: string | number = 0;\n\n /**\n * The divider color\n */\n @Input() color: 'primary' | 'secondary' | 'light' = 'light';\n\n /** @ignore */\n public style!: DividerStyle;\n\n /** @ignore */\n private colors = {\n primary: '--color-primary',\n secondary: '--color-secondary',\n light: '--color-light',\n };\n\n /** @ignore */\n ngOnInit(): void {\n this.setDividerStyle();\n }\n\n /** @ignore */\n private setDividerStyle() {\n this.style = {\n margin: `${this.margin}px`,\n 'background-color': `var(${this.colors[this.color] || this.colors['light']})`,\n };\n }\n}\n","<div [ngStyle]=\"style\" class=\"ads-divider\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DividerComponent } from './divider.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DividerComponent],\n declarations: [DividerComponent],\n})\nexport class AdsDividerModule {}\n","import { dragAndDropListClass } from './drag-and-drop-list.enums';\n\nexport class DomElement {\n constructor(private domElement: HTMLElement) {}\n\n get dom(): HTMLElement {\n return this.domElement;\n }\n\n canDrop(): boolean {\n return !this.dom.classList.contains(dragAndDropListClass.NO_DROP);\n }\n\n canDrag(): boolean {\n return !this.dom.classList.contains(dragAndDropListClass.NO_DRAG);\n }\n\n isDropBlocked(): boolean {\n return this.dom.classList.contains(dragAndDropListClass.DROP_BLOCKED);\n }\n\n makeDraggable(): void {\n this.dom.setAttribute('draggable', 'true');\n }\n\n makeUnDraggable(): void {\n this.dom.removeAttribute('draggable');\n }\n\n unblockDrop(): void {\n this.dom.classList.remove(dragAndDropListClass.DROP_BLOCKED);\n }\n\n clone(): HTMLElement {\n const clone: HTMLElement = this.dom.cloneNode(true) as HTMLElement;\n\n clone.classList.add(dragAndDropListClass.DRAGGED_PLACEHOLDER);\n\n const targetRect: DOMRect = this.dom.getBoundingClientRect();\n\n /**\n * preserve target dimensions\n */\n clone.style.width = targetRect.width + 'px';\n clone.style.height = targetRect.height + 'px';\n\n /**\n * modify clone styles\n */\n Object.assign(clone.style, {\n position: 'fixed', //required to allow free dragging of the clone\n pointerEvents: 'none', // required to allow drag events for items under the clone\n zIndex: '1000', // required to make sure that draggable element is positioned over other elements\n });\n\n return clone;\n }\n\n blockDrop(): void {\n this.dom.classList.add(dragAndDropListClass.DROP_BLOCKED);\n }\n\n draggedOver(): void {\n this.dom.classList.add(dragAndDropListClass.DRAGGED_OVER);\n }\n\n draggedOut(): void {\n this.dom.classList.remove(dragAndDropListClass.DRAGGED_OVER);\n this.unblockDrop();\n }\n\n isDragged(): void {\n this.dom.classList.add(dragAndDropListClass.IS_DRAGGED);\n }\n\n isNotDragged(): void {\n this.dom.classList.remove(dragAndDropListClass.IS_DRAGGED);\n }\n}\n","import { DomElement } from './dom.element';\nimport { Renderer2 } from '@angular/core';\n\ntype COORDS = { x: number; y: number };\n\nexport class DraggedPlaceholder {\n readonly domElement: HTMLElement;\n private readonly positions: { x: number; y: number } = { x: 0, y: 0 };\n private readonly scrollUnsubscribeFunction?: () => void;\n private cursorPos: COORDS = { x: 0, y: 0 };\n\n constructor(\n element: DomElement,\n container: HTMLElement,\n event: DragEvent,\n private renderer: Renderer2,\n ) {\n this.domElement = element.clone();\n\n /**\n * get target element DOMRect data\n */\n const targetRect: DOMRect = element.dom.getBoundingClientRect();\n\n /**\n * save cursor position relative to target element\n * this will help calculate dragged item position relative to the cursor\n */\n this.positions = {\n x: event.clientX - targetRect.left,\n y: event.clientY - targetRect.top,\n };\n\n this.hideDefaultDragPlaceholder(event);\n\n /**\n * add clone to the list\n */\n container.append(this.domElement);\n\n this.scrollUnsubscribeFunction = this.renderer.listen('document', 'scroll', (): void => {\n this.setDomPosition();\n });\n\n /**\n * make initial placeholder positioning\n */\n this.reposition(event);\n }\n\n remove(): void {\n this.domElement.remove();\n\n if (this.scrollUnsubscribeFunction) {\n this.scrollUnsubscribeFunction();\n }\n }\n\n reposition(event: MouseEvent): void {\n this.cursorPos = { x: event.clientX, y: event.clientY };\n this.setDomPosition();\n }\n\n private setDomPosition(): void {\n /**\n * position placeholder relative to the cursor\n */\n this.domElement.style.left = this.cursorPos.x - this.positions.x + 'px';\n this.domElement.style.top = this.cursorPos.y - this.positions.y + 'px';\n }\n\n private hideDefaultDragPlaceholder(event: DragEvent): void {\n const placeholder: HTMLImageElement = document.createElement('img');\n placeholder.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';\n\n Object.assign(placeholder.style, {\n display: 'block',\n width: '0',\n height: '0',\n });\n\n /**\n * replace default browser drag placeholder with transparent image\n */\n event.dataTransfer?.setDragImage(placeholder, 0, 0);\n }\n}\n","import { AfterContentInit, Component, ElementRef, Input, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DomElement } from './dom.element';\nimport { DraggedPlaceholder } from './dragged.placeholder';\nimport { dragAndDropListClass } from './drag-and-drop-list.enums';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\nexport type DROP_CALLBACK_INDEXES = { before: number; after: number };\nexport type UNSUBSCRIBE_FUNCTIONS_COLLECTION = GENERIC_COLLECTION<() => void>;\n\n@Component({\n selector: 'ads-drag-and-drop-list',\n styleUrls: ['drag-and-drop-list.component.scss'],\n templateUrl: 'drag-and-drop-list.component.html',\n})\nexport class AdsDragAndDropListComponent implements OnInit, AfterContentInit, OnDestroy {\n /** @ignore */\n @ViewChild('draggableList', { read: ElementRef, static: true }) draggableList?: ElementRef;\n /** @ignore */\n @ViewChild('dynamicContent', { read: ElementRef, static: true }) dynamicContent?: ElementRef;\n\n /** This external method will be called after the item is dropped into new position */\n @Input() dropCallback?: (sourceIndexes: DROP_CALLBACK_INDEXES, targetIndexes: DROP_CALLBACK_INDEXES) => void;\n\n /** Callback function that can be used to determine if item can be dropped on the selected target */\n @Input() canDropCallback?: (sourceIndex: number, targetIndex: number) => boolean;\n\n /** Callback function that can be used to determine if item can be dragged */\n @Input() canDragCallback?: (sourceIndex: number) => boolean;\n\n /** If total items count is less than this value, drag&drop will be disabled */\n @Input() minCountToDrag = 2;\n\n /** Provide subject element, which will allow to refresh the list. NOTE: refreshing is required every time the list is updated from the outside */\n @Input() refresh: Subject<void> = new Subject<void>();\n\n /** @ignore */\n private draggedElement: DomElement | null = null;\n /** @ignore */\n private draggedPlaceholder: DraggedPlaceholder | null = null;\n /** @ignore */\n private unsubscribeFromDocumentDragOver?: () => void;\n /** @ignore */\n private unsubscribeFunctions: Map<HTMLElement, UNSUBSCRIBE_FUNCTIONS_COLLECTION> = new Map();\n /** @ignore */\n private ngUnsubscribe: Subject<void> = new Subject();\n\n private draggedOverElement: DomElement | null = null;\n\n /** @ignore */\n constructor(private renderer: Renderer2) {}\n\n /** @ignore */\n ngOnInit(): void {\n /**\n * if refresh command was emitted - refresh elements\n * NOTE: we do it in timeout to allow DOM to redraw first\n */\n this.refresh.pipe(takeUntil(this.ngUnsubscribe)).subscribe((): void => {\n setTimeout(() => this.refreshElements());\n });\n }\n\n /** @ignore */\n ngAfterContentInit(): void {\n this.refreshElements();\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.unsubscribeFromEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /** @ignore */\n onListDragLeave(event: DragEvent): void {\n /**\n * if we dragged out of the element - unselect it\n */\n if (\n event.relatedTarget instanceof HTMLElement &&\n this.draggedOverElement &&\n !this.draggedOverElement.dom.contains(event.relatedTarget)\n ) {\n this.unselectDraggedOverElement();\n }\n }\n\n /** @ignore */\n onDragStart = (event: DragEvent): void => {\n /**\n * NOTE: register dragover for document body to overcome Firefox issue where clientX and clientY are 0 in 'drag' event\n */\n this.unsubscribeFromDocumentDragOver = this.renderer.listen(document.body, 'dragover', this.onDragOverBody);\n\n /**\n * store currently dragged element\n */\n this.draggedElement = this.getElement(event);\n\n /**\n * replace default browser dragged element with the custom one\n */\n this.draggedPlaceholder = new DraggedPlaceholder(\n this.draggedElement,\n this.draggableList?.nativeElement,\n event,\n this.renderer,\n );\n\n /**\n * mark dragged element with special class\n */\n this.draggedElement.isDragged();\n\n /**\n * block drop into the dragged element\n */\n this.draggedElement.blockDrop();\n };\n\n /** @ignore */\n onDragEnd = (): void => {\n /**\n * remove special class from dragged element mark dragged element\n */\n this.draggedElement?.isNotDragged();\n\n this.draggedElement = null;\n\n /**\n * if we subscribed to document dragover - unsubscribe from it\n */\n if (this.unsubscribeFromDocumentDragOver) {\n this.unsubscribeFromDocumentDragOver();\n }\n\n /**\n * remove dragged placeholder from DOM\n */\n this.draggedPlaceholder?.remove();\n this.draggedPlaceholder = null;\n };\n\n /** @ignore\n * NOTE: we rely on onDragOver instead of DragEnter and DragLeave because those events also fire when we enter and leave\n * child elements - the behavior we don't need\n */\n onDragOver = (event: DragEvent): void => {\n /**\n * NOTE: this is required for \"drop\" event to work\n */\n event.preventDefault();\n\n /**\n * do nothing if we have no dragged element, or we are still over the same element\n */\n if (!this.draggedElement || this.draggedOverElement?.dom === event.currentTarget) {\n return;\n }\n\n /**\n * make sure previous dragged over element is marked as \"dragged out\"\n */\n this.unselectDraggedOverElement();\n\n this.draggedOverElement = this.getElement(event);\n\n /**\n * do nothing if dragged element and element, we are dragging over is the same\n */\n if (this.isDraggingOverSelf(this.draggedOverElement)) {\n return;\n }\n\n this.draggedOverElement.draggedOver();\n\n /**\n * if drop is blocked - add special class to the dragged element\n */\n if (this.canDrop()) {\n this.draggedOverElement.unblockDrop();\n } else {\n this.draggedOverElement.blockDrop();\n }\n };\n\n /** @ignore */\n onDrop = (event: DragEvent): void => {\n /**\n * if drop is blocked - do nothing\n */\n if (!this.canDrop()) return;\n\n this.unselectDraggedOverElement();\n\n const target: DomElement = this.getElement(event);\n\n /**\n * preserve drop blocked state before cleaning classes - it will be needed later\n */\n const isTargetBlocked: boolean = target.isDropBlocked();\n\n this.getElement(event).draggedOut();\n\n /**\n * if we have no dragged element, we are dropping on self or target is blocked - do nothing\n */\n if (!this.draggedElement || this.isDraggingOverSelf(target) || isTargetBlocked) {\n return;\n }\n\n const sourceIndex: number = this.getElementIndex(this.draggedElement);\n const targetIndex: number = this.getElementIndex(target);\n\n /**\n * if source index is less than target index - means we are dragging down;\n * otherwise we are dragging up\n * NOTE: we utilise \"before\" method for element insertion in both cases, because \"after\" can\n * break order of \"drag-static\" elements (if they are present)\n */\n if (sourceIndex < targetIndex) {\n const allElements: HTMLElement[] = this.getAllElements();\n\n /**\n * loop through all element beginning with next to the currently dragged element\n * and ending with drop target element and move all of them up;\n * this will result in target element being moved down to required position\n */\n for (let i: number = sourceIndex + 1; i <= targetIndex; i++) {\n const target: HTMLElement = allElements[i];\n\n if (target) {\n this.draggedElement.dom.before(target);\n }\n }\n } else {\n target.dom.before(this.draggedElement.dom);\n }\n\n /**\n * if possible emit indexes old and new indexes of the repositioned items\n */\n if (this.dropCallback) {\n this.dropCallback(\n {\n before: sourceIndex,\n after: this.getElementIndex(this.draggedElement),\n },\n {\n before: targetIndex,\n after: this.getElementIndex(target),\n },\n );\n }\n };\n\n /** @ignore */\n onMouseEnter = (event: MouseEvent): void => {\n this.setCanDrag(this.getElement(event));\n };\n\n /** @ignore */\n private unselectDraggedOverElement(): void {\n /**\n * make sure previous dragged over element is marked as \"dragged out\"\n */\n this.draggedOverElement?.draggedOut();\n this.draggedOverElement = null;\n }\n\n /** @ignore */\n private setCanDrag(element: DomElement): void {\n /**\n * if special class is set for the element - forbid dragging\n */\n if (!element.canDrag()) {\n element.makeUnDraggable();\n return;\n }\n\n /**\n * make sure dragging the item is not forbidden by external function\n */\n if (this.canDragCallback) {\n if (this.canDragCallback(this.getElementIndex(element))) {\n element.makeDraggable();\n } else {\n element.makeUnDraggable();\n }\n return;\n }\n element.makeDraggable();\n }\n\n /** @ignore */\n private onDragOverBody = (event: DragEvent): void => {\n this.draggedPlaceholder?.reposition(event);\n };\n\n /** @ignore */\n private canDrop(): boolean {\n if (!this.draggedElement || !this.draggedOverElement) return false;\n\n /**\n * if special class is set for the element - forbid dropping;\n * otherwise make sure dropping over the item is not forbidden by external function\n */\n if (!this.draggedOverElement.canDrop()) {\n return false;\n } else if (this.canDropCallback) {\n return this.canDropCallback(\n this.getElementIndex(this.draggedElement),\n this.getElementIndex(this.draggedOverElement),\n );\n }\n\n return true;\n }\n\n /** @ignore */\n private refreshElements(): void {\n /**\n * unsubscribe from all event listeners\n */\n this.unsubscribeFromEventListeners();\n\n /**\n * make sure no placeholder are still visible\n */\n document.querySelectorAll('.' + dragAndDropListClass.DRAGGED_PLACEHOLDER).forEach((element) => {\n element.remove();\n });\n\n /**\n * get all elements that can participate in drag and drop\n */\n const elements: HTMLElement[] = this.getAllElements();\n\n /**\n * make sure we have enough elements to continue\n */\n if (elements.length < this.minCountToDrag) {\n return;\n }\n\n /**\n * add required callbacks to all elements,\n * preserving their unsubscribe functions\n */\n elements.forEach((element: HTMLElement): void => {\n const functions: UNSUBSCRIBE_FUNCTIONS_COLLECTION = {};\n\n functions['dragstart'] = this.renderer.listen(element, 'dragstart', this.onDragStart);\n functions['dragend'] = this.renderer.listen(element, 'dragend', this.onDragEnd);\n functions['dragover'] = this.renderer.listen(element, 'dragover', this.onDragOver);\n functions['drop'] = this.renderer.listen(element, 'drop', this.onDrop);\n functions['mouseenter'] = this.renderer.listen(element, 'mouseenter', this.onMouseEnter);\n\n this.unsubscribeFunctions.set(element, functions);\n });\n }\n\n /** @ignore */\n private unsubscribeFromEventListeners(): void {\n this.unsubscribeFunctions.forEach((collection) => {\n Object.values(collection).forEach((func) => func());\n });\n\n this.unsubscribeFunctions = new Map();\n }\n\n /** @ignore */\n private getAllElements(): HTMLElement[] {\n const result: HTMLElement[] = [];\n\n if (this.draggableList) {\n /**\n * loop through immediate children of the list\n */\n (<HTMLElement[]>Array.from(this.draggableList.nativeElement.children)).forEach((element: HTMLElement): void => {\n /**\n * element is static if it has both \"no-drop\" and \"no-drag\" classes\n */\n const isStatic: boolean =\n element.classList.contains(dragAndDropListClass.NO_DROP) &&\n element.classList.contains(dragAndDropListClass.NO_DRAG);\n\n /**\n * ignore static elements and dragged placeholder element from the list\n */\n if (!isStatic && !element.classList.contains(dragAndDropListClass.DRAGGED_PLACEHOLDER)) {\n result.push(element);\n }\n });\n }\n\n return result;\n }\n\n /** @ignore */\n private getElement(event: DragEvent | MouseEvent): DomElement {\n return new DomElement(<HTMLElement>event.currentTarget);\n }\n\n /** @ignore */\n private getElementIndex(element: DomElement): number {\n return this.getAllElements().indexOf(element.dom);\n }\n\n /** @ignore */\n private isDraggingOverSelf(element: DomElement | null): boolean {\n return this.draggedElement?.dom === element?.dom;\n }\n}\n","<div class=\"draggable-list\" #draggableList (dragleave)=\"onListDragLeave($event)\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsDragAndDropListComponent } from './drag-and-drop-list.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsDragAndDropListComponent],\n declarations: [AdsDragAndDropListComponent],\n})\nexport class AdsDragAndDropListModule {}\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\n\nexport type ErrorPageConfig = {\n code: number;\n icon?: adsIcon;\n message: string;\n summary?: string;\n infoColumns?: ErrorPageInfoColumn[];\n showBackButton?: boolean;\n backButtonLabel?: string;\n showHomeButton?: boolean;\n homeButtonLabel?: string;\n};\n\nexport type ErrorPageInfoColumn = {\n header?: string;\n body: string;\n alignment?: 'left' | 'right' | 'center' | 'justify';\n};\n\nexport enum ErrorPageDefault {\n backButtonLabel = 'Go Back',\n homeButtonLabel = 'Return Home',\n errorCode = 404,\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n SimpleChange,\n ViewChild,\n} from '@angular/core';\nimport { ErrorPageConfig, ErrorPageDefault } from './error-page.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { Location } from '@angular/common';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconWarning } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-error-page',\n templateUrl: './error-page.component.html',\n styleUrls: ['./error-page.component.scss'],\n})\nexport class AdsErrorPageComponent implements OnChanges, AfterViewInit {\n constructor(\n private cdr: ChangeDetectorRef,\n private registry: AdsIconRegistry,\n private location: Location,\n private sanitizer: DomSanitizer,\n ) {\n /** Register basic icons. NOTE: any existing icon can be used if registered before */\n this.registry.register([adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch]);\n }\n\n /** Path to logo image file */\n @Input() logoSrc = 'https://cdn.ascentgl.com/img/ascent-logo-white.svg';\n\n /** Alt text for logo image */\n @Input() logoAlt = 'Ascent Global Logistics';\n\n /** Error page configuration object */\n @Input() config: ErrorPageConfig = {\n code: 404,\n message: 'This Page Looks a Little Lost',\n };\n\n /** @ignore */\n iconAsSvg?: SafeHtml;\n\n /** @ignore */\n defaults: typeof ErrorPageDefault = ErrorPageDefault;\n\n /** @ignore */\n @ViewChild('errorRepresentation') errorRepresentation?: ElementRef;\n\n /** @ignore */\n @ViewChild('errorCode') errorCode?: ElementRef;\n\n /** @ignore */\n @ViewChild('codeImage') codeImage?: ElementRef;\n\n /** @ignore */\n ngOnChanges(changes: { config: SimpleChange }): void {\n if (changes.config && changes.config.currentValue) {\n this.setIcon();\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n /**this method is required to properly calculate error code size and scale when component is being loaded,\n * further recalculation will happen on window resize*/\n this.cdr.detectChanges();\n }\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n /** this method is needed to activate on resize change detection in the component */\n }\n\n /** @ignore */\n back(): void {\n this.location.back();\n }\n\n /** @ignore */\n adjustStyles(): { fontSize?: string; lineHeight?: string; scale?: number } {\n if (!this.errorRepresentation || !this.errorCode) return {};\n\n /**\n * NOTE: error code font size is calculated based on error representation height,\n * so that error code fits vertically\n * NOTE: error code scale is calculated based on error representation width,\n * so that error code fits horizontally\n */\n return {\n fontSize: this.errorRepresentation.nativeElement.offsetHeight + 'px',\n lineHeight: this.errorRepresentation.nativeElement.offsetHeight + 'px',\n scale:\n this.errorRepresentation.nativeElement.offsetWidth < this.errorCode.nativeElement.offsetWidth\n ? this.errorRepresentation.nativeElement.offsetWidth / this.errorCode.nativeElement.offsetWidth\n : 1,\n };\n }\n\n /** @ignore */\n private setIcon(): void {\n if (this.config.icon) {\n let svg = this.registry.get(this.config.icon);\n\n if (!svg) {\n svg = this.registry.get('warning');\n console.warn(`Icon \"${this.config.icon}\" not found`);\n }\n\n this.iconAsSvg = this.sanitizer.bypassSecurityTrustHtml(<string>svg);\n } else {\n this.iconAsSvg = undefined;\n }\n }\n}\n","<div class=\"error-page-container\">\n <div class=\"body\">\n <div class=\"body-header\"><img [src]=\"logoSrc\" [alt]=\"logoAlt\" /></div>\n <div class=\"body-error-representation\" #errorRepresentation [ngClass]=\"{ svg: iconAsSvg }\">\n <div *ngIf=\"iconAsSvg; else code\" class=\"error-icon {{ config.icon }}\" [innerHTML]=\"iconAsSvg\"></div>\n <ng-template #code>\n <span class=\"error-code\" #errorCode [ngStyle]=\"adjustStyles()\">\n {{ config.code || defaults.errorCode }}\n </span>\n </ng-template>\n </div>\n <div class=\"body-error-message\" *ngIf=\"config.message\">{{ config.message }}</div>\n <div class=\"body-error-summary\" *ngIf=\"config.summary\">{{ config.summary }}</div>\n </div>\n <div class=\"footer\" *ngIf=\"config.infoColumns?.length || config.showHomeButton || config.showBackButton\">\n <div class=\"footer-info-columns\" *ngIf=\"config.infoColumns?.length\">\n <!-- default alignment for single column is \"center\", otherwise - \"left\" -->\n <div\n *ngFor=\"let column of config.infoColumns\"\n class=\"footer-info-column\"\n [ngStyle]=\"{\n 'text-align': column.alignment ? column.alignment : (config.infoColumns?.length ?? 1) > 1 ? 'left' : 'center',\n }\"\n >\n <div class=\"footer-column-header\" *ngIf=\"column.header\">{{ column.header }}</div>\n <div class=\"footer-column-body\" [innerHTML]=\"column.body\"></div>\n </div>\n </div>\n <div class=\"footer-buttons\" *ngIf=\"config.showHomeButton || config.showBackButton\">\n <ads-button *ngIf=\"config.showBackButton\" variant=\"secondary\" (click)=\"back()\">{{\n config.backButtonLabel || defaults.backButtonLabel\n }}</ads-button>\n <ads-button *ngIf=\"config.showHomeButton\" variant=\"primary\" routerLink=\"/\">{{\n config.homeButtonLabel || defaults.homeButtonLabel\n }}</ads-button>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-error-page-code',\n template: ``,\n})\nexport class AdsErrorPageCodeComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsErrorPageCodeComponent } from './error-page-code.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AdsErrorPageCodeComponent],\n exports: [AdsErrorPageCodeComponent],\n})\nexport class AdsErrorPageCodeModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsErrorPageComponent } from './error-page.component';\nimport { AdsButtonModule } from '../buttons/button';\nimport { RouterModule } from '@angular/router';\nimport { AdsErrorPageCodeModule } from './error-page-code';\n\n/**\n * todo: remove AdsErrorPageCodeModule after POD is updated\n * NOTE: currently AdsErrorPageCodeModule is provided as legacy to avoid POD compilation errors\n */\n@NgModule({\n declarations: [AdsErrorPageComponent],\n imports: [CommonModule, AdsButtonModule, RouterModule, AdsErrorPageCodeModule],\n exports: [AdsErrorPageComponent],\n})\nexport class AdsErrorPageModule {}\n","import { Component, Input } from '@angular/core';\nimport { Copyright, Link } from './footer.component.types';\n\n@Component({\n selector: 'ads-footer',\n styleUrls: ['footer.component.scss'],\n templateUrl: 'footer.component.html',\n})\nexport class AdsFooterComponent {\n /**\n * Alt text for the footer logo\n */\n @Input() alt = 'Logo';\n\n /**\n * Copyright text to display\n */\n @Input() copyright: Copyright = {\n text: `© ${new Date().getFullYear()} Ads™ is an Ascent Global Logistics Technology`,\n };\n\n /**\n * Links to display in the footer\n */\n @Input() links: Link[] = [];\n\n /**\n * Path to the logo to display\n */\n @Input() logoSrc?: string;\n}\n","<div class=\"footer\">\n <div class=\"links\">\n @for (link of links; track $index) {\n <a class=\"tertiary-link text-xs\" [href]=\"link.href\" [target]=\"link.target || '_self'\">{{ link.text }}</a>\n }\n </div>\n <div class=\"footer-right\">\n <div class=\"copyright\">\n @if (copyright.href) {\n <a\n class=\"secondary-link text-xs\"\n [href]=\"copyright.href\"\n [target]=\"copyright.target || '_self'\"\n [innerHtml]=\"copyright.text\"\n ></a>\n } @else {\n <span [innerHtml]=\"copyright.text\"></span>\n }\n </div>\n @if (logoSrc) {\n <div class=\"logo\">\n <img [attr.src]=\"logoSrc\" alt=\"{{ alt }}\" />\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsFooterComponent } from './footer.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsFooterComponent],\n declarations: [AdsFooterComponent],\n})\nexport class AdsFooterModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-footer-container',\n styleUrls: ['footer-container.component.scss'],\n templateUrl: 'footer-container.component.html',\n})\nexport class AdsFooterContainerComponent {}\n","<footer>\n <ng-content></ng-content>\n</footer>\n","import { NgModule } from '@angular/core';\nimport { AdsFooterContainerComponent } from './footer-container.component';\n\n@NgModule({\n exports: [AdsFooterContainerComponent],\n declarations: [AdsFooterContainerComponent],\n})\nexport class AdsFooterContainerModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-header',\n styleUrls: ['header.component.scss'],\n templateUrl: 'header.component.html',\n})\nexport class AdsHeaderComponent {}\n","<div class=\"header\">\n <div class=\"addon-left\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <ng-content select=\"[logo]\"></ng-content>\n <div class=\"addon-right\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AdsHeaderComponent } from './header.component';\n\n@NgModule({\n exports: [AdsHeaderComponent],\n declarations: [AdsHeaderComponent],\n})\nexport class AdsHeaderModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-header-container',\n styleUrls: ['header-container.component.scss'],\n templateUrl: 'header-container.component.html',\n})\nexport class AdsHeaderContainerComponent {\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<header [class.mobile]=\"isMobile\">\n <ng-content></ng-content>\n</header>\n","import { NgModule } from '@angular/core';\n\nimport { AdsHeaderContainerComponent } from './header-container.component';\n\n@NgModule({\n exports: [AdsHeaderContainerComponent],\n declarations: [AdsHeaderContainerComponent],\n})\nexport class AdsHeaderContainerModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-org-display-text',\n styleUrls: ['org-display-text.component.scss'],\n templateUrl: 'org-display-text.component.html',\n})\nexport class AdsOrgDisplayTextComponent {\n /**\n * Organization text to display\n */\n @Input() text!: string;\n\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<span *ngIf=\"!isMobile\" class=\"org-display-text\">{{ text }}</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AdsOrgDisplayTextComponent } from './org-display-text.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsOrgDisplayTextComponent],\n declarations: [AdsOrgDisplayTextComponent],\n})\nexport class AdsOrgDisplayTextModule {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ads-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.scss'],\n})\nexport class AdsLinkButtonComponent {\n /** The unique ID for the button */\n id = input<string>('');\n\n /** Whether the button is disabled */\n disabled = input<boolean>(false);\n}\n","<button mat-flat-button [id]=\"id()\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\n <ng-content select=\"[icon]\"></ng-content>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsLinkButtonComponent } from './link-button.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsLinkButtonComponent],\n exports: [AdsLinkButtonComponent],\n imports: [CommonModule, MatButtonModule, AdsIconModule],\n})\nexport class AdsLinkButtonModule {}\n","import { Component, HostListener, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'ads-primary-logo',\n styleUrls: ['primary-logo.component.scss'],\n templateUrl: 'primary-logo.component.html',\n})\nexport class AdsPrimaryLogoComponent implements OnInit {\n isMobile = false;\n\n /**\n * Mobile width\n */\n mobileWidth = input<number>(768);\n\n /**\n * Whether the navigation is collapsed\n */\n isCollapsed = input<boolean>(false);\n\n /** @ignore */\n @HostListener('window:resize', ['$event'])\n onResize() {\n this.checkScreenSize();\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.checkScreenSize();\n }\n\n /** @ignore */\n private checkScreenSize(): void {\n this.isMobile = window.innerWidth <= this.mobileWidth();\n }\n}\n","<picture [ngClass]=\"{ full: !isCollapsed() }\">\n @if (isMobile || isCollapsed()) {\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"32\" viewBox=\"0 0 24 32\">\n <path\n d=\"M20.5547 3.69959C18.4527 1.6106 15.6421 0.377465 12.6734 0.241829C9.70483 0.106194 6.79227 1.07784 4.50651 2.96635V0.663115H0V31.994L4.50218 27.517V21.1981C6.86303 23.1293 9.87957 24.0849 12.9287 23.8677C15.9778 23.6504 18.8265 22.2769 20.8864 20.0308C22.9463 17.7848 24.06 14.8377 23.9975 11.7985C23.935 8.75926 22.701 5.85999 20.5504 3.69959H20.5547ZM12.1446 19.6627C10.6356 19.6669 9.15923 19.2258 7.90244 18.3953C6.64565 17.5647 5.66496 16.3819 5.08451 14.9968C4.50406 13.6116 4.34996 12.0864 4.64172 10.6141C4.93348 9.14178 5.65798 7.78868 6.7235 6.72608C7.78901 5.66348 9.14763 4.93917 10.6273 4.64484C12.107 4.35051 13.6413 4.49941 15.0359 5.07268C16.4304 5.64595 17.6226 6.61781 18.4614 7.86521C19.3002 9.11262 19.748 10.5795 19.748 12.0801C19.7468 14.087 18.9461 16.0118 17.5211 17.4329C16.096 18.8541 14.1628 19.6558 12.1446 19.6627Z\"\n />\n </svg>\n } @else {\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"35\" viewBox=\"0 0 80 35\">\n <path\n d=\"M15.4308 12.8987C13.8528 11.3239 11.7428 10.3942 9.51421 10.292C7.28561 10.1897 5.09909 10.9222 3.38313 12.346V10.6096H0V34.2293L3.37987 30.8542V26.0905C5.15222 27.5464 7.41679 28.2668 9.70582 28.103C11.9948 27.9393 14.1334 26.9038 15.6799 25.2105C17.2263 23.5173 18.0623 21.2956 18.0154 19.0043C17.9685 16.7131 17.0421 14.5274 15.4276 12.8987H15.4308ZM9.11719 24.933C7.98435 24.9362 6.87602 24.6037 5.93252 23.9775C4.98903 23.3513 4.2528 22.4597 3.81704 21.4155C3.38128 20.3712 3.2656 19.2213 3.48463 18.1114C3.70366 17.0015 4.24756 15.9814 5.04746 15.1803C5.84737 14.3793 6.86731 13.8332 7.97815 13.6113C9.089 13.3894 10.2408 13.5017 11.2877 13.9339C12.3347 14.366 13.2296 15.0987 13.8593 16.0391C14.4891 16.9795 14.8252 18.0853 14.8252 19.2166C14.8244 20.7296 14.2232 22.1806 13.1534 23.252C12.0836 24.3234 10.6323 24.9278 9.11719 24.933Z\"\n />\n <path\n d=\"M38.2118 19.2167C38.2119 17.2546 37.565 15.3472 36.3711 13.7889C35.1772 12.2306 33.5028 11.1082 31.6064 10.5951C29.71 10.082 27.6972 10.2067 25.8788 10.9499C24.0605 11.6932 22.5378 13.0137 21.5459 14.7074C20.5541 16.4011 20.1483 18.3737 20.3912 20.3207C20.6341 22.2677 21.5122 24.0807 22.8899 25.4796C24.2676 26.8785 26.0682 27.7855 28.0136 28.0605C29.9589 28.3355 31.9409 27.9632 33.6532 27.0011C34.9526 26.2641 36.0481 25.216 36.841 23.951L34.1058 22.2439C33.5193 23.1737 32.677 23.9151 31.6797 24.3794C30.6823 24.8437 29.5722 25.0112 28.482 24.862C27.3917 24.7128 26.3677 24.2532 25.5322 23.538C24.6967 22.8229 24.0852 21.8825 23.7708 20.8295H38.2151L38.2118 19.2167ZM23.7708 17.6071C24.1208 16.4233 24.8449 15.3844 25.835 14.6454C26.825 13.9065 28.0279 13.5072 29.2639 13.5072C30.5 13.5072 31.7028 13.9065 32.6929 14.6454C33.6829 15.3844 34.407 16.4233 34.757 17.6071H23.7708Z\"\n />\n <path d=\"M66.3569 10.3986H63.0128V28.0972H66.3569V10.3986Z\" />\n <path d=\"M71.14 19.2495L80 28.0972H75.4837L66.6205 19.2495L75.4837 10.3986H80L71.14 19.2495Z\" />\n <path d=\"M56.5265 0H41.304V2.84191H56.5265V0Z\" />\n <path d=\"M40.5882 28.0971H37.0032L48.9174 5.35858L60.8316 28.0971H57.2466L48.9174 12.2L40.5882 28.0971Z\" />\n </svg>\n }\n</picture>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsPrimaryLogoComponent } from './primary-logo.component';\n\n@NgModule({\n imports: [CommonModule, NgOptimizedImage],\n exports: [AdsPrimaryLogoComponent],\n declarations: [AdsPrimaryLogoComponent],\n})\nexport class AdsPrimaryLogoModule {}\n","import { Component, input } from '@angular/core';\n\nexport enum AdsAscentLogoColor {\n Regular = 'regular',\n Teal = 'teal',\n}\n\n@Component({\n selector: 'ads-ascent-logo',\n styleUrls: ['ascent-logo.component.scss'],\n templateUrl: 'ascent-logo.component.html',\n})\nexport class AdsAscentLogoComponent {\n /** @ignore */\n protected readonly AscentLogoColor = AdsAscentLogoColor;\n\n /**\n * Logo size\n */\n size = input<'large' | 'small'>('large');\n\n /**\n * Logo color\n */\n color = input<AdsAscentLogoColor>(AdsAscentLogoColor.Teal);\n}\n","<picture>\n @if (color() === AscentLogoColor.Teal) {\n <svg [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\n <g clip-path=\"url(#clip0_353_5425)\">\n <path\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\n fill=\"url(#paint0_linear_353_5425)\"\n />\n <path\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\n fill=\"#004987\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_353_5425\"\n x1=\"7.54584\"\n y1=\"34.3843\"\n x2=\"33.8846\"\n y2=\"8.04551\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#004987\" />\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\n </linearGradient>\n <clipPath id=\"clip0_353_5425\">\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n } @else {\n <svg [ngClass]=\"size()\" class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\n <g clip-path=\"url(#clip0_353_5433)\">\n <path\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\n />\n <path\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1526 76.7539 24.6177C77.7336 24.969 78.7665 25.149 79.8074 25.1498C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8562 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5436 71.586 13.8564C71.5595 12.9759 71.7429 12.1018 72.121 11.3061C72.4991 10.5105 73.0611 9.81626 73.7605 9.28079C75.2132 8.12724 77.1194 7.55047 79.4789 7.55047C80.8634 7.5479 82.2409 7.74582 83.5687 8.13805C84.9587 8.56663 86.2811 9.18967 87.4966 9.98866L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1307 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5195 76.1131 14.7445 76.3282 14.9205C77.0137 15.3434 77.7851 15.6074 78.586 15.6932L82.1669 16.3779C84.2025 16.7572 85.7108 17.4235 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4813 86.5571 26.2034 85.8311 26.7783C85.0386 27.3947 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6829 79.9092 28.6752C78.2476 28.6907 76.5935 28.4504 75.005 27.9627C73.5821 27.5421 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1472 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3642 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1036C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7304 92.0937 11.5996 93.0296 10.6463C93.9655 9.69289 95.0824 8.93607 96.3148 8.42026C97.5937 7.87281 98.9719 7.59559 100.363 7.60599C101.907 7.59932 103.436 7.90297 104.86 8.4989C106.244 9.06667 107.488 9.92862 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4956C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8303 98.2998 24.153C99.0371 24.4758 99.8358 24.6343 100.641 24.6177ZM127.581 25.6772C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6056 109.082 20.9077 109.089 18.1036C109.079 16.6808 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5994C112.837 9.63567 113.942 8.87096 115.167 8.3528C116.392 7.83465 117.71 7.57413 119.04 7.58749C120.334 7.57287 121.616 7.82964 122.804 8.34125C123.992 8.85286 125.06 9.60792 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.0851V19.2278H113.623C113.806 20.7609 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8028C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5173 124.569 22.9059L127.581 25.6772ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6552C116.529 11.8936 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0156 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89283H135.936V11.2332C136.622 10.1079 137.575 9.17001 138.712 8.50353C139.842 7.8725 141.119 7.55316 142.413 7.57823C143.355 7.54697 144.292 7.71366 145.164 8.06751C146.037 8.42136 146.826 8.95449 147.479 9.63241C148.138 10.33 148.651 11.1513 148.989 12.0488C149.327 12.9462 149.484 13.9019 149.45 14.8604V28.2773H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2586 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.5571H150.672V7.89283H154.785V4.71442L159.383 1.30005V7.89283H164.121V11.5571H159.383V21.8927C159.383 22.8982 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.3801 163.024 28.467C162.37 28.555 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.2 154.778 24.7827 154.785 22.9105ZM66.6681 9.49362C65.1876 8.22287 63.1396 7.58749 60.5241 7.58749C59.1392 7.59189 57.7598 7.76274 56.4157 8.0964C55.5404 8.31317 54.6797 8.58514 53.8387 8.91067V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3918C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8242C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3369 53.0476 26.8801C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50288V9.49362ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4389 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.389 55.6382 20.9584C55.8354 20.5279 56.1282 20.1481 56.4944 19.8478C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4334 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_353_5433\">\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n }\n</picture>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsAscentLogoComponent } from './ascent-logo.component';\n\n@NgModule({\n imports: [CommonModule, NgOptimizedImage],\n exports: [AdsAscentLogoComponent],\n declarations: [AdsAscentLogoComponent],\n})\nexport class AdsAscentLogoModule {}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconChevronLeft, adsIconChevronRight, adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n})\nexport class AdsPaginationComponent implements OnChanges {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconChevronLeft, adsIconChevronRight, adsIconMenuMoreInfo]);\n }\n\n /**\n * The total number of pages\n */\n @Input() totalPages!: number;\n\n /**\n * The current page\n */\n @Input() currentPage!: number;\n\n /**\n * Event emitted when a page button is clicked\n */\n @Output() goToPage: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * Event emitted when the next page button is clicked\n */\n @Output() goToNextPage: EventEmitter<null> = new EventEmitter<null>();\n\n /**\n * Event emitted when the previous page button is clicked\n */\n @Output() goToPreviousPage: EventEmitter<null> = new EventEmitter<null>();\n\n /** @ignore */\n public pages: number[] = [];\n\n /** @ignore */\n ngOnChanges(changes: SimpleChanges): void {\n if (\n (changes.currentPage && changes.currentPage.currentValue) ||\n (changes.totalPages && changes.totalPages.currentValue)\n ) {\n this.pages = this.getPagesToDisplay();\n }\n }\n\n /** @ignore */\n public onGoToPage(page: number): void {\n this.goToPage.emit(page);\n }\n\n /** @ignore */\n public onGoToNextPage(): void {\n this.goToNextPage.emit();\n }\n\n /** @ignore */\n public onGoToPreviousPage(): void {\n this.goToPreviousPage.emit();\n }\n\n /** @ignore */\n private getPagesToDisplay(): number[] {\n if (this.totalPages <= 7) {\n return [...Array(this.totalPages).keys()].map((x) => ++x);\n }\n\n if (this.currentPage > 5) {\n if (this.currentPage >= this.totalPages - 4) {\n return [\n 1,\n -1,\n this.totalPages - 4,\n this.totalPages - 3,\n this.totalPages - 2,\n this.totalPages - 1,\n this.totalPages,\n ];\n } else {\n return [1, -1, this.currentPage - 1, this.currentPage, this.currentPage + 1, -1, this.totalPages];\n }\n }\n\n return [1, 2, 3, 4, 5, -1, this.totalPages];\n }\n}\n","<nav aria-label=\"Pagination\">\n <ul>\n <li>\n <button\n aria-label=\"Go To Previous Page\"\n [attr.aria-disabled]=\"currentPage === 1\"\n [disabled]=\"currentPage === 1\"\n id=\"paginationPrevious\"\n (click)=\"onGoToPreviousPage()\"\n >\n <ads-icon name=\"chevron_left\" size=\"xs\" theme=\"primary\"></ads-icon>\n </button>\n </li>\n <li *ngFor=\"let page of pages\">\n <a\n *ngIf=\"page !== -1; else more\"\n class=\"internal\"\n role=\"button\"\n [attr.aria-current]=\"page === currentPage\"\n [attr.aria-label]=\"page === currentPage ? 'Current Page, Page ' + page : 'Go to Page ' + page\"\n [class.current]=\"page === currentPage\"\n [id]=\"'paginationPage' + page\"\n tabindex=\"0\"\n (click)=\"onGoToPage(page)\"\n (keyup.enter)=\"onGoToPage(page)\"\n >{{ page }}</a\n >\n <ng-template #more>\n <a class=\"more\">\n <ads-icon name=\"menu_more_info\" size=\"xs\" theme=\"primary\"></ads-icon>\n </a>\n </ng-template>\n </li>\n <li>\n <button\n aria-label=\"Go To Next Page\"\n [attr.aria-disabled]=\"currentPage === totalPages\"\n [disabled]=\"currentPage === totalPages\"\n id=\"paginationNext\"\n (click)=\"onGoToNextPage()\"\n >\n <ads-icon name=\"chevron_right\" size=\"xs\" theme=\"primary\"></ads-icon>\n </button>\n </li>\n </ul>\n</nav>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsPaginationComponent } from './pagination.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [CommonModule, AdsIconModule],\n declarations: [AdsPaginationComponent],\n exports: [AdsPaginationComponent],\n})\nexport class AdsPaginationModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-pagination-container',\n styleUrls: ['pagination-container.component.scss'],\n templateUrl: 'pagination-container.component.html',\n})\nexport class AdsPaginationContainerComponent {}\n","<div class=\"pagination-container\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AdsPaginationContainerComponent } from './pagination-container.component';\n\n@NgModule({\n declarations: [AdsPaginationContainerComponent],\n exports: [AdsPaginationContainerComponent],\n})\nexport class AdsPaginationContainerModule {}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconSortDescending } from '@ascentgl/ads-icons/icons';\n\ntype Theme = 'primary' | 'success' | 'medium';\n\n@Component({\n selector: 'ads-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class AdsProgressBarComponent implements OnChanges {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconSortDescending);\n }\n\n /**\n * The unique ID for the progress bar\n */\n @Input() id!: string;\n\n /**\n * Whether or not the progress bar is disabled\n */\n @Input() disabled = false;\n\n /**\n * Aria label for the progress element\n */\n @Input() ariaLabel!: string;\n\n /**\n * The max value of the progress bar\n */\n @Input() max = 100;\n\n /**\n * The value of the progress bar\n */\n @Input() value = 0;\n\n /**\n * @ignore\n * Only show the marker if the bar has progress and is not completed\n */\n get showMarker(): boolean {\n return this.value > 0 && this.value < this.max;\n }\n\n /** @ignore */\n public color: Theme = 'primary';\n\n /** @ignore */\n public markerPosition!: string;\n\n /** @ignore */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.value > this.max) {\n console.warn(\n `The current value (${this.value}) of the progress bar is greater than the max (${this.max}). Did you forget to add the 'max' attribute?`,\n );\n }\n\n if (changes.value || changes.max) {\n this.color = this.getColor(this.value, this.max, this.disabled);\n this.markerPosition = this.getMarkerPosition(this.value, this.max);\n }\n\n if (changes.disabled) {\n this.color = this.getColor(this.value, this.max, this.disabled);\n }\n\n if (changes.ariaLabel) {\n this.ariaLabel = this.getLabel(this.max);\n }\n }\n\n /** @ignore */\n private getColor(value: number, max: number, disabled: boolean): Theme {\n return disabled ? 'medium' : value >= max ? 'success' : 'primary';\n }\n\n /** @ignore */\n private getLabel(max: number): string {\n return this.ariaLabel ?? `A bounded progress bar from 0 to ${max}`;\n }\n\n /** @ignore */\n private getMarkerPosition(value: number, max: number): string {\n return `calc(${(value / max) * 100}% + 5.5px)`;\n }\n}\n","<div class=\"progress-container\" [ngClass]=\"color\" [class.completed]=\"value >= max\">\n <div class=\"progress-marker\" [ngStyle]=\"{ width: markerPosition }\">\n <ads-icon *ngIf=\"showMarker\" name=\"sort_descending\" size=\"xxxs\"></ads-icon>\n </div>\n <progress\n role=\"progressbar\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-label]=\"ariaLabel\"\n [value]=\"value\"\n [max]=\"max\"\n [id]=\"id\"\n ></progress>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsProgressBarComponent } from './progress-bar.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [CommonModule, AdsIconModule],\n declarations: [AdsProgressBarComponent],\n exports: [AdsProgressBarComponent],\n})\nexport class AdsProgressBarModule {}\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\nexport enum SpinnerSize {\n xSmall = 'x-small',\n small = 'small',\n normal = 'normal',\n}\n\n@Component({\n selector: 'ads-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n})\nexport class AdsProgressSpinnerComponent implements OnInit {\n /** set spinner z-index */\n @Input() zIndex = 1;\n\n /** set spinner scrollContainer. This is useful when the spinner is inside dialog window **/\n @Input() scrollContainer: HTMLElement | 'auto' | 'none' = 'none';\n\n /** set spinner size */\n @Input() size: SpinnerSize = SpinnerSize.normal;\n\n /** set spinner diameter (overrides \"size\") */\n @Input() diameter?: number;\n\n computedDiameter = 100;\n isSticky = false;\n computedStyles?: CSSStyleDeclaration;\n\n private readonly sizes = {\n [SpinnerSize.xSmall]: 50,\n [SpinnerSize.small]: 70,\n [SpinnerSize.normal]: 100,\n };\n\n constructor(\n protected ref: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n /** @ignore */\n ngOnInit(): void {\n let scrollContainer: HTMLElement | Window | 'auto' | 'none' = this.scrollContainer;\n\n if (this.scrollContainer == 'auto') {\n scrollContainer = DomHelper.getScrollableParent(this.ref.nativeElement);\n }\n\n /**\n * if scroll container is HTMLElement, make spinner stick to it's dimensions\n */\n if (scrollContainer instanceof HTMLElement) {\n this.scrollContainer = scrollContainer;\n this.isSticky = true;\n this.computedStyles = getComputedStyle(scrollContainer);\n }\n\n if (this.diameter) {\n this.computedDiameter = this.diameter;\n } else {\n this.computedDiameter = this.sizes[this.size];\n }\n }\n\n /** @ignore */\n getOverlayStyles(): GENERIC_COLLECTION {\n const container = <HTMLElement>this.scrollContainer;\n\n const computedStyles: GENERIC_COLLECTION = this.computedStyles ?? {};\n\n /**\n * subtract .5px from width to avoid \"accidental\" appearance of scrollbars on resize\n */\n return {\n zIndex: this.zIndex,\n height: container.clientHeight + 'px',\n width: container.clientWidth - 0.5 + 'px',\n top: computedStyles.paddingTop ? '-' + computedStyles.paddingTop : 0,\n left: computedStyles.paddingLeft ? '-' + computedStyles.paddingLeft : 0,\n };\n }\n\n /**\n * @ignore\n * required for proper change detection\n * NOTE: REALLY REQUIRED\n */\n @HostListener('window:resize') resize(): void {\n /**\n * additional change detection allows to avoid overlay sizing issues when window is being resized\n */\n this.cdr.detectChanges();\n }\n}\n","@if (isSticky) {\n <div class=\"spinner-container\">\n <div class=\"spinner-overlay\" [ngStyle]=\"getOverlayStyles()\">\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\n </div>\n </div>\n} @else {\n <div class=\"spinner-overlay window\" [ngStyle]=\"{ zIndex }\">\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsGestureModule } from '@ascentgl/ads-utils';\nimport { AdsProgressSpinnerComponent } from './progress-spinner.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@NgModule({\n declarations: [AdsProgressSpinnerComponent],\n imports: [CommonModule, AdsIconModule, AdsGestureModule, MatProgressSpinnerModule],\n exports: [AdsProgressSpinnerComponent],\n providers: [{ provide: Window, useValue: window }],\n})\nexport class AdsProgressSpinnerModule {}\n","export enum ProgressIndicatorSpinnerDefault {\n diameter = 52,\n padding = 11,\n fontSize = 20,\n max = 10,\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChange } from '@angular/core';\nimport { ProgressIndicatorSpinnerDefault } from './progress-indicator-spinner.types';\n\n@Component({\n selector: 'ads-progress-indicator-spinner',\n templateUrl: './progress-indicator-spinner.component.html',\n styleUrls: ['./progress-indicator-spinner.component.scss'],\n})\nexport class AdsProgressIndicatorSpinnerComponent implements OnChanges {\n /** Spinner diameter in pixels. Default is 52. Cannot be less than 20 */\n @Input() diameter: number = ProgressIndicatorSpinnerDefault.diameter;\n\n /** Max progress value. Default is 10. Cannot be less than 0 */\n @Input() max: number = ProgressIndicatorSpinnerDefault.max;\n\n /** Current progress value. Cannot be less than 0 or more than \"max\"*/\n @Input() value = 0;\n\n /** Event emitted percentage is updated after value changes */\n @Output() percentageUpdated = new EventEmitter<number>();\n\n /** @ignore */\n percentage = 0;\n\n /** @ignore */\n readonly defaults: typeof ProgressIndicatorSpinnerDefault = ProgressIndicatorSpinnerDefault;\n\n /** @ignore */\n ngOnChanges(changes: { value: SimpleChange; max: SimpleChange; diameter: SimpleChange }): void {\n if (changes.max) {\n this.calculateMax();\n }\n\n if (changes.value) {\n this.calculateValue();\n }\n\n if (changes.diameter) {\n this.calculateDiameter();\n }\n }\n\n /** @ignore */\n private calculateMax(): void {\n if (this.max < 1) {\n this.max = 1;\n }\n\n this.calculateValue();\n }\n\n /** @ignore */\n private calculateValue(): void {\n if (this.value < 0) {\n this.value = 0;\n }\n\n if (this.value > this.max) {\n this.value = this.max;\n }\n\n this.calculatePercentage();\n }\n\n /** @ignore */\n private calculatePercentage(): void {\n const newPercentage = Math.round((this.value * 100) / this.max);\n\n if (newPercentage != this.percentage) {\n this.percentage = newPercentage;\n this.percentageUpdated.emit(this.percentage);\n }\n }\n\n /** @ignore */\n private calculateDiameter(): void {\n if (this.diameter < 20) {\n this.diameter = 20;\n }\n }\n}\n","<!-- real padding will be calculated based on default padding and font size -->\n<div\n class=\"progress-indicator-wrapper\"\n [ngStyle]=\"{ padding: (diameter * defaults.padding) / defaults.diameter + 'px' }\"\n>\n <mat-spinner [mode]=\"'determinate'\" [diameter]=\"diameter\" [value]=\"percentage\"></mat-spinner>\n <!-- real font size is calculated based on default diameter and font size -->\n <div\n class=\"progress-value\"\n [ngStyle]=\"{\n fontSize: (diameter * defaults.fontSize) / defaults.diameter + 'px',\n width: diameter + 'px',\n height: diameter + 'px',\n }\"\n >\n <!-- hidden value is used to calculate visible value scale -->\n <span class=\"hidden-value\" #hiddenValue>{{ value }}</span>\n <!-- scale value only if it has more than 3 characters -->\n <!-- the text should not be wider than 70% of diameter -->\n <span\n class=\"visible-value\"\n [ngStyle]=\"{\n scale: hiddenValue.textContent!.length > 3 ? (this.diameter * 0.7) / hiddenValue.clientWidth : 1,\n }\"\n >{{ value }}</span\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsProgressIndicatorSpinnerComponent } from './progress-indicator-spinner.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@NgModule({\n declarations: [AdsProgressIndicatorSpinnerComponent],\n imports: [CommonModule, MatProgressSpinnerModule],\n exports: [AdsProgressIndicatorSpinnerComponent],\n})\nexport class AdsProgressIndicatorSpinnerModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-shell-layout',\n templateUrl: './shell-layout.component.html',\n styleUrls: ['./shell-layout.component.scss'],\n})\nexport class ShellLayoutComponent {\n /**\n * Whether the navigation is collapsed\n */\n @Input() isCollapsed = false;\n\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<!-- <div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\n <div class=\"shell-container\">\n <ng-content select=\"[navigation]\"></ng-content>\n <div class=\"shell-header\">\n <ng-content select=\"[header]\"></ng-content> \n <main class=\"main-content\">\n <ng-content></ng-content>\n </main>\n <ng-content select=\"[widgetbar]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[footer]\"></ng-content>\n</div> -->\n\n<div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\n <div class=\"container\">\n <ng-content select=\"[header]\"></ng-content>\n <main class=\"main-content\">\n <ng-content></ng-content>\n </main>\n <ng-content select=\"[widgetbar]\"></ng-content>\n </div>\n <ng-content select=\"[footer]\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ShellLayoutComponent } from './shell-layout.component';\n\n@NgModule({\n declarations: [ShellLayoutComponent],\n exports: [ShellLayoutComponent],\n imports: [CommonModule],\n})\nexport class AdsShellLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-splash-page',\n templateUrl: './splash-page.component.html',\n styleUrls: ['./splash-page.component.scss'],\n})\nexport class AdsSplashPageComponent {\n /**\n * Alt text for the logo\n */\n @Input() alt!: string;\n\n /**\n * Logo to display\n */\n @Input() imageSrc!: string;\n @Input() text = 'Coming Soon';\n}\n","<div class=\"splash-page-container\">\n <img [src]=\"imageSrc\" [alt]=\"alt\" />\n <h1>{{ text }}</h1>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsSplashPageComponent } from './splash-page.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AdsSplashPageComponent],\n exports: [AdsSplashPageComponent],\n})\nexport class AdsSplashPageModule {}\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../../general/color-palette/colors.enums';\nimport { Tag } from './tag.types';\n\n@Component({\n selector: 'ads-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdsTagComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconCross);\n }\n\n /** The color of the tag */\n color = input.required<Colors>();\n\n /** The unique id of the tag */\n id = input.required<string>();\n\n /** Whether the tag is removeable */\n removable = input<boolean>(true);\n\n /** The text of the tag */\n tag = input.required<string>();\n\n /** Event emitted when the remove icon is clicked */\n remove = output<string>();\n\n /** Event emitted when a tag is selected */\n selected = output<Tag>();\n\n /** @ignore */\n onRemove() {\n this.remove.emit(this.id());\n }\n\n /** @ignore */\n onSelected() {\n this.selected.emit({\n id: this.id(),\n color: this.color(),\n tag: this.tag(),\n });\n }\n\n /** @ignore */\n private darkTitleColorList = [\n Colors.Muted,\n Colors.Light30,\n Colors.Light80,\n Colors.Light,\n Colors.Medium30,\n Colors.Medium50,\n ];\n\n /** @ignore */\n\n isDarkTitle(): boolean {\n return this.darkTitleColorList.includes(this.color());\n }\n\n /** @ignore */\n getBackgroundColor(): string {\n return `var(--color-${this.color()})`;\n }\n\n /** @ignore */\n getTextColor(): string {\n if (this.isDarkTitle()) {\n return `var(--color-${Colors.Dark})`;\n }\n return `var(--color-${Colors.White})`;\n }\n}\n","<div\n class=\"tag\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(),\n color: getTextColor(),\n }\"\n>\n <span class=\"tag-text\" (click)=\"onSelected()\">{{ tag() }}</span>\n\n @if (removable()) {\n <ads-icon\n [id]=\"'ads-tag-' + id()\"\n name=\"cross\"\n size=\"xxxs\"\n (click)=\"onRemove()\"\n [stroke]=\"isDarkTitle() ? 'dark' : 'white'\"\n />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTagComponent } from './tag.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsTagComponent],\n imports: [CommonModule, AdsIconModule],\n exports: [AdsTagComponent],\n})\nexport class AdsTagModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-tag-container',\n templateUrl: './tag-container.component.html',\n styleUrls: ['./tag-container.component.scss'],\n})\nexport class AdsTagContainerComponent {}\n","<div class=\"tag-container\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTagContainerComponent } from './tag-container.component';\n\n@NgModule({\n declarations: [AdsTagContainerComponent],\n imports: [CommonModule],\n exports: [AdsTagContainerComponent],\n})\nexport class AdsTagContainerModule {}\n","import { AfterViewInit, Directive, inject, Input, OnChanges, SimpleChange } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport {\n adsIconCheckCircleFilled,\n adsIconWarning,\n adsIconVisibilityEye,\n adsIconVisibilityEyeNone,\n} from '@ascentgl/ads-icons/icons';\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { asapScheduler } from 'rxjs';\n\n@Directive()\nexport abstract class AbstractBaseComponent implements OnChanges, AfterViewInit {\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n /**\n * NOTE: we use setter and internal \"valueControl\" here\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\n *\n */\n if (control instanceof FormControl) {\n this.valueControl = control;\n } else {\n throw Error('Control must be a \"FormControl\" instance');\n }\n }\n\n /** @ignore */\n displayControl: FormControl = new FormControl();\n\n /** If true, invalid field will immediately become dirty to display the error */\n @Input() immediateValidation = false;\n\n /** Object, containing key=>value pairs for errors and their translated messages */\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\n\n /** Hint message, displayed under the control */\n @Input() hint?: string;\n\n /** Success message, displayed under the control */\n @Input() successMessage?: string;\n\n /** Optional \"id\" attribute for input field */\n @Input() id = '';\n\n /** Optional control field label */\n @Input() label?: string;\n\n /** @ignore */\n @Input() showFooter = true;\n\n /** @ignore */\n protected registry: AdsIconRegistry = inject(AdsIconRegistry);\n\n /** @ignore */\n get required() {\n return this.valueControl.hasValidator(Validators.required);\n }\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n @Input() width = '100%';\n\n /** @ignore */\n valueControl: FormControl = new FormControl();\n\n /** @ignore */\n private readonly genericError: string = 'Something went wrong';\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {};\n\n /** @ignore */\n private readonly requiredErrorMessage: string = 'Field is <strong>required</strong>';\n\n constructor() {\n this.registry.register([\n adsIconWarning,\n adsIconWarning,\n adsIconCheckCircleFilled,\n adsIconVisibilityEye,\n adsIconVisibilityEyeNone,\n ]);\n }\n\n ngOnChanges(changes: { immediateValidation: SimpleChange }): void {\n if (changes.immediateValidation && !changes.immediateValidation.isFirstChange()) {\n this.ngAfterViewInit();\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n this.touchInvalid(this.valueControl);\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.valueControl): string {\n if (!control.errors) return this.genericError;\n\n /**\n * NOTE: we are showing only the first error in a row\n */\n const firstErrorKey: string = Object.keys(control.errors)[0];\n\n /**\n * merge defaultErrorMessages, required error messages (which is always available)\n * and configured errorMessages\n */\n const errorMessages: GENERIC_COLLECTION<string> = {\n ...this.defaultErrorMessages,\n ...{ required: this.requiredErrorMessage },\n ...this.errorMessages,\n };\n\n if (typeof errorMessages[firstErrorKey] === 'string') {\n return errorMessages[firstErrorKey];\n } else {\n console.warn(`No translation for error ${firstErrorKey}`);\n return `${this.genericError} (${firstErrorKey})`;\n }\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n if (this.immediateValidation) {\n asapScheduler.schedule(() => control.markAsTouched({ onlySelf: true }));\n }\n }\n\n /** @ignore */\n protected syncState(): void {\n if (this.displayControl.disabled !== this.valueControl.disabled) {\n this.valueControl.disabled ? this.displayControl.disable() : this.displayControl.enable();\n }\n\n if (this.valueControl.pristine) {\n this.displayControl.markAsPristine();\n }\n\n if (this.valueControl.untouched) {\n /**\n * if displayControl is touched and contains invalid value - clear it up before marking it as untouched\n * NOTE: this is required to properly reset displayControl when valueControl is reset\n */\n if (this.displayControl.touched && this.displayControl.invalid) {\n this.displayControl.setValue(null, { emitEvent: false });\n }\n this.displayControl.markAsUntouched();\n } else if (this.displayControl.untouched) {\n this.displayControl.markAsTouched();\n }\n\n if (this.valueControl.valid !== this.displayControl.valid) {\n this.displayControl.setErrors(this.valueControl.errors);\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n }\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.valueControl.errors && (this.valueControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n canShowSuccess(): boolean {\n return !this.valueControl.errors && this.valueControl.touched && !!this.successMessage;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractBaseComponent } from './abstract.base.component';\n\nexport type FieldSize = 'base' | 'xs';\n\n@Directive()\nexport abstract class AbstractInputComponent extends AbstractBaseComponent {\n @Input() showExclamationOnError = false;\n\n /** If true, clear button will appear in the input if it is not empty */\n @Input() showClearButton = false;\n\n /** Tooltip message, displayed over tooltip icon */\n @Input() tooltip?: string;\n\n /** Empty input field placeholder */\n @Input() placeholder = '';\n\n /** Whether the Input is a smaller version */\n @Input() size: FieldSize = 'base';\n\n /** @ignore */\n get showExclamation() {\n return this.showExclamationOnError && this.valueControl.invalid && this.valueControl.touched;\n }\n\n /** @ignore */\n get canClear() {\n return this.showClearButton && !!this.valueControl.value;\n }\n\n /** @ignore */\n clear(event: MouseEvent): void {\n this.valueControl.setValue(null);\n\n this.valueControl.markAsTouched();\n\n /**\n * stop even propagation so that calendar won't open on \"clear\" button click\n */\n event.stopPropagation();\n }\n\n /** @ignore */\n get smallSize(): boolean {\n return this.size === 'xs';\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AbstractInputComponent } from './abstract.input.component';\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\n\nexport type DropdownComponentOption = string | number | GENERIC_COLLECTION | null | boolean;\n\nexport type DropdownComponentOptions =\n | DropdownComponentOption[]\n | GENERIC_COLLECTION<DropdownComponentOption>\n | Map<DropdownComponentOption, DropdownComponentOption>;\n\nexport type DropdownComponentDisplayedOptions = Map<DropdownComponentOption, string>;\n\n@Directive()\nexport abstract class AbstractDropdownComponent extends AbstractInputComponent implements OnDestroy {\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\n @Input() displayValueKey?: string;\n\n /** Enable/disable options sorting */\n @Input() sortOptions = true;\n\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\n @Input() fitContent = false;\n\n /** @ignore */\n public displayedOptions: DropdownComponentDisplayedOptions = new Map();\n\n /** @ignore */\n protected controlSubscription?: Subscription;\n\n /** @ignore */\n protected readonly genericDisplayedValue: string = '-UNSET-';\n\n /** @ignore */\n protected readonly noDisplayedValueWarning: string = 'No display value is set for select box option';\n\n /** @ignore */\n ngOnDestroy(): void {\n this.unsubscribeFromControl();\n }\n\n /** @ignore */\n applySorting = (\n a: { key: DropdownComponentOption; value: string },\n b: {\n key: DropdownComponentOption;\n value: string;\n },\n ): number => (this.sortOptions ? a.value.localeCompare(b.value) : 0);\n\n /** @ignore */\n protected processOptions(options?: DropdownComponentOptions): void {\n this.displayedOptions = new Map();\n\n if (!options) {\n return;\n }\n\n /**\n * if options is an array - use option as key and extract displayed value from option;\n * if options is a map - use key as key and extract displayed value from option;\n * if options is an object - use object keys as keys and extract displayed value from value\n */\n if (options instanceof Array) {\n options.forEach((option) => this.displayedOptions.set(option, this.getDisplayedValue(option)));\n } else if (options instanceof Map) {\n options.forEach((option, key) => this.displayedOptions.set(key, this.getDisplayedValue(option)));\n } else {\n for (const key in options) {\n this.displayedOptions.set(key, this.getDisplayedValue(options[key]));\n }\n }\n }\n\n /** @ignore */\n protected unsubscribeFromControl() {\n this.controlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n protected getDisplayedValue(\n option: DropdownComponentOption,\n displayValueKey: string | undefined = this.displayValueKey,\n originalOption?: DropdownComponentOption,\n ): string {\n if (!originalOption) {\n originalOption = option;\n }\n\n if (option === null || option === undefined) {\n return '';\n } else if (typeof option == 'string') {\n return option;\n } else if (typeof option == 'number' || typeof option == 'boolean') {\n return option.toString();\n } else if (displayValueKey) {\n /**\n * break displayValueKey into parts to be able to drill down the option properties and sub properties\n */\n const parts = displayValueKey.split('.');\n\n /**\n * extract first part of displayValueKey\n */\n const firstPart = parts.shift() ?? '';\n\n /**\n * if we still have parts and option property is not an object - display generic value\n * (we won't be able to drill down anymore)\n */\n if (parts.length && !ObjectHelper.isObject(option[firstPart])) {\n return this.getGenericDisplayedValue(originalOption);\n }\n\n /**\n * extract displayedValue from the next level of option, if possible\n */\n return this.getDisplayedValue(option[firstPart], parts.join('.'), originalOption);\n } else {\n return this.getGenericDisplayedValue(originalOption);\n }\n }\n\n /** @ignore */\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\n console.warn(this.noDisplayedValueWarning, option);\n return this.genericDisplayedValue;\n }\n}\n","import { Component, input } from '@angular/core';\nimport { AdsIconModule, AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconInformation } from '@ascentgl/ads-icons/icons';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'ads-input-tooltip',\n template: `<ads-icon\n [matTooltip]=\"tooltip()\"\n [matTooltipPosition]=\"'above'\"\n [name]=\"'information'\"\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\n [theme]=\"'iconPrimary'\"\n [style.top]=\"iconPosition\"\n />`,\n styles: `\n ads-icon {\n position: relative;\n top: 12px;\n }\n `,\n standalone: true,\n imports: [AdsIconModule, MatTooltip],\n})\nexport class AdsInputTooltipComponent {\n tooltip = input.required<string>();\n\n smallSize = input<boolean>(false);\n\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconInformation]);\n }\n\n get iconPosition(): string {\n return this.smallSize() ? '3px' : '12px';\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatError } from '@angular/material/form-field';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@Component({\n selector: 'ads-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n standalone: true,\n imports: [MatError, AdsIconModule],\n animations: [\n trigger('fadeInOut', [\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\n ]),\n ],\n})\nexport class AdsErrorComponent {\n /** Set text to show error */\n error = input.required<string>();\n}\n","<mat-error class=\"mat-error\" [@fadeInOut]>\n <div class=\"error\">\n <ads-icon [name]=\"'warning'\" [size]=\"'xxs'\" [theme]=\"'warn'\" [stroke]=\"'warn'\" />\n <span [innerHTML]=\"error()\"></span>\n </div>\n</mat-error>\n","import { Component, input, OnInit } from '@angular/core';\nimport { MatHint } from '@angular/material/form-field';\nimport { NgIf } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'ads-hint',\n template: `<mat-hint [@fadeInOut]=\"state\" [innerHTML]=\"hint()\" />`,\n styleUrls: ['./hint.component.scss'],\n standalone: true,\n imports: [MatHint, NgIf],\n animations: [\n trigger('fadeInOut', [\n state('off', style({ opacity: 1, transform: 'translateX(0)' })),\n state('on', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => on', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms linear')]),\n ]),\n ],\n})\nexport class AdsHintComponent implements OnInit {\n control = input.required<FormControl>();\n hint = input.required<string>();\n\n state = 'off';\n\n ngOnInit(): void {\n if (this.control().touched) {\n this.state = 'on';\n }\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatError } from '@angular/material/form-field';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@Component({\n selector: 'ads-success',\n templateUrl: './success.component.html',\n styleUrls: ['./success.component.scss'],\n standalone: true,\n imports: [MatError, AdsIconModule],\n animations: [\n trigger('fadeInOut', [\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\n ]),\n ],\n})\nexport class AdsSuccessComponent {\n /** Set text to show success */\n success = input.required<string>();\n}\n","<div [@fadeInOut] class=\"container\">\n <div class=\"success\">\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" color=\"--color-success\" stroke=\"white\" />\n <span [innerHTML]=\"success()\"></span>\n </div>\n</div>\n","import { Component, Input, OnChanges, SimpleChange } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\n\n@Component({\n selector: 'ads-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n})\nexport class AdsCheckboxComponent extends AbstractBaseComponent implements OnChanges {\n /** Set to \"true\" to make the checkbox indeterminate */\n @Input() indeterminate = false;\n\n @Input() width = 'fit-content';\n\n /** @ignore */\n ngOnChanges(changes: { required: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.required) {\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n } else {\n this.valueControl.removeValidators(Validators.required);\n }\n }\n }\n\n /** @ignore */\n toggleCheck(): void {\n if (this.valueControl.disabled) return;\n\n if (this.indeterminate) {\n this.indeterminate = false;\n }\n this.valueControl.setValue(!this.valueControl.value);\n }\n}\n","<div [ngStyle]=\"{ width: width }\">\n <div class=\"ads-checkbox\" (click)=\"toggleCheck()\" [ngClass]=\"{ disabled: valueControl.disabled }\">\n <div class=\"checkbox-ripple\">\n <div class=\"checkbox-container\">\n @if (valueControl.value && !indeterminate) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"12\"\n viewBox=\"0 0 14 12\"\n fill=\"none\"\n class=\"check-icon\"\n >\n <path d=\"M2 6L5.75 10.5L12 1.5\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n }\n\n @if (indeterminate) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"4\"\n viewBox=\"0 0 12 4\"\n fill=\"none\"\n class=\"indeterminate-icon\"\n >\n <path\n d=\"M11.5385 0.5H0.461538C0.206638 0.5 0 0.723858 0 1V3C0 3.27614 0.206638 3.5 0.461538 3.5H11.5385C11.7934 3.5 12 3.27614 12 3V1C12 0.723858 11.7934 0.5 11.5385 0.5Z\"\n />\n </svg>\n }\n </div>\n </div>\n @if (label) {\n <span class=\"checkbox-label\">{{ label }}</span>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\nimport {\n AbstractDropdownComponent,\n DropdownComponentOption,\n DropdownComponentOptions,\n} from '../../abstracts/abstract.dropdown.component';\nimport { MatSelect } from '@angular/material/select';\nimport { MatOption } from '@angular/material/core';\nimport { adsIconChevronDown, adsIconCross, adsIconWarning } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../../../general/color-palette/colors.enums';\n\n@Component({\n selector: 'ads-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['../../input/input.component.scss', './dropdown.component.scss'],\n})\nexport class AdsDropdownComponent extends AbstractDropdownComponent implements OnChanges {\n /** Provide function that will allow to calculate option display value */\n @Input() displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\n\n /** Set dropdown mode \"normal\" or \"pill\" */\n @Input() mode: 'normal' | 'pill' = 'normal';\n\n /** Set to true to add empty value to the dropdown */\n @Input() hasEmptyValue = false;\n\n /** Set to true if you want to show a checkmark near selected option */\n @Input() checkSelected = true;\n\n /** Contains dropdown options */\n @Input() options?: DropdownComponentOptions;\n\n /** @ignore */\n @ViewChild('panel') panel?: MatSelect;\n\n /** @ignore */\n readonly isMultiselect: boolean = false;\n\n /** @ignore */\n readonly showChips: boolean = false;\n\n /** @ignore */\n displayedOptionsArray: DropdownComponentOption[] = [];\n\n /** @ignore */\n protected readonly Colors = Colors;\n\n constructor() {\n super();\n this.registry.register([adsIconCross, adsIconChevronDown, adsIconWarning]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options) {\n this.processOptions();\n this.mapControlValue();\n }\n }\n\n onOptionRemoved(option: DropdownComponentOption) {\n const copy = [...this.valueControl.value];\n const index = copy.indexOf(option);\n\n if (index > -1) {\n copy.splice(index, 1);\n this.valueControl.setValue(copy);\n }\n }\n\n /** @ignore */\n onOpened() {\n const selected = this.panel?.selected;\n\n if (selected instanceof MatOption) {\n (<GENERIC_COLLECTION>selected)._element.nativeElement?.scrollIntoView({ block: 'center' });\n }\n }\n\n /** @ignore */\n protected processOptions(): void {\n this.displayedOptionsArray = [];\n /**\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\n */\n super.processOptions(this.options);\n\n this.displayedOptionsArray = Array.from(this.displayedOptions.keys()).sort(this.applyArraySorting);\n\n this.setControlValueSubscription();\n }\n\n /** @ignore */\n protected setControlValueSubscription(): void {\n /**\n * if the first option key is an object - subscribe to control\n * to make sure it's value is always a valid object\n */\n if (ObjectHelper.isObject(this.displayedOptions.keys().next().value)) {\n this.subscribeToControl();\n } else {\n this.unsubscribeFromControl();\n }\n }\n\n /** @ignore */\n /**\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\n */\n protected mapControlValue(control: FormControl = this.valueControl): void {\n this.replaceDisplayedOptionWithControlValue(control.value);\n }\n\n /** @ignore */\n protected subscribeToControl(control: FormControl = this.valueControl): void {\n this.unsubscribeFromControl();\n\n this.controlSubscription = control?.valueChanges.subscribe(() => {\n this.mapControlValue(control);\n });\n }\n\n /** @ignore */\n protected replaceDisplayedOptionWithControlValue(controlValue: DropdownComponentOption): void {\n /**\n * if control value is not an object - we don't need to continue\n */\n if (!ObjectHelper.isObject(controlValue)) return;\n\n /**\n * if displayed options already contain control value - we don't need to continue\n */\n if (this.displayedOptions.get(controlValue)) return;\n\n /**\n * loop through displayed options\n */\n for (const [key, value] of this.displayedOptions) {\n /**\n * if displayed option key is an object, and it is equal to control value - we need to replace\n * displayed option key with control value to ensure that objects can be matched\n * NOTE in order to object1 === object2 it must be THE SAME object\n */\n if (\n ObjectHelper.isObject(key) &&\n ObjectHelper.deepEqual(<GENERIC_COLLECTION>controlValue, <GENERIC_COLLECTION>key)\n ) {\n /**\n * delete existing entry from displayedOptions\n */\n this.displayedOptions.delete(key);\n\n /**\n * add new entry to map\n */\n this.displayedOptions.set(controlValue, value);\n\n return;\n }\n }\n }\n\n /** @ignore */\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\n if (!this.displayValueFormatter) {\n console.warn(this.noDisplayedValueWarning, option);\n }\n\n return this.genericDisplayedValue;\n }\n\n /** @ignore */\n private applyArraySorting = (a: DropdownComponentOption, b: DropdownComponentOption): number => {\n if (this.sortOptions) {\n const val1 = this.displayedOptions.get(a);\n const val2 = this.displayedOptions.get(b);\n\n if (val1 && val2) {\n return val1.localeCompare(val2);\n }\n }\n\n return 0;\n };\n\n /** @ignore */\n chipName(option: MatOption): string {\n return (this.displayValueFormatter ? this.displayValueFormatter(option) : this.displayedOptions.get(option)) || '';\n }\n\n /** @ignore */\n toggleOption(option: DropdownComponentOption) {\n const currentValue = this.valueControl.value || [];\n const index = currentValue.indexOf(option);\n\n if (index === -1) {\n currentValue.push(option);\n } else {\n currentValue.splice(index, 1);\n }\n\n this.valueControl.setValue([...currentValue]); // Ensure the form control is updated\n }\n\n /** @ignore */\n onCheckboxChange(option: DropdownComponentOption) {\n this.toggleOption(option); // Update the option on checkbox change\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n (click)=\"onOpened()\"\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n pill: mode === 'pill',\n chips: showChips && isMultiselect,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((!showChips || valueControl.value.length === 0) && (label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <!-- is required in placeholder for smoother animation -->\n <mat-select\n #panel\n [disableRipple]=\"true\"\n [id]=\"id\"\n [placeholder]=\"placeholder || ' '\"\n [panelClass]=\"'ads-dropdown-panel' + (fitContent ? ' fit-content' : '')\"\n [disableOptionCentering]=\"true\"\n [required]=\"required\"\n [formControl]=\"valueControl\"\n [multiple]=\"isMultiselect\"\n >\n @if (showChips && isMultiselect) {\n <mat-select-trigger>\n <div class=\"tag-container\">\n @for (option of valueControl.value; track $index) {\n <ads-tag\n [tag]=\"chipName(option)\"\n [color]=\"Colors.Medium\"\n [id]=\"'' + $index\"\n (remove)=\"onOptionRemoved(option)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </div>\n </mat-select-trigger>\n }\n\n @if (hasEmptyValue) {\n <mat-option [value]=\"undefined\"></mat-option>\n }\n\n @for (option of displayedOptionsArray; track $index) {\n <mat-option [value]=\"option\" [ngClass]=\"{ checkbox: isMultiselect && checkSelected }\">\n @if (isMultiselect && checkSelected) {\n <ads-checkbox\n width=\"100%\"\n (change)=\"onCheckboxChange(option)\"\n [label]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\n />\n } @else {\n <span\n [innerHTML]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\n ></span>\n }\n </mat-option>\n }\n </mat-select>\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n <button matTextSuffix type=\"button\" mat-icon-button class=\"action-icon\">\n <ads-icon\n matTextSuffix\n name=\"chevron_down\"\n [size]=\"smallSize ? 'xxs' : 'xs'\"\n [theme]=\"'iconPrimary'\"\n class=\"chevron-down\"\n />\n </button>\n </mat-form-field>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsCheckboxComponent } from './checkbox.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n AdsHintComponent,\n AdsErrorComponent,\n AdsInputTooltipComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsCheckboxComponent],\n exports: [AdsCheckboxComponent],\n})\nexport class AdsCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsDropdownComponent } from './dropdown.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIcon } from '@angular/material/icon';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { AdsTagModule } from '../../../tags/tag';\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n AdsIconModule,\n MatInputModule,\n MatIconButton,\n AdsInputTooltipComponent,\n MatIcon,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n AdsTagModule,\n AdsCheckboxModule,\n ],\n declarations: [AdsDropdownComponent],\n exports: [AdsDropdownComponent],\n})\nexport class AdsDropdownModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDropdownComponent } from '../dropdown';\nimport { FormControl } from '@angular/forms';\nimport { DropdownComponentOption } from '../../abstracts/abstract.dropdown.component';\n\n@Component({\n selector: 'ads-multi-select-dropdown',\n templateUrl: '../dropdown/dropdown.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../dropdown/dropdown.component.scss',\n './multi-select-dropdown.component.scss',\n ],\n})\nexport class AdsMultiSelectDropdownComponent extends AdsDropdownComponent {\n /** @ignore */\n public hasEmptyValue = false;\n\n /** @ignore */\n public declare displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\n\n /** @ignore */\n public readonly isMultiselect: boolean = true;\n\n /** if set to true selected values will be shown as chips */\n @Input() showChips = true;\n\n /** @ignore */\n protected setControlValueSubscription(): void {\n /**\n * We always subscribe to form control value to make sure it is an array\n */\n this.subscribeToControl();\n }\n\n /** @ignore */\n get canClear() {\n return this.showClearButton && this.valueControl.value.length;\n }\n\n /** @ignore */\n /**\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\n */\n protected mapControlValue(control: FormControl = this.valueControl): void {\n /**\n * make sure control value is array\n */\n if (!(control.value instanceof Array)) {\n control.setValue([]);\n\n return;\n }\n\n /**\n * loop through control values and make sure they exist in options\n */\n control.value.forEach((value) => {\n this.replaceDisplayedOptionWithControlValue(value);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { AdsMultiSelectDropdownComponent } from './multi-select-dropdown.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsTagModule } from '../../../tags/tag';\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n AdsIconModule,\n MatInputModule,\n AdsInputTooltipComponent,\n MatIconButton,\n MatIcon,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsTagModule,\n AdsCheckboxModule,\n ],\n declarations: [AdsMultiSelectDropdownComponent],\n exports: [AdsMultiSelectDropdownComponent],\n})\nexport class AdsMultiSelectDropdownModule {}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss', '../common/common.input.component.scss'],\n})\nexport class AdsInputComponent extends AbstractInputComponent implements OnInit {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' | 'tel' = 'text';\n\n /** Provide regular expression pattern if input type is set to \"pattern\" */\n @Input() pattern: string | RegExp = '';\n\n /** Provide \"default\" value that will be used when control value is cleared */\n @Input() defaultValue?: unknown;\n\n /** mark input field as readonly */\n @Input() readonly = false;\n\n /** mark input field as readonly */\n @Input() isPasswordField = false;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n hidePassword = true;\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n pattern: 'Provided value does not match pattern',\n };\n\n ngOnInit(): void {\n /**\n * if default value is provided - emit it when input is cleared\n */\n if (this.defaultValue !== undefined) {\n this.valueControl?.valueChanges.subscribe((value) => {\n if (!value && value !== this.defaultValue) {\n this.valueControl.setValue(this.defaultValue);\n }\n });\n }\n }\n\n /** @ignore */\n showHidePassword(): void {\n this.hidePassword = !this.hidePassword;\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': canClear,\n readonly: readonly,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n #input\n matInput\n [maxlength]=\"maxlength\"\n [readonly]=\"readonly\"\n [pattern]=\"pattern\"\n [id]=\"id\"\n [type]=\"isPasswordField ? (hidePassword ? 'password' : 'text') : type\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n\n @if (isPasswordField && !readonly) {\n <button type=\"button\" mat-icon-button matTextSuffix (click)=\"showHidePassword()\" class=\"action-icon\">\n <ads-icon\n class=\"visibility-eye\"\n [name]=\"hidePassword ? 'visibility_eye_none' : 'visibility_eye'\"\n [size]=\"smallSize ? 'xxs' : 'sm'\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsInputComponent } from './input.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsSuccessComponent } from '../common/success/success.component';\nimport { AdsErrorComponent } from '../common/error/error.component';\nimport { AdsHintComponent } from '../common/hint/hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsInputTooltipComponent,\n MatIconButton,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsInputComponent],\n exports: [AdsInputComponent],\n})\nexport class AdsInputModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\n\n@Component({\n selector: 'ads-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['../input/input.component.scss', './textarea.component.scss', '../common/common.input.component.scss'],\n})\nexport class AdsTextareaComponent extends AbstractInputComponent {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 2000;\n\n /** Maximum number of rows */\n @Input() rows = 5;\n\n /** Set to false to disallow resize */\n @Input() canResize = true;\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': canClear && !showExclamation,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n <mat-label *ngIf=\"label || required\">{{ label }}</mat-label>\n <textarea\n matInput\n [rows]=\"rows\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [ngStyle]=\"{ resize: canResize ? null : 'none' }\"\n >\n </textarea>\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\">\n <ads-icon name=\"cross\" size=\"xxs\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\nimport { AdsSuccessComponent } from '../common/success/success.component';\nimport { AdsErrorComponent } from '../common/error/error.component';\nimport { AdsHintComponent } from '../common/hint/hint.component';\nimport { AdsTextareaComponent } from './textarea.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsTextareaComponent],\n exports: [AdsTextareaComponent],\n})\nexport class AdsTextareaModule {}\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\nimport { AdsDropdownComponent } from '../dropdown';\nimport { FormControl } from '@angular/forms';\nimport { DropdownComponentOptions } from '../../abstracts/abstract.dropdown.component';\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\nimport { asapScheduler } from 'rxjs';\n\n@Component({\n selector: 'ads-input-dropdown',\n templateUrl: './input-dropdown.component.html',\n styleUrls: ['./input-dropdown.component.scss'],\n})\nexport class AdsInputDropdownComponent extends AbstractInputComponent implements OnChanges {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' = 'text';\n\n /** Provide regular expression pattern if input type is set to \"pattern\" */\n @Input() pattern: string | RegExp = '';\n\n /** Dropdown control, associated with input field */\n @Input() dropdownControl: FormControl = new FormControl();\n\n /** Optional \"id\" attribute for dropdown field */\n @Input() dropdownId = '';\n\n /** Optional dropdown control field label */\n @Input() dropdownLabel?: string;\n\n /** Empty dropdown field placeholder */\n @Input() dropdownPlaceholder = '';\n\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\n @Input() inputWidth = '70%';\n\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\n @Input() dropdownWidth = '30%';\n\n /** Is set and dropdown contains only one option - it will be selected automatically. */\n @Input() autoSelectSingleDropdownOption = false;\n\n /** Contains dropdown options */\n @Input() options?: DropdownComponentOptions;\n\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\n @Input() displayValueKey?: string;\n\n /** Set to true to add empty value to the dropdown */\n @Input() hasEmptyValue = true;\n\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\n @Input() fitContent = true;\n\n /** @ignore */\n @ViewChild(AdsDropdownComponent) dropdownComponent?: AdsDropdownComponent;\n\n /** @ignore */\n isSingleOptionSelected = false;\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options && this.autoSelectSingleDropdownOption) {\n asapScheduler.schedule(() => {\n if (this.dropdownComponent?.displayedOptions.size === 1) {\n /**\n * get first displayed option\n */\n const first = this.dropdownComponent.displayedOptions.keys().next().value;\n\n /**\n * if control value does not equal the first option already - select the first option\n */\n if (this.dropdownControl.value !== first) {\n this.dropdownControl.setValue(first);\n }\n\n this.isSingleOptionSelected = true;\n } else {\n this.isSingleOptionSelected = false;\n }\n });\n }\n }\n}\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [id]=\"dropdownId\"\n [readonly]=\"true\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsInputDropdownComponent } from './input-dropdown.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { AdsInputModule } from '../../input';\nimport { AdsDropdownModule } from '../dropdown';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDividerModule,\n MatFormFieldModule,\n MatSelectModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsInputModule,\n AdsDropdownModule,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsInputDropdownComponent],\n exports: [AdsInputDropdownComponent],\n})\nexport class AdsInputDropdownModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { SearchDropdownDisplayControlValue } from './search-dropdown.component.types';\n\n@Pipe({\n name: 'adsSearchDropdownHighlighter',\n})\nexport class AdsSearchDropdownHighlighterPipe implements PipeTransform {\n transform(optionValue: string, filter: SearchDropdownDisplayControlValue): string {\n if (filter) {\n const value = typeof filter == 'string' ? filter : filter.value;\n\n const re = new RegExp(value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'igm');\n\n return optionValue.replace(re, '<span class=\"highlighted-text\">$&</span>');\n }\n\n return optionValue;\n }\n}\n\n@NgModule({\n declarations: [AdsSearchDropdownHighlighterPipe],\n exports: [AdsSearchDropdownHighlighterPipe],\n})\nexport class AdsSearchDropdownHighlighterPipeModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n contentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n signal,\n SimpleChange,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { debounce, map, tap } from 'rxjs/operators';\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport {\n AbstractDropdownComponent,\n DropdownComponentDisplayedOptions,\n DropdownComponentOption,\n DropdownComponentOptions,\n} from '../../abstracts/abstract.dropdown.component';\nimport { Observable, of, Subscription, timer } from 'rxjs';\nimport { adsIconChevronDown, adsIconSearch } from '@ascentgl/ads-icons/icons';\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport {\n SearchDropdownComponentOptions,\n SearchDropdownDisplayControlValue,\n SearchDropdownStaticOption,\n} from './search-dropdown.component.types';\nimport { MatOption } from '@angular/material/core';\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\nimport { SafeHtml } from '@angular/platform-browser';\n\ntype CustomMatOption = (MatOption & { modified?: boolean }) | undefined | null;\n\n@Component({\n selector: 'ads-search-dropdown',\n templateUrl: './search-dropdown.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../dropdowns/dropdown/dropdown.component.scss',\n './search-dropdown.component.scss',\n ],\n})\nexport class AdsSearchDropdownComponent\n extends AbstractDropdownComponent\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n /** @ignore */\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\n\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Set to additional paneClass if required*/\n @Input() panelClass = '';\n\n /** Contains dropdown options */\n @Input() options?: Observable<SearchDropdownComponentOptions>;\n\n /** If \"true\", component will not try to load additional options */\n @Input() staticOptions = false;\n\n /** If \"true\" and \"staticOptions\" is also true additional filter will be applied to remove options that do not match input value */\n @Input() filterOptions = true;\n\n /** If \"true\", emitSearchValueInput will emit empty values too */\n @Input() emitEmptyValues = false;\n\n /** If \"true\", first time focusing on input will start loading suggestions if input has a value */\n @Input() loadSuggestionOnInit = false;\n\n /** Provide configuration for default option that can be displayed if no results were found */\n @Input() noDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide configuration for default option that can be displayed if no intended results were found */\n @Input() moreDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide configuration for default option that can be displayed if needed */\n @Input() staticDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide event that is fired when enter key is down while input value is being set */\n @Input() onEnterKeyDown: ((currentInputValue: string) => void) | undefined;\n\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\n @Input() searchIconClickCallback: ((currentInputValue: string) => void) | undefined;\n\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\n @Input() displayValueFormatter: ((value: string, option: DropdownComponentOption) => string | SafeHtml) | undefined;\n\n /** If \"true\", will read option template provided via \"ng-template dropdown-option\" selector */\n @Input() useOptionTemplate = false;\n\n /** set minimum amount of characters to start search */\n @Input() minValueLength = 1;\n\n /** Set to \"true\" to prevent click even propagation */\n @Input() preventClick = false;\n\n /** @ignore */\n @Input() closePanelEnabled = true;\n\n /**\n * NOTE: INPUT PARAMS BELOW ARE OVERRIDDEN BECAUSE FOR SOME UNKNOWN REASON STORYBOOK WON'T SHOW THEM FROM PARENT CLASS\n */\n\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n super.control = control;\n }\n\n /** Object, containing key=>value pairs for errors and their translated messages */\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\n\n /** Hint message, displayed under the control */\n @Input() declare hint?: string;\n\n /** Optional \"id\" attribute for input field */\n @Input() id = '';\n\n /** Optional control field label */\n @Input() declare label?: string;\n\n /** Empty input field placeholder */\n @Input() placeholder = '';\n\n /**\n * END OF OVERRIDDEN PARAMETERS\n */\n\n /** Emits currently input search value. Use it to react and generate fresh options list, based on the value */\n @Output() emitSearchValueInput: EventEmitter<string> = new EventEmitter();\n\n /** @ignore */\n @ViewChild(MatAutocompleteTrigger) trigger?: MatAutocompleteTrigger;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n @ViewChild('moreDataMatOption') moreDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('noDataMatOption') noDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('staticDataMatOption') staticDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('auto') auto?: MatAutocomplete;\n\n /** @ignore */\n loading = signal<boolean>(false);\n\n /** @ignore */\n private isInternalValueSet = false;\n\n /** @ignore */\n private displayedControlSubscription?: Subscription;\n\n /** @ignore */\n private valueControlSubscription?: Subscription;\n\n /** @ignore */\n private optionsSubscription?: Subscription;\n\n /** @ignore */\n private valueControlStatusSubscription?: Subscription;\n\n /** @ignore */\n private ignoreOnBlur = false;\n\n /** @ignore */\n private initialSuggestionsChecked = false;\n\n /** @ignore */\n private unsubscribeFromScroll?: () => void;\n\n /** @ignore */\n private previousControlValue?: string;\n\n /** @ignore */\n private allOptions: DropdownComponentDisplayedOptions = new Map();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private ref: ElementRef,\n ) {\n super();\n this.registry.register([adsIconSearch, adsIconChevronDown]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options) {\n this.processOptions();\n }\n super.ngOnChanges(changes);\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.setValidators();\n this.setupSubscriptions();\n\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.overrideKeydownHandler();\n }\n\n /** @ignore */\n ngOnDestroy() {\n if (this.unsubscribeFromScroll) this.unsubscribeFromScroll();\n this.unsubscribeFromOptions();\n this.unsubscribeFromDisplayedControl();\n this.valueControlSubscription?.unsubscribe();\n this.valueControlStatusSubscription?.unsubscribe();\n }\n\n /** @ignore */\n get canSearch(): boolean {\n return !this.loading() && !this.displayControl.disabled && !!this.searchIconClickCallback;\n }\n\n /** @ignore */\n get canUseMoreDataOption(): boolean {\n return !!this.moreDataOption && !!this.displayedOptions.size && !this.loading();\n }\n\n /** @ignore */\n get canUseNoDataOption(): boolean {\n return (\n !!this.noDataOption &&\n !this.displayedOptions.size &&\n !this.loading() &&\n !!this.displayControl.value &&\n this.displayControl.dirty\n );\n }\n\n /** @ignore */\n get canUseStaticOption(): boolean {\n return !!this.staticDataOption && !this.loading();\n }\n\n /** @ignore */\n get showDropdownIcon(): boolean {\n return this.staticOptions && (!!this.displayedOptions.size || !!this.allOptions.size);\n }\n\n /** @ignore */\n onSearchIconClick(event: MouseEvent): void {\n event.stopPropagation();\n\n if (this.searchIconClickCallback) {\n this.searchIconClickCallback(this.input?.nativeElement.value);\n }\n }\n\n /** @ignore */\n onKeyDown(eventTarget: EventTarget | null): void {\n if (this.preventClick) {\n return;\n }\n\n if (!(eventTarget instanceof HTMLInputElement)) return;\n\n /**\n * if one of static options was selected when \"Enter\"\n * key was clicked - execute return displayedValue back\n * and execute static option onClick events\n */\n if (this.moreDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.moreDataOption);\n } else if (this.noDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.noDataOption);\n } else if (this.staticDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.staticDataOption);\n } else {\n /**\n * otherwise if displayed value is different from input value - sync them\n * NOTE: this happens when option is selected in dropdown and \"Enter\" key is pressed\n * because \"onInput\" event does not fire in that case\n * if displayed value is the same as input value, and we have onEnterKeyDown callback - execute it\n * NOTE: this happens when value is input directly into input field\n */\n if (this.getDisplayedValueAsString() != eventTarget.value) {\n this.displayControl.setValue(eventTarget.value, { emitEvent: false });\n } else if (this.onEnterKeyDown) {\n this.onEnterKeyDown(eventTarget.value);\n }\n\n this.unselectComponent();\n }\n }\n\n /** @ignore */\n onBlur(): void {\n this.displayControl.markAsTouched();\n this.valueControl.markAsTouched();\n\n if (!this.preventClick) {\n /**\n * if action onBlur is allowed and value is a string - apply it to form control before blurring\n * NOTE: this may happen if value was input into control but\n * no existing options were explicitly selected\n */\n if (!this.ignoreOnBlur && typeof this.displayControl.value == 'string') {\n this.setControlValueFromString(this.displayControl.value);\n }\n\n this.ignoreOnBlur = false;\n }\n\n /**\n * if we are still loading - stop it\n */\n if (this.loading()) {\n this.loading.set(false);\n\n /**\n * unsubscribe from options to prevent their further processing\n */\n this.unsubscribeFromOptions();\n\n /**\n * unsubscribe from display control change to prevent it from sending the data\n */\n this.unsubscribeFromDisplayedControl();\n\n /**\n * resubscribe it again to return to normal workflow\n */\n this.subscribeToDisplayedControlValueChanged();\n\n /**\n * set loadSuggestionOnInit to resume loading when control is focused again\n */\n this.resetInitialState();\n }\n\n if (this.closePanelEnabled && !this.preventClick) this.trigger?.closePanel();\n }\n\n /** @ignore */\n onFocus(): void {\n /**\n * if we have no displayed options,\n * we can load data on initial value,\n * we are not dealing with static options,\n * initial suggestions are not yet loaded,\n * and we have input value or can emit empty values - we can start loading suggestions\n */\n if (\n !this.displayedOptions.size &&\n this.loadSuggestionOnInit &&\n !this.staticOptions &&\n !this.initialSuggestionsChecked &&\n (this.input?.nativeElement.value || this.emitEmptyValues)\n ) {\n this.loading.set(true);\n\n this.unsubscribeFromOptions();\n\n /**\n * if we are loading on init and display control has value - mark it as dirty for consistency\n */\n if (this.loadSuggestionOnInit && this.displayControl.value && this.displayControl.pristine) {\n this.displayControl.markAsDirty();\n }\n\n this.emitSearchValueInput.emit(this.input?.nativeElement.value);\n }\n\n this.initialSuggestionsChecked = true;\n }\n\n /** @ignore */\n onInput(eventTarget: EventTarget | null): void {\n if (eventTarget instanceof HTMLInputElement) {\n const value = eventTarget.value.trim();\n\n /**\n * if new trimmed value is different from current trimmed value and new trimmed value is either empty or\n * fits min length - use it\n * NOTE: this allows to avoid reacting on empty strings being input\n * also spaces in the end of the string will be ignored until they are followed by a different character\n */\n if (value !== this.getDisplayedValueAsString(false).trim() && (!value || value.length >= this.minValueLength)) {\n this.displayControl.setValue(eventTarget.value);\n }\n }\n }\n\n /** @ignore */\n getDisplayedValueAsString(checkAdditionalFormatting = true): string {\n let value = '';\n\n if (this.displayControl.value) {\n value =\n typeof this.displayControl.value == 'string'\n ? this.displayControl.value\n : (this.displayControl.value.value ?? '');\n }\n\n if (checkAdditionalFormatting && this.mustApplyAdditionalFiltering() && this.previousControlValue !== value) {\n this.previousControlValue = value;\n\n this.displayedOptions = new Map();\n\n this.allOptions.forEach((optionValue, option) => {\n if (optionValue.toLowerCase().includes(value.toLowerCase())) {\n this.displayedOptions.set(option, optionValue);\n }\n });\n }\n\n return value;\n }\n\n /** @ignore */\n reset(): void {\n this.displayedOptions = new Map(this.allOptions);\n }\n\n /** @ignore */\n onStaticOptionMouseDown(event: MouseEvent, option: SearchDropdownStaticOption): void {\n /**\n * only proceed if left mouse button was clicked\n */\n if (event.button !== 0) return;\n\n this.activateStaticOption(option);\n }\n\n /** @ignore */\n onOptionMouseDown(event: MouseEvent, option: CustomMatOption): void {\n /**\n * only proceed if left mouse button was clicked\n */\n if (event.button !== 0) return;\n\n this.modifyOptionClickEvent(option);\n\n if (this.preventClick) return;\n\n /**\n * NOTE: we set displayControl value in mousedown event to override value setting in onClick\n * and avoid UI artifacts connected with it\n */\n this.displayControl.setValue(option?.value);\n }\n\n /** @ignore */\n displayFn = (option?: { key: DropdownComponentOption; value: string }): string => {\n return option ? option.value : '';\n };\n\n /** @ignore */\n resetInitialState(): void {\n this.loadSuggestionOnInit = true;\n this.initialSuggestionsChecked = false;\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n super.touchInvalid(control);\n super.touchInvalid(this.displayControl);\n }\n\n /** @ignore */\n protected processOptions(): void {\n this.allOptions = new Map();\n\n /**\n * if options are not provided - reset\n */\n if (!this.options) {\n this.loading.set(false);\n this.displayedOptions = new Map();\n return;\n }\n\n /**\n * \"processOptions\" is fired any time options change - thus we need to set loading to true when it happens\n */\n this.loading.set(true);\n\n /**\n * subscribe to options to extract displayedOptions from them\n * NOTE: we do not use displayedOptions as Observable because\n * we may need displayedOptions directly on onKeyDown event\n */\n this.optionsSubscription = this.options.subscribe((options: DropdownComponentOptions) => {\n this.loading.set(false);\n\n /**\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\n */\n super.processOptions(options);\n\n this.allOptions = new Map(this.displayedOptions);\n });\n }\n\n /** @ignore */\n protected setupSubscriptions(): void {\n this.controlValueToDisplayedControlValue();\n\n /**\n * subscribe to control value change to synchronize the value when changed externally\n */\n this.valueControlSubscription = this.valueControl.valueChanges.subscribe(() => {\n if (!this.isInternalValueSet) {\n this.controlValueToDisplayedControlValue();\n }\n });\n\n /**\n * sync display control statuses with value control status for proper error display\n */\n this.valueControlStatusSubscription = this.valueControl.statusChanges.subscribe(() => this.syncState());\n\n this.subscribeToDisplayedControlValueChanged();\n\n /**\n * listen to scroll to reposition the dropdown\n */\n this.unsubscribeFromScroll = this.renderer.listen(\n DomHelper.getScrollableParent(this.ref.nativeElement),\n 'scroll',\n () => {\n if (this.trigger?.panelOpen) this.trigger.updatePosition();\n },\n );\n\n this.syncState();\n }\n\n /** @ignore */\n private subscribeToDisplayedControlValueChanged(): void {\n this.displayedControlSubscription = this.displayControl.valueChanges\n .pipe(\n map((value?: SearchDropdownDisplayControlValue) => {\n if (!value) value = '';\n return value;\n }),\n tap((value) => {\n /**\n * mark displayControl as dirty\n * because MatAutocomplete does not do it automatically\n */\n this.displayControl.markAsDirty();\n\n /**\n * unsubscribe from previous options to stop loading them\n */\n this.unsubscribeFromOptions();\n\n /**\n * stop processing if value is not provided\n */\n if (!value) {\n /**\n * clear displayed options if value is not provided\n */\n if (!this.staticOptions) {\n this.displayedOptions = new Map();\n }\n\n this.setControlValue(null);\n\n if (this.loading()) {\n /**\n * set loadSuggestionOnInit to resume loading when control is focused again\n * NOTE: this is required because by the time onBlur happens - loading is false and\n * this method will not be fired from onBlur\n */\n this.resetInitialState();\n }\n } else if (typeof value != 'string') {\n this.setControlValueFromOption(value.key, false);\n }\n this.loading.set(this.canEmitValue(value));\n }),\n debounce((value) => {\n return this.canEmitValue(value) && value ? timer(500) : of({});\n }),\n )\n .subscribe((value: SearchDropdownDisplayControlValue) => {\n if (this.canEmitValue(value)) {\n this.emitSearchValueInput.emit(<string>value);\n }\n });\n }\n\n /** @ignore */\n private unsubscribeFromOptions(): void {\n this.optionsSubscription?.unsubscribe();\n }\n\n private unsubscribeFromDisplayedControl(): void {\n this.displayedControlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.displayControl): string {\n return super.displayFirstError(control);\n }\n\n /** @ignore */\n clear(event?: MouseEvent): void {\n event?.stopPropagation();\n\n if (event && event.button !== 0) {\n return;\n }\n this.displayControl.setValue(null);\n this.displayControl.markAsTouched();\n\n if (this.closePanelEnabled) this.trigger?.closePanel();\n }\n\n /** @ignore */\n togglePanel(event?: MouseEvent): void {\n event?.stopPropagation();\n if (this.trigger?.panelOpen) {\n if (this.closePanelEnabled) this.trigger?.closePanel();\n } else {\n this.trigger?.openPanel();\n this.input?.nativeElement.focus();\n }\n }\n\n /** @ignore */\n private controlValueToDisplayedControlValue(): void {\n /**\n * extract displayable value as string from valueControl, if it is not empty\n */\n const displayedValue = this.valueControl.value\n ? this.getDisplayedValue(this.valueControl.value)\n : this.valueControl.value;\n\n /**\n * use it to build displayedControl value\n */\n this.displayControl.setValue(\n displayedValue ? { key: this.valueControl.value, value: displayedValue } : this.valueControl.value,\n { emitEvent: false },\n );\n }\n\n private mustApplyAdditionalFiltering(): boolean {\n return !this.staticOptions || (this.staticOptions && this.filterOptions);\n }\n\n /** @ignore */\n private unselectComponent(): void {\n if (this.input?.nativeElement instanceof HTMLInputElement) {\n this.input.nativeElement.blur();\n }\n }\n\n /** @ignore */\n private activateStaticOption(option?: SearchDropdownStaticOption): void {\n if (!option) return;\n\n /**\n * ignoreOnBlur to \"true\" to disable\n * component's input onBlur event\n * NOTE: this is needed when we click on static options\n */\n this.ignoreOnBlur = true;\n\n this.moreDataMatOption?.deselect();\n this.noDataMatOption?.deselect();\n\n if (option.onClick) {\n option.onClick(this.input?.nativeElement.value);\n }\n\n this.unselectComponent();\n }\n\n /** @ignore */\n private setValidators(): void {\n /**\n * make sure displayControl has the same validators as control\n */\n this.displayControl.addValidators(this.valueControl.validator ?? []);\n /**\n * required validator must be set manually in this component\n * because controls are disconnected from input field\n */\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n this.displayControl.addValidators(Validators.required);\n }\n this.valueControl.updateValueAndValidity({ emitEvent: false });\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n }\n\n /** @ignore */\n private canEmitValue(value: SearchDropdownDisplayControlValue): boolean {\n /**\n * only emit event if value is a string, and we can emit empty values, or it is not empty\n * NOTE: it disallows to emit explicitly selected \"REAL\" values\n */\n return !this.staticOptions && typeof value == 'string' && (this.emitEmptyValues || !!value);\n }\n\n /** @ignore */\n private setControlValueFromString(displayedValue: string): void {\n let isValueApplied = false;\n\n /**\n * loop through displayedOptions;\n * if matching displayedOption value found - use displayedOptions option as control value\n */\n for (const [option, value] of this.displayedOptions) {\n if (value.toLowerCase() === displayedValue.toLowerCase()) {\n this.setControlValueFromOption(option);\n isValueApplied = true;\n break;\n }\n }\n\n if (!isValueApplied) {\n this.clear();\n }\n }\n\n /** @ignore */\n private setControlValueFromOption(option: DropdownComponentOption | null, skipSame = true): void {\n this.unselectComponent();\n\n this.setControlValue(option, skipSame);\n }\n\n private setControlValue(option: DropdownComponentOption | null, skipSame = true) {\n /**\n * only update control value if it differs from provided one\n * NOTE: we need this check to avoid emitting control value change\n * when the same dropdown option is selected in dropdown several times\n */\n if (skipSame && this.valueControl.value === option) {\n return;\n }\n\n this.valueControl.markAsTouched();\n this.valueControl.markAsDirty();\n\n /**\n * toggle isInternalValueSet to make\n * sure internal subscription to control value will\n * ignore this setValue event\n */\n this.isInternalValueSet = true;\n this.valueControl.setValue(option);\n this.isInternalValueSet = false;\n }\n\n private overrideKeydownHandler(): void {\n if (this.trigger) {\n const handler = this.trigger._handleKeydown;\n\n /**\n * this allows to block default keydown handler if needed\n */\n this.trigger._handleKeydown = (event: KeyboardEvent): void => {\n const option = <CustomMatOption>this.trigger?.activeOption;\n\n this.modifyOptionClickEvent(option);\n\n handler.call(this.trigger, event);\n\n /**\n * make sure option does not lose \"selected\" state if click is prevented\n * NOTE: this is d one for \"nicety\"\n */\n if (this.preventClick && option && event.key === 'Enter') {\n this.auto?._keyManager.setActiveItem(option);\n }\n };\n }\n }\n\n private modifyOptionClickEvent(option: CustomMatOption): void {\n /**\n * modify \"_selectViaInteraction\" method of the option\n * so that we can block its selection if needed\n */\n if (option && !option.modified) {\n option.modified = true;\n\n const handler = option._selectViaInteraction;\n\n option._selectViaInteraction = () => {\n if (this.preventClick) {\n this.auto?._keyManager.setActiveItem(-1);\n return;\n }\n handler.call(option);\n };\n }\n }\n}\n","<div class=\"form-control-row\" [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'is-open': trigger?.panelOpen,\n invalid: canShowError(),\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n #input\n [disabled]=\"displayControl.disabled\"\n (keydown.enter)=\"onKeyDown($event.target)\"\n (blur)=\"onBlur()\"\n (input)=\"onInput($event.target)\"\n (focus)=\"onFocus()\"\n type=\"text\"\n [autocomplete]=\"'none'\"\n [id]=\"id\"\n matInput\n [value]=\"getDisplayedValueAsString()\"\n [attr.maxlength]=\"maxlength\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn\"\n [disableRipple]=\"true\"\n [class]=\"\n 'ads-dropdown-panel' +\n (fitContent ? ' fit-content' : '') +\n (loading() ? ' loading' : '') +\n (preventClick ? '' : ' clickable') +\n ' ' +\n panelClass\n \"\n >\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\n <mat-option #opt [value]=\"option\" (mousedown)=\"onOptionMouseDown($event, opt)\">\n @if (useOptionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\n ></ng-template>\n } @else {\n <span\n [innerHtml]=\"\n displayValueFormatter\n ? displayValueFormatter(\n option!.value! | adsSearchDropdownHighlighter: displayControl.value,\n option.key\n )\n : (option!.value! | adsSearchDropdownHighlighter: displayControl.value)\n \"\n ></span>\n }\n </mat-option>\n }\n\n @if (canUseMoreDataOption) {\n <hr class=\"no-results-hr\" />\n <mat-option #moreDataMatOption class=\"extra\" [disabled]=\"!moreDataOption!.onClick\">\n <ng-container\n [ngTemplateOutlet]=\"extraOptionValue\"\n [ngTemplateOutletContext]=\"{ $implicit: moreDataOption }\"\n />\n </mat-option>\n }\n\n @if (canUseNoDataOption) {\n <mat-option #noDataMatOption class=\"extra\" [disabled]=\"!noDataOption!.onClick\">\n <ng-container [ngTemplateOutlet]=\"extraOptionValue\" [ngTemplateOutletContext]=\"{ $implicit: noDataOption }\" />\n </mat-option>\n }\n\n @if (canUseStaticOption) {\n @if (displayedOptions.size) {\n <hr class=\"no-results-hr\" />\n }\n <mat-option #staticDataMatOption class=\"extra\" [disabled]=\"!staticDataOption!.onClick\">\n <ng-container\n [ngTemplateOutlet]=\"extraOptionValue\"\n [ngTemplateOutletContext]=\"{ $implicit: staticDataOption }\"\n />\n </mat-option>\n }\n </mat-autocomplete>\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n @if (showDropdownIcon) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"togglePanel($event)\" class=\"action-icon\">\n <ads-icon name=\"chevron_down\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"chevron-down\" />\n </button>\n }\n @if (!staticOptions && loading()) {\n <mat-spinner matTextSuffix diameter=\"22\" />\n }\n @if (!staticOptions && !loading()) {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n [disabled]=\"!canSearch\"\n (click)=\"canSearch ? onSearchIconClick($event) : null\"\n class=\"action-icon\"\n >\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\n </button>\n }\n </mat-form-field>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n\n<ng-template #extraOptionValue let-option>\n <span\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"onStaticOptionMouseDown($event, option!)\"\n [innerHTML]=\"option!.label\"\n ></span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsSearchDropdownComponent } from './search-dropdown.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsSearchDropdownHighlighterPipeModule } from './search-dropdown-highlighter.pipe';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n AdsIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatSelectModule,\n AdsSearchDropdownHighlighterPipeModule,\n MatDatepickerModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSearchDropdownComponent],\n exports: [AdsSearchDropdownComponent],\n})\nexport class AdsSearchDropdownModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsInputComponent } from '../../input';\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['../../input/input.component.scss'],\n})\nexport class AdsSearchInputComponent extends AdsInputComponent {\n /** a callback function that will be called every time when enter button or search icons are clicked */\n @Input() searchCallback?: (value: string) => void;\n\n /** set to true if you want to execute searchCallback when icon is clicked */\n @Input() isIconClickable = false;\n\n constructor() {\n super();\n this.registry.register(adsIconSearch);\n }\n\n /** ignore */\n get canClick() {\n return this.isIconClickable && this.valueControl.value;\n }\n\n /** ignore */\n onSearch() {\n if (this.valueControl.value && this.searchCallback) {\n this.searchCallback(this.valueControl.value);\n }\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n matInput\n (keydown.enter)=\"onSearch()\"\n [maxlength]=\"maxlength\"\n [pattern]=\"pattern\"\n [id]=\"id\"\n [type]=\"type\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n [disabled]=\"!canClick\"\n (click)=\"canClick ? onSearch() : null\"\n class=\"action-icon\"\n >\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\n </button>\n </mat-form-field>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsSearchInputComponent } from './search-input.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n AdsIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatSelectModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSearchInputComponent],\n exports: [AdsSearchInputComponent],\n})\nexport class AdsSearchInputModule {}\n","export const FORMAT_TIME = 'HH:mm';\nexport const FORMAT_DATE = 'MM/dd/yyyy';\nexport const FORMAT_DATETIME = 'MM/dd/yyyy HH:mm';\n\nexport interface DateTimeParseDisplay {\n dateInput?: string;\n datetimeInput?: string;\n timeInput?: string;\n}\n\nexport class CustomDateTimeFormat {\n private _parse: DateTimeParseDisplay = {\n dateInput: FORMAT_DATE,\n datetimeInput: FORMAT_DATETIME,\n timeInput: FORMAT_TIME,\n };\n private _display: DateTimeParseDisplay = {\n dateInput: FORMAT_DATE,\n datetimeInput: FORMAT_DATETIME,\n timeInput: FORMAT_TIME,\n };\n\n set parse(parse: DateTimeParseDisplay) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateTimeParseDisplay {\n return this._parse;\n }\n\n set display(display: DateTimeParseDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateTimeParseDisplay {\n return this._display;\n }\n\n updateParse(parse: DateTimeParseDisplay): void {\n this.parse = parse;\n }\n\n updateDisplay(display: DateTimeParseDisplay): void {\n this.display = display;\n }\n}\n","import { MatCalendarView } from '@mat-datetimepicker/core/datetimepicker/calendar';\n\nexport class DatetimeTemplateFormatter {\n private container: HTMLElement | null = null;\n private isFirstRun = true;\n\n run(view: MatCalendarView): void {\n /**\n * make sure container has proper class to encapsulate styles\n */\n this.container = document.querySelector('mat-datetimepicker-content');\n this.container?.classList.add('ads-datetimepicker-calendar');\n\n /**\n * if isFirstRun=true (we've just opened the picker)\n * hide container to allow concealed rearranging\n */\n if (this.isFirstRun) {\n this.container?.classList.add('hidden');\n }\n\n setTimeout(() => {\n this.rearrangeTemplate(view);\n this.isFirstRun = false;\n });\n }\n\n reset(): void {\n this.isFirstRun = true;\n }\n\n private rearrangeTemplate(view: MatCalendarView): void {\n const calendar: HTMLElement | null = document.querySelector('mat-datetimepicker-calendar');\n\n if (!calendar) return;\n\n /**\n * make sure calendar only has one \"view\" class\n */\n calendar.classList.remove('clock', 'month', 'year', 'multi-year');\n calendar.classList.add(view);\n\n const header: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-header');\n const content: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-content');\n\n if (!header || !content) return;\n\n /**\n * get all the buttons that we need to rearrange\n */\n const yearButton = header.querySelector('.mat-datetimepicker-calendar-header-year');\n const monthButton = content.querySelector('.mat-datetimepicker-calendar-period-button');\n const prevButton =\n content.querySelector('.mat-datetimepicker-calendar-previous-button') ??\n header.querySelector('.mat-datetimepicker-calendar-previous-button');\n const nextButton =\n content.querySelector('.mat-datetimepicker-calendar-next-button') ??\n header.querySelector('.mat-datetimepicker-calendar-next-button');\n\n /**\n * create headerLine1 that will contain month name, year value and year prev/next buttons\n */\n const headerLine1 = header.querySelector('.header.line-1') ?? document.createElement('div');\n headerLine1.className = 'header line-1';\n headerLine1.innerHTML = '';\n\n /**\n * create headerSubLine1 that will contain month name and year value\n */\n const headerSubLine1 = document.createElement('div');\n headerSubLine1.className = 'sub-line-1';\n\n if (yearButton) {\n const svg: HTMLElement | null = yearButton.querySelector('.arrow-down');\n const monthShortcut: HTMLElement | null = document.createElement('div');\n if (view !== 'year' && view !== 'clock') {\n monthShortcut.className = 'month-shortcut';\n monthShortcut.innerHTML = monthButton?.textContent?.slice(0, 3) || '';\n yearButton.prepend(monthShortcut);\n /**\n * create arrow down icon\n */\n const arrowSVG = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"8\" viewBox=\"0 0 11 8\" fill=\"none\">\n <path d=\"M0.5 0.0178223L10.5 0.0178224L5.5 7.01782L0.5 0.0178223Z\" />\n </svg>`;\n\n const arrowDiv = document.createElement('div');\n arrowDiv.className = 'arrow-down';\n arrowDiv.innerHTML = arrowSVG;\n /**\n * append arrow to the button\n */\n yearButton.append(arrowDiv);\n }\n\n /**\n * remove svg on a year view\n */\n if (svg && (view === 'year' || view === 'clock')) {\n svg.remove();\n }\n\n /**\n * remove svg on a year view\n */\n const monthEl: HTMLElement | null = yearButton.querySelector('.month-shortcut');\n\n if (monthEl && (view === 'year' || view === 'clock')) {\n monthEl.remove();\n }\n\n /**\n * append year to subLine1\n */\n headerSubLine1.append(yearButton);\n }\n\n /**\n * only append headerSubLine1 to he headerLine1 if it has items\n */\n if (headerSubLine1.hasChildNodes() && view !== 'clock') {\n headerLine1.append(headerSubLine1);\n }\n\n /**\n * create headerSubLine2 that will contain year prev/next buttons\n */\n const headerSubLine2 = document.createElement('div');\n headerSubLine2.className = 'sub-line-2';\n\n if (prevButton) {\n headerSubLine2.append(prevButton);\n }\n\n if (nextButton) {\n headerSubLine2.append(nextButton);\n }\n\n /**\n * only append headerSubLine2 to he headerLine1 if it has items\n */\n if (headerSubLine2.hasChildNodes()) {\n headerLine1.append(headerSubLine2);\n }\n\n /**\n * only append headerLine1 header if it has items\n */\n if (headerLine1.hasChildNodes()) {\n header.prepend(headerLine1);\n }\n\n /**\n * remove existing div to headerLine2 that will contain date and time information\n */\n const headerLine2 = header.querySelector('.mat-datetimepicker-calendar-header-date-time');\n\n if (headerLine2) {\n headerLine2.remove();\n }\n\n /**\n * make sure calendar container is not hidden anymore\n */\n this.container?.classList.remove('hidden');\n\n /**\n * Add event listeners to the buttons to detect month changes\n */\n\n if (this.isFirstRun) {\n this.addMonthChangeListeners(prevButton, nextButton);\n }\n }\n\n private addMonthChangeListeners(prevButton: Element | null, nextButton: Element | null): void {\n if (prevButton) {\n prevButton.addEventListener('click', () => {\n this.clearHeaderLine1();\n });\n }\n\n if (nextButton) {\n nextButton.addEventListener('click', () => {\n this.clearHeaderLine1();\n });\n }\n }\n\n /**\n * Remove old month label and prevent duplicate arrow down\n */\n private clearHeaderLine1(): void {\n const monthLabel = document.querySelector('.month-shortcut');\n const arrowIcon = document.querySelector('.arrow-down');\n if (monthLabel && arrowIcon) {\n monthLabel.remove();\n arrowIcon.remove();\n this.run('month');\n }\n }\n}\n","import { Directive, Inject, Input, NgModule, OnChanges, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\nimport { CustomDateTimeFormat } from './custom-datetime-format';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Directive({\n selector: '[dateTimePickerFormat]',\n providers: [\n {\n provide: MAT_DATETIME_FORMATS,\n useClass: CustomDateTimeFormat,\n },\n ],\n})\nexport class DateTimePickerFormatDirective implements OnChanges {\n /** Custom display format that will override current format for this component */\n @Input() customDisplayFormat: GENERIC_COLLECTION = {};\n /** Set to use custom display format, overriding the one, provided by locale */\n @Input() overrideDisplayFormat = true;\n\n ngOnChanges() {\n if (this.overrideDisplayFormat) {\n this.format.updateDisplay(this.customDisplayFormat);\n this.format.updateParse(this.customDisplayFormat);\n this.ngControl.valueAccessor?.writeValue(this.ngControl.value);\n }\n }\n\n constructor(\n @Inject(MAT_DATETIME_FORMATS) private format: CustomDateTimeFormat,\n @Optional() private ngControl: NgControl,\n ) {}\n}\n\n@NgModule({\n imports: [],\n declarations: [DateTimePickerFormatDirective],\n exports: [DateTimePickerFormatDirective],\n})\nexport class DateTimePickerFormatDirectiveModule {}\n","import {\n Input,\n Component,\n OnInit,\n OnDestroy,\n SimpleChange,\n OnChanges,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n inject,\n} from '@angular/core';\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\nimport { FormControl, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { adsIconCross, adsIconDatepicker, adsIconTimepicker } from '@ascentgl/ads-icons/icons';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { add } from 'date-fns';\nimport { FORMAT_DATETIME } from './custom-datetime-format';\nimport { MatDatetimepickerComponent, MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\nimport { MatCalendarView } from '@mat-datetimepicker/core/datetimepicker/calendar';\nimport { DatetimeTemplateFormatter } from './datetime-template.formatter';\n\n@Component({\n selector: 'ads-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', './datetimepicker.component.scss'],\n})\nexport class AdsDatetimepickerComponent extends AbstractInputComponent implements OnChanges, OnInit, OnDestroy {\n /** @ignore */\n @ViewChild(MatDatetimepickerComponent) picker?: MatDatetimepickerComponent<unknown>;\n\n /** Choose between 12 and 24 hour time input mode. NOTE: twelveHour=true may have minor issues when allowPastValues=false */\n @Input() twelveHour = false;\n\n /** Set time offset relative to GMT. If parameter is omitted offset will be calculated based on browser info */\n @Input() offset?: number;\n\n /** Allow or forbid choosing date values from the past */\n @Input() allowPastValues = true;\n\n /** Set to inputting value manually */\n @Input() allowManualInput = true;\n\n /** Whether to use key shortcuts (\"y\", \"n\", \"t\") for setting the value */\n @Input() useShortcuts = true;\n\n /** Set to use custom display format, overriding the one, provided by locale */\n @Input() overrideDisplayFormat = true;\n\n /** Show or hide time picker */\n @Input() showTimePicker = true;\n\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_DATETIME;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n customDisplayFormatOverride: GENERIC_COLLECTION = {};\n\n /** @ignore */\n type: MatDatetimepickerType = 'datetime';\n\n /** @ignore */\n minDate?: string;\n\n /** @ignore */\n protected shortcuts: GENERIC_COLLECTION = {\n y: -1, //yesterday\n n: 0, //now\n t: 1, //tomorrow\n };\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Date and Time must appear in this format: MM/DD/YYYY HH:mm',\n matDatepickerMin: 'The value is too old',\n };\n\n /** @ignore */\n private subscriptions: Subscription[] = [];\n\n /** @ignore */\n private isDisplayValueChangeRegistered = false;\n\n private cdr = inject(ChangeDetectorRef);\n\n private templateFormatter = new DatetimeTemplateFormatter();\n\n constructor() {\n super();\n this.registry.register([adsIconCross, adsIconDatepicker, adsIconTimepicker]);\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.setupSubscriptions();\n this.applyCustomFormat();\n this.cdr.detectChanges();\n }\n /** @ignore */\n ngOnChanges(changes: {\n customDisplayFormat: SimpleChange;\n offset: SimpleChange;\n showTimePicker: SimpleChange;\n immediateValidation: SimpleChange;\n }): void {\n if (changes.customDisplayFormat || changes.showTimePicker) {\n this.applyCustomFormat();\n }\n\n if (changes.offset && !changes.offset.isFirstChange()) {\n this.syncDisplayedValue();\n }\n\n super.ngOnChanges(changes);\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n /** @ignore */\n toggle(event: MouseEvent): void {\n event.stopPropagation();\n if (this.picker?.opened) {\n this.picker.close();\n } else {\n this.picker?.open();\n }\n }\n\n /** @ignore */\n get showExclamation() {\n return this.showExclamationOnError && this.displayControl.invalid && this.displayControl.touched;\n }\n\n get canClear() {\n return this.showClearButton && !!this.input?.nativeElement.value;\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.displayControl): string {\n /**\n * if we have format error - make sure to show it first\n */\n if (this.displayControl.errors?.matDatepickerParse) {\n this.displayControl.setErrors({ matDatepickerParse: this.displayControl.errors?.matDatepickerParse });\n }\n\n return super.displayFirstError(control);\n }\n\n /** @ignore */\n onKeyDown(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n /**\n * blur input to make sure the value is applied\n */\n if (event.key === 'Enter' && event.target instanceof HTMLInputElement) {\n this.setMinValue();\n event.target.blur();\n return;\n }\n\n if (!this.useShortcuts) {\n return;\n }\n\n const shortcutOffset = this.shortcuts[event.key.toLowerCase()];\n\n /**\n * if one of the shortcuts was clicked - set current date value accordingly\n */\n if (shortcutOffset !== undefined) {\n /**\n * create date object. taking into account shortcut offset (yesterday, now, tomorrow)\n */\n const value: Date = this.createDate(shortcutOffset);\n\n /**\n * set date object to required offset value, and apply it to valueControl\n * (it will eventually sync displayControl too)\n */\n this.onChanged(this.dateToRequiredOffset(value).toISOString());\n\n event.preventDefault();\n }\n }\n\n /** @ignore */\n touchControls(): void {\n if (!this.displayControl.touched) {\n this.displayControl.markAsTouched();\n }\n\n if (!this.valueControl.touched) {\n this.valueControl.markAsTouched();\n }\n\n if (!this.displayControl.dirty) {\n this.displayControl.markAsDirty();\n }\n\n if (!this.valueControl.dirty) {\n this.valueControl.markAsDirty();\n }\n }\n\n /** @ignore */\n clear(event: MouseEvent): void {\n /**\n * stop even propagation so that calendar won't open on \"clear\" button click\n */\n event.stopPropagation();\n\n this.displayControl.setValue(null);\n\n this.onChanged(this.displayControl.value);\n }\n\n /** @ignore */\n mousedown(event: MouseEvent): void {\n event.preventDefault();\n }\n\n /** @ignore */\n onOpened(): void {\n this.templateFormatter.reset();\n this.setMinValue();\n this.isDisplayValueChangeRegistered = false;\n }\n\n /** @ignore */\n onClosed(): void {\n /**\n * NOTE: this is needed to override an issue when closing a dropdown passes focus to input\n * when allowManualInput is false\n */\n if (!this.allowManualInput) {\n this.input?.nativeElement.blur();\n }\n\n /**\n * if control value is empty, displayControl with be cleared (brought to initial state)\n */\n this.syncEmptyValues();\n\n /**\n * focus on control value and select time part\n */\n if (!this.showTimePicker && this.isDisplayValueChangeRegistered && this.type !== 'date') {\n this.input?.nativeElement.focus();\n\n const spacePosition = this.input?.nativeElement.value.lastIndexOf(' ');\n const totalLength = this.input?.nativeElement.value.length;\n\n if (spacePosition > -1) {\n this.input?.nativeElement.setSelectionRange(spacePosition + 1, spacePosition + (totalLength - spacePosition));\n }\n }\n }\n\n /** @ignore */\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\n const value = event === null ? null : typeof event == 'string' ? event : event.value;\n\n /**\n * sync valueControl errors with displayControl errors\n * NOTE: this is needed for \"invalid format\" errors that are calculated for displayControl\n * by MatDatetimepicker component\n */\n this.valueControl.setErrors(this.displayControl.errors);\n\n this.onDisplayedValueChange(value ? new Date(value) : null);\n\n /**\n * mark controls as touched and dirty to ensure proper error display\n */\n this.touchControls();\n }\n\n onViewChanged(view: MatCalendarView) {\n this.templateFormatter.run(view);\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n super.touchInvalid(control);\n super.touchInvalid(this.displayControl);\n }\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride.datetimeInput = this.customDisplayFormat;\n }\n\n if (!this.showTimePicker) {\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride.dateInput = this.customDisplayFormat;\n } else {\n this.customDisplayFormatOverride.dateInput = FORMAT_DATETIME;\n }\n }\n }\n\n /** @ignore */\n protected setControlValue(control: FormControl, value: string | null = null, emitEvent = true): void {\n if (control.value !== value) {\n control.setValue(value, { emitEvent: emitEvent });\n }\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n /**\n * always make sure that date string is in UTC format\n */\n const value: Date = new Date(valueToApply + (valueToApply.endsWith('Z') ? '' : 'Z'));\n\n this.setControlValue(this.displayControl, this.dateToRequiredOffset(value).toISOString());\n }\n\n /** @ignore */\n protected onDisplayedValueChange(value: Date | null): void {\n let newValue: null | string = null;\n\n if (value) {\n newValue = this.displayedValueToControlValue(value);\n }\n\n /**\n * only set value if it did change\n */\n if (newValue === this.valueControl.value) {\n return;\n }\n\n /**\n * set control value reverting offset calculation\n */\n this.setControlValue(this.valueControl, newValue);\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return this.dateToActualOffset(value).toISOString();\n }\n\n /** @ignore */\n protected setMinValue(): void {\n /**\n * calculate minimum allowed datetime if needed\n */\n if (!this.allowPastValues) {\n this.minDate = this.dateToRequiredOffset().toISOString();\n }\n }\n\n /** @ignore */\n protected addOffset(date: Date, offset: number): Date {\n return add(date, { minutes: offset });\n }\n\n /** @ignore */\n protected removeOffset(date: Date, offset: number): Date {\n return add(date, { minutes: offset * -1 });\n }\n\n /** @ignore */\n protected getActualDateOffset(value: Date = this.createDate()): number {\n return value.getTimezoneOffset() * -1;\n }\n\n /** @ignore */\n protected getRequiredOffset(value: Date = this.createDate()): number {\n return this.offset ? this.offset * 60 : this.getActualDateOffset(value);\n }\n\n /** @ignore */\n protected createDate(daysShift = 0): Date {\n let value: Date = new Date();\n\n if (daysShift) {\n value = this.addOffset(value, daysShift * 24 * 60);\n }\n\n return value;\n }\n\n /** @ignore */\n private setupSubscriptions(): void {\n /**\n *\n *sync display control statuses with value control status for proper error display\n * make sure \"displayControl\" disabled state and value are synchronized with \"control\" disabled state and value\n */\n this.subscriptions.push(this.valueControl.statusChanges.subscribe(() => this.syncState()));\n this.subscriptions.push(this.valueControl.valueChanges.subscribe(() => this.syncDisplayedValue()));\n\n /**\n * NOTE: registering display value change is needed to know when to focus time part of datetime if showTimePicker is false\n */\n this.subscriptions.push(\n this.displayControl.valueChanges.subscribe(() => (this.isDisplayValueChangeRegistered = true)),\n );\n\n /**\n * make sure displayControl has the same validators as control\n */\n this.displayControl.addValidators(this.valueControl.validator ?? []);\n /**\n * required validator must be set manually in this component\n * because valueControl is disconnected from input field\n */\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n }\n this.valueControl.updateValueAndValidity({ emitEvent: false });\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n /**\n * perform initial synchronizations\n */\n this.syncState();\n this.syncDisplayedValue();\n }\n\n /** @ignore */\n private syncDisplayedValue(): void {\n /**\n * if control value is empty, displayControl with be cleared (brought to initial state)\n */\n if (this.syncEmptyValues()) return;\n\n this.onSyncDisplayedValue();\n }\n\n /** @ignore */\n private syncEmptyValues(): boolean {\n if (this.valueControl.value) return false;\n\n this.setControlValue(this.displayControl, this.valueControl.value, false);\n\n return true;\n }\n\n /** @ignore */\n private dateToRequiredOffset(value: Date = this.createDate()): Date {\n value = this.removeOffset(value, this.getActualDateOffset(value));\n return this.addOffset(value, this.getRequiredOffset(value));\n }\n\n /** @ignore */\n private dateToActualOffset(value: Date = this.createDate()): Date {\n value = this.addOffset(value, this.getActualDateOffset(value));\n return this.removeOffset(value, this.getRequiredOffset(value));\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NativeDateAdapter } from '@angular/material/core';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { format } from 'date-fns';\nimport { Injectable } from '@angular/core';\nimport { FORMAT_DATETIME, FORMAT_TIME } from './custom-datetime-format';\n\n@Injectable()\nexport class CustomDatetimeAdapter extends NativeDateAdapter {\n constructor() {\n super();\n }\n format(date: Date, displayFormat: string | GENERIC_COLLECTION): string {\n if (typeof displayFormat === 'string') {\n return format(date, displayFormat);\n } else {\n return super.format(date, displayFormat);\n }\n }\n\n parse(value: string, parseFormat?: string): Date | null {\n if (parseFormat === FORMAT_TIME) {\n /**\n * we need to add date before we parse manually input time value\n */\n value = format(new Date(), 'yyyy-MM-dd') + ' ' + this.inferTime(value);\n } else if (parseFormat === FORMAT_DATETIME) {\n const [date, time] = value.split(' ');\n\n value = time ? date + ' ' + this.inferTime(time) : value;\n }\n return super.parse(value, parseFormat);\n }\n\n private inferTime(value: string): string {\n /**\n * this allows to construct valid time when only 1 or 2 characters are input\n */\n if (value.length === 1) {\n return `0${value}:00`;\n } else if (value.length === 2) {\n return `${value}:00`;\n }\n\n return value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsDatetimepickerComponent } from './datetimepicker.component';\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { DateTimePickerFormatDirectiveModule } from './datetime-picker-format-directive';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { CustomDatetimeAdapter } from './custom-datetime.adapter';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatNativeDatetimeModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatDatetimepickerModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsDatetimepickerComponent],\n exports: [AdsDatetimepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsDatetimepickerModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { format } from 'date-fns';\nimport { FORMAT_DATE } from '../datetime-picker/custom-datetime-format';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-datepicker',\n templateUrl: '../datetime-picker/datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', '../datetime-picker/datetimepicker.component.scss'],\n})\nexport class AdsDatepickerComponent extends AdsDatetimepickerComponent {\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_DATE;\n\n /** @ignore */\n type: MatDatetimepickerType = 'date';\n\n /** @ignore */\n twelveHour = false;\n\n /** @ignore */\n showTimePicker = false;\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Date must appear in this format: MM/DD/YYYY',\n };\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride = { dateInput: this.customDisplayFormat };\n }\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return format(value, 'yyyy-MM-dd');\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n if (this.valueControl.value !== null) {\n valueToApply = this.valueControl.value + 'T00:00:00';\n }\n this.setControlValue(this.displayControl, valueToApply);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatDatetimepickerModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AdsDatepickerComponent } from './datepicker.component';\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatInputModule,\n MatNativeDateModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatDatetimepickerModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n AdsInputTooltipComponent,\n MatIconButton,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsDatepickerComponent],\n exports: [AdsDatepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsDatepickerModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { format } from 'date-fns';\nimport { FORMAT_TIME } from '../datetime-picker/custom-datetime-format';\nimport { adsIconTimepicker } from '@ascentgl/ads-icons/icons';\nimport { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\n\n@Component({\n selector: 'ads-timepicker',\n templateUrl: '../datetime-picker/datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', '../datetime-picker/datetimepicker.component.scss'],\n})\nexport class AdsTimepickerComponent extends AdsDatetimepickerComponent {\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_TIME;\n\n /** @ignore */\n type: MatDatetimepickerType = 'time';\n\n /** @ignore */\n protected shortcuts: GENERIC_COLLECTION = {\n n: 0, //now\n };\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Time must appear in this format: HH:mm',\n };\n\n constructor() {\n super();\n this.registry.register([adsIconTimepicker]);\n }\n\n /** @ignore */\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\n /**\n * NOTE: this is needed to clear values when input field is cleared;\n * otherwise the timepicker will be set to 00:00\n */\n if (this.displayControl.value && !this.input?.nativeElement.value) {\n this.setControlValue(this.displayControl, null);\n this.setControlValue(this.valueControl, null);\n } else {\n super.onChanged(event);\n }\n }\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride = { timeInput: this.customDisplayFormat };\n }\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return format(this.addOffset(value, this.getRequiredOffset(value) * -1), 'HH:mm:00');\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n if (this.valueControl.value !== null) {\n valueToApply = format(this.createDate(), 'yyyy-MM-dd') + ' ' + this.valueControl.value;\n }\n\n super.onSyncDisplayedValue(valueToApply);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AdsTimepickerComponent } from './timepicker.component';\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatetimepickerModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatNativeDatetimeModule,\n MatNativeDateModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsTimepickerComponent],\n exports: [AdsTimepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsTimepickerModule {}\n","import { Component, contentChild, Input, OnChanges, SimpleChange, TemplateRef } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AdsDropdownComponent } from '../../dropdowns/dropdown';\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\n\n@Component({\n selector: 'ads-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n})\nexport class AdsRadioButtonComponent extends AdsDropdownComponent implements OnChanges {\n /** @ignore */\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\n\n /** Set to \"true\" to make the checkbox indeterminate */\n @Input() vertical = false;\n\n /** Enable/disable options sorting */\n @Input() sortOptions = false;\n\n /** If \"true\", will read option template provided via \"ng-template radio-option\" selector */\n @Input() useOptionTemplate = false;\n\n /** @ignore */\n fitContent = false;\n\n /** @ignore */\n placeholder = '';\n\n /** @ignore */\n declare label?: string;\n\n /** @ignore */\n ngOnChanges(changes: { required: SimpleChange; options: SimpleChange; immediateValidation: SimpleChange }): void {\n super.ngOnChanges(changes);\n\n if (changes.required) {\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n } else {\n this.valueControl.removeValidators(Validators.required);\n }\n }\n }\n}\n","<div class=\"form-control-row\" [ngStyle]=\"{ minWidth: width }\">\n <mat-radio-group\n [id]=\"id\"\n [ngClass]=\"{\n vertical: vertical,\n 'radio-invalid': valueControl.invalid && (valueControl.touched || immediateValidation),\n }\"\n [formControl]=\"valueControl\"\n >\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\n <mat-radio-button [value]=\"option.key\">\n @if (useOptionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\n ></ng-template>\n } @else {\n {{ displayValueFormatter ? displayValueFormatter(option.key) : option.value }}\n }\n </mat-radio-button>\n }\n </mat-radio-group>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsRadioButtonComponent } from './radio-button.component';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsSearchDropdownHighlighterPipeModule } from '../../search-fields/search-dropdown/search-dropdown-highlighter.pipe';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatRadioModule,\n MatOptionModule,\n MatInputModule,\n AdsErrorComponent,\n AdsHintComponent,\n AdsInputTooltipComponent,\n AdsSearchDropdownHighlighterPipeModule,\n AdsSuccessComponent,\n ],\n declarations: [AdsRadioButtonComponent],\n exports: [AdsRadioButtonComponent],\n})\nexport class AdsRadioButtonModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\n\n@Component({\n selector: 'ads-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n})\nexport class AdsSlideToggleComponent extends AbstractBaseComponent {\n /** @ignore */\n valueControl: FormControl = new FormControl();\n\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n /**\n * NOTE: we use setter and internal \"valueControl\" here\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\n *\n */\n if (control instanceof FormControl) {\n this.valueControl = control;\n } else {\n throw Error('Control must be a \"FormControl\" instance');\n }\n }\n\n /** Optional \"label\" attribute for slide toggle field */\n @Input() label = '';\n\n /** Optional \"id\" attribute for slide toggle field */\n @Input() id = '';\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n @Input() width = 'fit-content';\n\n /** @ignore */\n toggle() {\n if (this.valueControl.disabled) return;\n\n this.valueControl.setValue(!this.valueControl.value);\n }\n}\n","<div class=\"ads-toggle\">\n <div\n class=\"toggle-container\"\n [class.checked]=\"valueControl.value\"\n [class.disabled]=\"valueControl.disabled\"\n (click)=\"toggle()\"\n [ngStyle]=\"{ width: width }\"\n >\n <div class=\"toggle-track\">\n <span class=\"toggle-label\">{{ valueControl.value ? 'On' : 'Off' }}</span>\n </div>\n <div class=\"toggle-handle\"></div>\n </div>\n</div>\n@if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsSlideToggleComponent } from './slide-toggle.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSlideToggleComponent],\n exports: [AdsSlideToggleComponent],\n})\nexport class AdsSlideToggle {}\n","import { Component, Input } from '@angular/core';\nimport { AdsCheckboxComponent } from '../checkbox';\n\n@Component({\n selector: 'ads-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n})\nexport class AdsSliderComponent extends AdsCheckboxComponent {\n /** Set minimum slider value */\n @Input() min = 0;\n\n /** Set maximum slider value */\n @Input() max = 100;\n\n /** Set slider step value */\n @Input() step = 1;\n\n /** How often to show ticks. Relative to the step so that a tick always appears on a step. Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values). */\n @Input() tickInterval?: 'auto' | number;\n\n /** Whether to invert slider direction */\n @Input() invert = false;\n\n /** Whether to show the thumb label */\n @Input() thumbLabel = true;\n\n /** @ignore */\n label = '';\n}\n","<div>\n <mat-slider [id]=\"id\" [ngStyle]=\"{ width: width }\" [min]=\"min\" [max]=\"max\" [step]=\"step\" aria-label=\"slider\"\n ><input matSliderThumb [formControl]=\"valueControl\" />\n </mat-slider>\n @if (valueControl.touched && valueControl.errors) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsSliderComponent } from './slider.component';\nimport { CommonModule } from '@angular/common';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSliderModule,\n MatInputModule,\n AdsIconModule,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsSliderComponent],\n exports: [AdsSliderComponent],\n})\nexport class AdsSliderModule {}\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ads-inline-snackbar',\n templateUrl: './inline-snackbar.component.html',\n styleUrls: ['./inline-snackbar.component.scss'],\n})\nexport class AdsInlineSnackbarComponent implements OnInit, AfterViewInit {\n /** Set panel class for the snackbar. It determines snackbar color */\n @Input() panelClass: 'success' | 'warn' | 'primary' = 'success';\n\n /** Set message that will be shown on snackbar */\n @Input() message = 'Inline Snackbar';\n\n /** Set action button label */\n @Input() action = 'Click here';\n\n /** Set callback function that will be executed when action button is clicked. The button will be visible only if callback is set */\n @Input() actionCallback?: () => void;\n\n /** Set action2 button label */\n @Input() action2 = 'Click here';\n\n /** Set callback2 function that will be executed when action button is clicked. The button will be visible only if callback is set */\n @Input() actionCallback2?: () => void;\n\n /** @ignore */\n visible = false;\n\n constructor(private snackBar: MatSnackBar) {}\n\n /** @ignore */\n ngOnInit(): void {\n /**\n * connect regular snackbar to make sure all the required snackbar styles are linked\n */\n this.snackBar.open(this.message || 'X', this.action || 'X');\n this.snackBar.dismiss();\n }\n\n /** @ignore */\n click(): boolean {\n if (this.actionCallback) this.actionCallback();\n\n return false;\n }\n\n /** @ignore */\n click2(): boolean {\n if (this.actionCallback2) this.actionCallback2();\n\n return false;\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n setTimeout(() => (this.visible = true), 1);\n }\n}\n","<div class=\"mat-snack-bar-container {{ panelClass }}\" [ngClass]=\"{ visible: visible }\">\n <div class=\"mat-simple-snackbar\">\n <span class=\"message\">{{ message }}</span>\n <div class=\"links\" *ngIf=\"actionCallback || actionCallback2\">\n <a href=\"#\" *ngIf=\"actionCallback\" (click)=\"click()\">\n {{ action }}\n </a>\n <a href=\"#\" *ngIf=\"actionCallback2\" (click)=\"click2()\">\n {{ action2 }}\n </a>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsInlineSnackbarComponent } from './inline-snackbar.component';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\n@NgModule({\n declarations: [AdsInlineSnackbarComponent],\n imports: [CommonModule, MatSnackBarModule],\n exports: [AdsInlineSnackbarComponent],\n})\nexport class AdsInlineSnackbarModule {}\n","import { Component, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\nexport type SnackBarData = {\n title?: string;\n message: string;\n hideActionButton?: boolean;\n buttonCaption?: string;\n};\n\n@Component({\n selector: 'ads-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n})\nexport class AdsSnackbarComponent {\n data: SnackBarData = inject(MAT_SNACK_BAR_DATA);\n snackBarRef = inject(MatSnackBarRef);\n readonly defaultButtonCaption = 'CloseButton';\n protected readonly PanelClass = PanelClass;\n\n get buttonPanelClass(): PanelClass {\n const panelClass = this.snackBarRef.containerInstance.snackBarConfig.panelClass as PanelClass;\n return panelClass === PanelClass.Error ? PanelClass.Error : PanelClass.Secondary;\n }\n}\n\nexport enum PanelClass {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n}\n","<div class=\"container\">\n <div>\n @if (data.title) {\n <div class=\"snackbar-title\" [innerHTML]=\"data.title\"></div>\n }\n <span [innerHTML]=\"data.message\"></span>\n </div>\n @if (!data.hideActionButton) {\n <ads-button [variant]=\"buttonPanelClass\" (click)=\"snackBarRef.dismissWithAction()\"\n >{{ data.buttonCaption ?? (defaultButtonCaption | transloco) }}\n </ads-button>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { AdsSnackbarComponent } from './snackbar.component';\nimport { AdsButtonModule } from '../../buttons/button';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [AdsButtonModule, MatSnackBarModule, TranslocoPipe, CommonModule],\n declarations: [AdsSnackbarComponent],\n exports: [AdsSnackbarComponent],\n})\nexport class AdsSnackbarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-actions',\n styleUrls: ['widget-actions.component.scss'],\n templateUrl: 'widget-actions.component.html',\n})\nexport class AdsWidgetActionsComponent {}\n","<div class=\"widget-actions\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AdsWidgetActionsComponent } from './widget-actions.component';\n\n@NgModule({\n exports: [AdsWidgetActionsComponent],\n declarations: [AdsWidgetActionsComponent],\n})\nexport class AdsWidgetActionsModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-bar',\n styleUrls: ['widget-bar.component.scss'],\n templateUrl: 'widget-bar.component.html',\n})\nexport class AdsWidgetBarComponent {\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<div class=\"widget-bar\" *ngIf=\"!isMobile\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsWidgetBarComponent } from './widget-bar.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsWidgetBarComponent],\n declarations: [AdsWidgetBarComponent],\n})\nexport class AdsWidgetBarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-container',\n templateUrl: './widget-container.component.html',\n styleUrls: ['./widget-container.component.scss'],\n})\nexport class AdsWidgetContainerComponent {}\n","<div class=\"widget-container\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsWidgetContainerComponent } from './widget-container.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsWidgetContainerComponent],\n declarations: [AdsWidgetContainerComponent],\n})\nexport class AdsWidgetContainerModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-footer',\n templateUrl: './widget-footer.component.html',\n styleUrls: ['./widget-footer.component.scss'],\n})\nexport class AdsWidgetFooterComponent {}\n","<div class=\"widget-footer\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AdsWidgetFooterComponent } from './widget-footer.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsWidgetFooterComponent],\n declarations: [AdsWidgetFooterComponent],\n})\nexport class AdsWidgetFooterModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-header',\n templateUrl: './widget-header.component.html',\n styleUrls: ['./widget-header.component.scss'],\n})\nexport class WidgetHeaderComponent {}\n","<div class=\"widget-header\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { WidgetHeaderComponent } from './widget-header.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [WidgetHeaderComponent],\n declarations: [WidgetHeaderComponent],\n})\nexport class AdsWidgetHeaderModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-preview',\n styleUrls: ['widget-preview.component.scss'],\n templateUrl: 'widget-preview.component.html',\n})\nexport class AdsWidgetPreviewComponent implements OnInit {\n /**\n * alt text for the preview image\n */\n @Input() alt!: string;\n\n /**\n * Text to display that describes the widget\n */\n @Input() description!: string;\n\n /**\n * Path to the thumbnail image to display\n */\n @Input() thumbnail!: string;\n\n /**\n * Left position\n */\n @Input() left!: number;\n\n /**\n * Right position\n */\n @Input() top!: number;\n\n /** @ignore */\n ngOnInit(): void {\n this.top = this.top - 200;\n }\n}\n","<div class=\"widget-preview\" [style.top]=\"top + 'px'\" [style.left]=\"left + 'px'\">\n <img class=\"widget-preview-thumbnail\" [src]=\"thumbnail\" [alt]=\"alt\" />\n <div class=\"widget-preview-description\">{{ description }}</div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AdsWidgetPreviewComponent } from './widget-preview.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsWidgetPreviewComponent],\n declarations: [AdsWidgetPreviewComponent],\n})\nexport class AdsWidgetPreviewModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIcon, adsIconDrag } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-widget-thumbnail',\n styleUrls: ['widget-thumbnail.component.scss'],\n templateUrl: 'widget-thumbnail.component.html',\n})\nexport class AdsWidgetThumbnailComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconDrag]);\n }\n\n /**\n * Whether or not the widget is already on the dashboard\n */\n @Input() active = false;\n\n /**\n * Whether or not the widget drag event should be disabled\n */\n @Input() disabled = false;\n\n /**\n * The icon to display on the widget thumbnail\n */\n @Input() icon!: adsIcon;\n\n /**\n * The unique ID for the widget thumbnail\n */\n @Input() id!: string;\n\n /**\n * The text to display on the widget thumbnail\n */\n @Input() text!: string;\n\n /**\n * Event emitted when widget is added via keyboard\n */\n @Output() widgetAdd: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * Event emitted when widget loses focus\n */\n @Output() widgetBlur: EventEmitter<null> = new EventEmitter<null>();\n\n /**\n * Event emitted when widget dragstart event occurs\n */\n @Output() widgetDrag: EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n /**\n * Event emitted when widget is focused via keyboard\n */\n @Output() widgetFocus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n /**\n * Event emitted when mouse enters widget\n */\n @Output() widgetHover: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n /**\n * Event emitted when mouse leaves widget\n */\n @Output() widgetLeave: EventEmitter<null> = new EventEmitter<null>();\n\n /** @ignore */\n public onWidgetBlur(): void {\n this.widgetBlur.emit();\n }\n\n /** @ignore */\n public onWidgetDrag(event: DragEvent): void {\n this.widgetDrag.emit(event);\n }\n\n /** @ignore */\n public onWidgetDragEnd(event: DragEvent): void {\n (event.target as HTMLElement).blur();\n }\n\n /** @ignore */\n public onWidgetEnter(event: Event): void {\n this.widgetAdd.emit(event);\n }\n\n /** @ignore */\n public onWidgetFocus(event: FocusEvent): void {\n this.widgetFocus.emit(event);\n }\n\n /** @ignore */\n public onWidgetHover(event: MouseEvent): void {\n this.widgetHover.emit(event);\n }\n\n /** @ignore */\n public onWidgetLeave(): void {\n this.widgetLeave.emit();\n }\n}\n","<div\n tabindex=\"0\"\n class=\"widget-thumbnail\"\n [class.active]=\"active\"\n [class.disabled]=\"disabled\"\n [draggable]=\"!disabled\"\n [id]=\"id\"\n (dragstart)=\"onWidgetDrag($event)\"\n (dragend)=\"onWidgetDragEnd($event)\"\n (keyup.enter)=\"onWidgetEnter($event)\"\n (mouseenter)=\"onWidgetHover($event)\"\n (mouseleave)=\"onWidgetLeave()\"\n (focus)=\"onWidgetFocus($event)\"\n (blur)=\"onWidgetBlur()\"\n>\n <ads-icon class=\"widget-thumbnail-drag\" name=\"drag\" size=\"sm\" theme=\"primary\"></ads-icon>\n <div class=\"widget-thumbnail-text\">{{ text }}</div>\n <div class=\"widget-thumbnail-icons\">\n <div class=\"widget-active\"></div>\n <ads-icon [name]=\"icon\" theme=\"primary\" size=\"xs\"></ads-icon>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { AdsWidgetThumbnailComponent } from './widget-thumbnail.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, AdsIconModule, OverlayModule],\n exports: [AdsWidgetThumbnailComponent],\n declarations: [AdsWidgetThumbnailComponent],\n})\nexport class AdsWidgetThumbnailModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-thumbnail-container',\n styleUrls: ['widget-thumbnail-container.component.scss'],\n templateUrl: 'widget-thumbnail-container.component.html',\n})\nexport class AdsWidgetThumbnailContainerComponent {}\n","<div class=\"widget-thumbnail-container\" cdkDropList cdkDropListOrientation=\"horizontal\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { AdsWidgetThumbnailContainerComponent } from './widget-thumbnail-container.component';\n\n@NgModule({\n imports: [DragDropModule],\n exports: [AdsWidgetThumbnailContainerComponent],\n declarations: [AdsWidgetThumbnailContainerComponent],\n})\nexport class AdsWidgetThumbnailContainerModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-widget-title',\n templateUrl: './widget-title.component.html',\n})\nexport class WidgetTitleComponent {\n /**\n * The title text to display\n */\n @Input() title!: string;\n\n /**\n * The color of the title text\n */\n @Input() color: 'medium' | 'primary' | 'secondary' = 'medium';\n}\n","<div class=\"text-card-sub-title\" [ngClass]=\"color\">{{ title }}</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { WidgetTitleComponent } from './widget-title.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [WidgetTitleComponent],\n declarations: [WidgetTitleComponent],\n})\nexport class AdsWidgetTitleModule {}\n","import { Injectable } from '@angular/core';\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Observable } from 'rxjs';\nimport { IViewportService } from './viewport.service.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ViewportService implements IViewportService {\n constructor(private breakpointObserver: BreakpointObserver) {}\n\n /**\n * Whether one or more media queries match the current viewport size.\n * @param breakpoints\n * @returns boolean\n */\n public isMatched(breakpoints: string | string[] = Breakpoints.Handset): boolean {\n return this.breakpointObserver.isMatched(breakpoints);\n }\n\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes in matching of the given queries.\n * @param breakpoints\n * @returns Observable<BreakpointState>\n */\n public observe(breakpoints: string | string[] = Breakpoints.Handset): Observable<BreakpointState> {\n return this.breakpointObserver.observe(breakpoints);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IWindowService } from './window.service.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class WindowService implements IWindowService {\n get innerHeight(): number {\n return window.innerHeight;\n }\n\n get innerWidth(): number {\n return window.innerWidth;\n }\n\n get search(): string {\n return window.location.search;\n }\n\n reload(): void {\n window.location.reload();\n }\n\n setTimeout(callback: (...args: unknown[]) => void, ms?: number | undefined, ...args: unknown[]): number {\n return window.setTimeout(callback, ms, args);\n }\n\n public clearTimeout(id: number): void {\n window.clearTimeout(id);\n }\n}\n","import { Component, Inject, TemplateRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\n\nexport type AdsModalData = {\n title: string;\n content: string;\n hideCancel?: boolean;\n cancelButtonText?: string;\n confirmButtonText?: string;\n contentTemplate?: TemplateRef<unknown>;\n actionsTemplate?: TemplateRef<unknown>;\n};\n\nexport enum ModalPanelClass {\n Confirmation = 'ads-confirmation',\n}\n\n@Component({\n selector: 'ads-modal',\n templateUrl: './modal.component.html',\n styleUrl: './modal.component.scss',\n})\nexport class AdsModalComponent {\n constructor(\n private dialogRef: MatDialogRef<AdsModalComponent>,\n private registry: AdsIconRegistry,\n @Inject(MAT_DIALOG_DATA) public data: AdsModalData,\n ) {\n this.registry.register(adsIconCross);\n }\n\n public onCancel(): void {\n this.dialogRef.close(false);\n }\n\n public onSubmit(): void {\n this.dialogRef.close(true);\n }\n\n public onClose(): void {\n this.dialogRef.close();\n }\n}\n","<div mat-dialog-title>\n {{ data.title }}\n <div class=\"cross-icon-container\">\n <ads-icon name=\"cross\" size=\"xxs\" stroke=\"iconPrimary\" (click)=\"onClose()\" />\n </div>\n</div>\n\n<div mat-dialog-content>\n @if (data.contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"data.contentTemplate\" [ngTemplateOutletContext]=\"{ $implicit: data }\" />\n }\n {{ data.content }}\n</div>\n\n<div mat-dialog-actions>\n @if (data.actionsTemplate) {\n <ng-container [ngTemplateOutlet]=\"data.actionsTemplate\" [ngTemplateOutletContext]=\"{ $implicit: data }\" />\n } @else {\n @if (!data.hideCancel) {\n <ads-button variant=\"secondary\" (click)=\"onCancel()\">\n @if (data.cancelButtonText) {\n {{ data.cancelButtonText | transloco }}\n } @else {\n {{ 'Cancel' | transloco }}\n }\n </ads-button>\n }\n <ads-button variant=\"primary\" (click)=\"onSubmit()\">\n @if (data.confirmButtonText) {\n {{ data.confirmButtonText | transloco }}\n } @else {\n {{ 'Save' | transloco }}\n }\n </ads-button>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AdsButtonModule } from '../buttons/button';\nimport { AdsModalComponent } from './modal.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@NgModule({\n imports: [MatDialogModule, AdsButtonModule, AdsIconModule, TranslocoPipe, NgTemplateOutlet],\n declarations: [AdsModalComponent],\n exports: [AdsModalComponent],\n})\nexport class AdsModalModule {}\n","import { Component, input, output } from '@angular/core';\nimport { Chip } from './chip.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCheck, adsIconCross } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class AdsChipComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconCross, adsIconCheck]);\n }\n\n /** The unique id of the chip */\n id = input.required<string>();\n\n /** The text of the chip */\n title = input.required<string>();\n\n /** Show check icon before text */\n showCheckedIcon = input<boolean>(false);\n\n /** Disable chip */\n disabled = input<boolean>(false);\n\n /** Show delete icon before text */\n deletable = input<boolean>(false);\n\n /** Event emitted when the remove icon is clicked */\n deleted = output<string>();\n\n /** Event emitted when a chip is selected */\n selected = output<Chip>();\n\n /** @ignore */\n onSelected() {\n this.selected.emit({\n id: this.id(),\n title: this.title(),\n });\n }\n\n /** @ignore */\n onDelete() {\n if (!this.disabled()) {\n this.deleted.emit(this.id());\n }\n }\n}\n","<div class=\"chip\" [class.disabled]=\"disabled()\" tabindex=\"0\">\n @if (showCheckedIcon()) {\n <ads-icon name=\"check\" />\n }\n <span (click)=\"onSelected()\">{{ title() }}</span>\n @if (deletable()) {\n <ads-icon name=\"cross\" class=\"chip-delete\" (click)=\"onDelete()\" />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AdsChipComponent } from './chip.component';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsChipComponent],\n exports: [AdsChipComponent],\n imports: [NgClass, NgStyle, AdsIconModule],\n})\nexport class AdsChipModule {}\n","import { Component, input, TemplateRef } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconChevronDown, adsIconChevronUp } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../general/color-palette/colors.enums';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-expansion-panel',\n templateUrl: './expansion-panel.component.html',\n styleUrls: ['./expansion-panel.component.scss'],\n})\nexport class AdsExpansionPanelComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconChevronDown, adsIconChevronUp]);\n }\n\n /** @ignore */\n protected readonly Colors = Colors;\n\n /** The unique id of the chip */\n id = input<string>('');\n\n /** The header text */\n header = input<string>('');\n\n /** The header template */\n headerTemplate = input<TemplateRef<unknown>>();\n\n /** The header template data */\n headerTemplateData = input<GENERIC_COLLECTION>();\n\n /** Whether the AccordionItem is expanded. */\n isExpanded = input<boolean>(false);\n\n /** Whether the AccordionItem is disabled. */\n disabled = input<boolean>(false);\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n width = input<string>('100%');\n}\n","<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n","import { NgModule } from '@angular/core';\nimport { AdsExpansionPanelComponent } from './expansion-panel.component';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from '@angular/material/expansion';\n\n@NgModule({\n declarations: [AdsExpansionPanelComponent],\n exports: [AdsExpansionPanelComponent],\n imports: [\n NgClass,\n NgStyle,\n AdsIconModule,\n MatExpansionPanel,\n MatExpansionPanelTitle,\n MatExpansionPanelHeader,\n MatExpansionPanelDescription,\n NgTemplateOutlet,\n ],\n})\nexport class AdsExpansionPanelModule {}\n","import { Component, HostListener, Input } from '@angular/core';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { ColDef, FirstDataRenderedEvent, GridApi, GridOptions, GridReadyEvent } from 'ag-grid-community';\n\n@Component({\n selector: 'ads-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class AdsTableComponent {\n /** The grid's width */\n @Input() width = '100%';\n\n /** The grid's height */\n @Input() height = '100%';\n\n /** The grid options for ag-Grid */\n @Input() gridOptions?: GridOptions;\n\n /** The data to be displayed in the grid */\n @Input() rowData!: GENERIC_COLLECTION[];\n\n /** The column definitions for the grid */\n @Input() columnDefs!: ColDef[];\n\n /** Default column definitions that will be applied to all columns */\n @Input() defaultColDef: ColDef<GENERIC_COLLECTION> = {};\n\n /** @ignore */\n getDefaultColDef(): ColDef<GENERIC_COLLECTION> {\n return {\n ...this.defaultColDef,\n unSortIcon: true,\n };\n }\n\n /** @ignore */\n private gridApi?: GridApi;\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n this.gridApi?.sizeColumnsToFit();\n }\n\n /** @ignore */\n onGridReady(params: GridReadyEvent): void {\n this.gridApi = params.api;\n this.resize();\n }\n\n /** @ignore */\n onFirstDataRendered(params: FirstDataRenderedEvent): void {\n params.api.sizeColumnsToFit();\n }\n\n /** @ignore */\n getAgGridIcons(): GENERIC_COLLECTION {\n return {\n sortAscending:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n sortDescending:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n\n sortUnSort:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n };\n }\n\n /** @ignore */\n gridReady($event: GridReadyEvent): void {\n return this.gridOptions?.onGridReady ? this.gridOptions.onGridReady($event) : this.onGridReady($event);\n }\n\n /** @ignore */\n firstDataRendered($event: FirstDataRenderedEvent): void {\n return this.gridOptions?.onFirstDataRendered\n ? this.gridOptions.onFirstDataRendered($event)\n : this.onFirstDataRendered($event);\n }\n}\n","<ag-grid-angular\n [ngStyle]=\"{ width: width, height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"getDefaultColDef()\"\n (gridReady)=\"gridReady($event)\"\n (firstDataRendered)=\"firstDataRendered($event)\"\n/>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTableComponent } from './table.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AgGridAngular } from 'ag-grid-angular';\n\n@NgModule({\n declarations: [AdsTableComponent],\n imports: [CommonModule, AdsIconModule, AgGridAngular],\n exports: [AdsTableComponent],\n})\nexport class AdsTableModule {}\n","import { Component, input } from '@angular/core';\nimport { NavMenuItem } from './nav-menu.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconUserCircle, adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-nav-menu',\n styleUrls: ['nav-menu.component.scss'],\n templateUrl: 'nav-menu.component.html',\n})\nexport class AdsNavMenuComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconUserCircle, adsIconMenuMoreInfo]);\n }\n\n /**\n * Array of menu items to display in the main menu\n */\n navMenuItems = input.required<NavMenuItem[]>();\n\n /** Image url path */\n iconUrl = input<string>();\n\n /** Optional label text before icon */\n label = input<string>();\n}\n","<div class=\"ads-avatar-container\">\n @if (iconUrl()) {\n <img [ngSrc]=\"iconUrl()!\" alt=\"User Logo\" height=\"48\" width=\"48\" />\n } @else {\n <ads-icon name=\"user_circle\" theme=\"secondary\" />\n }\n @if (label()) {\n <span>{{ label() }}</span>\n }\n\n <ads-icon class=\"more-info-icon\" name=\"menu_more_info\" theme=\"secondary\" [matMenuTriggerFor]=\"menu\" />\n</div>\n\n<mat-menu #menu=\"matMenu\" [class]=\"'ads-mat-menu'\">\n @for (item of navMenuItems(); track item) {\n @if (item.template) {\n <ng-container *ngTemplateOutlet=\"item.template; context: { menuItem: item }\" />\n } @else if (item.href) {\n <button mat-menu-item [routerLink]=\"item.href!\" routerLinkActive=\"selected\">\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\n </button>\n } @else {\n <button mat-menu-item (click)=\"item.onClick ? item.onClick() : null\">\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\n </button>\n }\n }\n</mat-menu>\n\n<ng-template #text let-item=\"menuItem\">\n <div class=\"ads-menu-item-container\">\n @if (item.icon) {\n <ads-icon [id]=\"item.id\" [name]=\"item.icon\" size=\"sm\" theme=\"iconPrimary\"></ads-icon>\n }\n <span>{{ item.label }}</span>\n </div>\n</ng-template>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsNavMenuComponent } from './nav-menu.component';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\n@NgModule({\n imports: [\n CommonModule,\n AdsIconModule,\n NgOptimizedImage,\n MatMenu,\n MatMenuTrigger,\n RouterLinkActive,\n MatMenuItem,\n RouterLink,\n ],\n exports: [AdsNavMenuComponent],\n declarations: [AdsNavMenuComponent],\n})\nexport class AdsNavMenuModule {}\n","import { Component, ElementRef, input, OnInit, signal, TemplateRef, ViewChild } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\nimport { NavItem } from './nav-item.types';\nimport { SplitGutterInteractionEvent } from 'angular-split/lib/models';\n\n@Component({\n selector: 'ads-side-nav-bar',\n styleUrls: ['side-nav-bar.component.scss'],\n templateUrl: 'side-nav-bar.component.html',\n})\nexport class AdsSideNavBarComponent implements OnInit {\n /** @ignore */\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconSearch]);\n }\n\n /** The default expanded width for the sidebar */\n defaultExpandedWidth = input<number>(220);\n\n /** The search template */\n searchTemplate = input<TemplateRef<unknown>>();\n\n /** The extra data template below search */\n extraDataTemplate = input<TemplateRef<unknown>>();\n\n /** Array of nav elements */\n navItems = input<NavItem[]>([]);\n\n /** @ignore */\n isCollapsed = signal<boolean>(false);\n\n /** @ignore */\n sidebarSize = signal<number>(this.defaultExpandedWidth());\n\n /** @ignore */\n private localStorageName = 'side-nav-bar-width';\n\n /** @ignore */\n private widthToCollapsed = 70;\n\n /** @ignore */\n private minWidth = 50;\n\n /** @ignore */\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\n\n /** @ignore */\n ngOnInit() {\n if (localStorage.getItem(this.localStorageName)) {\n this.sidebarSize.set(JSON.parse(localStorage.getItem(this.localStorageName)!));\n }\n this.isCollapsed.set(this.sidebarSize() <= this.widthToCollapsed);\n }\n\n /** @ignore */\n onDragEnd(event: SplitGutterInteractionEvent): void {\n this.saveLocalStorage(Number(event.sizes[0]));\n this.isCollapsed.set(Number(event.sizes[0]) <= this.widthToCollapsed);\n }\n\n /** Expand the sidebar between collapsed and expanded */\n /** @ignore */\n expandSidebar(): void {\n if (this.isCollapsed()) {\n this.sidebarSize.set(this.widthToCollapsed);\n setTimeout(() => {\n this.isCollapsed.set(false);\n this.saveLocalStorage(this.defaultExpandedWidth());\n this.sidebarSize.set(this.defaultExpandedWidth());\n });\n } else {\n setTimeout(() => {\n this.isCollapsed.set(true);\n this.saveLocalStorage(this.minWidth);\n this.sidebarSize.set(this.minWidth);\n });\n }\n }\n\n /** Save current width to the local storage */\n /** @ignore */\n saveLocalStorage(size: number): void {\n localStorage.setItem(this.localStorageName, JSON.stringify(size));\n }\n}\n","<as-split\n [useTransition]=\"true\"\n unit=\"pixel\"\n [gutterSize]=\"10\"\n (dragEnd)=\"onDragEnd($event)\"\n (gutterDblClick)=\"expandSidebar()\"\n [gutterDblClickDuration]=\"500\"\n>\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track item) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsSideNavBarComponent } from './side-nav-bar.component';\nimport { AdsPrimaryLogoModule } from '../../logo/primary-logo';\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [\n CommonModule,\n AdsPrimaryLogoModule,\n SplitComponent,\n SplitAreaComponent,\n RouterOutlet,\n RouterLink,\n RouterLinkActive,\n AdsIconModule,\n ],\n exports: [AdsSideNavBarComponent],\n declarations: [AdsSideNavBarComponent],\n})\nexport class AdsSideNavBarModule {}\n","import { Component, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatFormField } from '@angular/material/form-field';\n\n@Component({\n selector: 'ads-numeric-step',\n templateUrl: './numeric-step.component.html',\n styleUrls: ['./numeric-step.component.scss'],\n standalone: true,\n imports: [NgClass, MatFormField],\n})\nexport class AdsNumericStepComponent {\n isLast = input.required<boolean>();\n isDelivery = input.required<boolean>();\n index = input.required<number>();\n distance = input<string>();\n\n get isFirst(): boolean {\n return this.index() === 0;\n }\n}\n","<div\n class=\"circle-container\"\n [ngClass]=\"{\n 'dash-line': true,\n outermost: isFirst || isLast(),\n }\"\n>\n <div\n class=\"dash-line top\"\n [ngClass]=\"{\n top: isLast(),\n bottom: isFirst,\n }\"\n ></div>\n @if (!isLast() && distance()) {\n <div class=\"distance-text\">\n {{ distance() }}\n </div>\n }\n <div class=\"stop-circle\" [ngClass]=\"{ delivery: isDelivery() }\">{{ index() + 1 }}</div>\n</div>\n","import { Component, input, TemplateRef } from '@angular/core';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\nexport interface NumericStep {\n template: TemplateRef<unknown>;\n headerTemplate: TemplateRef<unknown>;\n isDelivery: boolean;\n distance?: string;\n templateData: GENERIC_COLLECTION;\n}\n\n@Component({\n selector: 'ads-numeric-stepper',\n templateUrl: './numeric-stepper.component.html',\n styleUrls: ['./numeric-stepper.component.scss'],\n})\nexport class AdsNumericStepperComponent {\n /** Steps array */\n steps = input.required<NumericStep[]>();\n}\n","<mat-accordion multi=\"true\" class=\"stepper-container\">\n @for (step of steps(); track step; let i = $index) {\n <div class=\"step-item\">\n <ads-numeric-step\n [isLast]=\"i === steps().length - 1\"\n [index]=\"i\"\n [isDelivery]=\"step.isDelivery\"\n [distance]=\"step.distance\"\n />\n <ads-expansion-panel\n width=\"unset\"\n [headerTemplate]=\"step.headerTemplate\"\n [headerTemplateData]=\"step.templateData\"\n >\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\n </ads-expansion-panel>\n </div>\n @if (i !== steps().length - 1) {\n <div class=\"dash-container\">\n <div class=\"dash-line\"></div>\n </div>\n }\n }\n</mat-accordion>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsNumericStepperComponent } from './numeric-stepper.component';\nimport { AdsNumericStepComponent } from './components/numeric-step.component';\nimport { MatAccordion } from '@angular/material/expansion';\nimport { AdsExpansionPanelModule } from '../../expansion-panel';\n\n@NgModule({\n declarations: [AdsNumericStepperComponent],\n imports: [CommonModule, AdsNumericStepComponent, MatAccordion, AdsExpansionPanelModule],\n exports: [AdsNumericStepperComponent],\n})\nexport class AdsNumericStepperModule {}\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\n\nexport type VerticalStep = {\n title: string;\n date?: Date;\n icon: adsIcon;\n status: VerticalStepStatus;\n onClick?: (step: VerticalStep) => void;\n tooltip?: string;\n};\n\nexport enum VerticalStepStatus {\n Completed = 'completed',\n Current = 'current',\n Future = 'future',\n Disabled = 'disabled',\n}\n","import { input } from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { VerticalStep, VerticalStepStatus } from './vertical-step.type';\n\n@Component({\n selector: 'ads-vertical-stepper',\n styleUrls: ['./vertical-stepper.component.scss'],\n templateUrl: './vertical-stepper.component.html',\n})\nexport class AdsVerticalStepperComponent implements OnInit {\n /**\n * The steps to display\n */\n steps = input.required<VerticalStep[]>();\n\n /** @ignore */\n focusedStepIndex!: number;\n\n /** @ignore */\n protected readonly VerticalStepStatus = VerticalStepStatus;\n\n /** @ignore */\n ngOnInit(): void {\n this.focusedStepIndex = this.steps().findIndex((step: VerticalStep) => step.status === VerticalStepStatus.Current);\n }\n}\n","<div class=\"vertical-stepper\">\n @for (step of steps(); track step; let first = $first; let last = $last; let index = $index) {\n <div class=\"step\" [class.focused]=\"index === focusedStepIndex\" [ngClass]=\"{ clickable: step.onClick }\">\n @if (!first) {\n <div class=\"line-container\">\n <div></div>\n <div></div>\n </div>\n }\n\n <div\n class=\"step-icon-wrapper\"\n (click)=\"step.onClick && step.status !== VerticalStepStatus.Disabled ? step.onClick!(step) : null\"\n [ngClass]=\"step.status\"\n [class.clickable]=\"step.onClick && step.status !== VerticalStepStatus.Disabled\"\n >\n <div class=\"step-icon\" [matTooltip]=\"step.tooltip || ''\" [matTooltipDisabled]=\"!step.tooltip\">\n <ads-icon [name]=\"step.icon\" size=\"sm\" stroke=\"white\" theme=\"white\" />\n </div>\n\n <span class=\"title\">{{ step.title }}</span>\n </div>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsVerticalStepperComponent } from './vertical-stepper.component';\n\n@NgModule({\n imports: [CommonModule, MatTooltipModule, AdsIconModule],\n exports: [AdsVerticalStepperComponent],\n declarations: [AdsVerticalStepperComponent],\n})\nexport class AdsVerticalStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3.AdsIconButtonComponent","i3","i4","i5.AdsButtonComponent","i4.AdsButtonComponent","i2.AdsHintComponent","i3.AdsErrorComponent","i4.AdsSuccessComponent","i5","i6","i7","i8.AdsInputTooltipComponent","i9.AdsErrorComponent","i10.AdsHintComponent","i11.AdsSuccessComponent","i12.AdsTagComponent","i13.AdsCheckboxComponent","i7.AdsInputTooltipComponent","i9.AdsSuccessComponent","i10.AdsErrorComponent","i11.AdsHintComponent","i6.AdsInputTooltipComponent","i8.AdsSuccessComponent","i2.AdsInputComponent","i3.AdsDropdownComponent","i4.AdsInputTooltipComponent","i5.AdsErrorComponent","i6.AdsHintComponent","i7.AdsSuccessComponent","i9.AdsInputTooltipComponent","i12.AdsSuccessComponent","i13.AdsSearchDropdownHighlighterPipe","i8.AdsErrorComponent","i9.AdsHintComponent","i10.AdsSuccessComponent","i7.DateTimePickerFormatDirective","i9","i4.AdsErrorComponent","i5.AdsHintComponent","i2.AdsErrorComponent","i3.AdsHintComponent","i1.AdsButtonComponent","i3.AdsButtonComponent","i3.AdsPrimaryLogoComponent","i2.AdsNumericStepComponent","i4.AdsExpansionPanelComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUa,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAI7C;;AAEG;QACM,IAAG,CAAA,GAAA,GAAY,iBAAiB,CAAC;AAE1C;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,YAAY,CAAC;AAE3B;;AAEG;QACM,IAAI,CAAA,IAAA,GAAS,IAAI,CAAC;AAhBzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;KAC3C;AAsBD;;AAEG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;SACvC;AAED,QAAA,IAAI,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE;YAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;SACvC;KACF;8GApCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,mICV/B,sVAaA,EAAA,MAAA,EAAA,CAAA,8VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,sVAAA,EAAA,MAAA,EAAA,CAAA,8VAAA,CAAA,EAAA,CAAA;oFAYb,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAKG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,GAAG,EAAA,CAAA;sBAAX,KAAK;;;MEvBK,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAJX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,YAAY,EAAE,aAAa,aAC3B,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEjB,eAAe,EAAA,OAAA,EAAA,CAHhB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCFY,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAME;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC9B;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAEjC;;AAEG;AACH,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAEvB;;AAEG;QACH,IAAO,CAAA,OAAA,GAAG,MAAM,EAAE,CAAC;AAMpB,KAAA;;IAHQ,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;8GAvBU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,udCPlC,kNAUA,EAAA,MAAA,EAAA,CAAA,+UAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,kNAAA,EAAA,MAAA,EAAA,CAAA,+UAAA,CAAA,EAAA,CAAA;;;MEIf,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAlB,kBAAkB,EAAA,YAAA,EAAA,CAFd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAD1B,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGpB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACtC,iBAAA,CAAA;;;ICFW,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAOK,MAAO,wBAAyB,SAAQ,qBAAqB,CAAA;AALnE,IAAA,WAAA,GAAA;;;AAOE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAa,UAAU,CAAC,SAAS,CAAC,CAAC;;AAGhD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAU,MAAM,CAAC,CAAC;;AAG9B,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA2D,aAAa,CAAC,CAAC;;AAGvF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,CAAC,CAAC,CAAC;;AAGzB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAS,MAAK;YACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC/E,SAAC,CAAC,CAAC;AACJ,KAAA;8GAjBY,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,yjBCfrC,iXAgBA,EAAA,MAAA,EAAA,CAAA,+UAAA,EAAA,kmBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,iXAAA,EAAA,MAAA,EAAA,CAAA,+UAAA,EAAA,kmBAAA,CAAA,EAAA,CAAA;;;MEDlB,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAJjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAE7B,aAAa,EAAE,QAAQ,aADvB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAFtB,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;AACnC,iBAAA,CAAA;;;MCPY,yBAAyB,CAAA;IAcpC,WACU,CAAA,gBAA6B,EAC7B,WAAwB,EAAA;QADxB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAa;QAC7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAflC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAIZ;AACF,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,KAAK,EAAE,CAAC;SACT,CAAC;QAMA,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE1B;;AAEG;QACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAE9C;;;AAGG;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAEpE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC3B;SACF;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,YAAY,GAAA;QACV,IAAI,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAEjD;;;AAGG;QACH,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACzC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SACvC;AAED;;AAEG;QACH,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;AAE7C;;;;AAIG;AACH,QAAA,MAAM,oBAAoB,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AAExC,QAAA,IAAI,oBAAoB,IAAI,GAAG,EAAE;YAC/B,KAAK,GAAG,CAAC,CAAC;SACX;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,aAAa,GAAA;QACX,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEvE,IAAI,UAAU,GAAG,aAAa,CAAC;AAE/B;;;AAGG;QACH,IAAI,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACxD,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SACtD;AAED;;AAEG;AACH,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;AAEzD;;;;AAIG;QACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEnG,QAAA,IAAI,oBAAoB,IAAI,GAAG,EAAE;YAC/B,KAAK,IAAI,oBAAoB,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEO,oBAAoB,GAAA;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE1B;;AAEG;QACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAE3C;;AAEG;AACH,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAEjF;;AAEG;AACH,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AAE5D,QAAA,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;KAC3C;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC;;AAEG;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAE3C;;AAEG;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAE5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,mBAAmB,GAAA;AACzB,QAAA,MAAM,yBAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAEzF;;AAEG;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,yBAAyB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAE7E;;;AAGG;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,yBAAyB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAC1G,CAAC;KACH;IAEO,oBAAoB,GAAA;AAC1B;;AAEG;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAEpE;;AAEG;QACH,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEjE;;;AAGG;AACH,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3E,gBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;aACtC;SACF;KACF;IAEO,kBAAkB,GAAA;QACxB,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW;AACjD,YAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;AACvC,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU;SACnC,CAAC;KACH;AACF;;MCzLY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;AAgBE;;AAEG;QACM,IAAK,CAAA,KAAA,GAA6C,SAAS,CAAC;AAErE;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;AAEG;QACM,IAAI,CAAA,IAAA,GAAkC,QAAQ,CAAC;AACzD,KAAA;8GAzBY,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,yJCPnC,kRAaA,EAAA,MAAA,EAAA,CAAA,0SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDNa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,kRAAA,EAAA,MAAA,EAAA,CAAA,0SAAA,CAAA,EAAA,CAAA;8BAQlB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;METK,sBAAsB,CAAA;;IAiBjC,WACU,CAAA,QAAyB,EACzB,GAAsB,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;AAjBhC,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAa,WAAW,CAAC,CAAC;;AAGlD,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAa,MAAM,CAAC,CAAC;;AAGxC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAmB,CAAC;;AAGhD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;QAUjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;KACnE;;AAGD,IAAA,WAAW,CAAC,OAAsC,EAAA;AAChD,QAAA,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE;AAC/D,YAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;SACtE;KACF;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAyB,CAClD,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,EAClC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAC9B,CAAC;AAEF,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;;IAG8B,MAAM,GAAA;AACnC,QAAA,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;KACxC;;AAGD,IAAA,OAAO,CAAC,UAAyB,EAAA;AAC/B,QAAA,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACzC;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC;KACtC;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;KACvC;8GA3DU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,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,0nBCtBnC,qnDA2CA,EAAA,MAAA,EAAA,CAAA,y+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDrBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,qnDAAA,EAAA,MAAA,EAAA,CAAA,y+DAAA,CAAA,EAAA,CAAA;oHA8CK,MAAM,EAAA,CAAA;sBAApC,YAAY;uBAAC,eAAe,CAAA;;;MErDlB,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAE3B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAD5C,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAFpB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE3C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC;AACxD,iBAAA,CAAA;;;MCEY,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAHf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAD3B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAE9D,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAJpB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI7D,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,CAAC;oBACzE,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCDY,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;;AAGvB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,SAAS,CAAC,CAAC;;AAGpC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,MAAM,CAAC,CAAC;;AAG3B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGhC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ,CAAC,CAAC;;QAGtD,IAAW,CAAA,WAAA,GAAoB,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;AAG7G,QAAA,IAAA,CAAA,WAAW,GAAoB,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC;AAC/E,KAAA;8GAxBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,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,oxBCV/B,kQAWA,EAAA,MAAA,EAAA,CAAA,m3FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,kQAAA,EAAA,MAAA,EAAA,CAAA,m3FAAA,CAAA,EAAA,CAAA;;;MEIX,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAJX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEvB,YAAY,EAAE,eAAe,aAD7B,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGjB,eAAe,EAAA,OAAA,EAAA,CAFhB,YAAY,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AACzC,iBAAA,CAAA;;;MCFY,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAuC,YAAY,CAAC,CAAC;;AAGpE,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AACzB,KAAA;8GANY,2BAA2B,EAAA,IAAA,EAAA,EAAA,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,wTCPxC,4IAGA,EAAA,MAAA,EAAA,CAAA,uPAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,4IAAA,EAAA,MAAA,EAAA,CAAA,uPAAA,CAAA,EAAA,CAAA;;;MEMrB,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAJpB,YAAA,EAAA,CAAA,2BAA2B,CAChC,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAHzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA,CAAA;;;MCDY,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,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,gDCP7B,wFAEA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDKa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,wFAAA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,CAAA;;;MEOT,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAFT,YAAA,EAAA,CAAA,gBAAgB,CAFrB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,YAAY,EAAE,CAAC,gBAAgB,CAAC;AACjC,iBAAA,CAAA;;;ACTD,IAAY,MAoCX,CAAA;AApCD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,MAAA,CAAA,gBAAA,CAAA,GAAA,kBAAmC,CAAA;AACnC,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,MAAA,CAAA,iBAAA,CAAA,GAAA,mBAAqC,CAAA;AACrC,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,MAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,MAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,MAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,MAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,MAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,MAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,MAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,MAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,MAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EApCW,MAAM,KAAN,MAAM,GAoCjB,EAAA,CAAA,CAAA;;MCZY,qBAAqB,CAAA;IAChC,WACU,CAAA,EAAe,EACf,QAAyB,EAAA;QADzB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;;AAOnC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAE1B;AACmD;AACnD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAC;;QAGxB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAW;AACxB,YAAA,MAAM,CAAC,OAAO;AACd,YAAA,MAAM,CAAC,cAAc;AACrB,YAAA,MAAM,CAAC,SAAS;AAChB,YAAA,MAAM,CAAC,gBAAgB;AACvB,YAAA,MAAM,CAAC,OAAO;AACd,YAAA,MAAM,CAAC,KAAK;AACZ,YAAA,MAAM,CAAC,MAAM;AACb,YAAA,MAAM,CAAC,MAAM;AACd,SAAA,CAAC,CAAC;;QAGH,IAAG,CAAA,GAAA,GAAG,KAAK,EAAO,CAAC;;AAGnB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGlC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;;AAG9B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;;AAG1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;;AAGrC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;;QAM/C,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;;QAGnB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAElB;;;;AAIG;AACH,QAAA,IAAA,CAAA,SAAS,GAA6B;YACpC,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1G,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACjH,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9G,IAAI,sBAAsB,CACxB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACzC,CAAC,EACD,EAAE,CACH;SACF,CAAC;AAjEA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;AAwED,IAAA,WAAW,CAAC,OAAmF,EAAA;AAC7F,QAAA,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AACpD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;KACF;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,sBAAsB,EAAE,WAAW,EAAE,CAAC;KAC5C;;IAGD,MAAM,GAAA;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;IAGD,SAAS,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;AAGD,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,KAAK,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,KAAK,CAAC;AAC/D,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACrD;;IAGD,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;IAGD,IAAI,GAAA;AACF;;;AAGG;QACH,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;KACF;;IAGD,YAAY,GAAA;QACV,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;aACrC;AACH,SAAC,CAAC,CAAC;KACJ;;IAGD,cAAc,GAAA;AACZ;;;;;;;AAOG;AACH,QAAA,QACE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAChB,CAAC,IAAI,CAAC,aAAa;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;gBACzB,QACE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oBACnC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAC7B;AACJ,aAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EACb;KACH;;IAGO,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,GAAG,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACvF,YAAA,KAAK,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC1B,YAAA,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;AAGhD,YAAA,IAAI,aAAa,KAAK,KAAK,EAAE;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aACtE;AACH,SAAC,CAAC,CAAC;KACJ;;IAGO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACjD;;IAGO,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtB,YAAA,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;SAC7B,CAAC;KACH;;IAGO,uBAAuB,GAAA;AAC7B;;AAEG;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;KACF;;AAGO,IAAA,aAAa,CAAC,OAAe,EAAA;QACnC,IAAI,aAAa,GAAG,OAAO,CAAC;;AAG5B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;SAC5D;;AAGD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;SAC7C;;AAGD,QAAA,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACjC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACrD;;AAGD,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAChC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;SACvD;AAED,QAAA,OAAO,aAAa,CAAC;KACtB;;AAGO,IAAA,WAAW,CAAC,OAAe,EAAA;AACjC,QAAA,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACrC;;AAGD,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,OAAO,CAAA,YAAA,EAAe,KAAK,CAAA,CAAA,CAAG,CAAC;KAChC;8GAnPU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,CAAA,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,gnCCxBlC,8iEAsDA,EAAA,MAAA,EAAA,CAAA,23gPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD9Ba,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,8iEAAA,EAAA,MAAA,EAAA,CAAA,23gPAAA,CAAA,EAAA,CAAA;8GA6ChB,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAGG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBA6BgB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;ME1EV,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAlB,kBAAkB,EAAA,YAAA,EAAA,CAZd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAElC,YAAY;YACZ,eAAe;YACf,aAAa;YACb,mBAAmB;YACnB,aAAa;YACb,eAAe;AACf,YAAA,aAAa,aAEL,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAV3B,YAAY;YACZ,eAAe;YACf,aAAa;YACb,mBAAmB;YACnB,aAAa;YACb,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKN,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,mBAAmB;wBACnB,aAAa;wBACb,eAAe;wBACf,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCVY,gBAAgB,CAAA;AAL7B,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAM,CAAA,MAAA,GAAoB,CAAC,CAAC;AAErC;;AAEG;QACM,IAAK,CAAA,KAAA,GAAsC,OAAO,CAAC;;AAMpD,QAAA,IAAA,CAAA,MAAM,GAAG;AACf,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,SAAS,EAAE,mBAAmB;AAC9B,YAAA,KAAK,EAAE,eAAe;SACvB,CAAC;AAcH,KAAA;;IAXC,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;IAGO,eAAe,GAAA;QACrB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,MAAM,CAAI,EAAA,CAAA;AAC1B,YAAA,kBAAkB,EAAE,CAAO,IAAA,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAG,CAAA,CAAA;SAC9E,CAAC;KACH;8GAhCU,gBAAgB,EAAA,IAAA,EAAA,EAAA,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,iGCZ7B,yDACA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDWa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,yDAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;8BAQd,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEXK,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAFZ,YAAA,EAAA,CAAA,gBAAgB,CAFrB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,YAAY,EAAE,CAAC,gBAAgB,CAAC;AACjC,iBAAA,CAAA;;;MCPY,UAAU,CAAA;AACrB,IAAA,WAAA,CAAoB,UAAuB,EAAA;QAAvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;KAAI;AAE/C,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,OAAO,GAAA;QACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAA,SAAA,oCAA8B,CAAC;KACnE;IAED,OAAO,GAAA;QACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAA,SAAA,oCAA8B,CAAC;KACnE;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,wDAAmC,CAAC;KACvE;IAED,aAAa,GAAA;QACX,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAC5C;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACvC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,wDAAmC,CAAC;KAC9D;IAED,KAAK,GAAA;QACH,MAAM,KAAK,GAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;AAEnE,QAAA,KAAK,CAAC,SAAS,CAAC,GAAG,sEAA0C,CAAC;QAE9D,MAAM,UAAU,GAAY,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;AAE7D;;AAEG;QACH,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAE9C;;AAEG;AACH,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;YACzB,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,MAAM;AACf,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KACd;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,wDAAmC,CAAC;KAC3D;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,wDAAmC,CAAC;KAC3D;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,wDAAmC,CAAC;QAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,oDAAiC,CAAC;KACzD;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,oDAAiC,CAAC;KAC5D;AACF;;MCzEY,kBAAkB,CAAA;AAM7B,IAAA,WAAA,CACE,OAAmB,EACnB,SAAsB,EACtB,KAAgB,EACR,QAAmB,EAAA;QAAnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QARZ,IAAS,CAAA,SAAA,GAA6B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAE9D,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAQzC,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AAElC;;AAEG;QACH,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;AAEhE;;;AAGG;QACH,IAAI,CAAC,SAAS,GAAG;AACf,YAAA,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI;AAClC,YAAA,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG;SAClC,CAAC;AAEF,QAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAEvC;;AAEG;AACH,QAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAW;YACrF,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;AAEH;;AAEG;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAEzB,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAClC,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;KACF;AAED,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,cAAc,GAAA;AACpB;;AAEG;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;KACxE;AAEO,IAAA,0BAA0B,CAAC,KAAgB,EAAA;QACjD,MAAM,WAAW,GAAqB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpE,QAAA,WAAW,CAAC,GAAG,GAAG,oFAAoF,CAAC;AAEvG,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,MAAM,EAAE,GAAG;AACZ,SAAA,CAAC,CAAC;AAEH;;AAEG;QACH,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACrD;AACF;;MCtEY,2BAA2B,CAAA;;AAmCtC,IAAA,WAAA,CAAoB,QAAmB,EAAA;QAAnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;;QAnB9B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;;AAGnB,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,OAAO,EAAQ,CAAC;;QAG9C,IAAc,CAAA,cAAA,GAAsB,IAAI,CAAC;;QAEzC,IAAkB,CAAA,kBAAA,GAA8B,IAAI,CAAC;;AAIrD,QAAA,IAAA,CAAA,oBAAoB,GAAuD,IAAI,GAAG,EAAE,CAAC;;AAErF,QAAA,IAAA,CAAA,aAAa,GAAkB,IAAI,OAAO,EAAE,CAAC;QAE7C,IAAkB,CAAA,kBAAA,GAAsB,IAAI,CAAC;;AA2CrD,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAgB,KAAU;AACvC;;AAEG;AACH,YAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAE5G;;AAEG;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAE7C;;AAEG;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAC9C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,aAAa,EAAE,aAAa,EACjC,KAAK,EACL,IAAI,CAAC,QAAQ,CACd,CAAC;AAEF;;AAEG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;AAEhC;;AAEG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;AAClC,SAAC,CAAC;;QAGF,IAAS,CAAA,SAAA,GAAG,MAAW;AACrB;;AAEG;AACH,YAAA,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC;AAEpC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE3B;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,+BAA+B,EAAE;gBACxC,IAAI,CAAC,+BAA+B,EAAE,CAAC;aACxC;AAED;;AAEG;AACH,YAAA,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACjC,SAAC,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,KAAgB,KAAU;AACtC;;AAEG;YACH,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB;;AAEG;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,KAAK,CAAC,aAAa,EAAE;gBAChF,OAAO;aACR;AAED;;AAEG;YACH,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEjD;;AAEG;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACpD,OAAO;aACR;AAED,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAEtC;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;aACvC;iBAAM;AACL,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;aACrC;AACH,SAAC,CAAC;;AAGF,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,KAAgB,KAAU;AAClC;;AAEG;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO;YAE5B,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,MAAM,MAAM,GAAe,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAElD;;AAEG;AACH,YAAA,MAAM,eAAe,GAAY,MAAM,CAAC,aAAa,EAAE,CAAC;YAExD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;AAEpC;;AAEG;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,eAAe,EAAE;gBAC9E,OAAO;aACR;YAED,MAAM,WAAW,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACtE,MAAM,WAAW,GAAW,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;AAKG;AACH,YAAA,IAAI,WAAW,GAAG,WAAW,EAAE;AAC7B,gBAAA,MAAM,WAAW,GAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzD;;;;AAIG;AACH,gBAAA,KAAK,IAAI,CAAC,GAAW,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;AAC3D,oBAAA,MAAM,MAAM,GAAgB,WAAW,CAAC,CAAC,CAAC,CAAC;oBAE3C,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;qBACxC;iBACF;aACF;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aAC5C;AAED;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CACf;AACE,oBAAA,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACjD,EACD;AACE,oBAAA,MAAM,EAAE,WAAW;AACnB,oBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACpC,iBAAA,CACF,CAAC;aACH;AACH,SAAC,CAAC;;AAGF,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAiB,KAAU;YACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,SAAC,CAAC;;AAoCM,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,KAAgB,KAAU;AAClD,YAAA,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7C,SAAC,CAAC;KAzPyC;;IAG3C,QAAQ,GAAA;AACN;;;AAGG;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAW;YACpE,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;KACJ;;IAGD,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;IAGD,WAAW,GAAA;QACT,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;;AAGD,IAAA,eAAe,CAAC,KAAgB,EAAA;AAC9B;;AAEG;AACH,QAAA,IACE,KAAK,CAAC,aAAa,YAAY,WAAW;AAC1C,YAAA,IAAI,CAAC,kBAAkB;AACvB,YAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAC1D;YACA,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;KACF;;IAiLO,0BAA0B,GAAA;AAChC;;AAEG;AACH,QAAA,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAChC;;AAGO,IAAA,UAAU,CAAC,OAAmB,EAAA;AACpC;;AAEG;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YACtB,OAAO,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;SACR;AAED;;AAEG;AACH,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE;gBACvD,OAAO,CAAC,aAAa,EAAE,CAAC;aACzB;iBAAM;gBACL,OAAO,CAAC,eAAe,EAAE,CAAC;aAC3B;YACD,OAAO;SACR;QACD,OAAO,CAAC,aAAa,EAAE,CAAC;KACzB;;IAQO,OAAO,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,kBAAkB;AAAE,YAAA,OAAO,KAAK,CAAC;AAEnE;;;AAGG;QACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE;AACtC,YAAA,OAAO,KAAK,CAAC;SACd;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAC9C,CAAC;SACH;AAED,QAAA,OAAO,IAAI,CAAC;KACb;;IAGO,eAAe,GAAA;AACrB;;AAEG;QACH,IAAI,CAAC,6BAA6B,EAAE,CAAC;AAErC;;AAEG;AACH,QAAA,QAAQ,CAAC,gBAAgB,CAAC,GAAG,GAA2C,qBAAA,gDAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YAC5F,OAAO,CAAC,MAAM,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;AAEH;;AAEG;AACH,QAAA,MAAM,QAAQ,GAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtD;;AAEG;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;YACzC,OAAO;SACR;AAED;;;AAGG;AACH,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAoB,KAAU;YAC9C,MAAM,SAAS,GAAqC,EAAE,CAAC;AAEvD,YAAA,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACtF,YAAA,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAChF,YAAA,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACnF,YAAA,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,YAAA,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACpD,SAAC,CAAC,CAAC;KACJ;;IAGO,6BAA6B,GAAA;QACnC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;AAC/C,YAAA,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;KACvC;;IAGO,cAAc,GAAA;QACpB,MAAM,MAAM,GAAkB,EAAE,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB;;AAEG;AACa,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,CAAC,OAAoB,KAAU;AAC5G;;AAEG;AACH,gBAAA,MAAM,QAAQ,GACZ,OAAO,CAAC,SAAS,CAAC,QAAQ,CAA8B,SAAA,oCAAA;AACxD,oBAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,8CAA8B,CAAC;AAE3D;;AAEG;gBACH,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAA0C,qBAAA,gDAAA,EAAE;AACtF,oBAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACtB;AACH,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,MAAM,CAAC;KACf;;AAGO,IAAA,UAAU,CAAC,KAA6B,EAAA;AAC9C,QAAA,OAAO,IAAI,UAAU,CAAc,KAAK,CAAC,aAAa,CAAC,CAAC;KACzD;;AAGO,IAAA,eAAe,CAAC,OAAmB,EAAA;QACzC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACnD;;AAGO,IAAA,kBAAkB,CAAC,OAA0B,EAAA;QACnD,OAAO,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CAAC;KAClD;8GA/YU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,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,EAEF,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,EAET,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,2CCpBjD,8HAGA,EAAA,MAAA,EAAA,CAAA,wZAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDaa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,8HAAA,EAAA,MAAA,EAAA,CAAA,wZAAA,CAAA,EAAA,CAAA;8EAM8B,aAAa,EAAA,CAAA;sBAA5E,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEG,cAAc,EAAA,CAAA;sBAA9E,SAAS;uBAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGtD,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;ME1BK,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAFpB,YAAA,EAAA,CAAA,2BAA2B,CAFhC,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;ICYW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,SAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,aAA+B,CAAA;AAC/B,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe,CAAA;AACjB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;;MCFY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CACU,GAAsB,EACtB,QAAyB,EACzB,QAAkB,EAClB,SAAuB,EAAA;QAHvB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;;QAOxB,IAAO,CAAA,OAAA,GAAG,oDAAoD,CAAC;;QAG/D,IAAO,CAAA,OAAA,GAAG,yBAAyB,CAAC;;AAGpC,QAAA,IAAA,CAAA,MAAM,GAAoB;AACjC,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,OAAO,EAAE,+BAA+B;SACzC,CAAC;;QAMF,IAAQ,CAAA,QAAA,GAA4B,gBAAgB,CAAC;;AAnBnD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;KACzF;;AA8BD,IAAA,WAAW,CAAC,OAAiC,EAAA;QAC3C,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;;IAGD,eAAe,GAAA;AACb;AACuD;AACvD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;;IAG8B,MAAM,GAAA;;KAEpC;;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;;IAGD,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,EAAE,CAAC;AAE5D;;;;;AAKG;QACH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI;YACpE,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI;AACtE,YAAA,KAAK,EACH,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW;AAC3F,kBAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW;AAC/F,kBAAE,CAAC;SACR,CAAC;KACH;;IAGO,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACpB,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAS,MAAA,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAa,WAAA,CAAA,CAAC,CAAC;aACtD;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAS,GAAG,CAAC,CAAC;SACtE;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;KACF;8GAhGU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,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,qfCtBlC,+7DAsCA,EAAA,MAAA,EAAA,CAAA,ownPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,+7DAAA,EAAA,MAAA,EAAA,CAAA,ownPAAA,CAAA,EAAA,CAAA;wKAgBjB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAY4B,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;gBAGR,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBAGE,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBAiBS,MAAM,EAAA,CAAA;sBAApC,YAAY;uBAAC,eAAe,CAAA;;;MErElB,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,2DAF1B,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACb,iBAAA,CAAA;;;MCIY,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAHlB,YAAA,EAAA,CAAA,yBAAyB,CAD9B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJvB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;ACDD;;;AAGG;MAMU,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAlB,kBAAkB,EAAA,YAAA,EAAA,CAJd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACnE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGlE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,CAAC;oBAC9E,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCPY,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC;AAEtB;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAc;YAC9B,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAsD,oDAAA,CAAA;SAC/F,CAAC;AAEF;;AAEG;QACM,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAM7B,KAAA;8GAtBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,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,sICR/B,0vBA0BA,EAAA,MAAA,EAAA,CAAA,0gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,0vBAAA,EAAA,MAAA,EAAA,CAAA,0gBAAA,CAAA,EAAA,CAAA;8BAQb,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEpBK,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFX,YAAA,EAAA,CAAA,kBAAkB,CAFvB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJhB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;AACnC,iBAAA,CAAA;;;MCDY,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,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,4DCPxC,oDAGA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,CAAA;;;MEIrB,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CAFpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CADhC,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAG1B,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;MCCY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,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,kDCP/B,qQASA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,qQAAA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA,CAAA;;;MEIX,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CAFX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CADvB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGjB,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;AACnC,iBAAA,CAAA;;;MCCY,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC3B,KAAA;8GALY,2BAA2B,EAAA,IAAA,EAAA,EAAA,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,8FCPxC,gFAGA,EAAA,MAAA,EAAA,CAAA,2LAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,gFAAA,EAAA,MAAA,EAAA,CAAA,2LAAA,CAAA,EAAA,CAAA;8BAQvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEHK,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CAFpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CADhC,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAG1B,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;MCAY,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;AAWE;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC3B,KAAA;8GAVY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,4GCPvC,0EACA,EAAA,MAAA,EAAA,CAAA,kHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDMa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,0EAAA,EAAA,MAAA,EAAA,CAAA,kHAAA,CAAA,EAAA,CAAA;8BAQvB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MENK,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAFnB,YAAA,EAAA,CAAA,0BAA0B,CAF/B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAJxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,YAAY,EAAE,CAAC,0BAA0B,CAAC;AAC3C,iBAAA,CAAA;;;MCFY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;;AAGvB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,KAAA;8GANY,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,mTCPnC,oLAIA,EAAA,MAAA,EAAA,CAAA,+hCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDGa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,oLAAA,EAAA,MAAA,EAAA,CAAA,+hCAAA,CAAA,EAAA,CAAA;;;MEQhB,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAE3B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAD5C,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAFpB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE3C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC;AACxD,iBAAA,CAAA;;;MCHY,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAME,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEjB;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;AAEjC;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAiBrC,KAAA;;IAbC,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;IAGO,eAAe,GAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;KACzD;8GA3BU,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,sZCPpC,k1GAsBA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,k1GAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,CAAA;8BAmB5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEZ9B,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAFhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAF5B,YAAY,EAAE,gBAAgB,aAC9B,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJrB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,OAAO,EAAE,CAAC,uBAAuB,CAAC;oBAClC,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACxC,iBAAA,CAAA;;;ICNW,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA,CAAA;MAOY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;;QAOqB,IAAe,CAAA,eAAA,GAAG,kBAAkB,CAAC;AAExD;;AAEG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,OAAO,CAAC,CAAC;AAEzC;;AAEG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAA;8GAbY,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,gTCZnC,8wtBAqDA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDzCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,8wtBAAA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,CAAA;;;MEChB,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAFf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAF3B,YAAY,EAAE,gBAAgB,aAC9B,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAJpB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACvC,iBAAA,CAAA;;;MCCY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAc7C;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;AAEtE;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAEtE;;AAEG;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;;QAGnE,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;AA7B1B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC;KACxF;;AA+BD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IACE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY;aACvD,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EACvD;AACA,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACvC;KACF;;AAGM,IAAA,UAAU,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;IAGM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;;IAGM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;;IAGO,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;YACxB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3D;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBAC3C,OAAO;oBACL,CAAC;AACD,oBAAA,CAAC,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,oBAAA,IAAI,CAAC,UAAU;iBAChB,CAAC;aACH;iBAAM;AACL,gBAAA,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aACnG;SACF;AAED,QAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7C;8GAjFU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,oPCTnC,u+CA8CA,EAAA,MAAA,EAAA,CAAA,67BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDrCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,u+CAAA,EAAA,MAAA,EAAA,CAAA,67BAAA,CAAA,EAAA,CAAA;oFAYjB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;ME3BI,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAHf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAD3B,YAAY,EAAE,aAAa,aAE3B,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAErB,mBAAmB,EAAA,OAAA,EAAA,CAJpB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI1B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCFY,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,gECP5C,6EAGA,EAAA,MAAA,EAAA,CAAA,iFAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,6EAAA,EAAA,MAAA,EAAA,CAAA,iFAAA,CAAA,EAAA,CAAA;;;MEKzB,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA5B,4BAA4B,EAAA,YAAA,EAAA,CAHxB,+BAA+B,CAAA,EAAA,OAAA,EAAA,CACpC,+BAA+B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAE9B,4BAA4B,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC3C,iBAAA,CAAA;;;MCIY,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAS7C;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAO1B;;AAEG;QACM,IAAG,CAAA,GAAA,GAAG,GAAG,CAAC;AAEnB;;AAEG;QACM,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;;QAWZ,IAAK,CAAA,KAAA,GAAU,SAAS,CAAC;AArC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;KAC/C;AA2BD;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;KAChD;;AASD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CACV,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,+CAAA,EAAkD,IAAI,CAAC,GAAG,CAAA,6CAAA,CAA+C,CAC1I,CAAC;SACH;QAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SACpE;AAED,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjE;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1C;KACF;;AAGO,IAAA,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,QAAiB,EAAA;AAC5D,QAAA,OAAO,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC;KACnE;;AAGO,IAAA,QAAQ,CAAC,GAAW,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAoC,iCAAA,EAAA,GAAG,EAAE,CAAC;KACpE;;IAGO,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAA;QAClD,OAAO,CAAA,KAAA,EAAQ,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,CAAA,UAAA,CAAY,CAAC;KAChD;8GA/EU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,6KCXpC,meAcA,EAAA,MAAA,EAAA,CAAA,u/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,meAAA,EAAA,MAAA,EAAA,CAAA,u/CAAA,CAAA,EAAA,CAAA;oFAYnB,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ME7BK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAHhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAD5B,YAAY,EAAE,aAAa,aAE3B,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEtB,oBAAoB,EAAA,OAAA,EAAA,CAJrB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;ICNW,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;MAOY,2BAA2B,CAAA;IAuBtC,WACY,CAAA,GAAe,EACjB,GAAsB,EAAA;QADpB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QACjB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;QAvBvB,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;;QAGX,IAAe,CAAA,eAAA,GAAkC,MAAM,CAAC;;AAGxD,QAAA,IAAA,CAAA,IAAI,GAAgB,WAAW,CAAC,MAAM,CAAC;QAKhD,IAAgB,CAAA,gBAAA,GAAG,GAAG,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAGA,QAAA,IAAA,CAAA,KAAK,GAAG;AACvB,YAAA,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;AACxB,YAAA,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE;AACvB,YAAA,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG;SAC1B,CAAC;KAKE;;IAGJ,QAAQ,GAAA;AACN,QAAA,IAAI,eAAe,GAA2C,IAAI,CAAC,eAAe,CAAC;AAEnF,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE;YAClC,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACzE;AAED;;AAEG;AACH,QAAA,IAAI,eAAe,YAAY,WAAW,EAAE;AAC1C,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;SACzD;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C;KACF;;IAGD,gBAAgB,GAAA;AACd,QAAA,MAAM,SAAS,GAAgB,IAAI,CAAC,eAAe,CAAC;AAEpD,QAAA,MAAM,cAAc,GAAuB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;AAErE;;AAEG;QACH,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG,IAAI;AACrC,YAAA,KAAK,EAAE,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI;AACzC,YAAA,GAAG,EAAE,cAAc,CAAC,UAAU,GAAG,GAAG,GAAG,cAAc,CAAC,UAAU,GAAG,CAAC;AACpE,YAAA,IAAI,EAAE,cAAc,CAAC,WAAW,GAAG,GAAG,GAAG,cAAc,CAAC,WAAW,GAAG,CAAC;SACxE,CAAC;KACH;AAED;;;;AAIG;IAC4B,MAAM,GAAA;AACnC;;AAEG;AACH,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;8GAhFU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,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,wNCdxC,obAWA,EAAA,MAAA,EAAA,CAAA,qXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDGa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,obAAA,EAAA,MAAA,EAAA,CAAA,qXAAA,CAAA,EAAA,CAAA;+GAMvB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAgEyB,MAAM,EAAA,CAAA;sBAApC,YAAY;uBAAC,eAAe,CAAA;;;ME5ElB,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CALpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAChC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACvE,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,aAFxB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,YAFxC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAItE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,CAAC;oBAClF,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACnD,iBAAA,CAAA;;;ACZD,IAAY,+BAKX,CAAA;AALD,CAAA,UAAY,+BAA+B,EAAA;AACzC,IAAA,+BAAA,CAAA,+BAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACb,IAAA,+BAAA,CAAA,+BAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAY,CAAA;AACZ,IAAA,+BAAA,CAAA,+BAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACb,IAAA,+BAAA,CAAA,+BAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAQ,CAAA;AACV,CAAC,EALW,+BAA+B,KAA/B,+BAA+B,GAK1C,EAAA,CAAA,CAAA;;MCGY,oCAAoC,CAAA;AALjD,IAAA,WAAA,GAAA;;AAOW,QAAA,IAAA,CAAA,QAAQ,GAAW,+BAA+B,CAAC,QAAQ,CAAC;;AAG5D,QAAA,IAAA,CAAA,GAAG,GAAW,+BAA+B,CAAC,GAAG,CAAC;;QAGlD,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;;AAGT,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU,CAAC;;QAGzD,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;;QAGN,IAAQ,CAAA,QAAA,GAA2C,+BAA+B,CAAC;AAuD7F,KAAA;;AApDC,IAAA,WAAW,CAAC,OAA2E,EAAA;AACrF,QAAA,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;AAED,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;AAED,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;;IAGO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;SACd;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;IAGO,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;SACvB;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;IAGO,mBAAmB,GAAA;AACzB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhE,QAAA,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9C;KACF;;IAGO,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;KACF;8GAvEU,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,8MCRjD,qlCA4BA,EAAA,MAAA,EAAA,CAAA,2wgPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDpBa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,qlCAAA,EAAA,MAAA,EAAA,CAAA,2wgPAAA,CAAA,EAAA,CAAA;8BAMjC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;METI,iCAAiC,CAAA;8GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,iBAJ7B,oCAAoC,CAAA,EAAA,OAAA,EAAA,CACzC,YAAY,EAAE,wBAAwB,aACtC,oCAAoC,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEnC,iCAAiC,EAAA,OAAA,EAAA,CAHlC,YAAY,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGrC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oCAAoC,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,wBAAwB,CAAC;oBACjD,OAAO,EAAE,CAAC,oCAAoC,CAAC;AAChD,iBAAA,CAAA;;;MCFY,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAE7B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC3B,KAAA;8GAVY,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,sHCPjC,k2BAwBA,EAAA,MAAA,EAAA,CAAA,4VAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDjBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,k2BAAA,EAAA,MAAA,EAAA,CAAA,4VAAA,CAAA,EAAA,CAAA;8BAQnB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEPK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAJhB,YAAA,EAAA,CAAA,oBAAoB,CAEzB,EAAA,OAAA,EAAA,CAAA,YAAY,aADZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAFrB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;MCDY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAeW,IAAI,CAAA,IAAA,GAAG,aAAa,CAAC;AAC/B,KAAA;8GAXY,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,mHCPnC,oHAIA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDGa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,oHAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,CAAA;8BAQlB,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MERK,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHf,YAAA,EAAA,CAAA,sBAAsB,CAD3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAJpB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCIY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;;AAK7C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;;AAGjC,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;;AAG9B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;;QAG/B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAU,CAAC;;QAG1B,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAO,CAAC;;AAiBjB,QAAA,IAAA,CAAA,kBAAkB,GAAG;AAC3B,YAAA,MAAM,CAAC,KAAK;AACZ,YAAA,MAAM,CAAC,OAAO;AACd,YAAA,MAAM,CAAC,OAAO;AACd,YAAA,MAAM,CAAC,KAAK;AACZ,YAAA,MAAM,CAAC,QAAQ;AACf,YAAA,MAAM,CAAC,QAAQ;SAChB,CAAC;AA3CA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KACtC;;IAqBD,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KAC7B;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACb,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,SAAA,CAAC,CAAC;KACJ;;IAcD,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACvD;;IAGD,kBAAkB,GAAA;AAChB,QAAA,OAAO,eAAe,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;KACvC;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,OAAO,CAAe,YAAA,EAAA,MAAM,CAAC,IAAI,GAAG,CAAC;SACtC;AACD,QAAA,OAAO,CAAe,YAAA,EAAA,MAAM,CAAC,KAAK,GAAG,CAAC;KACvC;8GAhEU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,0kBCZ5B,oaAmBA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDPa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oaAAA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,CAAA;;;MEApC,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAJR,eAAe,CAAA,EAAA,OAAA,EAAA,CACpB,YAAY,EAAE,aAAa,aAC3B,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEd,YAAY,EAAA,OAAA,EAAA,CAHb,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1B,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCFY,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,yDCPrC,sEAGA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,CAAA;;;MEMlB,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAJjB,YAAA,EAAA,CAAA,wBAAwB,CAC7B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAHtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA,CAAA;;;MCKqB,qBAAqB,CAAA;;IAEzC,IAAa,OAAO,CAAC,OAA+B,EAAA;AAClD;;;;AAIG;AACH,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;SAC7B;aAAM;AACL,YAAA,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;SACzD;KACF;;AA8BD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC5D;AAiBD,IAAA,WAAA,GAAA;;AA9CA,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,WAAW,EAAE,CAAC;;QAGvC,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;QAG5B,IAAa,CAAA,aAAA,GAA+B,EAAE,CAAC;;QAS/C,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;;QAMR,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;AAGjB,QAAA,IAAA,CAAA,QAAQ,GAAoB,MAAM,CAAC,eAAe,CAAC,CAAC;;QAQrD,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;;AAGxB,QAAA,IAAA,CAAA,YAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;;QAG7B,IAAY,CAAA,YAAA,GAAW,sBAAsB,CAAC;;QAG5C,IAAoB,CAAA,oBAAA,GAA+B,EAAE,CAAC;;QAGxD,IAAoB,CAAA,oBAAA,GAAW,oCAAoC,CAAC;AAGnF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,cAAc;YACd,cAAc;YACd,wBAAwB;YACxB,oBAAoB;YACpB,wBAAwB;AACzB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,OAA8C,EAAA;AACxD,QAAA,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAE;YAC/E,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;;IAGD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;;AAGD,IAAA,iBAAiB,CAAC,OAAA,GAAuB,IAAI,CAAC,YAAY,EAAA;QACxD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;AAE9C;;AAEG;AACH,QAAA,MAAM,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;;;AAGG;AACH,QAAA,MAAM,aAAa,GAA+B;YAChD,GAAG,IAAI,CAAC,oBAAoB;AAC5B,YAAA,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;YAC1C,GAAG,IAAI,CAAC,aAAa;SACtB,CAAC;QAEF,IAAI,OAAO,aAAa,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;AACpD,YAAA,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;SACrC;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,4BAA4B,aAAa,CAAA,CAAE,CAAC,CAAC;AAC1D,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAK,EAAA,EAAA,aAAa,GAAG,CAAC;SAClD;KACF;;AAGS,IAAA,YAAY,CAAC,OAAoB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACzE;KACF;;IAGS,SAAS,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC/D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;SAC3F;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;SACtC;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;AAC/B;;;AAGG;AACH,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC9D,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aAC1D;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SACvC;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;SACrC;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACzD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SAClE;KACF;;IAGD,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAC9F;;IAGD,cAAc,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;KACxF;8GA1JmB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAD1C,SAAS;wDAGK,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAiBG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAWG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ACvDF,MAAgB,sBAAuB,SAAQ,qBAAqB,CAAA;AAD1E,IAAA,WAAA,GAAA;;QAEW,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;;QAG/B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;QAMxB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;QAGjB,IAAI,CAAA,IAAA,GAAc,MAAM,CAAC;AA4BnC,KAAA;;AAzBC,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;KAC9F;;AAGD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KAC1D;;AAGD,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEjC,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;AAElC;;AAEG;QACH,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;;AAGD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;KAC3B;8GAxCmB,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;8BAEC,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;ACJF,MAAgB,yBAA0B,SAAQ,sBAAsB,CAAA;AAD9E,IAAA,WAAA,GAAA;;;QAMW,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;;QAGnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;AAGrB,QAAA,IAAA,CAAA,gBAAgB,GAAsC,IAAI,GAAG,EAAE,CAAC;;QAMpD,IAAqB,CAAA,qBAAA,GAAW,SAAS,CAAC;;QAG1C,IAAuB,CAAA,uBAAA,GAAW,+CAA+C,CAAC;;AAQrG,QAAA,IAAA,CAAA,YAAY,GAAG,CACb,CAAkD,EAClD,CAGC,MACW,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAgFtE,KAAA;;IA3FC,WAAW,GAAA;QACT,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;AAYS,IAAA,cAAc,CAAC,OAAkC,EAAA;AACzD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;AAED;;;;AAIG;AACH,QAAA,IAAI,OAAO,YAAY,KAAK,EAAE;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChG;AAAM,aAAA,IAAI,OAAO,YAAY,GAAG,EAAE;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClG;aAAM;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACtE;SACF;KACF;;IAGS,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;KACzC;;IAGS,iBAAiB,CACzB,MAA+B,EAC/B,eAAA,GAAsC,IAAI,CAAC,eAAe,EAC1D,cAAwC,EAAA;QAExC,IAAI,CAAC,cAAc,EAAE;YACnB,cAAc,GAAG,MAAM,CAAC;SACzB;QAED,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC3C,YAAA,OAAO,EAAE,CAAC;SACX;AAAM,aAAA,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACpC,YAAA,OAAO,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE;AAClE,YAAA,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC1B;aAAM,IAAI,eAAe,EAAE;AAC1B;;AAEG;YACH,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEzC;;AAEG;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AAEtC;;;AAGG;AACH,YAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;AAC7D,gBAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;aACtD;AAED;;AAEG;AACH,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;SACnF;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;SACtD;KACF;;AAGS,IAAA,wBAAwB,CAAC,MAA+B,EAAA;QAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;8GAjHmB,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C,SAAS;8BAGC,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MCCK,wBAAwB,CAAA;AAKnC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAJ7C,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AAEnC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;QAGhC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAC9C;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;KAC1C;8GAXU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAjBzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;KAOP,EAQO,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,6JAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAExB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAnBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;;;;AAOP,IAAA,CAAA,EAAA,UAAA,EAOS,IAAI,EACP,OAAA,EAAA,CAAC,aAAa,EAAE,UAAU,CAAC,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA;;;MCJzB,iBAAiB,CAAA;AAb9B,IAAA,WAAA,GAAA;;AAeE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AAClC,KAAA;8GAHY,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,wMClB9B,2OAMA,EAAA,MAAA,EAAA,CAAA,sNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIY,QAAQ,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EACrB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;AACnB,gBAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9D,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;aAC1G,CAAC;AACH,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;+BACE,WAAW,EAAA,UAAA,EAGT,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,EAAE,aAAa,CAAC,EACtB,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;AACnB,4BAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;4BAC9D,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;yBAC1G,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,2OAAA,EAAA,MAAA,EAAA,CAAA,sNAAA,CAAA,EAAA,CAAA;;;MEIU,gBAAgB,CAAA;AAd7B,IAAA,WAAA,GAAA;AAeE,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAe,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;QAEhC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAOf,KAAA;IALC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;KACF;8GAVU,gBAAgB,EAAA,IAAA,EAAA,EAAA,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,EAZjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sDAAA,CAAwD,EAGxD,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACL,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;AACnB,gBAAA,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,gBAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9D,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAC1G,CAAC;AACH,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;+BACE,UAAU,EAAA,QAAA,EACV,CAAwD,sDAAA,CAAA,EAAA,UAAA,EAEtD,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,IAAI,CAAC,EACZ,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;AACnB,4BAAA,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,4BAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;4BAC9D,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;yBAC1G,CAAC;AACH,qBAAA,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,CAAA;;;MCAU,mBAAmB,CAAA;AAbhC,IAAA,WAAA,GAAA;;AAeE,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AACpC,KAAA;8GAHY,mBAAmB,EAAA,IAAA,EAAA,EAAA,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,EClBhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2OAMA,EDIsB,MAAA,EAAA,CAAA,qPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACrB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;AACnB,gBAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9D,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;aAC1G,CAAC;AACH,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;+BACE,aAAa,EAAA,UAAA,EAGX,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,EAAE,aAAa,CAAC,EACtB,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;AACnB,4BAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;4BAC9D,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;yBAC1G,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,2OAAA,EAAA,MAAA,EAAA,CAAA,qPAAA,CAAA,EAAA,CAAA;;;AEPG,MAAO,oBAAqB,SAAQ,qBAAqB,CAAA;AAL/D,IAAA,WAAA,GAAA;;;QAOW,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAEtB,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;AAsBhC,KAAA;;AAnBC,IAAA,WAAW,CAAC,OAAsE,EAAA;AAChF,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACtD;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzD;SACF;KACF;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;YAAE,OAAO;AAEvC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACtD;8GAzBU,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,4JCTjC,wtDAkDA,EAAA,MAAA,EAAA,CAAA,m+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDzCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,wtDAAA,EAAA,MAAA,EAAA,CAAA,m+DAAA,CAAA,EAAA,CAAA;8BAMf,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEKF,MAAO,oBAAqB,SAAQ,yBAAyB,CAAA;AA+BjE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;;QA3BD,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;;QAGnC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAGtB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QASrB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;;QAG/B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;QAGpC,IAAqB,CAAA,qBAAA,GAA8B,EAAE,CAAC;;QAGnC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;;AAgI3B,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAA0B,EAAE,CAA0B,KAAY;AAC7F,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,gBAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,oBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;iBACjC;aACF;AAED,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC;AAvIA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;KAC5E;;AAGD,IAAA,WAAW,CAAC,OAAqE,EAAA;AAC/E,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;AAED,IAAA,eAAe,CAAC,MAA+B,EAAA;QAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClC;KACF;;IAGD,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AAEtC,QAAA,IAAI,QAAQ,YAAY,SAAS,EAAE;AACZ,YAAA,QAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC5F;KACF;;IAGS,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAChC;;AAEG;AACH,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEnG,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;;IAGS,2BAA2B,GAAA;AACnC;;;AAGG;AACH,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACpE,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;KACF;;AAGD;;;AAGG;AACO,IAAA,eAAe,CAAC,OAAA,GAAuB,IAAI,CAAC,YAAY,EAAA;AAChE,QAAA,IAAI,CAAC,sCAAsC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5D;;AAGS,IAAA,kBAAkB,CAAC,OAAA,GAAuB,IAAI,CAAC,YAAY,EAAA;QACnE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,mBAAmB,GAAG,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,MAAK;AAC9D,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;KACJ;;AAGS,IAAA,sCAAsC,CAAC,YAAqC,EAAA;AACpF;;AAEG;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO;AAEjD;;AAEG;AACH,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO;AAEpD;;AAEG;QACH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAChD;;;;AAIG;AACH,YAAA,IACE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC1B,YAAY,CAAC,SAAS,CAAqB,YAAY,EAAsB,GAAG,CAAC,EACjF;AACA;;AAEG;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAElC;;AAEG;gBACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAE/C,OAAO;aACR;SACF;KACF;;AAGS,IAAA,wBAAwB,CAAC,MAA+B,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;SACpD;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;;AAiBD,IAAA,QAAQ,CAAC,MAAiB,EAAA;QACxB,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACpH;;AAGD,IAAA,YAAY,CAAC,MAA+B,EAAA;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B;aAAM;AACL,YAAA,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;KAC/C;;AAGD,IAAA,gBAAgB,CAAC,MAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KAC3B;8GAhMU,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,8VClBjC,w5GAkGA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhFa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,w5GAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,CAAA,EAAA,CAAA;wDAMf,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;MEdP,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAPjC,YAAY;YACZ,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,wBAAwB;AACxB,YAAA,mBAAmB,aAGX,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAV1B,YAAY;YACZ,mBAAmB;YAEnB,iBAAiB;YACjB,wBAAwB;YACxB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,gBAAgB;wBAChB,iBAAiB;wBACjB,wBAAwB;wBACxB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCiBY,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAfjC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,cAAc;YACd,aAAa;YACb,wBAAwB;YACxB,OAAO;YACP,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;AACZ,YAAA,iBAAiB,aAGT,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAlB1B,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,cAAc;YACd,aAAa;YACb,wBAAwB;YACxB,OAAO;YACP,iBAAiB;YAEjB,mBAAmB;YACnB,YAAY;YACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,wBAAwB;wBACxB,OAAO;wBACP,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;wBACnB,YAAY;wBACZ,iBAAiB;AAClB,qBAAA;oBACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;ACtBK,MAAO,+BAAgC,SAAQ,oBAAoB,CAAA;AATzE,IAAA,WAAA,GAAA;;;QAWS,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAMb,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;;QAGrC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAqC3B,KAAA;;IAlCW,2BAA2B,GAAA;AACnC;;AAEG;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;;AAGD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;KAC/D;;AAGD;;;AAGG;AACO,IAAA,eAAe,CAAC,OAAA,GAAuB,IAAI,CAAC,YAAY,EAAA;AAChE;;AAEG;QACH,IAAI,EAAE,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;AACrC,YAAA,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAErB,OAAO;SACR;AAED;;AAEG;QACH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC9B,YAAA,IAAI,CAAC,sCAAsC,CAAC,KAAK,CAAC,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;8GA/CU,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,4HHd5C,w5GAkGA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,EAAA,+eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FGpFa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAT3C,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,w5GAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,EAAA,+eAAA,CAAA,EAAA,CAAA;8BAmB5B,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MCYK,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA5B,4BAA4B,EAAA,YAAA,EAAA,CAHxB,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAf5C,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,aAAa;YACb,OAAO;YACP,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,YAAY;AACZ,YAAA,iBAAiB,aAGT,+BAA+B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAlBrC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,aAAa;YACb,OAAO;YACP,mBAAmB;YACnB,iBAAiB;YAEjB,YAAY;YACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKR,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBApBxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,wBAAwB;wBACxB,aAAa;wBACb,OAAO;wBACP,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,YAAY;wBACZ,iBAAiB;AAClB,qBAAA;oBACD,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC3C,iBAAA,CAAA;;;AC3BK,MAAO,iBAAkB,SAAQ,sBAAsB,CAAA;AAL7D,IAAA,WAAA,GAAA;;;QAOW,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;;QAGhB,IAAI,CAAA,IAAA,GAAyE,MAAM,CAAC;;QAGpF,IAAO,CAAA,OAAA,GAAoB,EAAE,CAAC;;QAM9B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAGjB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;QAMjC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;AAGD,QAAA,IAAA,CAAA,oBAAoB,GAA+B;AACpE,YAAA,OAAO,EAAE,uCAAuC;SACjD,CAAC;AAmBH,KAAA;IAjBC,QAAQ,GAAA;AACN;;AAEG;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;gBAClD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;oBACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC/C;AACH,aAAC,CAAC,CAAC;SACJ;KACF;;IAGD,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;8GA9CU,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,sUCT9B,gjEA8DA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,wCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDrDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,gjEAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,wCAAA,CAAA,EAAA,CAAA;8BAMZ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;MEAP,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,CAHV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAX9B,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,wBAAwB;YACxB,aAAa;YACb,mBAAmB;YACnB,iBAAiB;AACjB,YAAA,gBAAgB,aAGR,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAdvB,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,wBAAwB;YACxB,aAAa;YACb,mBAAmB;YACnB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMR,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,wBAAwB;wBACxB,aAAa;wBACb,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;AACjB,qBAAA;oBACD,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;ACpBK,MAAO,oBAAqB,SAAQ,sBAAsB,CAAA;AALhE,IAAA,WAAA,GAAA;;;QAOW,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;QAGjB,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;;QAGT,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAC3B,KAAA;8GATY,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,qJCRjC,m3CA0CA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,0qCAAA,EAAA,wCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,m3CAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,0qCAAA,EAAA,wCAAA,CAAA,EAAA,CAAA;8BAMf,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MEaK,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAXjC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,mBAAmB;YACnB,iBAAiB;AACjB,YAAA,gBAAgB,aAGR,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAd1B,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,mBAAmB;YACnB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;AACjB,qBAAA;oBACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;AChBK,MAAO,yBAA0B,SAAQ,sBAAsB,CAAA;AALrE,IAAA,WAAA,GAAA;;;QAOW,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;;QAGhB,IAAI,CAAA,IAAA,GAAiE,MAAM,CAAC;;QAG5E,IAAO,CAAA,OAAA,GAAoB,EAAE,CAAC;;AAG9B,QAAA,IAAA,CAAA,eAAe,GAAgB,IAAI,WAAW,EAAE,CAAC;;QAGjD,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAMhB,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;;QAGzB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAGnB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAGtB,IAA8B,CAAA,8BAAA,GAAG,KAAK,CAAC;;QASvC,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QAGrB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;QAM3B,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;AA0BhC,KAAA;;AAvBC,IAAA,WAAW,CAAC,OAAqE,EAAA;QAC/E,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,8BAA8B,EAAE;AAC1D,YAAA,aAAa,CAAC,QAAQ,CAAC,MAAK;gBAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE;AACvD;;AAEG;AACH,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAE1E;;AAEG;oBACH,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,KAAK,EAAE;AACxC,wBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACtC;AAED,oBAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;qBAAM;AACL,oBAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;iBACrC;AACH,aAAC,CAAC,CAAC;SACJ;KACF;8GAxEU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4CzB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxDjC,olFA6EA,EAAA,MAAA,EAAA,CAAA,gzBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwB,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,MAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDjEa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,olFAAA,EAAA,MAAA,EAAA,CAAA,gzBAAA,CAAA,EAAA,CAAA;8BAMrB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,8BAA8B,EAAA,CAAA;sBAAtC,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAG2B,iBAAiB,EAAA,CAAA;sBAAjD,SAAS;uBAAC,oBAAoB,CAAA;;;MErBpB,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAtB,sBAAsB,EAAA,YAAA,EAAA,CAHlB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAdtC,YAAY;YACZ,gBAAgB;YAChB,kBAAkB;YAClB,eAAe;YACf,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAjB/B,YAAY;YACZ,gBAAgB;YAChB,kBAAkB;YAClB,eAAe;YACf,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;MC5BY,gCAAgC,CAAA;IAC3C,SAAS,CAAC,WAAmB,EAAE,MAAyC,EAAA;QACtE,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAEhE,YAAA,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAE3E,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,0CAA0C,CAAC,CAAC;SAC5E;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;8GAXU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAhC,gCAAgC,EAAA,IAAA,EAAA,8BAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,8BAA8B;AACrC,iBAAA,CAAA;;MAmBY,sCAAsC,CAAA;8GAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAtC,sCAAsC,EAAA,YAAA,EAAA,CAlBtC,gCAAgC,CAAA,EAAA,OAAA,EAAA,CAAhC,gCAAgC,CAAA,EAAA,CAAA,CAAA,EAAA;+GAkBhC,sCAAsC,EAAA,CAAA,CAAA,EAAA;;2FAAtC,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAJlD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gCAAgC,CAAC;oBAChD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA,CAAA;;;AC2BK,MAAO,0BACX,SAAQ,yBAAyB,CAAA;AAyDjC;;AAEG;;IAGH,IAAa,OAAO,CAAC,OAA+B,EAAA;AAClD,QAAA,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;KACzB;AA2ED,IAAA,WAAA,CACU,GAAsB,EACtB,QAAmB,EACnB,GAAe,EAAA;AAEvB,QAAA,KAAK,EAAE,CAAC;QAJA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;;QA1IzB,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC,QAAQ,EAA6B,WAA0B,EAAC,CAAC;;QAGjF,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;;QAGhB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAMhB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAGtB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QAGrB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;QAGxB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;;QAqB7B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;QAG1B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;;QAGnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;QAGrB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;;QAYzB,IAAa,CAAA,aAAA,GAA+B,EAAE,CAAC;;QAM/C,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;;QAMR,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE1B;;AAEG;;AAGO,QAAA,IAAA,CAAA,oBAAoB,GAAyB,IAAI,YAAY,EAAE,CAAC;;AAqB1E,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;;QAGzB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;;QAe3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;QAGrB,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAC;;AASlC,QAAA,IAAA,CAAA,UAAU,GAAsC,IAAI,GAAG,EAAE,CAAC;;AA0RlE,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAwD,KAAY;YAC/E,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AACpC,SAAC,CAAC;QApRA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;KAC7D;;AAGD,IAAA,WAAW,CAAC,OAAqE,EAAA;AAC/E,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;AACD,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,qBAAqB;YAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,+BAA+B,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,8BAA8B,EAAE,WAAW,EAAE,CAAC;KACpD;;AAGD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;KAC3F;;AAGD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACjF;;AAGD,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,QACE,CAAC,CAAC,IAAI,CAAC,YAAY;AACnB,YAAA,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI;YAC3B,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB;KACH;;AAGD,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACnD;;AAGD,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACvF;;AAGD,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;SAC/D;KACF;;AAGD,IAAA,SAAS,CAAC,WAA+B,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;SACR;AAED,QAAA,IAAI,EAAE,WAAW,YAAY,gBAAgB,CAAC;YAAE,OAAO;AAEvD;;;;AAIG;AACH,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE;AACpC,YAAA,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAErD,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAChD;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE;AACzC,YAAA,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAErD,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;AAAM,aAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE;AAC7C,YAAA,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAErD,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAClD;aAAM;AACL;;;;;;AAMG;YACH,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AACzD,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aACvE;AAAM,iBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACxC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;;IAGD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;AAElC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB;;;;AAIG;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,QAAQ,EAAE;gBACtE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC3D;AAED,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;AAED;;AAEG;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExB;;AAEG;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B;;AAEG;YACH,IAAI,CAAC,+BAA+B,EAAE,CAAC;AAEvC;;AAEG;YACH,IAAI,CAAC,uCAAuC,EAAE,CAAC;AAE/C;;AAEG;YACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,YAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;KAC9E;;IAGD,OAAO,GAAA;AACL;;;;;;AAMG;AACH,QAAA,IACE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI;AAC3B,YAAA,IAAI,CAAC,oBAAoB;YACzB,CAAC,IAAI,CAAC,aAAa;YACnB,CAAC,IAAI,CAAC,yBAAyB;AAC/B,aAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,EACzD;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC1F,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;aACnC;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;SACjE;AAED,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACvC;;AAGD,IAAA,OAAO,CAAC,WAA+B,EAAA;AACrC,QAAA,IAAI,WAAW,YAAY,gBAAgB,EAAE;YAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAEvC;;;;;AAKG;YACH,IAAI,KAAK,KAAK,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;gBAC7G,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACjD;SACF;KACF;;IAGD,yBAAyB,CAAC,yBAAyB,GAAG,IAAI,EAAA;QACxD,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,KAAK;AACH,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,QAAQ;AAC1C,sBAAE,IAAI,CAAC,cAAc,CAAC,KAAK;AAC3B,uBAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;SAC/C;AAED,QAAA,IAAI,yBAAyB,IAAI,IAAI,CAAC,4BAA4B,EAAE,IAAI,IAAI,CAAC,oBAAoB,KAAK,KAAK,EAAE;AAC3G,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAElC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;YAElC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,KAAI;AAC9C,gBAAA,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;oBAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;iBAChD;AACH,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;IAGD,KAAK,GAAA;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClD;;IAGD,uBAAuB,CAAC,KAAiB,EAAE,MAAkC,EAAA;AAC3E;;AAEG;AACH,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;AAE/B,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACnC;;IAGD,iBAAiB,CAAC,KAAiB,EAAE,MAAuB,EAAA;AAC1D;;AAEG;AACH,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;AAE/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;AAE9B;;;AAGG;QACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC7C;;IAQD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;KACxC;;IAGD,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAClG;;AAGS,IAAA,YAAY,CAAC,OAAoB,EAAA;AACzC,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACzC;;IAGS,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAE5B;;AAEG;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;YAClC,OAAO;SACR;AAED;;AAEG;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEvB;;;;AAIG;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAiC,KAAI;AACtF,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExB;;AAEG;AACH,YAAA,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;;IAGS,kBAAkB,GAAA;QAC1B,IAAI,CAAC,mCAAmC,EAAE,CAAC;AAE3C;;AAEG;AACH,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAC5E,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,IAAI,CAAC,mCAAmC,EAAE,CAAC;aAC5C;AACH,SAAC,CAAC,CAAC;AAEH;;AAEG;AACH,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAExG,IAAI,CAAC,uCAAuC,EAAE,CAAC;AAE/C;;AAEG;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC/C,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EACrD,QAAQ,EACR,MAAK;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS;AAAE,gBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC7D,SAAC,CACF,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;IAGO,uCAAuC,GAAA;AAC7C,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY;AACjE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,KAAyC,KAAI;AAChD,YAAA,IAAI,CAAC,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;AACvB,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ;;;AAGG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAElC;;AAEG;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B;;AAEG;YACH,IAAI,CAAC,KAAK,EAAE;AACV;;AAEG;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;iBACnC;AAED,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAE3B,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB;;;;AAIG;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;iBAC1B;aACF;AAAM,iBAAA,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;gBACnC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAClD;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,SAAC,CAAC,EACF,QAAQ,CAAC,CAAC,KAAK,KAAI;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,KAAwC,KAAI;AACtD,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAS,KAAK,CAAC,CAAC;aAC/C;AACH,SAAC,CAAC,CAAC;KACN;;IAGO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;KACzC;IAEO,+BAA+B,GAAA;AACrC,QAAA,IAAI,CAAC,4BAA4B,EAAE,WAAW,EAAE,CAAC;KAClD;;AAGD,IAAA,iBAAiB,CAAC,OAAA,GAAuB,IAAI,CAAC,cAAc,EAAA;AAC1D,QAAA,OAAO,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACzC;;AAGD,IAAA,KAAK,CAAC,KAAkB,EAAA;QACtB,KAAK,EAAE,eAAe,EAAE,CAAC;QAEzB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO;SACR;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,iBAAiB;AAAE,YAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;KACxD;;AAGD,IAAA,WAAW,CAAC,KAAkB,EAAA;QAC5B,KAAK,EAAE,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,iBAAiB;AAAE,gBAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;SACxD;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;SACnC;KACF;;IAGO,mCAAmC,GAAA;AACzC;;AAEG;AACH,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;cAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACjD,cAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAE5B;;AAEG;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,cAAc,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAClG,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;KACH;IAEO,4BAA4B,GAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;KAC1E;;IAGO,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE,aAAa,YAAY,gBAAgB,EAAE;AACzD,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACjC;KACF;;AAGO,IAAA,oBAAoB,CAAC,MAAmC,EAAA;AAC9D,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;AAEpB;;;;AAIG;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEzB,QAAA,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC;AAEjC,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;;IAGO,aAAa,GAAA;AACnB;;AAEG;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACrE;;;AAGG;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACxD;QACD,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KAClE;;AAGO,IAAA,YAAY,CAAC,KAAwC,EAAA;AAC3D;;;AAGG;AACH,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;KAC7F;;AAGO,IAAA,yBAAyB,CAAC,cAAsB,EAAA;QACtD,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;AAGG;QACH,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACnD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,EAAE;AACxD,gBAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBACvC,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;aACP;SACF;QAED,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;;AAGO,IAAA,yBAAyB,CAAC,MAAsC,EAAE,QAAQ,GAAG,IAAI,EAAA;QACvF,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACxC;AAEO,IAAA,eAAe,CAAC,MAAsC,EAAE,QAAQ,GAAG,IAAI,EAAA;AAC7E;;;;AAIG;QACH,IAAI,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,MAAM,EAAE;YAClD,OAAO;SACR;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAEhC;;;;AAIG;AACH,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAE5C;;AAEG;YACH,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,KAAoB,KAAU;AAC3D,gBAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAE3D,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAEpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAElC;;;AAGG;AACH,gBAAA,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;oBACxD,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;iBAC9C;AACH,aAAC,CAAC;SACH;KACF;AAEO,IAAA,sBAAsB,CAAC,MAAuB,EAAA;AACpD;;;AAGG;AACH,QAAA,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC9B,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEvB,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAE7C,YAAA,MAAM,CAAC,qBAAqB,GAAG,MAAK;AAClC,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,OAAO;iBACR;AACD,gBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,aAAC,CAAC;SACH;KACF;8GAxwBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,s3BAKyB,WAA0B,CAAA,EAqF7E,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,ujBC5InC,m+JA6IA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,EAAA,gvBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoB,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgC,gCAAA,EAAA,IAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Fa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBATtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,m+JAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,ihDAAA,EAAA,gvBAAA,CAAA,EAAA,CAAA;uIAgBtB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAGG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAKG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGW,IAAI,EAAA,CAAA;sBAApB,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGW,KAAK,EAAA,CAAA;sBAArB,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBAG4B,OAAO,EAAA,CAAA;sBAAzC,SAAS;uBAAC,sBAAsB,CAAA;gBAGb,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBAGc,iBAAiB,EAAA,CAAA;sBAAhD,SAAS;uBAAC,mBAAmB,CAAA;gBAGA,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;gBAGM,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;gBAGb,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;;;MEpHN,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CAHnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAhBvC,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,sCAAsC;YACtC,mBAAmB;YACnB,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAnBhC,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,sCAAsC;YACtC,mBAAmB;YACnB,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArBnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,sCAAsC;wBACtC,mBAAmB;wBACnB,aAAa;wBACb,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;AC7BK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAO5D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;;QAHD,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAI/B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KACvC;;AAGD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KACxD;;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE;YAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC9C;KACF;8GAtBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,iKCTpC,2yDA2DA,EAAA,MAAA,EAAA,CAAA,w9LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlDa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,2yDAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,CAAA,EAAA,CAAA;wDAMnB,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEqBK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,CAHhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAdpC,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAjB7B,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,aAAa;wBACb,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;AClCM,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,eAAe,GAAG,kBAAkB,CAAC;MAQrC,oBAAoB,CAAA;AAAjC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,MAAM,GAAyB;AACrC,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,SAAS,EAAE,WAAW;SACvB,CAAC;AACM,QAAA,IAAA,CAAA,QAAQ,GAAyB;AACvC,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,SAAS,EAAE,WAAW;SACvB,CAAC;KAyBH;IAvBC,IAAI,KAAK,CAAC,KAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,OAAO,CAAC,OAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,aAAa,CAAC,OAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;AACF;;MC3CY,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;QACU,IAAS,CAAA,SAAA,GAAuB,IAAI,CAAC;QACrC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;KAqM3B;AAnMC,IAAA,GAAG,CAAC,IAAqB,EAAA;AACvB;;AAEG;QACH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAE7D;;;AAGG;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzC;QAED,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;AAEO,IAAA,iBAAiB,CAAC,IAAqB,EAAA;QAC7C,MAAM,QAAQ,GAAuB,QAAQ,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;AAE3F,QAAA,IAAI,CAAC,QAAQ;YAAE,OAAO;AAEtB;;AAEG;AACH,QAAA,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAClE,QAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAuB,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC;QACjG,MAAM,OAAO,GAAuB,QAAQ,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC;AAEnG,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO;AAEhC;;AAEG;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,4CAA4C,CAAC,CAAC;AACxF,QAAA,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,8CAA8C,CAAC;AACrE,YAAA,MAAM,CAAC,aAAa,CAAC,8CAA8C,CAAC,CAAC;AACvE,QAAA,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,0CAA0C,CAAC;AACjE,YAAA,MAAM,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC;AAEnE;;AAEG;AACH,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5F,QAAA,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC;AACxC,QAAA,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAE3B;;AAEG;QACH,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACrD,QAAA,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC;QAExC,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,GAAuB,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACxE,MAAM,aAAa,GAAuB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;AACvC,gBAAA,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;AAC3C,gBAAA,aAAa,CAAC,SAAS,GAAG,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,gBAAA,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAClC;;AAEG;AACH,gBAAA,MAAM,QAAQ,GAAG,CAAA;;yBAEA,CAAC;gBAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/C,gBAAA,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC;AAClC,gBAAA,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B;;AAEG;AACH,gBAAA,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC7B;AAED;;AAEG;AACH,YAAA,IAAI,GAAG,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,EAAE;gBAChD,GAAG,CAAC,MAAM,EAAE,CAAC;aACd;AAED;;AAEG;YACH,MAAM,OAAO,GAAuB,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEhF,YAAA,IAAI,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,EAAE;gBACpD,OAAO,CAAC,MAAM,EAAE,CAAC;aAClB;AAED;;AAEG;AACH,YAAA,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACnC;AAED;;AAEG;QACH,IAAI,cAAc,CAAC,aAAa,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACtD,YAAA,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACpC;AAED;;AAEG;QACH,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACrD,QAAA,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC;QAExC,IAAI,UAAU,EAAE;AACd,YAAA,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACnC;QAED,IAAI,UAAU,EAAE;AACd,YAAA,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACnC;AAED;;AAEG;AACH,QAAA,IAAI,cAAc,CAAC,aAAa,EAAE,EAAE;AAClC,YAAA,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACpC;AAED;;AAEG;AACH,QAAA,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE;AAC/B,YAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC7B;AAED;;AAEG;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAE1F,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,MAAM,EAAE,CAAC;SACtB;AAED;;AAEG;QACH,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE3C;;AAEG;AAEH,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;SACtD;KACF;IAEO,uBAAuB,CAAC,UAA0B,EAAE,UAA0B,EAAA;QACpF,IAAI,UAAU,EAAE;AACd,YAAA,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;gBACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;SACJ;QAED,IAAI,UAAU,EAAE;AACd,YAAA,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;gBACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;SACJ;KACF;AAED;;AAEG;IACK,gBAAgB,GAAA;QACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACxD,QAAA,IAAI,UAAU,IAAI,SAAS,EAAE;YAC3B,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,SAAS,CAAC,MAAM,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACnB;KACF;AACF;;MC1LY,6BAA6B,CAAA;IAMxC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChE;KACF;IAED,WACwC,CAAA,MAA4B,EAC9C,SAAoB,EAAA;QADF,IAAM,CAAA,MAAA,GAAN,MAAM,CAAsB;QAC9C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;;QAdjC,IAAmB,CAAA,mBAAA,GAAuB,EAAE,CAAC;;QAE7C,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;KAalC;AAjBO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,kBAe9B,oBAAoB,EAAA,EAAA,EAAA,KAAA,EAAAnC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAfnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAP7B,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,QAAQ,EAAE,oBAAoB;AAC/B,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBATzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,QAAQ,EAAE,oBAAoB;AAC/B,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;0BAgBI,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,QAAQ;yCAdF,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;;MAqBK,mCAAmC,CAAA;8GAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnC,mCAAmC,EAAA,YAAA,EAAA,CAzBnC,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAA7B,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAyB7B,mCAAmC,EAAA,CAAA,CAAA,EAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;oBACX,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;AACzC,iBAAA,CAAA;;;ACVK,MAAO,0BAA2B,SAAQ,sBAAsB,CAAA;AA+DpE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;;QA3DD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAMnB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;QAGvB,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;QAGxB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;QAGpB,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;;QAG7B,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;;QAGtB,IAAmB,CAAA,mBAAA,GAAW,eAAe,CAAC;;QAMvD,IAA2B,CAAA,2BAAA,GAAuB,EAAE,CAAC;;QAGrD,IAAI,CAAA,IAAA,GAA0B,UAAU,CAAC;;AAM/B,QAAA,IAAA,CAAA,SAAS,GAAuB;AACxC,YAAA,CAAC,EAAE,CAAC,CAAC;YACL,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;;AAGiB,QAAA,IAAA,CAAA,oBAAoB,GAA+B;AACpE,YAAA,kBAAkB,EAAE,4DAA4D;AAChF,YAAA,gBAAgB,EAAE,sBAAsB;SACzC,CAAC;;QAGM,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;;QAGnC,IAA8B,CAAA,8BAAA,GAAG,KAAK,CAAC;AAEvC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAI1D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;KAC9E;;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;;AAED,IAAA,WAAW,CAAC,OAKX,EAAA;QACC,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE;YACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;AAED,QAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;AAED,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC1E;;AAGD,IAAA,MAAM,CAAC,KAAiB,EAAA;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACrB;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;SACrB;KACF;;AAGD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;KAClG;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;KAClE;;IAGD,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAClG;;AAGD,IAAA,iBAAiB,CAAC,OAAA,GAAuB,IAAI,CAAC,cAAc,EAAA;AAC1D;;AAEG;QACH,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;AAClD,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;SACvG;AAED,QAAA,OAAO,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACzC;;AAGD,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE;YAC/C,OAAO;SACR;AAED;;AAEG;AACH,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YACrE,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO;SACR;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAE/D;;AAEG;AACH,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC;;AAEG;YACH,MAAM,KAAK,GAAS,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEpD;;;AAGG;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAE/D,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;KACF;;IAGD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;SACrC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;SACnC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;KACF;;AAGD,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB;;AAEG;QACH,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC3C;;AAGD,IAAA,SAAS,CAAC,KAAiB,EAAA;QACzB,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;KAC7C;;IAGD,QAAQ,GAAA;AACN;;;AAGG;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;SAClC;AAED;;AAEG;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB;;AAEG;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACvF,YAAA,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AAElC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AAE3D,YAAA,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,aAAa,GAAG,CAAC,EAAE,aAAa,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC;aAC/G;SACF;KACF;;AAGD,IAAA,SAAS,CAAC,KAA0D,EAAA;QAClE,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,OAAO,KAAK,IAAI,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAErF;;;;AAIG;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAE5D;;AAEG;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,IAAqB,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAClC;;AAGS,IAAA,YAAY,CAAC,OAAoB,EAAA;AACzC,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACzC;;IAGS,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,2BAA2B,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;SAC3E;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACvE;iBAAM;AACL,gBAAA,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,eAAe,CAAC;aAC9D;SACF;KACF;;IAGS,eAAe,CAAC,OAAoB,EAAE,KAAA,GAAuB,IAAI,EAAE,SAAS,GAAG,IAAI,EAAA;AAC3F,QAAA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;YAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;SACnD;KACF;;AAGS,IAAA,oBAAoB,CAAC,YAAuB,GAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAA;AAC3E;;AAEG;QACH,MAAM,KAAK,GAAS,IAAI,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAErF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KAC3F;;AAGS,IAAA,sBAAsB,CAAC,KAAkB,EAAA;QACjD,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,IAAI,KAAK,EAAE;AACT,YAAA,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;SACrD;AAED;;AAEG;QACH,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACxC,OAAO;SACR;AAED;;AAEG;QACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;KACnD;;AAGS,IAAA,4BAA4B,CAAC,KAAW,EAAA;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;KACrD;;IAGS,WAAW,GAAA;AACnB;;AAEG;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,WAAW,EAAE,CAAC;SAC1D;KACF;;IAGS,SAAS,CAAC,IAAU,EAAE,MAAc,EAAA;QAC5C,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;KACvC;;IAGS,YAAY,CAAC,IAAU,EAAE,MAAc,EAAA;AAC/C,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5C;;AAGS,IAAA,mBAAmB,CAAC,KAAA,GAAc,IAAI,CAAC,UAAU,EAAE,EAAA;AAC3D,QAAA,OAAO,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;KACvC;;AAGS,IAAA,iBAAiB,CAAC,KAAA,GAAc,IAAI,CAAC,UAAU,EAAE,EAAA;QACzD,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACzE;;IAGS,UAAU,CAAC,SAAS,GAAG,CAAC,EAAA;AAChC,QAAA,IAAI,KAAK,GAAS,IAAI,IAAI,EAAE,CAAC;QAE7B,IAAI,SAAS,EAAE;AACb,YAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;SACpD;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;IAGO,kBAAkB,GAAA;AACxB;;;;AAIG;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAEnG;;AAEG;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC,CAC/F,CAAC;AAEF;;AAEG;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACrE;;;AAGG;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACjE;;AAEG;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;;IAGO,kBAAkB,GAAA;AACxB;;AAEG;QACH,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAEnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;;IAGO,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK,CAAC;AAE1C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE1E,QAAA,OAAO,IAAI,CAAC;KACb;;AAGO,IAAA,oBAAoB,CAAC,KAAA,GAAc,IAAI,CAAC,UAAU,EAAE,EAAA;AAC1D,QAAA,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7D;;AAGO,IAAA,kBAAkB,CAAC,KAAA,GAAc,IAAI,CAAC,UAAU,EAAE,EAAA;AACxD,QAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;KAChE;8GA1bU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE1B,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BvC,gzGA6FA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,SAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,gzGAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,CAAA;wDAMS,MAAM,EAAA,CAAA;sBAA5C,SAAS;uBAAC,0BAA0B,CAAA;gBAG5B,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;AEnDd,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAC1D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;IACD,MAAM,CAAC,IAAU,EAAE,aAA0C,EAAA;AAC3D,QAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACrC,YAAA,OAAO,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;SACpC;aAAM;YACL,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;SAC1C;KACF;IAED,KAAK,CAAC,KAAa,EAAE,WAAoB,EAAA;AACvC,QAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B;;AAEG;AACH,YAAA,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACxE;AAAM,aAAA,IAAI,WAAW,KAAK,eAAe,EAAE;AAC1C,YAAA,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;SAC1D;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;KACxC;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B;;AAEG;AACH,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,GAAA,CAAK,CAAC;SACvB;AAAM,aAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,CAAA,EAAG,KAAK,CAAA,GAAA,CAAK,CAAC;SACtB;AAED,QAAA,OAAO,KAAK,CAAC;KACd;8GArCU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;MCwCE,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CATnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAhBvC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,uBAAuB;YACvB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,uBAAuB;YACvB,aAAa;YACb,mCAAmC;YACnC,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAQzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAPvB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,qBAAqB;AAChC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAvBC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,uBAAuB;YACvB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,uBAAuB;YACvB,aAAa;YACb,mCAAmC;YACnC,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA3BnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,uBAAuB;wBACvB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,uBAAuB;wBACvB,aAAa;wBACb,mCAAmC;wBACnC,aAAa;wBACb,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACrC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,qBAAqB;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACjCK,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AALtE,IAAA,WAAA,GAAA;;;QAOW,IAAmB,CAAA,mBAAA,GAAW,WAAW,CAAC;;QAGnD,IAAI,CAAA,IAAA,GAA0B,MAAM,CAAC;;QAGrC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAGnB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;AAGJ,QAAA,IAAA,CAAA,oBAAoB,GAA+B;AACpE,YAAA,kBAAkB,EAAE,6CAA6C;SAClE,CAAC;AAuBH,KAAA;;IApBW,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,2BAA2B,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5E;KACF;;AAGS,IAAA,4BAA4B,CAAC,KAAW,EAAA;AAChD,QAAA,OAAO,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;KACpC;;AAGS,IAAA,oBAAoB,CAAC,YAAuB,GAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAA;QAC3E,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE;YACpC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC;SACtD;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;KACzD;8GAtCU,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,qIHZnC,gzGA6FA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,SAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxB,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FGjFa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,gzGAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,CAAA;8BAMjB,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;;;MC+BK,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CATf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAhBnC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,aAAa;YACb,uBAAuB;YACvB,aAAa;YACb,mCAAmC;YACnC,wBAAwB;YACxB,aAAa;YACb,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAQrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAPnB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,qBAAqB;AAChC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAvBC,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,aAAa;YACb,uBAAuB;YACvB,aAAa;YACb,mCAAmC;YACnC,wBAAwB;YACxB,aAAa;YACb,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA3B/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,aAAa;wBACb,uBAAuB;wBACvB,aAAa;wBACb,mCAAmC;wBACnC,wBAAwB;wBACxB,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,qBAAqB;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;AC9BK,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AAiBpE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;;QAhBD,IAAmB,CAAA,mBAAA,GAAW,WAAW,CAAC;;QAGnD,IAAI,CAAA,IAAA,GAA0B,MAAM,CAAC;;AAG3B,QAAA,IAAA,CAAA,SAAS,GAAuB;YACxC,CAAC,EAAE,CAAC;SACL,CAAC;;AAGiB,QAAA,IAAA,CAAA,oBAAoB,GAA+B;AACpE,YAAA,kBAAkB,EAAE,wCAAwC;SAC7D,CAAC;QAIA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC7C;;AAGD,IAAA,SAAS,CAAC,KAA0D,EAAA;AAClE;;;AAGG;AACH,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE;YACjE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC/C;aAAM;AACL,YAAA,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;;IAGS,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,2BAA2B,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5E;KACF;;AAGS,IAAA,4BAA4B,CAAC,KAAW,EAAA;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KACtF;;AAGS,IAAA,oBAAoB,CAAC,YAAuB,GAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAA;QAC3E,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE;AACpC,YAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;SACxF;AAED,QAAA,KAAK,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;KAC1C;8GAzDU,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,qILdnC,gzGA6FA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,SAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FK/Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,gzGAAA,EAAA,MAAA,EAAA,CAAA,w9LAAA,EAAA,kWAAA,CAAA,EAAA,CAAA;wDAMjB,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;;;MC+BK,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CATf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAjBnC,YAAY;YACZ,uBAAuB;YACvB,mBAAmB;YACnB,kBAAkB;YAClB,uBAAuB;YACvB,mBAAmB;YACnB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,mCAAmC;YACnC,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAQrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAPnB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,qBAAqB;AAChC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAxBC,YAAY;YACZ,uBAAuB;YACvB,mBAAmB;YACnB,kBAAkB;YAClB,uBAAuB;YACvB,mBAAmB;YACnB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,mCAAmC;YACnC,aAAa;YACb,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA5B/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,uBAAuB;wBACvB,mBAAmB;wBACnB,kBAAkB;wBAClB,uBAAuB;wBACvB,mBAAmB;wBACnB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,aAAa;wBACb,mCAAmC;wBACnC,aAAa;wBACb,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,qBAAqB;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACpCK,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AALjE,IAAA,WAAA,GAAA;;;QAOE,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC,QAAQ,EAA6B,WAA0B,EAAC,CAAC;;QAGjF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAGjB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;QAGpB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;QAGnC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAGnB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAiBlB,KAAA;;AAXC,IAAA,WAAW,CAAC,OAA6F,EAAA;AACvG,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE3B,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACtD;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzD;SACF;KACF;8GAjCU,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,EAE4B,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,GAAA,WAA0B,CAAA,4GCZ1F,w0CAqCA,EAAA,MAAA,EAAA,CAAA,uuEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7B,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Ba,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,w0CAAA,EAAA,MAAA,EAAA,CAAA,uuEAAA,CAAA,EAAA,CAAA;8BASnB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;;MEQK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,CAHhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAXpC,YAAY;YACZ,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,gBAAgB;YAChB,wBAAwB;YACxB,sCAAsC;AACtC,YAAA,mBAAmB,aAGX,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAd7B,YAAY;YACZ,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,cAAc;YACd,iBAAiB;YAEjB,wBAAwB;YACxB,sCAAsC;YACtC,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,iBAAiB;wBACjB,gBAAgB;wBAChB,wBAAwB;wBACxB,sCAAsC;wBACtC,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;ACnBK,MAAO,uBAAwB,SAAQ,qBAAqB,CAAA;AALlE,IAAA,WAAA,GAAA;;;AAOE,QAAA,IAAA,CAAA,YAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;;QAiBrC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;;QAGX,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;;QAGR,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;AAQhC,KAAA;;IA5BC,IAAa,OAAO,CAAC,OAA+B,EAAA;AAClD;;;;AAIG;AACH,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;SAC7B;aAAM;AACL,YAAA,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;SACzD;KACF;;IAYD,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;YAAE,OAAO;AAEvC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACtD;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,yJCTpC,60BAyBA,EAAA,MAAA,EAAA,CAAA,u2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,60BAAA,EAAA,MAAA,EAAA,CAAA,u2CAAA,CAAA,EAAA,CAAA;8BASf,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAcG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEbK,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,CAHV,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAPpC,YAAY;YACZ,mBAAmB;YACnB,wBAAwB;YACxB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,mBAAmB,aAGX,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAVvB,YAAY;YACZ,mBAAmB;YACnB,wBAAwB;YACxB,iBAAiB;YAEjB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,wBAAwB;wBACxB,iBAAiB;wBACjB,gBAAgB;wBAChB,mBAAmB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;ACZK,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAL5D,IAAA,WAAA,GAAA;;;QAOW,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;;QAGR,IAAG,CAAA,GAAA,GAAG,GAAG,CAAC;;QAGV,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;;QAMT,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAGf,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;QAG3B,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACZ,KAAA;8GArBY,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,qMCR/B,6dAUA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,6dAAA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA,CAAA;8BAMb,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEFK,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CAHX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAR/B,YAAY;YACZ,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,aAAa;YACb,iBAAiB;AACjB,YAAA,gBAAgB,aAGR,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,YAAY;YACZ,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,aAAa;YACb,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMR,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;AACjB,qBAAA;oBACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCdY,0BAA0B,CAAA;AAsBrC,IAAA,WAAA,CAAoB,QAAqB,EAAA;QAArB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;;QApBhC,IAAU,CAAA,UAAA,GAAmC,SAAS,CAAC;;QAGvD,IAAO,CAAA,OAAA,GAAG,iBAAiB,CAAC;;QAG5B,IAAM,CAAA,MAAA,GAAG,YAAY,CAAC;;QAMtB,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;;QAMhC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KAE6B;;IAG7C,QAAQ,GAAA;AACN;;AAEG;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KACzB;;IAGD,KAAK,GAAA;QACH,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AAE/C,QAAA,OAAO,KAAK,CAAC;KACd;;IAGD,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAEjD,QAAA,OAAO,KAAK,CAAC;KACd;;IAGD,eAAe,GAAA;AACb,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5C;8GAlDU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAvC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,iOCRvC,0eAaA,EAAA,MAAA,EAAA,CAAA,k9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDLa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,0eAAA,EAAA,MAAA,EAAA,CAAA,k9BAAA,CAAA,EAAA,CAAA;kFAMtB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEfK,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAJnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC/B,YAAY,EAAE,iBAAiB,aAC/B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEzB,uBAAuB,EAAA,OAAA,EAAA,CAHxB,YAAY,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG9B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;AAC1C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;MCMY,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAME,QAAA,IAAA,CAAA,IAAI,GAAiB,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAC5B,IAAoB,CAAA,oBAAA,GAAG,aAAa,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;AAM5C,KAAA;AAJC,IAAA,IAAI,gBAAgB,GAAA;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,UAAwB,CAAC;AAC9F,QAAA,OAAO,UAAU,KAAK,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC;KAClF;8GATU,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,oDCfjC,2aAaA,EAAA,MAAA,EAAA,CAAA,sOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3C,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,2aAAA,EAAA,MAAA,EAAA,CAAA,sOAAA,CAAA,EAAA,CAAA;;IAgBd,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA;;MEnBY,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CADzB,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAE/D,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAJlB,OAAA,EAAA,CAAA,eAAe,EAAE,iBAAiB,EAAiB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI9D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC;oBAC1E,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCJY,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,0DCPtC,uEAGA,EAAA,MAAA,EAAA,CAAA,gHAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,gHAAA,CAAA,EAAA,CAAA;;;MEKnB,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAtB,sBAAsB,EAAA,YAAA,EAAA,CAFlB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAD9B,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGxB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,YAAY,EAAE,CAAC,yBAAyB,CAAC;AAC1C,iBAAA,CAAA;;;MCAY,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC3B,KAAA;8GALY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wFCPlC,uFAGA,EAAA,MAAA,EAAA,CAAA,iRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,uFAAA,EAAA,MAAA,EAAA,CAAA,iRAAA,CAAA,EAAA,CAAA;8BAQjB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEFK,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAFd,YAAA,EAAA,CAAA,qBAAqB,CAF1B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJnB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACtC,iBAAA,CAAA;;;MCDY,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,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,4DCPxC,yEAGA,EAAA,MAAA,EAAA,CAAA,2VAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,2VAAA,CAAA,EAAA,CAAA;;;MEMrB,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAFpB,YAAA,EAAA,CAAA,2BAA2B,CAFhC,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;MCDY,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,yDCPrC,sEAGA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,CAAA;;;MEOlB,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAFjB,YAAA,EAAA,CAAA,wBAAwB,CAF7B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACzC,iBAAA,CAAA;;;MCFY,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,yDCPlC,sEAGA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,CAAA;;;MEOlB,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAFjB,YAAA,EAAA,CAAA,qBAAqB,CAF1B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACtC,iBAAA,CAAA;;;MCFY,yBAAyB,CAAA;;IA2BpC,QAAQ,GAAA;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;KAC3B;8GA7BU,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,gKCPtC,uPAIA,EAAA,MAAA,EAAA,CAAA,ucAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDGa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,uPAAA,EAAA,MAAA,EAAA,CAAA,ucAAA,CAAA,EAAA,CAAA;8BAQrB,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,GAAG,EAAA,CAAA;sBAAX,KAAK;;;MErBK,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAFlB,YAAA,EAAA,CAAA,yBAAyB,CAF9B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJvB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,YAAY,EAAE,CAAC,yBAAyB,CAAC;AAC1C,iBAAA,CAAA;;;MCAY,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAI7C;;AAEG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAExB;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAiB1B;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAwB,IAAI,YAAY,EAAS,CAAC;AAErE;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAEpE;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,YAAY,EAAa,CAAC;AAE9E;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA6B,IAAI,YAAY,EAAc,CAAC;AAEjF;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA6B,IAAI,YAAY,EAAc,CAAC;AAEjF;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAxDnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;KACvC;;IA0DM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;;AAGM,IAAA,YAAY,CAAC,KAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;AAGM,IAAA,eAAe,CAAC,KAAgB,EAAA;AACpC,QAAA,KAAK,CAAC,MAAsB,CAAC,IAAI,EAAE,CAAC;KACtC;;AAGM,IAAA,aAAa,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;AAGM,IAAA,aAAa,CAAC,KAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;AAGM,IAAA,aAAa,CAAC,KAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;IAGM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;8GA7FU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,mUCTxC,6vBAsBA,EAAA,MAAA,EAAA,CAAA,6yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDba,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,6vBAAA,EAAA,MAAA,EAAA,CAAA,6yDAAA,CAAA,EAAA,CAAA;oFAYvB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAKG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEvDI,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CAFpB,2BAA2B,CAFhC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC1C,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAJzB,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIzC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;oBACrD,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;MCJY,oCAAoC,CAAA;8GAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,sECPjD,qIAGA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,CAAA;;;MEO/B,iCAAiC,CAAA;8GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,EAF7B,YAAA,EAAA,CAAA,oCAAoC,CAFzC,EAAA,OAAA,EAAA,CAAA,cAAc,aACd,oCAAoC,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,YAJlC,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIb,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,oCAAoC,CAAC;oBAC/C,YAAY,EAAE,CAAC,oCAAoC,CAAC;AACrD,iBAAA,CAAA;;;MCHY,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;AAUE;;AAEG;QACM,IAAK,CAAA,KAAA,GAAuC,QAAQ,CAAC;AAC/D,KAAA;8GAVY,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,oGCNjC,4EACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDKa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,4EAAA,EAAA,CAAA;8BAOnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MELK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAFhB,YAAA,EAAA,CAAA,oBAAoB,CAFzB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJrB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACrC,iBAAA,CAAA;;;MCHY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;AAE9D;;;;AAIG;AACI,IAAA,SAAS,CAAC,WAAA,GAAiC,WAAW,CAAC,OAAO,EAAA;QACnE,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACI,IAAA,OAAO,CAAC,WAAA,GAAiC,WAAW,CAAC,OAAO,EAAA;QACjE,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KACrD;8GAnBU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,aAAa,CAAA;AACxB,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,MAAM,CAAC,WAAW,CAAC;KAC3B;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,MAAM,CAAC,UAAU,CAAC;KAC1B;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC1B;AAED,IAAA,UAAU,CAAC,QAAsC,EAAE,EAAuB,EAAE,GAAG,IAAe,EAAA;QAC5F,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KAC9C;AAEM,IAAA,YAAY,CAAC,EAAU,EAAA;AAC5B,QAAA,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACzB;8GAvBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,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,aAAa,cADA,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ICYtB,gBAEX;AAFD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,kBAAiC,CAAA;AACnC,CAAC,EAFW,eAAe,KAAf,eAAe,GAE1B,EAAA,CAAA,CAAA,CAAA;MAOY,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CACU,SAA0C,EAC1C,QAAyB,EACD,IAAkB,EAAA;QAF1C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiC;QAC1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;AAElD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KACtC;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC7B;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC5B;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;AAnBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,+EAIlB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAJd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,iDCxB9B,6lCAoCA,EAAA,MAAA,EAAA,CAAA,s6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5C,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDZa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,6lCAAA,EAAA,MAAA,EAAA,CAAA,s6CAAA,CAAA,EAAA,CAAA;;0BAQlB,MAAM;2BAAC,eAAe,CAAA;;;MEfd,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAHV,YAAA,EAAA,CAAA,iBAAiB,CADtB,EAAA,OAAA,EAAA,CAAA,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,aAEhF,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJf,OAAA,EAAA,CAAA,eAAe,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI9C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,CAAC;oBAC3F,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCFY,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;;AAK7C,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;;AAG9B,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;;AAGjC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGxC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;QAGlC,IAAO,CAAA,OAAA,GAAG,MAAM,EAAU,CAAC;;QAG3B,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAQ,CAAC;QAtBxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;KACtD;;IAwBD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACb,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACpB,SAAA,CAAC,CAAC;KACJ;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAC9B;KACF;8GAvCU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,mvBCV7B,mTASA,EAAA,MAAA,EAAA,CAAA,o3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDCa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,mTAAA,EAAA,MAAA,EAAA,CAAA,o3BAAA,CAAA,EAAA,CAAA;;;MEIT,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAb,aAAa,EAAA,YAAA,EAAA,CAJT,gBAAgB,CAErB,EAAA,OAAA,EAAA,CAAA,OAAO,EAAE,OAAO,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAD/B,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAFI,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;AAC3C,iBAAA,CAAA;;;MCEY,0BAA0B,CAAA;AACrC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;;QAK1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;;AAGnC,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;;AAGvB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;;QAG3B,IAAc,CAAA,cAAA,GAAG,KAAK,EAAwB,CAAC;;QAG/C,IAAkB,CAAA,kBAAA,GAAG,KAAK,EAAsB,CAAC;;AAGjD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGnC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;QAzB5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAChE;8GAHU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,m+BCXvC,6tBAmBA,EAAA,MAAA,EAAA,CAAA,0rCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDRa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,6tBAAA,EAAA,MAAA,EAAA,CAAA,0rCAAA,CAAA,EAAA,CAAA;;;MEkBpB,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CAbnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAGvC,OAAO;YACP,OAAO;YACP,aAAa;YACb,iBAAiB;YACjB,sBAAsB;YACtB,uBAAuB;YACvB,4BAA4B;AAC5B,YAAA,gBAAgB,aATR,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAYzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YARhC,aAAa;YACb,iBAAiB;YAEjB,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAdnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,OAAO;wBACP,OAAO;wBACP,aAAa;wBACb,iBAAiB;wBACjB,sBAAsB;wBACtB,uBAAuB;wBACvB,4BAA4B;wBAC5B,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;MCfY,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;;QAOW,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;;QAGf,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;;QAYhB,IAAa,CAAA,aAAA,GAA+B,EAAE,CAAC;AA4DzD,KAAA;;IAzDC,gBAAgB,GAAA;QACd,OAAO;YACL,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;KACH;;IAM8B,MAAM,GAAA;AACnC,QAAA,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;KAClC;;AAGD,IAAA,WAAW,CAAC,MAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;;AAGD,IAAA,mBAAmB,CAAC,MAA8B,EAAA;AAChD,QAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;KAC/B;;IAGD,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,aAAa,EACX,iGAAiG;gBACjG,4FAA4F;gBAC5F,QAAQ;AACV,YAAA,cAAc,EACZ,iGAAiG;gBACjG,6FAA6F;gBAC7F,QAAQ;AAEV,YAAA,UAAU,EACR,iGAAiG;gBACjG,4FAA4F;gBAC5F,4FAA4F;gBAC5F,QAAQ;SACX,CAAC;KACH;;AAGD,IAAA,SAAS,CAAC,MAAsB,EAAA;QAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACxG;;AAGD,IAAA,iBAAiB,CAAC,MAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,mBAAmB;cACxC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAC9C,cAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KACtC;8GA5EU,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,+PCT9B,oWAWA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,kCAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,oWAAA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA,CAAA;8BAMZ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAcyB,MAAM,EAAA,CAAA;sBAApC,YAAY;uBAAC,eAAe,CAAA;;;ME7BlB,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,CAJV,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC1C,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAHf,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGzC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;oBACrD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCAY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AAI7C;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAiB,CAAC;;QAG/C,IAAO,CAAA,OAAA,GAAG,KAAK,EAAU,CAAC;;QAG1B,IAAK,CAAA,KAAA,GAAG,KAAK,EAAU,CAAC;QAZtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAClE;8GAHU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,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,kcCVhC,wzCAqCA,EAAA,MAAA,EAAA,CAAA,gkFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,wzCAAA,EAAA,MAAA,EAAA,CAAA,gkFAAA,CAAA,EAAA,CAAA;;;MEeb,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAFZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAVhC,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,OAAO;YACP,cAAc;YACd,gBAAgB;YAChB,WAAW;AACX,YAAA,UAAU,aAEF,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAZzB,YAAY;YACZ,aAAa;YAEb,OAAO;YAGP,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,OAAO;wBACP,cAAc;wBACd,gBAAgB;wBAChB,WAAW;wBACX,UAAU;AACX,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACpC,iBAAA,CAAA;;;MCTY,sBAAsB,CAAA;;AAEjC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;;AAK7C,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;;QAG1C,IAAc,CAAA,cAAA,GAAG,KAAK,EAAwB,CAAC;;QAG/C,IAAiB,CAAA,iBAAA,GAAG,KAAK,EAAwB,CAAC;;AAGlD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAY,EAAE,CAAC,CAAC;;AAGhC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;;QAGrC,IAAW,CAAA,WAAA,GAAG,MAAM,CAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;;QAGlD,IAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;;QAGxC,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;;QAGtB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QA5BpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;KACzC;;IAiCD,QAAQ,GAAA;QACN,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC;SAChF;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACnE;;AAGD,IAAA,SAAS,CAAC,KAAkC,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACvE;;;IAID,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5C,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AACpD,aAAC,CAAC,CAAC;SACJ;aAAM;YACL,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;SACJ;KACF;;;AAID,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACnE;8GAzEU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkCC,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7C9C,okEA8DA,EAAA,MAAA,EAAA,CAAA,81IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,KAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnDa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,okEAAA,EAAA,MAAA,EAAA,CAAA,81IAAA,CAAA,EAAA,CAAA;oFAsCoB,WAAW,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;;MEvBnC,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAFf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAVnC,YAAY;YACZ,oBAAoB;YACpB,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,UAAU;YACV,gBAAgB;AAChB,YAAA,aAAa,aAEL,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAZ5B,YAAY;YACZ,oBAAoB;YACpB,cAAc;YACd,kBAAkB;YAIlB,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKJ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,cAAc;wBACd,kBAAkB;wBAClB,YAAY;wBACZ,UAAU;wBACV,gBAAgB;wBAChB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACvC,iBAAA,CAAA;;;MCVY,uBAAuB,CAAA;AAPpC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAW,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAW,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;QACjC,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAU,CAAC;AAK5B,KAAA;AAHC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC3B;8GARU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,8cAqBA,EAAA,MAAA,EAAA,CAAA,4oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,8cAAA,EAAA,MAAA,EAAA,CAAA,4oCAAA,CAAA,EAAA,CAAA;;;MEOrB,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAiB,CAAC;AACzC,KAAA;8GAHY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,8LChBvC,iyBAwBA,EAAA,MAAA,EAAA,CAAA,igBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3C,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDRa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,iyBAAA,EAAA,MAAA,EAAA,CAAA,igBAAA,CAAA,EAAA,CAAA;;;MEApB,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CAJnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC/B,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAC5E,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAHxB,OAAA,EAAA,CAAA,YAAY,EAAE,uBAAuB,EAAgB,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG3E,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,CAAC;oBACvF,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;ICAW,mBAKX;AALD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAK7B,EAAA,CAAA,CAAA;;MCPY,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;AAME;;AAEG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAkB,CAAC;;QAMtB,IAAkB,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAM5D,KAAA;;IAHC,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,IAAkB,KAAK,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACpH;8GAfU,2BAA2B,EAAA,IAAA,EAAA,EAAA,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,+LCTxC,89BAyBA,EAAA,MAAA,EAAA,CAAA,s/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,89BAAA,EAAA,MAAA,EAAA,CAAA,s/DAAA,CAAA,EAAA,CAAA;;;MEMrB,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,YAAA,EAAA,CAFpB,2BAA2B,CAFhC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC7C,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAJzB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI5C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC;oBACxD,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC5C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ascentgl-ads-ui.mjs","sources":["../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.ts","../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.html","../../../../libs/ads-ui/src/lib/components/avatar/avatar.module.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.html","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.module.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.html","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.visual-processor.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button/button.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.module.ts","../../../../libs/ads-ui/src/lib/components/general/color-palette/colors.enums.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.html","../../../../libs/ads-ui/src/lib/components/card/card.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.module.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.module.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.html","../../../../libs/ads-ui/src/lib/components/divider/divider.module.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dom.element.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dragged.placeholder.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.html","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.types.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.html","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.module.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.html","../../../../libs/ads-ui/src/lib/components/footer/footer.module.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.html","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.module.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.html","../../../../libs/ads-ui/src/lib/components/header/header.module.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.html","../../../../libs/ads-ui/src/lib/components/header/container/header-container.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.module.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.types.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.module.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.html","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.base.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/input.tooltip.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/common/hint/hint.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown-highlighter.pipe.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime-format.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-template.formatter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-picker-format-directive.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime.adapter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/inline-snackbar/inline-snackbar.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.module.ts","../../../../libs/ads-ui/src/lib/services/viewport/viewport.service.ts","../../../../libs/ads-ui/src/lib/services/window/window.service.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.html","../../../../libs/ads-ui/src/lib/components/modal/modal.module.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.html","../../../../libs/ads-ui/src/lib/components/chip/chip.module.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.html","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.module.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.html","../../../../libs/ads-ui/src/lib/components/table/table.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/vertical-stepper/vertical-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.module.ts","../../../../libs/ads-ui/src/ascentgl-ads-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\nimport { Size } from './avatar.types';\n\n@Component({\n selector: 'ads-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AdsAvatarComponent implements OnChanges {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconUserCircle);\n }\n\n /**\n * The alt text for the avatar\n */\n @Input() alt?: string = 'Avatar for user';\n\n /**\n * The id attribute for the avatar icon\n */\n @Input() id = 'ads-avatar';\n\n /**\n * The size of the avatar\n */\n @Input() size: Size = 'md';\n\n /**\n * The path to the image to display\n */\n @Input() src?: string;\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.size?.currentValue) {\n this.size = changes.size.currentValue;\n }\n\n if (changes?.image?.currentValue) {\n this.src = changes.image.currentValue;\n }\n }\n}\n","<div class=\"avatar\" [ngClass]=\"size\">\n <img *ngIf=\"src; else icon\" [src]=\"src\" [alt]=\"alt\" />\n <ng-template #icon>\n <ads-icon\n [id]=\"id\"\n name=\"user_circle\"\n [size]=\"size\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsAvatarComponent } from './avatar.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsAvatarComponent],\n imports: [CommonModule, AdsIconModule],\n exports: [AdsAvatarComponent],\n})\nexport class AdsAvatarModule {}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'ads-icon-hover',\n styleUrls: ['icon-hover.component.scss'],\n templateUrl: 'icon-hover.component.html',\n})\nexport class AdsIconHoverComponent {\n /**\n * The aria-label for the button\n */\n ariaLabel = input<string>('');\n /**\n * Whether the icon button is disabled.\n */\n disabled = input<boolean>(false);\n\n /**\n * The unique ID for the icon button.\n */\n id = input<string>('');\n\n /**\n * Event emitted when the icon button is clicked.\n */\n clicked = output();\n\n /** @ignore */\n public onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"icon-hover\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.id]=\"id()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { AdsIconHoverComponent } from './icon-hover.component';\n\n@NgModule({\n exports: [AdsIconHoverComponent],\n declarations: [AdsIconHoverComponent],\n})\nexport class AdsIconHoverModule {}\n","import { Component, computed, input } from '@angular/core';\nimport { AdsIconHoverComponent } from '../icon-hover';\nimport { adsIcon } from '@ascentgl/ads-icons/icons';\n\nexport enum BadgeColor {\n primary = 'primary',\n secondary = 'secondary',\n alert = 'alert',\n}\n\n@Component({\n selector: 'ads-numeric-badge',\n templateUrl: './numeric-badge.component.html',\n styleUrls: ['../icon-hover/icon-hover.component.scss', './numeric-badge.component.scss'],\n})\nexport class AdsNumericBadgeComponent extends AdsIconHoverComponent {\n /** choose badge color mode \"primary\" or \"alert\" **/\n color = input<BadgeColor>(BadgeColor.secondary);\n\n /** provide icon name. NOTE: the icon must be registered in icon registry **/\n name = input<adsIcon>('bell');\n\n /** choose ads icon theme **/\n theme = input<'iconPrimary' | 'primary' | 'success' | 'warn' | 'white'>('iconPrimary');\n\n /** set badge value as number **/\n value = input<number>(0);\n\n /** @ignore **/\n calculatedValue = computed<string>(() => {\n return this.value().toString().length > 2 ? '99..' : this.value().toString();\n });\n}\n","<button\n class=\"icon-hover color-{{ color() }}\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.id]=\"id()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick()\"\n>\n <ads-icon\n [name]=\"name()\"\n [size]=\"'sm'\"\n [theme]=\"theme()\"\n [matBadgeSize]=\"'small'\"\n [matBadge]=\"calculatedValue()\"\n ></ads-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatBadge } from '@angular/material/badge';\nimport { AdsNumericBadgeComponent } from './numeric-badge.component';\n\n@NgModule({\n declarations: [AdsNumericBadgeComponent],\n exports: [AdsNumericBadgeComponent],\n imports: [AdsIconModule, MatBadge],\n})\nexport class AdsNumericBadgeModule {}\n","import { signal } from '@angular/core';\n\nexport class BreadcrumbVisualProcessor {\n canScrollLeft = signal<boolean>(false);\n canScrollRight = signal<boolean>(false);\n\n private position: {\n containerWidth: number;\n listWidth: number;\n listX: number;\n } = {\n containerWidth: 0,\n listWidth: 0,\n listX: 0,\n };\n\n constructor(\n private containerElement: HTMLElement,\n private listElement: HTMLElement,\n ) {\n this.scrollActiveIntoView();\n this.calculatePositions();\n this.toggleScrollButtons();\n }\n\n onWindowResize(): void {\n this.calculatePositions();\n\n /**\n * disable animation when we reposition breadcrumb list on window resize\n */\n this.listElement.classList.remove('animated');\n\n /**\n * if list is scrolled to the left, but we have empty space to the right - reposition the list\n * to fill the empty space\n */\n if (this.position.listX < 0) {\n const diff = this.position.containerWidth - this.position.listWidth;\n\n if (this.position.listX < diff) {\n this.applyScrollPos(diff);\n }\n }\n\n this.toggleScrollButtons();\n }\n\n onScrollLeft(): void {\n let [, scrollStep] = this.beforeApplyScrollPos();\n\n /**\n * make sure scrollStep is not more than current x position of the list;\n * otherwise the list will be scrolled too much to the left\n */\n if (scrollStep > this.position.listX * -1) {\n scrollStep = this.position.listX * -1;\n }\n\n /**\n * calculate new list x position (scrolling to the left)\n */\n let listX = this.position.listX + scrollStep;\n\n /**\n * if the remainder of the scrollable width is too small (less than 100px);\n * set listX position to 0\n * NOTE: remainder correction is done to avoid possible extra tiny scroll step remaining\n */\n const remainingScrollWidth = listX * -1;\n\n if (remainingScrollWidth <= 100) {\n listX = 0;\n }\n\n this.applyScrollPos(listX);\n }\n\n onScrollRight(): void {\n const [maxScrollDistance, maxScrollStep] = this.beforeApplyScrollPos();\n\n let scrollStep = maxScrollStep;\n\n /**\n * make sure scrollStep is not less than current x position of the list;\n * otherwise the list will be scrolled too much to the right\n */\n if (scrollStep > maxScrollDistance + this.position.listX) {\n scrollStep = maxScrollDistance + this.position.listX;\n }\n\n /**\n * calculate new list x position (scrolling to the right)\n */\n let listX = Math.round(this.position.listX - scrollStep);\n\n /**\n * if the remainder of the scrollable width is too small (less than 100px);\n * add remainder to the x position to scroll all the way to the right\n * NOTE: remainder correction is done to avoid possible extra tiny scroll step remaining\n */\n const remainingScrollWidth = this.position.listWidth - (listX * -1 + this.position.containerWidth);\n\n if (remainingScrollWidth <= 100) {\n listX -= remainingScrollWidth;\n }\n\n this.applyScrollPos(listX);\n }\n\n private beforeApplyScrollPos(): [number, number] {\n this.calculatePositions();\n\n /**\n * make sure that scrolling is animated\n */\n this.listElement.classList.add('animated');\n\n /**\n * get max scroll distance which is the difference between container width and breadcrumbs list width\n */\n const maxScrollDistance = this.position.listWidth - this.position.containerWidth;\n\n /**\n * calculate max scroll step that is not more than 50% of the list but not less than 50px\n */\n const maxScrollStep = Math.max(maxScrollDistance * 0.5, 50);\n\n return [maxScrollDistance, maxScrollStep];\n }\n\n private applyScrollPos(listX: number): void {\n /**\n * scroll breadcrumb list by changing its left position\n */\n this.listElement.style.left = listX + 'px';\n\n /**\n * store new x position\n */\n this.position.listX = listX;\n\n this.toggleScrollButtons();\n }\n\n private toggleScrollButtons(): void {\n const listIsBiggerThanContainer = this.position.containerWidth < this.position.listWidth;\n\n /**\n * we can scroll to the left if list is bigger than container and current list x position is on 0\n */\n this.canScrollLeft.set(listIsBiggerThanContainer && this.position.listX < 0);\n\n /**\n * we can scroll to the right if list width plus its x position is greater than container width\n * NOTE: since x position is a negative value or null, we add it to list width\n */\n this.canScrollRight.set(\n listIsBiggerThanContainer && this.position.listWidth + this.position.listX > this.position.containerWidth,\n );\n }\n\n private scrollActiveIntoView(): void {\n /**\n * gert active breadcrumb\n */\n const active = this.listElement.querySelector('.breadcrumb.active');\n\n /**\n * if found scroll it into view\n */\n if (active) {\n active.scrollIntoView({ behavior: 'instant', inline: 'center' });\n\n /**\n * replace scrollLeft of the container with x position of the list as we use x position\n * for scrolling\n */\n if (this.containerElement.scrollLeft) {\n this.listElement.style.left = this.containerElement.scrollLeft * -1 + 'px';\n this.containerElement.scrollLeft = 0;\n }\n }\n }\n\n private calculatePositions(): void {\n this.position = {\n containerWidth: this.containerElement.offsetWidth,\n listWidth: this.listElement.offsetWidth,\n listX: this.listElement.offsetLeft,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n})\nexport class AdsIconButtonComponent {\n /**\n * aria-label for the button\n */\n @Input() ariaLabel!: string;\n\n /**\n * The unique ID for the icon button\n */\n @Input() id!: string;\n\n /**\n * Theme color palette for the component\n */\n @Input() theme: 'primary' | 'success' | 'warn' | 'white' = 'primary';\n\n /**\n * Whether the button is disabled\n */\n @Input() disabled = false;\n\n /**\n * Sets the \"type\" attribute on the button\n */\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n}\n","<button\n type=\"button\"\n class=\"ads-icon-btn\"\n [ngClass]=\"['bg-' + theme]\"\n [disabled]=\"disabled\"\n [type]=\"type\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"id\"\n>\n <span class=\"icon-wrapper\">\n <ng-content></ng-content>\n </span>\n</button>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n input,\n OnChanges,\n SimpleChange,\n viewChild,\n} from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconChevronLeft, adsIconChevronRight } from '@ascentgl/ads-icons/icons';\nimport { Breadcrumb } from './breadcrumb.type';\nimport { BreadcrumbVisualProcessor } from './breadcrumb.visual-processor';\nimport { asapScheduler } from 'rxjs';\n\n@Component({\n selector: 'ads-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class AdsBreadcrumbComponent<T> implements OnChanges, AfterViewInit {\n /** @ignore */\n containerRef = viewChild<ElementRef>('container');\n\n /** @ignore */\n listRef = viewChild<ElementRef>('list');\n\n /** provide an array of breadcrumbs of Breadcrumb<T> type */\n breadcrumbs = input.required<Breadcrumb<T>[]>();\n\n /** @ignore */\n visualProcessor?: BreadcrumbVisualProcessor;\n\n /** @ignore */\n constructor(\n private registry: AdsIconRegistry,\n private cdr: ChangeDetectorRef,\n ) {\n this.registry.register([adsIconChevronLeft, adsIconChevronRight]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { breadcrumbs: SimpleChange }): void {\n if (changes.breadcrumbs && !changes.breadcrumbs.isFirstChange()) {\n asapScheduler.schedule(() => this.visualProcessor?.onWindowResize());\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n this.visualProcessor = new BreadcrumbVisualProcessor(\n this.containerRef()?.nativeElement,\n this.listRef()?.nativeElement,\n );\n\n this.cdr.detectChanges();\n }\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n this.visualProcessor?.onWindowResize();\n }\n\n /** @ignore */\n onClick(breadcrumb: Breadcrumb<T>): void {\n breadcrumb.callback(breadcrumb.payload);\n }\n\n /** @ignore */\n scrollLeft(): void {\n this.visualProcessor?.onScrollLeft();\n }\n\n /** @ignore */\n scrollRight(): void {\n this.visualProcessor?.onScrollRight();\n }\n}\n","@if (breadcrumbs().length > 1 && visualProcessor?.canScrollLeft()) {\n <div class=\"scroller-wrapper\">\n <ads-icon-button [type]=\"'button'\" class=\"scroller left\" [theme]=\"'white'\" (click)=\"scrollLeft()\">\n <ads-icon [name]=\"'chevron_left'\" [size]=\"'xxxs'\" [theme]=\"'primary'\" />\n </ads-icon-button>\n </div>\n}\n<div\n class=\"container\"\n #container\n [ngClass]=\"{\n 'can-scroll-left': visualProcessor?.canScrollLeft(),\n 'can-scroll-right': visualProcessor?.canScrollRight(),\n }\"\n>\n <div class=\"list\" #list>\n @for (breadcrumb of breadcrumbs(); track $index) {\n <div\n class=\"breadcrumb\"\n (click)=\"!breadcrumb.active ? onClick(breadcrumb) : null\"\n [ngClass]=\"{ active: breadcrumb.active }\"\n >\n <span class=\"label-primary\">{{ breadcrumb.primaryLabel }}</span>\n </div>\n @if (!$last) {\n <ads-icon class=\"separator\" [name]=\"'chevron_right'\" [size]=\"'xxxxs'\" />\n }\n }\n </div>\n</div>\n@if (breadcrumbs().length > 1 && visualProcessor?.canScrollRight()) {\n <div class=\"scroller-wrapper right\">\n <ads-icon-button class=\"scroller\" [theme]=\"'white'\" (click)=\"scrollRight()\">\n <ads-icon [name]=\"'chevron_right'\" [size]=\"'xxxs'\" [theme]=\"'primary'\" />\n </ads-icon-button>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsIconButtonComponent } from './icon-button.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [AdsIconButtonComponent],\n exports: [AdsIconButtonComponent],\n imports: [CommonModule, MatButtonModule, AdsIconModule],\n})\nexport class AdsIconButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsBreadcrumbComponent } from './breadcrumb.component';\nimport { RouterModule } from '@angular/router';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsIconButtonModule } from '../buttons/icon-button';\n\n@NgModule({\n imports: [CommonModule, RouterModule, AdsIconModule, AdsIconButtonModule],\n declarations: [AdsBreadcrumbComponent],\n exports: [AdsBreadcrumbComponent],\n})\nexport class AdsBreadcrumbModule {}\n","import { Component, computed, input, Signal } from '@angular/core';\n\nexport type Variant = 'primary' | 'error' | 'secondary';\nexport type Size = 'base' | 'sm' | 'xs';\n\n@Component({\n selector: 'ads-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class AdsButtonComponent {\n /** The unique ID for the button */\n id = input<string>('');\n\n /** The button appearance style */\n variant = input<Variant>('primary');\n\n /** Whether the button is disabled */\n disabled = input<boolean>(false);\n\n /** Whether the button is a smaller version */\n size = input<Size>('base');\n\n /** Whether the button is rounded or squared */\n rounded = input<boolean>(false);\n\n /** Sets the \"type\" attribute on the button */\n type = input<'button' | 'submit' | 'reset'>('button');\n\n /** @ignore */\n calcVariant: Signal<Variant> = computed(() => (this.variant() === 'secondary' ? 'primary' : this.variant()));\n\n /** @ignore */\n calcReverse: Signal<boolean> = computed(() => this.variant() === 'secondary');\n}\n","<button\n mat-flat-button\n [id]=\"id()\"\n [class.rounded]=\"rounded()\"\n [class.reverse]=\"calcReverse()\"\n [ngClass]=\"[calcVariant(), size()]\"\n [disabled]=\"disabled()\"\n [disableRipple]=\"true\"\n>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [AdsButtonComponent],\n exports: [AdsButtonComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class AdsButtonModule {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ads-button-container',\n templateUrl: './button-container.component.html',\n styleUrls: ['./button-container.component.scss'],\n})\nexport class AdsButtonContainerComponent {\n /** How buttons in the container should be placed */\n justify = input<'flex-start' | 'flex-end' | 'center'>('flex-start');\n\n /** The gap between elements */\n gap = input<number>(16);\n}\n","<div class=\"button-container\" [style.justify-content]=\"justify()\" [style.gap]=\"gap() + 'px'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsButtonContainerComponent } from './button-container.component';\n\n@NgModule({\n declarations: [AdsButtonContainerComponent],\n imports: [CommonModule],\n exports: [AdsButtonContainerComponent],\n})\nexport class AdsButtonContainerModule {}\n","export enum Colors {\n White = 'white',\n Muted30 = 'muted-30',\n Muted50 = 'muted-50',\n Muted = 'muted',\n Light30 = 'light-30',\n Light80 = 'light-80',\n Light = 'light',\n LightOpacity50 = 'light-opacity-50',\n Medium30 = 'medium-30',\n Medium50 = 'medium-50',\n Medium = 'medium',\n MediumOpacity50 = 'medium-opacity-50',\n Dark10 = 'dark-10',\n Dark30 = 'dark-30',\n Dark50 = 'dark-50',\n Dark80 = 'dark-80',\n Dark90 = 'dark-90',\n Dark = 'dark',\n Black = 'black',\n Primary = 'primary',\n PrimaryHover = 'primary-hover',\n PrimaryPressed = 'primary-pressed',\n Secondary = 'secondary',\n SecondaryHover = 'secondary-hover',\n SecondaryPressed = 'secondary-pressed',\n Link = 'link',\n LinkHover = 'link-hover',\n LinkPressed = 'link-pressed',\n Error = 'error',\n ErrorHover = 'error-hover',\n ErrorPressed = 'error-pressed',\n Success = 'success',\n SuccessHover = 'success-hover',\n SuccessPressed = 'success-pressed',\n Logo = 'logo',\n}\n","import { Component, input } from '@angular/core';\nimport { Colors } from '../general/color-palette/colors.enums';\n\n@Component({\n selector: 'ads-card',\n styleUrls: ['card.component.scss'],\n templateUrl: 'card.component.html',\n})\nexport class AdsCardComponent {\n /**\n * Card border color\n */\n borderColor = input<Colors>(Colors.Light);\n\n /**\n * Card border width\n */\n borderWidth = input<number>(1);\n\n /** @ignore */\n getBorderColor(color: string): string {\n return `var(--color-${color})`;\n }\n}\n","<div\n class=\"card\"\n [ngStyle]=\"{\n borderWidth: borderWidth() + 'px',\n borderColor: getBorderColor(borderColor()),\n }\"\n>\n <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AdsCardComponent } from './card.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsCardComponent],\n declarations: [AdsCardComponent],\n})\nexport class AdsCardModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-tag-container',\n templateUrl: './tag-container.component.html',\n styleUrls: ['./tag-container.component.scss'],\n})\nexport class AdsTagContainerComponent {}\n","<div class=\"tag-container\">\n <ng-content></ng-content>\n</div>\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../../general/color-palette/colors.enums';\nimport { Tag } from './tag.types';\n\n@Component({\n selector: 'ads-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AdsTagComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconCross);\n }\n\n /** The color of the tag */\n color = input.required<Colors>();\n\n /** The unique id of the tag */\n id = input.required<string>();\n\n /** Whether the tag is removeable */\n removable = input<boolean>(true);\n\n /** The text of the tag */\n tag = input.required<string>();\n\n /** Event emitted when the remove icon is clicked */\n remove = output<string>();\n\n /** Event emitted when a tag is selected */\n selected = output<Tag>();\n\n /** @ignore */\n onRemove() {\n this.remove.emit(this.id());\n }\n\n /** @ignore */\n onSelected() {\n this.selected.emit({\n id: this.id(),\n color: this.color(),\n tag: this.tag(),\n });\n }\n\n /** @ignore */\n private darkTitleColorList = [\n Colors.Muted,\n Colors.Light30,\n Colors.Light80,\n Colors.Light,\n Colors.Medium30,\n Colors.Medium50,\n ];\n\n /** @ignore */\n\n isDarkTitle(): boolean {\n return this.darkTitleColorList.includes(this.color());\n }\n\n /** @ignore */\n getBackgroundColor(): string {\n return `var(--color-${this.color()})`;\n }\n\n /** @ignore */\n getTextColor(): string {\n if (this.isDarkTitle()) {\n return `var(--color-${Colors.Dark})`;\n }\n return `var(--color-${Colors.White})`;\n }\n}\n","<div\n class=\"tag\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(),\n color: getTextColor(),\n }\"\n>\n <ng-content></ng-content>\n <span class=\"tag-text\" (click)=\"onSelected()\">{{ tag() }}</span>\n\n @if (removable()) {\n <ads-icon\n [id]=\"'ads-tag-' + id()\"\n name=\"cross\"\n size=\"xxxs\"\n (click)=\"onRemove()\"\n [stroke]=\"isDarkTitle() ? 'dark' : 'white'\"\n />\n }\n</div>\n","import {\n Component,\n effect,\n ElementRef,\n Input,\n input,\n OnChanges,\n OnDestroy,\n signal,\n SimpleChange,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconPlus } from '@ascentgl/ads-icons/icons';\nimport { Subscription } from 'rxjs';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Colors } from '../../general/color-palette/colors.enums';\nimport { Tag } from '../tag';\n\n@Component({\n selector: 'ads-create-tag',\n templateUrl: './create-tag.component.html',\n styleUrls: ['./create-tag.component.scss'],\n})\nexport class AdsCreateTagComponent implements OnChanges, OnDestroy {\n constructor(\n private fb: FormBuilder,\n private registry: AdsIconRegistry,\n ) {\n this.registry.register(adsIconPlus);\n this.createForm();\n\n effect(() => {\n if (this.selectedTag()) {\n this.form.patchValue(this.selectedTag()!);\n this.selectedColor = this.selectedTag()!.color;\n setTimeout(() => {\n if (this.editInput) {\n this.editInput.nativeElement.focus();\n }\n });\n }\n });\n }\n\n /** The total number of tags that can be created */\n limit = input<number>(10);\n\n /** Holds all the tags you create or tags you previously created. Required for proper unique tag validation\n * and total number of existing tags calculation */\n @Input() tags: Tag[] = [];\n\n /** The color palette for the tag background */\n palette = input<Colors[]>([\n Colors.Primary,\n Colors.PrimaryPressed,\n Colors.Secondary,\n Colors.SecondaryPressed,\n Colors.Light30,\n Colors.Light,\n Colors.Medium,\n Colors.Dark10,\n ]);\n\n /** Reference to a tag which can be used for editing existing tags */\n /** @ignore */\n selectedTag = signal<Tag | null>(null);\n\n /** If true - all the letters will be transformed to lowercase */\n lowercase = input<boolean>(false);\n\n /** Total number of characters that can be in input field */\n maxlength = input<number>(30);\n\n /** If true - only alphanumeric characters are allowed */\n alphanumeric = input<boolean>(true);\n\n /** @ignore */\n form!: FormGroup;\n\n /** @ignore */\n selectedColor = '';\n\n /** @ignore */\n showInput = false;\n\n /** @ignore\n * preset positions are required to properly control how overlay is positioned relative to the button\n * NOTE: default positioning is not optimal\n * NOTE: if none of the positions fits - overlay will be positioned automatically\n */\n positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ];\n\n /** @ignore */\n @ViewChild('addInput') addInput?: ElementRef;\n\n /** @ignore */\n @ViewChild('editInput') editInput?: ElementRef;\n\n /** @ignore */\n private tagControlSubscription?: Subscription;\n\n /** @ignore */\n ngOnChanges(changes: { tag?: SimpleChange; palette?: SimpleChange; suggestions?: SimpleChange }): void {\n if (changes.tag && changes.tag.currentValue && this.form) {\n // this.form.patchValue(changes.tag.currentValue);\n // this.selectedColor = changes.tag.currentValue.color;\n // this.showInput = true;\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.tagControlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n addTag(): void {\n if (!this.isValueInvalid()) {\n this.onTagCreated(this.getModifiedTag());\n this.reset();\n }\n }\n\n /** @ignore */\n updateTag(): void {\n if (!this.isValueInvalid()) {\n this.onTagUpdated(this.getModifiedTag());\n this.reset();\n }\n }\n\n /** @ignore */\n onColorChange(color: string): void {\n this.selectedColor = color === this.selectedColor ? '' : color;\n this.form.patchValue({ color: this.selectedColor });\n }\n\n /** @ignore */\n reset(): void {\n this.resetForm();\n this.selectedColor = '';\n this.showInput = false;\n this.selectedTag.set(null);\n }\n\n /** @ignore */\n hide(): void {\n /**\n * reset form if we are closing after editing an existing tag\n * to avoid existing tag being loaded when we create a new one\n */\n if (this.form.value.id) {\n this.reset();\n } else {\n this.showInput = false;\n }\n }\n\n /** @ignore */\n displayInput(): void {\n this.setDefaultSelectedColor();\n this.showInput = true;\n\n setTimeout(() => {\n if (this.addInput) {\n this.addInput.nativeElement.focus();\n }\n });\n }\n\n /** @ignore */\n isValueInvalid(): boolean {\n /**\n * value is invalid if form us invalid\n * OR palette is enabled, but we have no color selected\n * OR tag is not unique\n * tag is not unique if already exists a tag with such name\n * AND color\n * AND current tag's id is different from existing tag's id\n */\n return (\n !this.form.valid ||\n !this.selectedColor ||\n this.tags.filter((tag) => {\n return (\n this.trimTagName(tag.tag) === this.trimTagName(this.form.value.tag) &&\n tag.color === this.form.value.color &&\n tag.id !== this.form.value.id\n );\n }).length > 0\n );\n }\n\n /** @ignore */\n private createForm(): void {\n this.form = this.fb.group({\n tag: new FormControl('', [Validators.required, Validators.maxLength(this.maxlength())]),\n color: new FormControl(''),\n id: new FormControl(''),\n });\n\n this.form.controls.tag.valueChanges.subscribe((value) => {\n const modifiedValue = this.formatTagName(value);\n\n /** update form value only if it got modified*/\n if (modifiedValue !== value) {\n this.form.controls.tag.setValue(modifiedValue, { emitEvent: false });\n }\n });\n }\n\n /** @ignore */\n private resetForm(): void {\n this.form.reset({ tag: '', color: '', id: '' });\n }\n\n /** @ignore */\n private getModifiedTag(): Tag {\n return {\n id: this.form.value.id,\n tag: this.form.value.tag.trim(), //make sure tag value does not contain trailing slash\n color: this.form.value.color,\n };\n }\n\n /** @ignore */\n private setDefaultSelectedColor(): void {\n /**\n * set default color only if tag id is empty - meaning it is a new tag\n */\n if (!this.form.value.id && !this.form.value.color && this.palette.length) {\n this.onColorChange(this.palette()[0]);\n }\n }\n\n /** @ignore */\n private formatTagName(tagName: string): string {\n let formattedName = tagName;\n\n /** if \"alphanumeric\" is true - allow only alphanumerics and spaces */\n if (this.alphanumeric()) {\n formattedName = formattedName.replace(/[^a-z0-9\\s]/gi, '');\n }\n\n /** if \"lowercase\" is true - turn all letters to lowercase */\n if (this.lowercase()) {\n formattedName = formattedName.toLowerCase();\n }\n\n /** do not allow space at the beginning of the string*/\n if (formattedName.startsWith(' ')) {\n formattedName = formattedName.replace(/^\\s+/gm, '');\n }\n\n /** do not allow multi-space sequences*/\n if (formattedName.includes(' ')) {\n formattedName = formattedName.replace(/\\s\\s+/gm, ' ');\n }\n\n return formattedName;\n }\n\n /** @ignore */\n private trimTagName(tagName: string): string {\n return tagName.trim().toLowerCase();\n }\n\n /** @ignore */\n getBackgroundColor(color: string): string {\n return `var(--color-${color})`;\n }\n\n /** @ignore */\n onTagUpdated(tag: Tag): void {\n const existingTag = this.tags.find((existingTag) => existingTag.id === tag.id); // Find existing tag with the same id\n\n if (existingTag) {\n Object.assign(existingTag, tag); // Update existing tag properties\n }\n }\n\n /** @ignore */\n onTagCreated(tag: Tag): void {\n tag.id = (this.tags.length + 1).toString(); // Generate a unique id for the tag - uuid is a 3rd party library\n this.tags.push(tag); // Add the tag to the list of tags\n }\n\n /** @ignore */\n onTagSelect(tag: Tag): void {\n this.selectedTag.set(tag); // Set selectedTag value to open current tag in `ads-create-tag` component\n }\n\n /** @ignore */\n onTagRemove(id: string): void {\n this.tags = this.tags.filter((existingTag) => existingTag.id !== id); // Remove tag from the list of tags\n }\n}\n","<ads-tag-container>\n @for (tag of tags; track tag.id) {\n @if (selectedTag()?.id === tag.id) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #updateTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"updateTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #editInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' | transloco }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\n {{ 'Save' | transloco }}\n </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n } @else {\n <ads-tag\n [tag]=\"tag.tag\"\n [color]=\"tag.color\"\n [id]=\"tag.id\"\n (selected)=\"onTagSelect($event)\"\n (remove)=\"onTagRemove($event)\"\n />\n }\n }\n\n <div class=\"container\">\n @if (showInput) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #addTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #addInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' | transloco }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\"\n >{{ 'Add' | transloco }}\n </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n }\n\n @if (this.tags.length < this.limit()) {\n <ads-button (click)=\"displayInput()\" size=\"xs\">\n {{ 'AddTag' | transloco }}\n </ads-button>\n }\n </div>\n</ads-tag-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTagContainerComponent } from './tag-container.component';\n\n@NgModule({\n declarations: [AdsTagContainerComponent],\n imports: [CommonModule],\n exports: [AdsTagContainerComponent],\n})\nexport class AdsTagContainerModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTagComponent } from './tag.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsTagComponent],\n imports: [CommonModule, AdsIconModule],\n exports: [AdsTagComponent],\n})\nexport class AdsTagModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsCreateTagComponent } from './create-tag.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsButtonModule } from '../../buttons/button';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { AdsTagContainerModule } from '../tag-container';\nimport { AdsTagModule } from '../tag';\n\n@NgModule({\n declarations: [AdsCreateTagComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n OverlayModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsButtonModule,\n TranslocoPipe,\n AdsTagContainerModule,\n AdsTagModule,\n ],\n exports: [AdsCreateTagComponent],\n})\nexport class AdsCreateTagModule {}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\n\nexport type DividerStyle = {\n margin: string | number;\n 'background-color': string;\n};\n\n@Component({\n selector: 'ads-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent implements OnInit {\n /**\n * The divider left and right margin\n */\n @Input() margin: string | number = 0;\n\n /**\n * The divider color\n */\n @Input() color: 'primary' | 'secondary' | 'light' = 'light';\n\n /** @ignore */\n public style!: DividerStyle;\n\n /** @ignore */\n private colors = {\n primary: '--color-primary',\n secondary: '--color-secondary',\n light: '--color-light',\n };\n\n /** @ignore */\n ngOnInit(): void {\n this.setDividerStyle();\n }\n\n /** @ignore */\n private setDividerStyle() {\n this.style = {\n margin: `${this.margin}px`,\n 'background-color': `var(${this.colors[this.color] || this.colors['light']})`,\n };\n }\n}\n","<div [ngStyle]=\"style\" class=\"ads-divider\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DividerComponent } from './divider.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DividerComponent],\n declarations: [DividerComponent],\n})\nexport class AdsDividerModule {}\n","import { dragAndDropListClass } from './drag-and-drop-list.enums';\n\nexport class DomElement {\n constructor(private domElement: HTMLElement) {}\n\n get dom(): HTMLElement {\n return this.domElement;\n }\n\n canDrop(): boolean {\n return !this.dom.classList.contains(dragAndDropListClass.NO_DROP);\n }\n\n canDrag(): boolean {\n return !this.dom.classList.contains(dragAndDropListClass.NO_DRAG);\n }\n\n isDropBlocked(): boolean {\n return this.dom.classList.contains(dragAndDropListClass.DROP_BLOCKED);\n }\n\n makeDraggable(): void {\n this.dom.setAttribute('draggable', 'true');\n }\n\n makeUnDraggable(): void {\n this.dom.removeAttribute('draggable');\n }\n\n unblockDrop(): void {\n this.dom.classList.remove(dragAndDropListClass.DROP_BLOCKED);\n }\n\n clone(): HTMLElement {\n const clone: HTMLElement = this.dom.cloneNode(true) as HTMLElement;\n\n clone.classList.add(dragAndDropListClass.DRAGGED_PLACEHOLDER);\n\n const targetRect: DOMRect = this.dom.getBoundingClientRect();\n\n /**\n * preserve target dimensions\n */\n clone.style.width = targetRect.width + 'px';\n clone.style.height = targetRect.height + 'px';\n\n /**\n * modify clone styles\n */\n Object.assign(clone.style, {\n position: 'fixed', //required to allow free dragging of the clone\n pointerEvents: 'none', // required to allow drag events for items under the clone\n zIndex: '1000', // required to make sure that draggable element is positioned over other elements\n });\n\n return clone;\n }\n\n blockDrop(): void {\n this.dom.classList.add(dragAndDropListClass.DROP_BLOCKED);\n }\n\n draggedOver(): void {\n this.dom.classList.add(dragAndDropListClass.DRAGGED_OVER);\n }\n\n draggedOut(): void {\n this.dom.classList.remove(dragAndDropListClass.DRAGGED_OVER);\n this.unblockDrop();\n }\n\n isDragged(): void {\n this.dom.classList.add(dragAndDropListClass.IS_DRAGGED);\n }\n\n isNotDragged(): void {\n this.dom.classList.remove(dragAndDropListClass.IS_DRAGGED);\n }\n}\n","import { DomElement } from './dom.element';\nimport { Renderer2 } from '@angular/core';\n\ntype COORDS = { x: number; y: number };\n\nexport class DraggedPlaceholder {\n readonly domElement: HTMLElement;\n private readonly positions: { x: number; y: number } = { x: 0, y: 0 };\n private readonly scrollUnsubscribeFunction?: () => void;\n private cursorPos: COORDS = { x: 0, y: 0 };\n\n constructor(\n element: DomElement,\n container: HTMLElement,\n event: DragEvent,\n private renderer: Renderer2,\n ) {\n this.domElement = element.clone();\n\n /**\n * get target element DOMRect data\n */\n const targetRect: DOMRect = element.dom.getBoundingClientRect();\n\n /**\n * save cursor position relative to target element\n * this will help calculate dragged item position relative to the cursor\n */\n this.positions = {\n x: event.clientX - targetRect.left,\n y: event.clientY - targetRect.top,\n };\n\n this.hideDefaultDragPlaceholder(event);\n\n /**\n * add clone to the list\n */\n container.append(this.domElement);\n\n this.scrollUnsubscribeFunction = this.renderer.listen('document', 'scroll', (): void => {\n this.setDomPosition();\n });\n\n /**\n * make initial placeholder positioning\n */\n this.reposition(event);\n }\n\n remove(): void {\n this.domElement.remove();\n\n if (this.scrollUnsubscribeFunction) {\n this.scrollUnsubscribeFunction();\n }\n }\n\n reposition(event: MouseEvent): void {\n this.cursorPos = { x: event.clientX, y: event.clientY };\n this.setDomPosition();\n }\n\n private setDomPosition(): void {\n /**\n * position placeholder relative to the cursor\n */\n this.domElement.style.left = this.cursorPos.x - this.positions.x + 'px';\n this.domElement.style.top = this.cursorPos.y - this.positions.y + 'px';\n }\n\n private hideDefaultDragPlaceholder(event: DragEvent): void {\n const placeholder: HTMLImageElement = document.createElement('img');\n placeholder.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';\n\n Object.assign(placeholder.style, {\n display: 'block',\n width: '0',\n height: '0',\n });\n\n /**\n * replace default browser drag placeholder with transparent image\n */\n event.dataTransfer?.setDragImage(placeholder, 0, 0);\n }\n}\n","import { AfterContentInit, Component, ElementRef, Input, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DomElement } from './dom.element';\nimport { DraggedPlaceholder } from './dragged.placeholder';\nimport { dragAndDropListClass } from './drag-and-drop-list.enums';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\nexport type DROP_CALLBACK_INDEXES = { before: number; after: number };\nexport type UNSUBSCRIBE_FUNCTIONS_COLLECTION = GENERIC_COLLECTION<() => void>;\n\n@Component({\n selector: 'ads-drag-and-drop-list',\n styleUrls: ['drag-and-drop-list.component.scss'],\n templateUrl: 'drag-and-drop-list.component.html',\n})\nexport class AdsDragAndDropListComponent implements OnInit, AfterContentInit, OnDestroy {\n /** @ignore */\n @ViewChild('draggableList', { read: ElementRef, static: true }) draggableList?: ElementRef;\n /** @ignore */\n @ViewChild('dynamicContent', { read: ElementRef, static: true }) dynamicContent?: ElementRef;\n\n /** This external method will be called after the item is dropped into new position */\n @Input() dropCallback?: (sourceIndexes: DROP_CALLBACK_INDEXES, targetIndexes: DROP_CALLBACK_INDEXES) => void;\n\n /** Callback function that can be used to determine if item can be dropped on the selected target */\n @Input() canDropCallback?: (sourceIndex: number, targetIndex: number) => boolean;\n\n /** Callback function that can be used to determine if item can be dragged */\n @Input() canDragCallback?: (sourceIndex: number) => boolean;\n\n /** If total items count is less than this value, drag&drop will be disabled */\n @Input() minCountToDrag = 2;\n\n /** Provide subject element, which will allow to refresh the list. NOTE: refreshing is required every time the list is updated from the outside */\n @Input() refresh: Subject<void> = new Subject<void>();\n\n /** @ignore */\n private draggedElement: DomElement | null = null;\n /** @ignore */\n private draggedPlaceholder: DraggedPlaceholder | null = null;\n /** @ignore */\n private unsubscribeFromDocumentDragOver?: () => void;\n /** @ignore */\n private unsubscribeFunctions: Map<HTMLElement, UNSUBSCRIBE_FUNCTIONS_COLLECTION> = new Map();\n /** @ignore */\n private ngUnsubscribe: Subject<void> = new Subject();\n\n private draggedOverElement: DomElement | null = null;\n\n /** @ignore */\n constructor(private renderer: Renderer2) {}\n\n /** @ignore */\n ngOnInit(): void {\n /**\n * if refresh command was emitted - refresh elements\n * NOTE: we do it in timeout to allow DOM to redraw first\n */\n this.refresh.pipe(takeUntil(this.ngUnsubscribe)).subscribe((): void => {\n setTimeout(() => this.refreshElements());\n });\n }\n\n /** @ignore */\n ngAfterContentInit(): void {\n this.refreshElements();\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.unsubscribeFromEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /** @ignore */\n onListDragLeave(event: DragEvent): void {\n /**\n * if we dragged out of the element - unselect it\n */\n if (\n event.relatedTarget instanceof HTMLElement &&\n this.draggedOverElement &&\n !this.draggedOverElement.dom.contains(event.relatedTarget)\n ) {\n this.unselectDraggedOverElement();\n }\n }\n\n /** @ignore */\n onDragStart = (event: DragEvent): void => {\n /**\n * NOTE: register dragover for document body to overcome Firefox issue where clientX and clientY are 0 in 'drag' event\n */\n this.unsubscribeFromDocumentDragOver = this.renderer.listen(document.body, 'dragover', this.onDragOverBody);\n\n /**\n * store currently dragged element\n */\n this.draggedElement = this.getElement(event);\n\n /**\n * replace default browser dragged element with the custom one\n */\n this.draggedPlaceholder = new DraggedPlaceholder(\n this.draggedElement,\n this.draggableList?.nativeElement,\n event,\n this.renderer,\n );\n\n /**\n * mark dragged element with special class\n */\n this.draggedElement.isDragged();\n\n /**\n * block drop into the dragged element\n */\n this.draggedElement.blockDrop();\n };\n\n /** @ignore */\n onDragEnd = (): void => {\n /**\n * remove special class from dragged element mark dragged element\n */\n this.draggedElement?.isNotDragged();\n\n this.draggedElement = null;\n\n /**\n * if we subscribed to document dragover - unsubscribe from it\n */\n if (this.unsubscribeFromDocumentDragOver) {\n this.unsubscribeFromDocumentDragOver();\n }\n\n /**\n * remove dragged placeholder from DOM\n */\n this.draggedPlaceholder?.remove();\n this.draggedPlaceholder = null;\n };\n\n /** @ignore\n * NOTE: we rely on onDragOver instead of DragEnter and DragLeave because those events also fire when we enter and leave\n * child elements - the behavior we don't need\n */\n onDragOver = (event: DragEvent): void => {\n /**\n * NOTE: this is required for \"drop\" event to work\n */\n event.preventDefault();\n\n /**\n * do nothing if we have no dragged element, or we are still over the same element\n */\n if (!this.draggedElement || this.draggedOverElement?.dom === event.currentTarget) {\n return;\n }\n\n /**\n * make sure previous dragged over element is marked as \"dragged out\"\n */\n this.unselectDraggedOverElement();\n\n this.draggedOverElement = this.getElement(event);\n\n /**\n * do nothing if dragged element and element, we are dragging over is the same\n */\n if (this.isDraggingOverSelf(this.draggedOverElement)) {\n return;\n }\n\n this.draggedOverElement.draggedOver();\n\n /**\n * if drop is blocked - add special class to the dragged element\n */\n if (this.canDrop()) {\n this.draggedOverElement.unblockDrop();\n } else {\n this.draggedOverElement.blockDrop();\n }\n };\n\n /** @ignore */\n onDrop = (event: DragEvent): void => {\n /**\n * if drop is blocked - do nothing\n */\n if (!this.canDrop()) return;\n\n this.unselectDraggedOverElement();\n\n const target: DomElement = this.getElement(event);\n\n /**\n * preserve drop blocked state before cleaning classes - it will be needed later\n */\n const isTargetBlocked: boolean = target.isDropBlocked();\n\n this.getElement(event).draggedOut();\n\n /**\n * if we have no dragged element, we are dropping on self or target is blocked - do nothing\n */\n if (!this.draggedElement || this.isDraggingOverSelf(target) || isTargetBlocked) {\n return;\n }\n\n const sourceIndex: number = this.getElementIndex(this.draggedElement);\n const targetIndex: number = this.getElementIndex(target);\n\n /**\n * if source index is less than target index - means we are dragging down;\n * otherwise we are dragging up\n * NOTE: we utilise \"before\" method for element insertion in both cases, because \"after\" can\n * break order of \"drag-static\" elements (if they are present)\n */\n if (sourceIndex < targetIndex) {\n const allElements: HTMLElement[] = this.getAllElements();\n\n /**\n * loop through all element beginning with next to the currently dragged element\n * and ending with drop target element and move all of them up;\n * this will result in target element being moved down to required position\n */\n for (let i: number = sourceIndex + 1; i <= targetIndex; i++) {\n const target: HTMLElement = allElements[i];\n\n if (target) {\n this.draggedElement.dom.before(target);\n }\n }\n } else {\n target.dom.before(this.draggedElement.dom);\n }\n\n /**\n * if possible emit indexes old and new indexes of the repositioned items\n */\n if (this.dropCallback) {\n this.dropCallback(\n {\n before: sourceIndex,\n after: this.getElementIndex(this.draggedElement),\n },\n {\n before: targetIndex,\n after: this.getElementIndex(target),\n },\n );\n }\n };\n\n /** @ignore */\n onMouseEnter = (event: MouseEvent): void => {\n this.setCanDrag(this.getElement(event));\n };\n\n /** @ignore */\n private unselectDraggedOverElement(): void {\n /**\n * make sure previous dragged over element is marked as \"dragged out\"\n */\n this.draggedOverElement?.draggedOut();\n this.draggedOverElement = null;\n }\n\n /** @ignore */\n private setCanDrag(element: DomElement): void {\n /**\n * if special class is set for the element - forbid dragging\n */\n if (!element.canDrag()) {\n element.makeUnDraggable();\n return;\n }\n\n /**\n * make sure dragging the item is not forbidden by external function\n */\n if (this.canDragCallback) {\n if (this.canDragCallback(this.getElementIndex(element))) {\n element.makeDraggable();\n } else {\n element.makeUnDraggable();\n }\n return;\n }\n element.makeDraggable();\n }\n\n /** @ignore */\n private onDragOverBody = (event: DragEvent): void => {\n this.draggedPlaceholder?.reposition(event);\n };\n\n /** @ignore */\n private canDrop(): boolean {\n if (!this.draggedElement || !this.draggedOverElement) return false;\n\n /**\n * if special class is set for the element - forbid dropping;\n * otherwise make sure dropping over the item is not forbidden by external function\n */\n if (!this.draggedOverElement.canDrop()) {\n return false;\n } else if (this.canDropCallback) {\n return this.canDropCallback(\n this.getElementIndex(this.draggedElement),\n this.getElementIndex(this.draggedOverElement),\n );\n }\n\n return true;\n }\n\n /** @ignore */\n private refreshElements(): void {\n /**\n * unsubscribe from all event listeners\n */\n this.unsubscribeFromEventListeners();\n\n /**\n * make sure no placeholder are still visible\n */\n document.querySelectorAll('.' + dragAndDropListClass.DRAGGED_PLACEHOLDER).forEach((element) => {\n element.remove();\n });\n\n /**\n * get all elements that can participate in drag and drop\n */\n const elements: HTMLElement[] = this.getAllElements();\n\n /**\n * make sure we have enough elements to continue\n */\n if (elements.length < this.minCountToDrag) {\n return;\n }\n\n /**\n * add required callbacks to all elements,\n * preserving their unsubscribe functions\n */\n elements.forEach((element: HTMLElement): void => {\n const functions: UNSUBSCRIBE_FUNCTIONS_COLLECTION = {};\n\n functions['dragstart'] = this.renderer.listen(element, 'dragstart', this.onDragStart);\n functions['dragend'] = this.renderer.listen(element, 'dragend', this.onDragEnd);\n functions['dragover'] = this.renderer.listen(element, 'dragover', this.onDragOver);\n functions['drop'] = this.renderer.listen(element, 'drop', this.onDrop);\n functions['mouseenter'] = this.renderer.listen(element, 'mouseenter', this.onMouseEnter);\n\n this.unsubscribeFunctions.set(element, functions);\n });\n }\n\n /** @ignore */\n private unsubscribeFromEventListeners(): void {\n this.unsubscribeFunctions.forEach((collection) => {\n Object.values(collection).forEach((func) => func());\n });\n\n this.unsubscribeFunctions = new Map();\n }\n\n /** @ignore */\n private getAllElements(): HTMLElement[] {\n const result: HTMLElement[] = [];\n\n if (this.draggableList) {\n /**\n * loop through immediate children of the list\n */\n (<HTMLElement[]>Array.from(this.draggableList.nativeElement.children)).forEach((element: HTMLElement): void => {\n /**\n * element is static if it has both \"no-drop\" and \"no-drag\" classes\n */\n const isStatic: boolean =\n element.classList.contains(dragAndDropListClass.NO_DROP) &&\n element.classList.contains(dragAndDropListClass.NO_DRAG);\n\n /**\n * ignore static elements and dragged placeholder element from the list\n */\n if (!isStatic && !element.classList.contains(dragAndDropListClass.DRAGGED_PLACEHOLDER)) {\n result.push(element);\n }\n });\n }\n\n return result;\n }\n\n /** @ignore */\n private getElement(event: DragEvent | MouseEvent): DomElement {\n return new DomElement(<HTMLElement>event.currentTarget);\n }\n\n /** @ignore */\n private getElementIndex(element: DomElement): number {\n return this.getAllElements().indexOf(element.dom);\n }\n\n /** @ignore */\n private isDraggingOverSelf(element: DomElement | null): boolean {\n return this.draggedElement?.dom === element?.dom;\n }\n}\n","<div class=\"draggable-list\" #draggableList (dragleave)=\"onListDragLeave($event)\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsDragAndDropListComponent } from './drag-and-drop-list.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsDragAndDropListComponent],\n declarations: [AdsDragAndDropListComponent],\n})\nexport class AdsDragAndDropListModule {}\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\n\nexport type ErrorPageConfig = {\n code: number;\n icon?: adsIcon;\n message: string;\n summary?: string;\n infoColumns?: ErrorPageInfoColumn[];\n showBackButton?: boolean;\n backButtonLabel?: string;\n showHomeButton?: boolean;\n homeButtonLabel?: string;\n};\n\nexport type ErrorPageInfoColumn = {\n header?: string;\n body: string;\n alignment?: 'left' | 'right' | 'center' | 'justify';\n};\n\nexport enum ErrorPageDefault {\n backButtonLabel = 'Go Back',\n homeButtonLabel = 'Return Home',\n errorCode = 404,\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n SimpleChange,\n ViewChild,\n} from '@angular/core';\nimport { ErrorPageConfig, ErrorPageDefault } from './error-page.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { Location } from '@angular/common';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconWarning } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-error-page',\n templateUrl: './error-page.component.html',\n styleUrls: ['./error-page.component.scss'],\n})\nexport class AdsErrorPageComponent implements OnChanges, AfterViewInit {\n constructor(\n private cdr: ChangeDetectorRef,\n private registry: AdsIconRegistry,\n private location: Location,\n private sanitizer: DomSanitizer,\n ) {\n /** Register basic icons. NOTE: any existing icon can be used if registered before */\n this.registry.register([adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch]);\n }\n\n /** Path to logo image file */\n @Input() logoSrc = 'https://cdn.ascentgl.com/img/ascent-logo-white.svg';\n\n /** Alt text for logo image */\n @Input() logoAlt = 'Ascent Global Logistics';\n\n /** Error page configuration object */\n @Input() config: ErrorPageConfig = {\n code: 404,\n message: 'This Page Looks a Little Lost',\n };\n\n /** @ignore */\n iconAsSvg?: SafeHtml;\n\n /** @ignore */\n defaults: typeof ErrorPageDefault = ErrorPageDefault;\n\n /** @ignore */\n @ViewChild('errorRepresentation') errorRepresentation?: ElementRef;\n\n /** @ignore */\n @ViewChild('errorCode') errorCode?: ElementRef;\n\n /** @ignore */\n @ViewChild('codeImage') codeImage?: ElementRef;\n\n /** @ignore */\n ngOnChanges(changes: { config: SimpleChange }): void {\n if (changes.config && changes.config.currentValue) {\n this.setIcon();\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n /**this method is required to properly calculate error code size and scale when component is being loaded,\n * further recalculation will happen on window resize*/\n this.cdr.detectChanges();\n }\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n /** this method is needed to activate on resize change detection in the component */\n }\n\n /** @ignore */\n back(): void {\n this.location.back();\n }\n\n /** @ignore */\n adjustStyles(): { fontSize?: string; lineHeight?: string; scale?: number } {\n if (!this.errorRepresentation || !this.errorCode) return {};\n\n /**\n * NOTE: error code font size is calculated based on error representation height,\n * so that error code fits vertically\n * NOTE: error code scale is calculated based on error representation width,\n * so that error code fits horizontally\n */\n return {\n fontSize: this.errorRepresentation.nativeElement.offsetHeight + 'px',\n lineHeight: this.errorRepresentation.nativeElement.offsetHeight + 'px',\n scale:\n this.errorRepresentation.nativeElement.offsetWidth < this.errorCode.nativeElement.offsetWidth\n ? this.errorRepresentation.nativeElement.offsetWidth / this.errorCode.nativeElement.offsetWidth\n : 1,\n };\n }\n\n /** @ignore */\n private setIcon(): void {\n if (this.config.icon) {\n let svg = this.registry.get(this.config.icon);\n\n if (!svg) {\n svg = this.registry.get('warning');\n console.warn(`Icon \"${this.config.icon}\" not found`);\n }\n\n this.iconAsSvg = this.sanitizer.bypassSecurityTrustHtml(<string>svg);\n } else {\n this.iconAsSvg = undefined;\n }\n }\n}\n","<div class=\"error-page-container\">\n <div class=\"body\">\n <div class=\"body-header\"><img [src]=\"logoSrc\" [alt]=\"logoAlt\" /></div>\n <div class=\"body-error-representation\" #errorRepresentation [ngClass]=\"{ svg: iconAsSvg }\">\n <div *ngIf=\"iconAsSvg; else code\" class=\"error-icon {{ config.icon }}\" [innerHTML]=\"iconAsSvg\"></div>\n <ng-template #code>\n <span class=\"error-code\" #errorCode [ngStyle]=\"adjustStyles()\">\n {{ config.code || defaults.errorCode }}\n </span>\n </ng-template>\n </div>\n <div class=\"body-error-message\" *ngIf=\"config.message\">{{ config.message }}</div>\n <div class=\"body-error-summary\" *ngIf=\"config.summary\">{{ config.summary }}</div>\n </div>\n <div class=\"footer\" *ngIf=\"config.infoColumns?.length || config.showHomeButton || config.showBackButton\">\n <div class=\"footer-info-columns\" *ngIf=\"config.infoColumns?.length\">\n <!-- default alignment for single column is \"center\", otherwise - \"left\" -->\n <div\n *ngFor=\"let column of config.infoColumns\"\n class=\"footer-info-column\"\n [ngStyle]=\"{\n 'text-align': column.alignment ? column.alignment : (config.infoColumns?.length ?? 1) > 1 ? 'left' : 'center',\n }\"\n >\n <div class=\"footer-column-header\" *ngIf=\"column.header\">{{ column.header }}</div>\n <div class=\"footer-column-body\" [innerHTML]=\"column.body\"></div>\n </div>\n </div>\n <div class=\"footer-buttons\" *ngIf=\"config.showHomeButton || config.showBackButton\">\n <ads-button *ngIf=\"config.showBackButton\" variant=\"secondary\" (click)=\"back()\">{{\n config.backButtonLabel || defaults.backButtonLabel\n }}</ads-button>\n <ads-button *ngIf=\"config.showHomeButton\" variant=\"primary\" routerLink=\"/\">{{\n config.homeButtonLabel || defaults.homeButtonLabel\n }}</ads-button>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-error-page-code',\n template: ``,\n})\nexport class AdsErrorPageCodeComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsErrorPageCodeComponent } from './error-page-code.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AdsErrorPageCodeComponent],\n exports: [AdsErrorPageCodeComponent],\n})\nexport class AdsErrorPageCodeModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsErrorPageComponent } from './error-page.component';\nimport { AdsButtonModule } from '../buttons/button';\nimport { RouterModule } from '@angular/router';\nimport { AdsErrorPageCodeModule } from './error-page-code';\n\n/**\n * todo: remove AdsErrorPageCodeModule after POD is updated\n * NOTE: currently AdsErrorPageCodeModule is provided as legacy to avoid POD compilation errors\n */\n@NgModule({\n declarations: [AdsErrorPageComponent],\n imports: [CommonModule, AdsButtonModule, RouterModule, AdsErrorPageCodeModule],\n exports: [AdsErrorPageComponent],\n})\nexport class AdsErrorPageModule {}\n","import { Component, Input } from '@angular/core';\nimport { Copyright, Link } from './footer.component.types';\n\n@Component({\n selector: 'ads-footer',\n styleUrls: ['footer.component.scss'],\n templateUrl: 'footer.component.html',\n})\nexport class AdsFooterComponent {\n /**\n * Alt text for the footer logo\n */\n @Input() alt = 'Logo';\n\n /**\n * Copyright text to display\n */\n @Input() copyright: Copyright = {\n text: `© ${new Date().getFullYear()} Ads™ is an Ascent Global Logistics Technology`,\n };\n\n /**\n * Links to display in the footer\n */\n @Input() links: Link[] = [];\n\n /**\n * Path to the logo to display\n */\n @Input() logoSrc?: string;\n}\n","<div class=\"footer\">\n <div class=\"links\">\n @for (link of links; track $index) {\n <a class=\"tertiary-link text-xs\" [href]=\"link.href\" [target]=\"link.target || '_self'\">{{ link.text }}</a>\n }\n </div>\n <div class=\"footer-right\">\n <div class=\"copyright\">\n @if (copyright.href) {\n <a\n class=\"secondary-link text-xs\"\n [href]=\"copyright.href\"\n [target]=\"copyright.target || '_self'\"\n [innerHtml]=\"copyright.text\"\n ></a>\n } @else {\n <span [innerHtml]=\"copyright.text\"></span>\n }\n </div>\n @if (logoSrc) {\n <div class=\"logo\">\n <img [attr.src]=\"logoSrc\" alt=\"{{ alt }}\" />\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsFooterComponent } from './footer.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AdsFooterComponent],\n declarations: [AdsFooterComponent],\n})\nexport class AdsFooterModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-footer-container',\n styleUrls: ['footer-container.component.scss'],\n templateUrl: 'footer-container.component.html',\n})\nexport class AdsFooterContainerComponent {}\n","<footer>\n <ng-content></ng-content>\n</footer>\n","import { NgModule } from '@angular/core';\nimport { AdsFooterContainerComponent } from './footer-container.component';\n\n@NgModule({\n exports: [AdsFooterContainerComponent],\n declarations: [AdsFooterContainerComponent],\n})\nexport class AdsFooterContainerModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ads-header',\n styleUrls: ['header.component.scss'],\n templateUrl: 'header.component.html',\n})\nexport class AdsHeaderComponent {}\n","<div class=\"header\">\n <div class=\"addon-left\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <ng-content select=\"[logo]\"></ng-content>\n <div class=\"addon-right\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AdsHeaderComponent } from './header.component';\n\n@NgModule({\n exports: [AdsHeaderComponent],\n declarations: [AdsHeaderComponent],\n})\nexport class AdsHeaderModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-header-container',\n styleUrls: ['header-container.component.scss'],\n templateUrl: 'header-container.component.html',\n})\nexport class AdsHeaderContainerComponent {\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<header [class.mobile]=\"isMobile\">\n <ng-content></ng-content>\n</header>\n","import { NgModule } from '@angular/core';\n\nimport { AdsHeaderContainerComponent } from './header-container.component';\n\n@NgModule({\n exports: [AdsHeaderContainerComponent],\n declarations: [AdsHeaderContainerComponent],\n})\nexport class AdsHeaderContainerModule {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ads-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.scss'],\n})\nexport class AdsLinkButtonComponent {\n /** The unique ID for the button */\n id = input<string>('');\n\n /** Whether the button is disabled */\n disabled = input<boolean>(false);\n}\n","<button mat-flat-button [id]=\"id()\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\n <ng-content select=\"[icon]\"></ng-content>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AdsLinkButtonComponent } from './link-button.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsLinkButtonComponent],\n exports: [AdsLinkButtonComponent],\n imports: [CommonModule, MatButtonModule, AdsIconModule],\n})\nexport class AdsLinkButtonModule {}\n","import { Component, HostListener, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'ads-primary-logo',\n styleUrls: ['primary-logo.component.scss'],\n templateUrl: 'primary-logo.component.html',\n})\nexport class AdsPrimaryLogoComponent implements OnInit {\n isMobile = false;\n\n /**\n * Mobile width\n */\n mobileWidth = input<number>(768);\n\n /**\n * Whether the navigation is collapsed\n */\n isCollapsed = input<boolean>(false);\n\n /** @ignore */\n @HostListener('window:resize', ['$event'])\n onResize() {\n this.checkScreenSize();\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.checkScreenSize();\n }\n\n /** @ignore */\n private checkScreenSize(): void {\n this.isMobile = window.innerWidth <= this.mobileWidth();\n }\n}\n","<picture [ngClass]=\"{ full: !isCollapsed() }\">\n @if (isMobile || isCollapsed()) {\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"32\" viewBox=\"0 0 24 32\">\n <path\n d=\"M20.5547 3.69959C18.4527 1.6106 15.6421 0.377465 12.6734 0.241829C9.70483 0.106194 6.79227 1.07784 4.50651 2.96635V0.663115H0V31.994L4.50218 27.517V21.1981C6.86303 23.1293 9.87957 24.0849 12.9287 23.8677C15.9778 23.6504 18.8265 22.2769 20.8864 20.0308C22.9463 17.7848 24.06 14.8377 23.9975 11.7985C23.935 8.75926 22.701 5.85999 20.5504 3.69959H20.5547ZM12.1446 19.6627C10.6356 19.6669 9.15923 19.2258 7.90244 18.3953C6.64565 17.5647 5.66496 16.3819 5.08451 14.9968C4.50406 13.6116 4.34996 12.0864 4.64172 10.6141C4.93348 9.14178 5.65798 7.78868 6.7235 6.72608C7.78901 5.66348 9.14763 4.93917 10.6273 4.64484C12.107 4.35051 13.6413 4.49941 15.0359 5.07268C16.4304 5.64595 17.6226 6.61781 18.4614 7.86521C19.3002 9.11262 19.748 10.5795 19.748 12.0801C19.7468 14.087 18.9461 16.0118 17.5211 17.4329C16.096 18.8541 14.1628 19.6558 12.1446 19.6627Z\"\n />\n </svg>\n } @else {\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"35\" viewBox=\"0 0 80 35\">\n <path\n d=\"M15.4308 12.8987C13.8528 11.3239 11.7428 10.3942 9.51421 10.292C7.28561 10.1897 5.09909 10.9222 3.38313 12.346V10.6096H0V34.2293L3.37987 30.8542V26.0905C5.15222 27.5464 7.41679 28.2668 9.70582 28.103C11.9948 27.9393 14.1334 26.9038 15.6799 25.2105C17.2263 23.5173 18.0623 21.2956 18.0154 19.0043C17.9685 16.7131 17.0421 14.5274 15.4276 12.8987H15.4308ZM9.11719 24.933C7.98435 24.9362 6.87602 24.6037 5.93252 23.9775C4.98903 23.3513 4.2528 22.4597 3.81704 21.4155C3.38128 20.3712 3.2656 19.2213 3.48463 18.1114C3.70366 17.0015 4.24756 15.9814 5.04746 15.1803C5.84737 14.3793 6.86731 13.8332 7.97815 13.6113C9.089 13.3894 10.2408 13.5017 11.2877 13.9339C12.3347 14.366 13.2296 15.0987 13.8593 16.0391C14.4891 16.9795 14.8252 18.0853 14.8252 19.2166C14.8244 20.7296 14.2232 22.1806 13.1534 23.252C12.0836 24.3234 10.6323 24.9278 9.11719 24.933Z\"\n />\n <path\n d=\"M38.2118 19.2167C38.2119 17.2546 37.565 15.3472 36.3711 13.7889C35.1772 12.2306 33.5028 11.1082 31.6064 10.5951C29.71 10.082 27.6972 10.2067 25.8788 10.9499C24.0605 11.6932 22.5378 13.0137 21.5459 14.7074C20.5541 16.4011 20.1483 18.3737 20.3912 20.3207C20.6341 22.2677 21.5122 24.0807 22.8899 25.4796C24.2676 26.8785 26.0682 27.7855 28.0136 28.0605C29.9589 28.3355 31.9409 27.9632 33.6532 27.0011C34.9526 26.2641 36.0481 25.216 36.841 23.951L34.1058 22.2439C33.5193 23.1737 32.677 23.9151 31.6797 24.3794C30.6823 24.8437 29.5722 25.0112 28.482 24.862C27.3917 24.7128 26.3677 24.2532 25.5322 23.538C24.6967 22.8229 24.0852 21.8825 23.7708 20.8295H38.2151L38.2118 19.2167ZM23.7708 17.6071C24.1208 16.4233 24.8449 15.3844 25.835 14.6454C26.825 13.9065 28.0279 13.5072 29.2639 13.5072C30.5 13.5072 31.7028 13.9065 32.6929 14.6454C33.6829 15.3844 34.407 16.4233 34.757 17.6071H23.7708Z\"\n />\n <path d=\"M66.3569 10.3986H63.0128V28.0972H66.3569V10.3986Z\" />\n <path d=\"M71.14 19.2495L80 28.0972H75.4837L66.6205 19.2495L75.4837 10.3986H80L71.14 19.2495Z\" />\n <path d=\"M56.5265 0H41.304V2.84191H56.5265V0Z\" />\n <path d=\"M40.5882 28.0971H37.0032L48.9174 5.35858L60.8316 28.0971H57.2466L48.9174 12.2L40.5882 28.0971Z\" />\n </svg>\n }\n</picture>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsPrimaryLogoComponent } from './primary-logo.component';\n\n@NgModule({\n imports: [CommonModule, NgOptimizedImage],\n exports: [AdsPrimaryLogoComponent],\n declarations: [AdsPrimaryLogoComponent],\n})\nexport class AdsPrimaryLogoModule {}\n","import { Component, input } from '@angular/core';\n\nexport enum AdsAscentLogoColor {\n Regular = 'regular',\n Teal = 'teal',\n}\n\n@Component({\n selector: 'ads-ascent-logo',\n styleUrls: ['ascent-logo.component.scss'],\n templateUrl: 'ascent-logo.component.html',\n})\nexport class AdsAscentLogoComponent {\n /** @ignore */\n protected readonly AscentLogoColor = AdsAscentLogoColor;\n\n /**\n * Logo size\n */\n size = input<'large' | 'small'>('large');\n\n /**\n * Logo color\n */\n color = input<AdsAscentLogoColor>(AdsAscentLogoColor.Teal);\n}\n","<picture>\n @if (color() === AscentLogoColor.Teal) {\n <svg [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\n <g clip-path=\"url(#clip0_353_5425)\">\n <path\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\n fill=\"url(#paint0_linear_353_5425)\"\n />\n <path\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\n fill=\"#004987\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_353_5425\"\n x1=\"7.54584\"\n y1=\"34.3843\"\n x2=\"33.8846\"\n y2=\"8.04551\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#004987\" />\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\n </linearGradient>\n <clipPath id=\"clip0_353_5425\">\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n } @else {\n <svg [ngClass]=\"size()\" class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\n <g clip-path=\"url(#clip0_353_5433)\">\n <path\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\n />\n <path\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1526 76.7539 24.6177C77.7336 24.969 78.7665 25.149 79.8074 25.1498C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8562 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5436 71.586 13.8564C71.5595 12.9759 71.7429 12.1018 72.121 11.3061C72.4991 10.5105 73.0611 9.81626 73.7605 9.28079C75.2132 8.12724 77.1194 7.55047 79.4789 7.55047C80.8634 7.5479 82.2409 7.74582 83.5687 8.13805C84.9587 8.56663 86.2811 9.18967 87.4966 9.98866L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1307 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5195 76.1131 14.7445 76.3282 14.9205C77.0137 15.3434 77.7851 15.6074 78.586 15.6932L82.1669 16.3779C84.2025 16.7572 85.7108 17.4235 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4813 86.5571 26.2034 85.8311 26.7783C85.0386 27.3947 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6829 79.9092 28.6752C78.2476 28.6907 76.5935 28.4504 75.005 27.9627C73.5821 27.5421 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1472 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3642 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1036C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7304 92.0937 11.5996 93.0296 10.6463C93.9655 9.69289 95.0824 8.93607 96.3148 8.42026C97.5937 7.87281 98.9719 7.59559 100.363 7.60599C101.907 7.59932 103.436 7.90297 104.86 8.4989C106.244 9.06667 107.488 9.92862 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4956C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8303 98.2998 24.153C99.0371 24.4758 99.8358 24.6343 100.641 24.6177ZM127.581 25.6772C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6056 109.082 20.9077 109.089 18.1036C109.079 16.6808 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5994C112.837 9.63567 113.942 8.87096 115.167 8.3528C116.392 7.83465 117.71 7.57413 119.04 7.58749C120.334 7.57287 121.616 7.82964 122.804 8.34125C123.992 8.85286 125.06 9.60792 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.0851V19.2278H113.623C113.806 20.7609 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8028C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5173 124.569 22.9059L127.581 25.6772ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6552C116.529 11.8936 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0156 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89283H135.936V11.2332C136.622 10.1079 137.575 9.17001 138.712 8.50353C139.842 7.8725 141.119 7.55316 142.413 7.57823C143.355 7.54697 144.292 7.71366 145.164 8.06751C146.037 8.42136 146.826 8.95449 147.479 9.63241C148.138 10.33 148.651 11.1513 148.989 12.0488C149.327 12.9462 149.484 13.9019 149.45 14.8604V28.2773H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2586 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.5571H150.672V7.89283H154.785V4.71442L159.383 1.30005V7.89283H164.121V11.5571H159.383V21.8927C159.383 22.8982 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.3801 163.024 28.467C162.37 28.555 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.2 154.778 24.7827 154.785 22.9105ZM66.6681 9.49362C65.1876 8.22287 63.1396 7.58749 60.5241 7.58749C59.1392 7.59189 57.7598 7.76274 56.4157 8.0964C55.5404 8.31317 54.6797 8.58514 53.8387 8.91067V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3918C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8242C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3369 53.0476 26.8801C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50288V9.49362ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4389 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.389 55.6382 20.9584C55.8354 20.5279 56.1282 20.1481 56.4944 19.8478C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4334 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_353_5433\">\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n }\n</picture>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsAscentLogoComponent } from './ascent-logo.component';\n\n@NgModule({\n imports: [CommonModule, NgOptimizedImage],\n exports: [AdsAscentLogoComponent],\n declarations: [AdsAscentLogoComponent],\n})\nexport class AdsAscentLogoModule {}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconSortDescending } from '@ascentgl/ads-icons/icons';\n\ntype Theme = 'primary' | 'success' | 'medium';\n\n@Component({\n selector: 'ads-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class AdsProgressBarComponent implements OnChanges {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register(adsIconSortDescending);\n }\n\n /**\n * The unique ID for the progress bar\n */\n @Input() id!: string;\n\n /**\n * Whether or not the progress bar is disabled\n */\n @Input() disabled = false;\n\n /**\n * Aria label for the progress element\n */\n @Input() ariaLabel!: string;\n\n /**\n * The max value of the progress bar\n */\n @Input() max = 100;\n\n /**\n * The value of the progress bar\n */\n @Input() value = 0;\n\n /**\n * @ignore\n * Only show the marker if the bar has progress and is not completed\n */\n get showMarker(): boolean {\n return this.value > 0 && this.value < this.max;\n }\n\n /** @ignore */\n public color: Theme = 'primary';\n\n /** @ignore */\n public markerPosition!: string;\n\n /** @ignore */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.value > this.max) {\n console.warn(\n `The current value (${this.value}) of the progress bar is greater than the max (${this.max}). Did you forget to add the 'max' attribute?`,\n );\n }\n\n if (changes.value || changes.max) {\n this.color = this.getColor(this.value, this.max, this.disabled);\n this.markerPosition = this.getMarkerPosition(this.value, this.max);\n }\n\n if (changes.disabled) {\n this.color = this.getColor(this.value, this.max, this.disabled);\n }\n\n if (changes.ariaLabel) {\n this.ariaLabel = this.getLabel(this.max);\n }\n }\n\n /** @ignore */\n private getColor(value: number, max: number, disabled: boolean): Theme {\n return disabled ? 'medium' : value >= max ? 'success' : 'primary';\n }\n\n /** @ignore */\n private getLabel(max: number): string {\n return this.ariaLabel ?? `A bounded progress bar from 0 to ${max}`;\n }\n\n /** @ignore */\n private getMarkerPosition(value: number, max: number): string {\n return `calc(${(value / max) * 100}% + 5.5px)`;\n }\n}\n","<div class=\"progress-container\" [ngClass]=\"color\" [class.completed]=\"value >= max\">\n <div class=\"progress-marker\" [ngStyle]=\"{ width: markerPosition }\">\n <ads-icon *ngIf=\"showMarker\" name=\"sort_descending\" size=\"xxxs\"></ads-icon>\n </div>\n <progress\n role=\"progressbar\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-label]=\"ariaLabel\"\n [value]=\"value\"\n [max]=\"max\"\n [id]=\"id\"\n ></progress>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsProgressBarComponent } from './progress-bar.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [CommonModule, AdsIconModule],\n declarations: [AdsProgressBarComponent],\n exports: [AdsProgressBarComponent],\n})\nexport class AdsProgressBarModule {}\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\nexport enum SpinnerSize {\n xSmall = 'x-small',\n small = 'small',\n normal = 'normal',\n}\n\n@Component({\n selector: 'ads-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n})\nexport class AdsProgressSpinnerComponent implements OnInit {\n /** set spinner z-index */\n @Input() zIndex = 1;\n\n /** set spinner scrollContainer. This is useful when the spinner is inside dialog window **/\n @Input() scrollContainer: HTMLElement | 'auto' | 'none' = 'none';\n\n /** set spinner size */\n @Input() size: SpinnerSize = SpinnerSize.normal;\n\n /** set spinner diameter (overrides \"size\") */\n @Input() diameter?: number;\n\n computedDiameter = 100;\n isSticky = false;\n computedStyles?: CSSStyleDeclaration;\n\n private readonly sizes = {\n [SpinnerSize.xSmall]: 50,\n [SpinnerSize.small]: 70,\n [SpinnerSize.normal]: 100,\n };\n\n constructor(\n protected ref: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n /** @ignore */\n ngOnInit(): void {\n let scrollContainer: HTMLElement | Window | 'auto' | 'none' = this.scrollContainer;\n\n if (this.scrollContainer == 'auto') {\n scrollContainer = DomHelper.getScrollableParent(this.ref.nativeElement);\n }\n\n /**\n * if scroll container is HTMLElement, make spinner stick to it's dimensions\n */\n if (scrollContainer instanceof HTMLElement) {\n this.scrollContainer = scrollContainer;\n this.isSticky = true;\n this.computedStyles = getComputedStyle(scrollContainer);\n }\n\n if (this.diameter) {\n this.computedDiameter = this.diameter;\n } else {\n this.computedDiameter = this.sizes[this.size];\n }\n }\n\n /** @ignore */\n getOverlayStyles(): GENERIC_COLLECTION {\n const container = <HTMLElement>this.scrollContainer;\n\n const computedStyles: GENERIC_COLLECTION = this.computedStyles ?? {};\n\n /**\n * subtract .5px from width to avoid \"accidental\" appearance of scrollbars on resize\n */\n return {\n zIndex: this.zIndex,\n height: container.clientHeight + 'px',\n width: container.clientWidth - 0.5 + 'px',\n top: computedStyles.paddingTop ? '-' + computedStyles.paddingTop : 0,\n left: computedStyles.paddingLeft ? '-' + computedStyles.paddingLeft : 0,\n };\n }\n\n /**\n * @ignore\n * required for proper change detection\n * NOTE: REALLY REQUIRED\n */\n @HostListener('window:resize') resize(): void {\n /**\n * additional change detection allows to avoid overlay sizing issues when window is being resized\n */\n this.cdr.detectChanges();\n }\n}\n","@if (isSticky) {\n <div class=\"spinner-container\">\n <div class=\"spinner-overlay\" [ngStyle]=\"getOverlayStyles()\">\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\n </div>\n </div>\n} @else {\n <div class=\"spinner-overlay window\" [ngStyle]=\"{ zIndex }\">\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsGestureModule } from '@ascentgl/ads-utils';\nimport { AdsProgressSpinnerComponent } from './progress-spinner.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@NgModule({\n declarations: [AdsProgressSpinnerComponent],\n imports: [CommonModule, AdsIconModule, AdsGestureModule, MatProgressSpinnerModule],\n exports: [AdsProgressSpinnerComponent],\n providers: [{ provide: Window, useValue: window }],\n})\nexport class AdsProgressSpinnerModule {}\n","export enum ProgressIndicatorSpinnerDefault {\n diameter = 52,\n padding = 11,\n fontSize = 20,\n max = 10,\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChange } from '@angular/core';\nimport { ProgressIndicatorSpinnerDefault } from './progress-indicator-spinner.types';\n\n@Component({\n selector: 'ads-progress-indicator-spinner',\n templateUrl: './progress-indicator-spinner.component.html',\n styleUrls: ['./progress-indicator-spinner.component.scss'],\n})\nexport class AdsProgressIndicatorSpinnerComponent implements OnChanges {\n /** Spinner diameter in pixels. Default is 52. Cannot be less than 20 */\n @Input() diameter: number = ProgressIndicatorSpinnerDefault.diameter;\n\n /** Max progress value. Default is 10. Cannot be less than 0 */\n @Input() max: number = ProgressIndicatorSpinnerDefault.max;\n\n /** Current progress value. Cannot be less than 0 or more than \"max\"*/\n @Input() value = 0;\n\n /** Event emitted percentage is updated after value changes */\n @Output() percentageUpdated = new EventEmitter<number>();\n\n /** @ignore */\n percentage = 0;\n\n /** @ignore */\n readonly defaults: typeof ProgressIndicatorSpinnerDefault = ProgressIndicatorSpinnerDefault;\n\n /** @ignore */\n ngOnChanges(changes: { value: SimpleChange; max: SimpleChange; diameter: SimpleChange }): void {\n if (changes.max) {\n this.calculateMax();\n }\n\n if (changes.value) {\n this.calculateValue();\n }\n\n if (changes.diameter) {\n this.calculateDiameter();\n }\n }\n\n /** @ignore */\n private calculateMax(): void {\n if (this.max < 1) {\n this.max = 1;\n }\n\n this.calculateValue();\n }\n\n /** @ignore */\n private calculateValue(): void {\n if (this.value < 0) {\n this.value = 0;\n }\n\n if (this.value > this.max) {\n this.value = this.max;\n }\n\n this.calculatePercentage();\n }\n\n /** @ignore */\n private calculatePercentage(): void {\n const newPercentage = Math.round((this.value * 100) / this.max);\n\n if (newPercentage != this.percentage) {\n this.percentage = newPercentage;\n this.percentageUpdated.emit(this.percentage);\n }\n }\n\n /** @ignore */\n private calculateDiameter(): void {\n if (this.diameter < 20) {\n this.diameter = 20;\n }\n }\n}\n","<!-- real padding will be calculated based on default padding and font size -->\n<div\n class=\"progress-indicator-wrapper\"\n [ngStyle]=\"{ padding: (diameter * defaults.padding) / defaults.diameter + 'px' }\"\n>\n <mat-spinner [mode]=\"'determinate'\" [diameter]=\"diameter\" [value]=\"percentage\"></mat-spinner>\n <!-- real font size is calculated based on default diameter and font size -->\n <div\n class=\"progress-value\"\n [ngStyle]=\"{\n fontSize: (diameter * defaults.fontSize) / defaults.diameter + 'px',\n width: diameter + 'px',\n height: diameter + 'px',\n }\"\n >\n <!-- hidden value is used to calculate visible value scale -->\n <span class=\"hidden-value\" #hiddenValue>{{ value }}</span>\n <!-- scale value only if it has more than 3 characters -->\n <!-- the text should not be wider than 70% of diameter -->\n <span\n class=\"visible-value\"\n [ngStyle]=\"{\n scale: hiddenValue.textContent!.length > 3 ? (this.diameter * 0.7) / hiddenValue.clientWidth : 1,\n }\"\n >{{ value }}</span\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsProgressIndicatorSpinnerComponent } from './progress-indicator-spinner.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@NgModule({\n declarations: [AdsProgressIndicatorSpinnerComponent],\n imports: [CommonModule, MatProgressSpinnerModule],\n exports: [AdsProgressIndicatorSpinnerComponent],\n})\nexport class AdsProgressIndicatorSpinnerModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-shell-layout',\n templateUrl: './shell-layout.component.html',\n styleUrls: ['./shell-layout.component.scss'],\n})\nexport class ShellLayoutComponent {\n /**\n * Whether the navigation is collapsed\n */\n @Input() isCollapsed = false;\n\n /**\n * Whether the viewport is mobile\n */\n @Input() isMobile = false;\n}\n","<!-- <div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\n <div class=\"shell-container\">\n <ng-content select=\"[navigation]\"></ng-content>\n <div class=\"shell-header\">\n <ng-content select=\"[header]\"></ng-content> \n <main class=\"main-content\">\n <ng-content></ng-content>\n </main>\n <ng-content select=\"[widgetbar]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[footer]\"></ng-content>\n</div> -->\n\n<div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\n <div class=\"container\">\n <ng-content select=\"[header]\"></ng-content>\n <main class=\"main-content\">\n <ng-content></ng-content>\n </main>\n <ng-content select=\"[widgetbar]\"></ng-content>\n </div>\n <ng-content select=\"[footer]\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ShellLayoutComponent } from './shell-layout.component';\n\n@NgModule({\n declarations: [ShellLayoutComponent],\n exports: [ShellLayoutComponent],\n imports: [CommonModule],\n})\nexport class AdsShellLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ads-splash-page',\n templateUrl: './splash-page.component.html',\n styleUrls: ['./splash-page.component.scss'],\n})\nexport class AdsSplashPageComponent {\n /**\n * Alt text for the logo\n */\n @Input() alt!: string;\n\n /**\n * Logo to display\n */\n @Input() imageSrc!: string;\n @Input() text = 'Coming Soon';\n}\n","<div class=\"splash-page-container\">\n <img [src]=\"imageSrc\" [alt]=\"alt\" />\n <h1>{{ text }}</h1>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsSplashPageComponent } from './splash-page.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AdsSplashPageComponent],\n exports: [AdsSplashPageComponent],\n})\nexport class AdsSplashPageModule {}\n","import { AfterViewInit, Directive, inject, Input, OnChanges, SimpleChange } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport {\n adsIconCheckCircleFilled,\n adsIconWarning,\n adsIconVisibilityEye,\n adsIconVisibilityEyeNone,\n} from '@ascentgl/ads-icons/icons';\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { asapScheduler } from 'rxjs';\n\n@Directive()\nexport abstract class AbstractBaseComponent implements OnChanges, AfterViewInit {\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n /**\n * NOTE: we use setter and internal \"valueControl\" here\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\n *\n */\n if (control instanceof FormControl) {\n this.valueControl = control;\n } else {\n throw Error('Control must be a \"FormControl\" instance');\n }\n }\n\n /** @ignore */\n displayControl: FormControl = new FormControl();\n\n /** If true, invalid field will immediately become dirty to display the error */\n @Input() immediateValidation = false;\n\n /** Object, containing key=>value pairs for errors and their translated messages */\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\n\n /** Hint message, displayed under the control */\n @Input() hint?: string;\n\n /** Success message, displayed under the control */\n @Input() successMessage?: string;\n\n /** Optional \"id\" attribute for input field */\n @Input() id = '';\n\n /** Optional control field label */\n @Input() label?: string;\n\n /** @ignore */\n @Input() showFooter = true;\n\n /** @ignore */\n protected registry: AdsIconRegistry = inject(AdsIconRegistry);\n\n /** @ignore */\n get required() {\n return this.valueControl.hasValidator(Validators.required);\n }\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n @Input() width = '100%';\n\n /** @ignore */\n valueControl: FormControl = new FormControl();\n\n /** @ignore */\n private readonly genericError: string = 'Something went wrong';\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {};\n\n /** @ignore */\n private readonly requiredErrorMessage: string = 'Field is <strong>required</strong>';\n\n constructor() {\n this.registry.register([\n adsIconWarning,\n adsIconWarning,\n adsIconCheckCircleFilled,\n adsIconVisibilityEye,\n adsIconVisibilityEyeNone,\n ]);\n }\n\n ngOnChanges(changes: { immediateValidation: SimpleChange }): void {\n if (changes.immediateValidation && !changes.immediateValidation.isFirstChange()) {\n this.ngAfterViewInit();\n }\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n this.touchInvalid(this.valueControl);\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.valueControl): string {\n if (!control.errors) return this.genericError;\n\n /**\n * NOTE: we are showing only the first error in a row\n */\n const firstErrorKey: string = Object.keys(control.errors)[0];\n\n /**\n * merge defaultErrorMessages, required error messages (which is always available)\n * and configured errorMessages\n */\n const errorMessages: GENERIC_COLLECTION<string> = {\n ...this.defaultErrorMessages,\n ...{ required: this.requiredErrorMessage },\n ...this.errorMessages,\n };\n\n if (typeof errorMessages[firstErrorKey] === 'string') {\n return errorMessages[firstErrorKey];\n } else {\n console.warn(`No translation for error ${firstErrorKey}`);\n return `${this.genericError} (${firstErrorKey})`;\n }\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n if (this.immediateValidation) {\n asapScheduler.schedule(() => control.markAsTouched({ onlySelf: true }));\n }\n }\n\n /** @ignore */\n protected syncState(): void {\n if (this.displayControl.disabled !== this.valueControl.disabled) {\n this.valueControl.disabled ? this.displayControl.disable() : this.displayControl.enable();\n }\n\n if (this.valueControl.pristine) {\n this.displayControl.markAsPristine();\n }\n\n if (this.valueControl.untouched) {\n /**\n * if displayControl is touched and contains invalid value - clear it up before marking it as untouched\n * NOTE: this is required to properly reset displayControl when valueControl is reset\n */\n if (this.displayControl.touched && this.displayControl.invalid) {\n this.displayControl.setValue(null, { emitEvent: false });\n }\n this.displayControl.markAsUntouched();\n } else if (this.displayControl.untouched) {\n this.displayControl.markAsTouched();\n }\n\n if (this.valueControl.valid !== this.displayControl.valid) {\n this.displayControl.setErrors(this.valueControl.errors);\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n }\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.valueControl.errors && (this.valueControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n canShowSuccess(): boolean {\n return !this.valueControl.errors && this.valueControl.touched && !!this.successMessage;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractBaseComponent } from './abstract.base.component';\n\nexport type FieldSize = 'base' | 'xs';\n\n@Directive()\nexport abstract class AbstractInputComponent extends AbstractBaseComponent {\n @Input() showExclamationOnError = false;\n\n /** If true, clear button will appear in the input if it is not empty */\n @Input() showClearButton = false;\n\n /** Tooltip message, displayed over tooltip icon */\n @Input() tooltip?: string;\n\n /** Empty input field placeholder */\n @Input() placeholder = '';\n\n /** Whether the Input is a smaller version */\n @Input() size: FieldSize = 'base';\n\n /** @ignore */\n get showExclamation() {\n return this.showExclamationOnError && this.valueControl.invalid && this.valueControl.touched;\n }\n\n /** @ignore */\n get canClear() {\n return this.showClearButton && !!this.valueControl.value;\n }\n\n /** @ignore */\n clear(event: MouseEvent): void {\n this.valueControl.setValue(null);\n\n this.valueControl.markAsTouched();\n\n /**\n * stop even propagation so that calendar won't open on \"clear\" button click\n */\n event.stopPropagation();\n }\n\n /** @ignore */\n get smallSize(): boolean {\n return this.size === 'xs';\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AbstractInputComponent } from './abstract.input.component';\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\n\nexport type DropdownComponentOption = string | number | GENERIC_COLLECTION | null | boolean;\n\nexport type DropdownComponentOptions =\n | DropdownComponentOption[]\n | GENERIC_COLLECTION<DropdownComponentOption>\n | Map<DropdownComponentOption, DropdownComponentOption>;\n\nexport type DropdownComponentDisplayedOptions = Map<DropdownComponentOption, string>;\n\n@Directive()\nexport abstract class AbstractDropdownComponent extends AbstractInputComponent implements OnDestroy {\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\n @Input() displayValueKey?: string;\n\n /** Enable/disable options sorting */\n @Input() sortOptions = true;\n\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\n @Input() fitContent = false;\n\n /** @ignore */\n public displayedOptions: DropdownComponentDisplayedOptions = new Map();\n\n /** @ignore */\n protected controlSubscription?: Subscription;\n\n /** @ignore */\n protected readonly genericDisplayedValue: string = '-UNSET-';\n\n /** @ignore */\n protected readonly noDisplayedValueWarning: string = 'No display value is set for select box option';\n\n /** @ignore */\n ngOnDestroy(): void {\n this.unsubscribeFromControl();\n }\n\n /** @ignore */\n applySorting = (\n a: { key: DropdownComponentOption; value: string },\n b: {\n key: DropdownComponentOption;\n value: string;\n },\n ): number => (this.sortOptions ? a.value.localeCompare(b.value) : 0);\n\n /** @ignore */\n protected processOptions(options?: DropdownComponentOptions): void {\n this.displayedOptions = new Map();\n\n if (!options) {\n return;\n }\n\n /**\n * if options is an array - use option as key and extract displayed value from option;\n * if options is a map - use key as key and extract displayed value from option;\n * if options is an object - use object keys as keys and extract displayed value from value\n */\n if (options instanceof Array) {\n options.forEach((option) => this.displayedOptions.set(option, this.getDisplayedValue(option)));\n } else if (options instanceof Map) {\n options.forEach((option, key) => this.displayedOptions.set(key, this.getDisplayedValue(option)));\n } else {\n for (const key in options) {\n this.displayedOptions.set(key, this.getDisplayedValue(options[key]));\n }\n }\n }\n\n /** @ignore */\n protected unsubscribeFromControl() {\n this.controlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n protected getDisplayedValue(\n option: DropdownComponentOption,\n displayValueKey: string | undefined = this.displayValueKey,\n originalOption?: DropdownComponentOption,\n ): string {\n if (!originalOption) {\n originalOption = option;\n }\n\n if (option === null || option === undefined) {\n return '';\n } else if (typeof option == 'string') {\n return option;\n } else if (typeof option == 'number' || typeof option == 'boolean') {\n return option.toString();\n } else if (displayValueKey) {\n /**\n * break displayValueKey into parts to be able to drill down the option properties and sub properties\n */\n const parts = displayValueKey.split('.');\n\n /**\n * extract first part of displayValueKey\n */\n const firstPart = parts.shift() ?? '';\n\n /**\n * if we still have parts and option property is not an object - display generic value\n * (we won't be able to drill down anymore)\n */\n if (parts.length && !ObjectHelper.isObject(option[firstPart])) {\n return this.getGenericDisplayedValue(originalOption);\n }\n\n /**\n * extract displayedValue from the next level of option, if possible\n */\n return this.getDisplayedValue(option[firstPart], parts.join('.'), originalOption);\n } else {\n return this.getGenericDisplayedValue(originalOption);\n }\n }\n\n /** @ignore */\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\n console.warn(this.noDisplayedValueWarning, option);\n return this.genericDisplayedValue;\n }\n}\n","import { Component, input } from '@angular/core';\nimport { AdsIconModule, AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconInformation } from '@ascentgl/ads-icons/icons';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'ads-input-tooltip',\n template: `<ads-icon\n [matTooltip]=\"tooltip()\"\n [matTooltipPosition]=\"'above'\"\n [name]=\"'information'\"\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\n [theme]=\"'iconPrimary'\"\n [style.top]=\"iconPosition\"\n />`,\n styles: `\n ads-icon {\n position: relative;\n top: 12px;\n }\n `,\n standalone: true,\n imports: [AdsIconModule, MatTooltip],\n})\nexport class AdsInputTooltipComponent {\n tooltip = input.required<string>();\n\n smallSize = input<boolean>(false);\n\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconInformation]);\n }\n\n get iconPosition(): string {\n return this.smallSize() ? '3px' : '12px';\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatError } from '@angular/material/form-field';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@Component({\n selector: 'ads-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n standalone: true,\n imports: [MatError, AdsIconModule],\n animations: [\n trigger('fadeInOut', [\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\n ]),\n ],\n})\nexport class AdsErrorComponent {\n /** Set text to show error */\n error = input.required<string>();\n}\n","<mat-error class=\"mat-error\" [@fadeInOut]>\n <div class=\"error\">\n <ads-icon [name]=\"'warning'\" [size]=\"'xxs'\" [theme]=\"'warn'\" [stroke]=\"'warn'\" />\n <span [innerHTML]=\"error()\"></span>\n </div>\n</mat-error>\n","import { Component, input, OnInit } from '@angular/core';\nimport { MatHint } from '@angular/material/form-field';\nimport { NgIf } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'ads-hint',\n template: `<mat-hint [@fadeInOut]=\"state\" [innerHTML]=\"hint()\" />`,\n styleUrls: ['./hint.component.scss'],\n standalone: true,\n imports: [MatHint, NgIf],\n animations: [\n trigger('fadeInOut', [\n state('off', style({ opacity: 1, transform: 'translateX(0)' })),\n state('on', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => on', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms linear')]),\n ]),\n ],\n})\nexport class AdsHintComponent implements OnInit {\n control = input.required<FormControl>();\n hint = input.required<string>();\n\n state = 'off';\n\n ngOnInit(): void {\n if (this.control().touched) {\n this.state = 'on';\n }\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatError } from '@angular/material/form-field';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@Component({\n selector: 'ads-success',\n templateUrl: './success.component.html',\n styleUrls: ['./success.component.scss'],\n standalone: true,\n imports: [MatError, AdsIconModule],\n animations: [\n trigger('fadeInOut', [\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\n ]),\n ],\n})\nexport class AdsSuccessComponent {\n /** Set text to show success */\n success = input.required<string>();\n}\n","<div [@fadeInOut] class=\"container\">\n <div class=\"success\">\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" color=\"--color-success\" stroke=\"white\" />\n <span [innerHTML]=\"success()\"></span>\n </div>\n</div>\n","import { Component, Input, OnChanges, SimpleChange } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\n\n@Component({\n selector: 'ads-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n})\nexport class AdsCheckboxComponent extends AbstractBaseComponent implements OnChanges {\n /** Set to \"true\" to make the checkbox indeterminate */\n @Input() indeterminate = false;\n\n @Input() width = 'fit-content';\n\n /** @ignore */\n ngOnChanges(changes: { required: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.required) {\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n } else {\n this.valueControl.removeValidators(Validators.required);\n }\n }\n }\n\n /** @ignore */\n toggleCheck(): void {\n if (this.valueControl.disabled) return;\n\n if (this.indeterminate) {\n this.indeterminate = false;\n }\n this.valueControl.setValue(!this.valueControl.value);\n }\n}\n","<div [ngStyle]=\"{ width: width }\">\n <div class=\"ads-checkbox\" (click)=\"toggleCheck()\" [ngClass]=\"{ disabled: valueControl.disabled }\">\n <div class=\"checkbox-ripple\">\n <div class=\"checkbox-container\">\n @if (valueControl.value && !indeterminate) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"12\"\n viewBox=\"0 0 14 12\"\n fill=\"none\"\n class=\"check-icon\"\n >\n <path d=\"M2 6L5.75 10.5L12 1.5\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n }\n\n @if (indeterminate) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"4\"\n viewBox=\"0 0 12 4\"\n fill=\"none\"\n class=\"indeterminate-icon\"\n >\n <path\n d=\"M11.5385 0.5H0.461538C0.206638 0.5 0 0.723858 0 1V3C0 3.27614 0.206638 3.5 0.461538 3.5H11.5385C11.7934 3.5 12 3.27614 12 3V1C12 0.723858 11.7934 0.5 11.5385 0.5Z\"\n />\n </svg>\n }\n </div>\n </div>\n @if (label) {\n <span class=\"checkbox-label\">{{ label }}</span>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\nimport {\n AbstractDropdownComponent,\n DropdownComponentOption,\n DropdownComponentOptions,\n} from '../../abstracts/abstract.dropdown.component';\nimport { MatSelect } from '@angular/material/select';\nimport { MatOption } from '@angular/material/core';\nimport { adsIconChevronDown, adsIconCross, adsIconWarning } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../../../general/color-palette/colors.enums';\n\n@Component({\n selector: 'ads-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['../../input/input.component.scss', './dropdown.component.scss'],\n})\nexport class AdsDropdownComponent extends AbstractDropdownComponent implements OnChanges {\n /** Provide function that will allow to calculate option display value */\n @Input() displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\n\n /** Set dropdown mode \"normal\" or \"pill\" */\n @Input() mode: 'normal' | 'pill' = 'normal';\n\n /** Set to true to add empty value to the dropdown */\n @Input() hasEmptyValue = false;\n\n /** Set to true if you want to show a checkmark near selected option */\n @Input() checkSelected = true;\n\n /** Contains dropdown options */\n @Input() options?: DropdownComponentOptions;\n\n /** @ignore */\n @ViewChild('panel') panel?: MatSelect;\n\n /** @ignore */\n readonly isMultiselect: boolean = false;\n\n /** @ignore */\n readonly showChips: boolean = false;\n\n /** @ignore */\n displayedOptionsArray: DropdownComponentOption[] = [];\n\n /** @ignore */\n protected readonly Colors = Colors;\n\n constructor() {\n super();\n this.registry.register([adsIconCross, adsIconChevronDown, adsIconWarning]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options) {\n this.processOptions();\n this.mapControlValue();\n }\n }\n\n onOptionRemoved(option: DropdownComponentOption) {\n const copy = [...this.valueControl.value];\n const index = copy.indexOf(option);\n\n if (index > -1) {\n copy.splice(index, 1);\n this.valueControl.setValue(copy);\n }\n }\n\n /** @ignore */\n onOpened() {\n const selected = this.panel?.selected;\n\n if (selected instanceof MatOption) {\n (<GENERIC_COLLECTION>selected)._element.nativeElement?.scrollIntoView({ block: 'center' });\n }\n }\n\n /** @ignore */\n protected processOptions(): void {\n this.displayedOptionsArray = [];\n /**\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\n */\n super.processOptions(this.options);\n\n this.displayedOptionsArray = Array.from(this.displayedOptions.keys()).sort(this.applyArraySorting);\n\n this.setControlValueSubscription();\n }\n\n /** @ignore */\n protected setControlValueSubscription(): void {\n /**\n * if the first option key is an object - subscribe to control\n * to make sure it's value is always a valid object\n */\n if (ObjectHelper.isObject(this.displayedOptions.keys().next().value)) {\n this.subscribeToControl();\n } else {\n this.unsubscribeFromControl();\n }\n }\n\n /** @ignore */\n /**\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\n */\n protected mapControlValue(control: FormControl = this.valueControl): void {\n this.replaceDisplayedOptionWithControlValue(control.value);\n }\n\n /** @ignore */\n protected subscribeToControl(control: FormControl = this.valueControl): void {\n this.unsubscribeFromControl();\n\n this.controlSubscription = control?.valueChanges.subscribe(() => {\n this.mapControlValue(control);\n });\n }\n\n /** @ignore */\n protected replaceDisplayedOptionWithControlValue(controlValue: DropdownComponentOption): void {\n /**\n * if control value is not an object - we don't need to continue\n */\n if (!ObjectHelper.isObject(controlValue)) return;\n\n /**\n * if displayed options already contain control value - we don't need to continue\n */\n if (this.displayedOptions.get(controlValue)) return;\n\n /**\n * loop through displayed options\n */\n for (const [key, value] of this.displayedOptions) {\n /**\n * if displayed option key is an object, and it is equal to control value - we need to replace\n * displayed option key with control value to ensure that objects can be matched\n * NOTE in order to object1 === object2 it must be THE SAME object\n */\n if (\n ObjectHelper.isObject(key) &&\n ObjectHelper.deepEqual(<GENERIC_COLLECTION>controlValue, <GENERIC_COLLECTION>key)\n ) {\n /**\n * delete existing entry from displayedOptions\n */\n this.displayedOptions.delete(key);\n\n /**\n * add new entry to map\n */\n this.displayedOptions.set(controlValue, value);\n\n return;\n }\n }\n }\n\n /** @ignore */\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\n if (!this.displayValueFormatter) {\n console.warn(this.noDisplayedValueWarning, option);\n }\n\n return this.genericDisplayedValue;\n }\n\n /** @ignore */\n private applyArraySorting = (a: DropdownComponentOption, b: DropdownComponentOption): number => {\n if (this.sortOptions) {\n const val1 = this.displayedOptions.get(a);\n const val2 = this.displayedOptions.get(b);\n\n if (val1 && val2) {\n return val1.localeCompare(val2);\n }\n }\n\n return 0;\n };\n\n /** @ignore */\n chipName(option: MatOption): string {\n return (this.displayValueFormatter ? this.displayValueFormatter(option) : this.displayedOptions.get(option)) || '';\n }\n\n /** @ignore */\n toggleOption(option: DropdownComponentOption) {\n const currentValue = this.valueControl.value || [];\n const index = currentValue.indexOf(option);\n\n if (index === -1) {\n currentValue.push(option);\n } else {\n currentValue.splice(index, 1);\n }\n\n this.valueControl.setValue([...currentValue]); // Ensure the form control is updated\n }\n\n /** @ignore */\n onCheckboxChange(option: DropdownComponentOption) {\n this.toggleOption(option); // Update the option on checkbox change\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n (click)=\"onOpened()\"\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n pill: mode === 'pill',\n chips: showChips && isMultiselect,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((!showChips || valueControl.value.length === 0) && (label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <!-- is required in placeholder for smoother animation -->\n <mat-select\n #panel\n [disableRipple]=\"true\"\n [id]=\"id\"\n [placeholder]=\"placeholder || ' '\"\n [panelClass]=\"'ads-dropdown-panel' + (fitContent ? ' fit-content' : '')\"\n [disableOptionCentering]=\"true\"\n [required]=\"required\"\n [formControl]=\"valueControl\"\n [multiple]=\"isMultiselect\"\n >\n @if (showChips && isMultiselect) {\n <mat-select-trigger>\n <div class=\"tag-container\">\n @for (option of valueControl.value; track $index) {\n <ads-tag\n [tag]=\"chipName(option)\"\n [color]=\"Colors.Medium\"\n [id]=\"'' + $index\"\n (remove)=\"onOptionRemoved(option)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n </div>\n </mat-select-trigger>\n }\n\n @if (hasEmptyValue) {\n <mat-option [value]=\"undefined\"></mat-option>\n }\n\n @for (option of displayedOptionsArray; track $index) {\n <mat-option [value]=\"option\" [ngClass]=\"{ checkbox: isMultiselect && checkSelected }\">\n @if (isMultiselect && checkSelected) {\n <ads-checkbox\n width=\"100%\"\n (change)=\"onCheckboxChange(option)\"\n [label]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\n />\n } @else {\n <span\n [innerHTML]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\n ></span>\n }\n </mat-option>\n }\n </mat-select>\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n <button matTextSuffix type=\"button\" mat-icon-button class=\"action-icon\">\n <ads-icon\n matTextSuffix\n name=\"chevron_down\"\n [size]=\"smallSize ? 'xxs' : 'xs'\"\n [theme]=\"'iconPrimary'\"\n class=\"chevron-down\"\n />\n </button>\n </mat-form-field>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsCheckboxComponent } from './checkbox.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n AdsHintComponent,\n AdsErrorComponent,\n AdsInputTooltipComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsCheckboxComponent],\n exports: [AdsCheckboxComponent],\n})\nexport class AdsCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsDropdownComponent } from './dropdown.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIcon } from '@angular/material/icon';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { AdsTagModule } from '../../../tags/tag';\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n AdsIconModule,\n MatInputModule,\n MatIconButton,\n AdsInputTooltipComponent,\n MatIcon,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n AdsTagModule,\n AdsCheckboxModule,\n ],\n declarations: [AdsDropdownComponent],\n exports: [AdsDropdownComponent],\n})\nexport class AdsDropdownModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDropdownComponent } from '../dropdown';\nimport { FormControl } from '@angular/forms';\nimport { DropdownComponentOption } from '../../abstracts/abstract.dropdown.component';\n\n@Component({\n selector: 'ads-multi-select-dropdown',\n templateUrl: '../dropdown/dropdown.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../dropdown/dropdown.component.scss',\n './multi-select-dropdown.component.scss',\n ],\n})\nexport class AdsMultiSelectDropdownComponent extends AdsDropdownComponent {\n /** @ignore */\n public hasEmptyValue = false;\n\n /** @ignore */\n public declare displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\n\n /** @ignore */\n public readonly isMultiselect: boolean = true;\n\n /** if set to true selected values will be shown as chips */\n @Input() showChips = true;\n\n /** @ignore */\n protected setControlValueSubscription(): void {\n /**\n * We always subscribe to form control value to make sure it is an array\n */\n this.subscribeToControl();\n }\n\n /** @ignore */\n get canClear() {\n return this.showClearButton && this.valueControl.value.length;\n }\n\n /** @ignore */\n /**\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\n */\n protected mapControlValue(control: FormControl = this.valueControl): void {\n /**\n * make sure control value is array\n */\n if (!(control.value instanceof Array)) {\n control.setValue([]);\n\n return;\n }\n\n /**\n * loop through control values and make sure they exist in options\n */\n control.value.forEach((value) => {\n this.replaceDisplayedOptionWithControlValue(value);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { AdsMultiSelectDropdownComponent } from './multi-select-dropdown.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsTagModule } from '../../../tags/tag';\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n AdsIconModule,\n MatInputModule,\n AdsInputTooltipComponent,\n MatIconButton,\n MatIcon,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsTagModule,\n AdsCheckboxModule,\n ],\n declarations: [AdsMultiSelectDropdownComponent],\n exports: [AdsMultiSelectDropdownComponent],\n})\nexport class AdsMultiSelectDropdownModule {}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss', '../common/common.input.component.scss'],\n})\nexport class AdsInputComponent extends AbstractInputComponent implements OnInit {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' | 'tel' = 'text';\n\n /** Provide regular expression pattern if input type is set to \"pattern\" */\n @Input() pattern: string | RegExp = '';\n\n /** Provide \"default\" value that will be used when control value is cleared */\n @Input() defaultValue?: unknown;\n\n /** mark input field as readonly */\n @Input() readonly = false;\n\n /** mark input field as readonly */\n @Input() isPasswordField = false;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n hidePassword = true;\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n pattern: 'Provided value does not match pattern',\n };\n\n ngOnInit(): void {\n /**\n * if default value is provided - emit it when input is cleared\n */\n if (this.defaultValue !== undefined) {\n this.valueControl?.valueChanges.subscribe((value) => {\n if (!value && value !== this.defaultValue) {\n this.valueControl.setValue(this.defaultValue);\n }\n });\n }\n }\n\n /** @ignore */\n showHidePassword(): void {\n this.hidePassword = !this.hidePassword;\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': canClear,\n readonly: readonly,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n #input\n matInput\n [maxlength]=\"maxlength\"\n [readonly]=\"readonly\"\n [pattern]=\"pattern\"\n [id]=\"id\"\n [type]=\"isPasswordField ? (hidePassword ? 'password' : 'text') : type\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n\n @if (isPasswordField && !readonly) {\n <button type=\"button\" mat-icon-button matTextSuffix (click)=\"showHidePassword()\" class=\"action-icon\">\n <ads-icon\n class=\"visibility-eye\"\n [name]=\"hidePassword ? 'visibility_eye_none' : 'visibility_eye'\"\n [size]=\"smallSize ? 'xxs' : 'sm'\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsInputComponent } from './input.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsSuccessComponent } from '../common/success/success.component';\nimport { AdsErrorComponent } from '../common/error/error.component';\nimport { AdsHintComponent } from '../common/hint/hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsInputTooltipComponent,\n MatIconButton,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsInputComponent],\n exports: [AdsInputComponent],\n})\nexport class AdsInputModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\n\n@Component({\n selector: 'ads-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['../input/input.component.scss', './textarea.component.scss', '../common/common.input.component.scss'],\n})\nexport class AdsTextareaComponent extends AbstractInputComponent {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 2000;\n\n /** Maximum number of rows */\n @Input() rows = 5;\n\n /** Set to false to disallow resize */\n @Input() canResize = true;\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': canClear && !showExclamation,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n <mat-label *ngIf=\"label || required\">{{ label }}</mat-label>\n <textarea\n matInput\n [rows]=\"rows\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [ngStyle]=\"{ resize: canResize ? null : 'none' }\"\n >\n </textarea>\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\">\n <ads-icon name=\"cross\" size=\"xxs\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\nimport { AdsSuccessComponent } from '../common/success/success.component';\nimport { AdsErrorComponent } from '../common/error/error.component';\nimport { AdsHintComponent } from '../common/hint/hint.component';\nimport { AdsTextareaComponent } from './textarea.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsSuccessComponent,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsTextareaComponent],\n exports: [AdsTextareaComponent],\n})\nexport class AdsTextareaModule {}\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\nimport { AdsDropdownComponent } from '../dropdown';\nimport { FormControl } from '@angular/forms';\nimport { DropdownComponentOptions } from '../../abstracts/abstract.dropdown.component';\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\nimport { asapScheduler } from 'rxjs';\n\n@Component({\n selector: 'ads-input-dropdown',\n templateUrl: './input-dropdown.component.html',\n styleUrls: ['./input-dropdown.component.scss'],\n})\nexport class AdsInputDropdownComponent extends AbstractInputComponent implements OnChanges {\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' = 'text';\n\n /** Provide regular expression pattern if input type is set to \"pattern\" */\n @Input() pattern: string | RegExp = '';\n\n /** Dropdown control, associated with input field */\n @Input() dropdownControl: FormControl = new FormControl();\n\n /** Optional \"id\" attribute for dropdown field */\n @Input() dropdownId = '';\n\n /** Optional dropdown control field label */\n @Input() dropdownLabel?: string;\n\n /** Empty dropdown field placeholder */\n @Input() dropdownPlaceholder = '';\n\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\n @Input() inputWidth = '70%';\n\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\n @Input() dropdownWidth = '30%';\n\n /** Is set and dropdown contains only one option - it will be selected automatically. */\n @Input() autoSelectSingleDropdownOption = false;\n\n /** Contains dropdown options */\n @Input() options?: DropdownComponentOptions;\n\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\n @Input() displayValueKey?: string;\n\n /** Set to true to add empty value to the dropdown */\n @Input() hasEmptyValue = true;\n\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\n @Input() fitContent = true;\n\n /** @ignore */\n @ViewChild(AdsDropdownComponent) dropdownComponent?: AdsDropdownComponent;\n\n /** @ignore */\n isSingleOptionSelected = false;\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options && this.autoSelectSingleDropdownOption) {\n asapScheduler.schedule(() => {\n if (this.dropdownComponent?.displayedOptions.size === 1) {\n /**\n * get first displayed option\n */\n const first = this.dropdownComponent.displayedOptions.keys().next().value;\n\n /**\n * if control value does not equal the first option already - select the first option\n */\n if (this.dropdownControl.value !== first) {\n this.dropdownControl.setValue(first);\n }\n\n this.isSingleOptionSelected = true;\n } else {\n this.isSingleOptionSelected = false;\n }\n });\n }\n }\n}\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [id]=\"dropdownId\"\n [readonly]=\"true\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsInputDropdownComponent } from './input-dropdown.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { AdsInputModule } from '../../input';\nimport { AdsDropdownModule } from '../dropdown';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDividerModule,\n MatFormFieldModule,\n MatSelectModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n AdsInputModule,\n AdsDropdownModule,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsInputDropdownComponent],\n exports: [AdsInputDropdownComponent],\n})\nexport class AdsInputDropdownModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { SearchDropdownDisplayControlValue } from './search-dropdown.component.types';\n\n@Pipe({\n name: 'adsSearchDropdownHighlighter',\n})\nexport class AdsSearchDropdownHighlighterPipe implements PipeTransform {\n transform(optionValue: string, filter: SearchDropdownDisplayControlValue): string {\n if (filter) {\n const value = typeof filter == 'string' ? filter : filter.value;\n\n const re = new RegExp(value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'igm');\n\n return optionValue.replace(re, '<span class=\"highlighted-text\">$&</span>');\n }\n\n return optionValue;\n }\n}\n\n@NgModule({\n declarations: [AdsSearchDropdownHighlighterPipe],\n exports: [AdsSearchDropdownHighlighterPipe],\n})\nexport class AdsSearchDropdownHighlighterPipeModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n contentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n signal,\n SimpleChange,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { debounce, map, tap } from 'rxjs/operators';\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport {\n AbstractDropdownComponent,\n DropdownComponentDisplayedOptions,\n DropdownComponentOption,\n DropdownComponentOptions,\n} from '../../abstracts/abstract.dropdown.component';\nimport { Observable, of, Subscription, timer } from 'rxjs';\nimport { adsIconChevronDown, adsIconSearch } from '@ascentgl/ads-icons/icons';\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport {\n SearchDropdownComponentOptions,\n SearchDropdownDisplayControlValue,\n SearchDropdownStaticOption,\n} from './search-dropdown.component.types';\nimport { MatOption } from '@angular/material/core';\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\nimport { SafeHtml } from '@angular/platform-browser';\n\ntype CustomMatOption = (MatOption & { modified?: boolean }) | undefined | null;\n\n@Component({\n selector: 'ads-search-dropdown',\n templateUrl: './search-dropdown.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../dropdowns/dropdown/dropdown.component.scss',\n './search-dropdown.component.scss',\n ],\n})\nexport class AdsSearchDropdownComponent\n extends AbstractDropdownComponent\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n /** @ignore */\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\n\n /** Maximum amount of characters in the input field */\n @Input() maxlength = 255;\n\n /** Set to additional paneClass if required*/\n @Input() panelClass = '';\n\n /** Contains dropdown options */\n @Input() options?: Observable<SearchDropdownComponentOptions>;\n\n /** If \"true\", component will not try to load additional options */\n @Input() staticOptions = false;\n\n /** If \"true\" and \"staticOptions\" is also true additional filter will be applied to remove options that do not match input value */\n @Input() filterOptions = true;\n\n /** If \"true\", emitSearchValueInput will emit empty values too */\n @Input() emitEmptyValues = false;\n\n /** If \"true\", first time focusing on input will start loading suggestions if input has a value */\n @Input() loadSuggestionOnInit = false;\n\n /** Provide configuration for default option that can be displayed if no results were found */\n @Input() noDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide configuration for default option that can be displayed if no intended results were found */\n @Input() moreDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide configuration for default option that can be displayed if needed */\n @Input() staticDataOption: SearchDropdownStaticOption | undefined;\n\n /** Provide event that is fired when enter key is down while input value is being set */\n @Input() onEnterKeyDown: ((currentInputValue: string) => void) | undefined;\n\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\n @Input() searchIconClickCallback: ((currentInputValue: string) => void) | undefined;\n\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\n @Input() displayValueFormatter: ((value: string, option: DropdownComponentOption) => string | SafeHtml) | undefined;\n\n /** If \"true\", will read option template provided via \"ng-template dropdown-option\" selector */\n @Input() useOptionTemplate = false;\n\n /** set minimum amount of characters to start search */\n @Input() minValueLength = 1;\n\n /** Set to \"true\" to prevent click even propagation */\n @Input() preventClick = false;\n\n /** @ignore */\n @Input() closePanelEnabled = true;\n\n /**\n * NOTE: INPUT PARAMS BELOW ARE OVERRIDDEN BECAUSE FOR SOME UNKNOWN REASON STORYBOOK WON'T SHOW THEM FROM PARENT CLASS\n */\n\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n super.control = control;\n }\n\n /** Object, containing key=>value pairs for errors and their translated messages */\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\n\n /** Hint message, displayed under the control */\n @Input() declare hint?: string;\n\n /** Optional \"id\" attribute for input field */\n @Input() id = '';\n\n /** Optional control field label */\n @Input() declare label?: string;\n\n /** Empty input field placeholder */\n @Input() placeholder = '';\n\n /**\n * END OF OVERRIDDEN PARAMETERS\n */\n\n /** Emits currently input search value. Use it to react and generate fresh options list, based on the value */\n @Output() emitSearchValueInput: EventEmitter<string> = new EventEmitter();\n\n /** @ignore */\n @ViewChild(MatAutocompleteTrigger) trigger?: MatAutocompleteTrigger;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n @ViewChild('moreDataMatOption') moreDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('noDataMatOption') noDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('staticDataMatOption') staticDataMatOption?: MatOption;\n\n /** @ignore */\n @ViewChild('auto') auto?: MatAutocomplete;\n\n /** @ignore */\n loading = signal<boolean>(false);\n\n /** @ignore */\n private isInternalValueSet = false;\n\n /** @ignore */\n private displayedControlSubscription?: Subscription;\n\n /** @ignore */\n private valueControlSubscription?: Subscription;\n\n /** @ignore */\n private optionsSubscription?: Subscription;\n\n /** @ignore */\n private valueControlStatusSubscription?: Subscription;\n\n /** @ignore */\n private ignoreOnBlur = false;\n\n /** @ignore */\n private initialSuggestionsChecked = false;\n\n /** @ignore */\n private unsubscribeFromScroll?: () => void;\n\n /** @ignore */\n private previousControlValue?: string;\n\n /** @ignore */\n private allOptions: DropdownComponentDisplayedOptions = new Map();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private ref: ElementRef,\n ) {\n super();\n this.registry.register([adsIconSearch, adsIconChevronDown]);\n }\n\n /** @ignore */\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\n if (changes.options) {\n this.processOptions();\n }\n super.ngOnChanges(changes);\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.setValidators();\n this.setupSubscriptions();\n\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.overrideKeydownHandler();\n }\n\n /** @ignore */\n ngOnDestroy() {\n if (this.unsubscribeFromScroll) this.unsubscribeFromScroll();\n this.unsubscribeFromOptions();\n this.unsubscribeFromDisplayedControl();\n this.valueControlSubscription?.unsubscribe();\n this.valueControlStatusSubscription?.unsubscribe();\n }\n\n /** @ignore */\n get canSearch(): boolean {\n return !this.loading() && !this.displayControl.disabled && !!this.searchIconClickCallback;\n }\n\n /** @ignore */\n get canUseMoreDataOption(): boolean {\n return !!this.moreDataOption && !!this.displayedOptions.size && !this.loading();\n }\n\n /** @ignore */\n get canUseNoDataOption(): boolean {\n return (\n !!this.noDataOption &&\n !this.displayedOptions.size &&\n !this.loading() &&\n !!this.displayControl.value &&\n this.displayControl.dirty\n );\n }\n\n /** @ignore */\n get canUseStaticOption(): boolean {\n return !!this.staticDataOption && !this.loading();\n }\n\n /** @ignore */\n get showDropdownIcon(): boolean {\n return this.staticOptions && (!!this.displayedOptions.size || !!this.allOptions.size);\n }\n\n /** @ignore */\n onSearchIconClick(event: MouseEvent): void {\n event.stopPropagation();\n\n if (this.searchIconClickCallback) {\n this.searchIconClickCallback(this.input?.nativeElement.value);\n }\n }\n\n /** @ignore */\n onKeyDown(eventTarget: EventTarget | null): void {\n if (this.preventClick) {\n return;\n }\n\n if (!(eventTarget instanceof HTMLInputElement)) return;\n\n /**\n * if one of static options was selected when \"Enter\"\n * key was clicked - execute return displayedValue back\n * and execute static option onClick events\n */\n if (this.moreDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.moreDataOption);\n } else if (this.noDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.noDataOption);\n } else if (this.staticDataMatOption?.selected) {\n eventTarget.value = this.getDisplayedValueAsString();\n\n this.activateStaticOption(this.staticDataOption);\n } else {\n /**\n * otherwise if displayed value is different from input value - sync them\n * NOTE: this happens when option is selected in dropdown and \"Enter\" key is pressed\n * because \"onInput\" event does not fire in that case\n * if displayed value is the same as input value, and we have onEnterKeyDown callback - execute it\n * NOTE: this happens when value is input directly into input field\n */\n if (this.getDisplayedValueAsString() != eventTarget.value) {\n this.displayControl.setValue(eventTarget.value, { emitEvent: false });\n } else if (this.onEnterKeyDown) {\n this.onEnterKeyDown(eventTarget.value);\n }\n\n this.unselectComponent();\n }\n }\n\n /** @ignore */\n onBlur(): void {\n this.displayControl.markAsTouched();\n this.valueControl.markAsTouched();\n\n if (!this.preventClick) {\n /**\n * if action onBlur is allowed and value is a string - apply it to form control before blurring\n * NOTE: this may happen if value was input into control but\n * no existing options were explicitly selected\n */\n if (!this.ignoreOnBlur && typeof this.displayControl.value == 'string') {\n this.setControlValueFromString(this.displayControl.value);\n }\n\n this.ignoreOnBlur = false;\n }\n\n /**\n * if we are still loading - stop it\n */\n if (this.loading()) {\n this.loading.set(false);\n\n /**\n * unsubscribe from options to prevent their further processing\n */\n this.unsubscribeFromOptions();\n\n /**\n * unsubscribe from display control change to prevent it from sending the data\n */\n this.unsubscribeFromDisplayedControl();\n\n /**\n * resubscribe it again to return to normal workflow\n */\n this.subscribeToDisplayedControlValueChanged();\n\n /**\n * set loadSuggestionOnInit to resume loading when control is focused again\n */\n this.resetInitialState();\n }\n\n if (this.closePanelEnabled && !this.preventClick) this.trigger?.closePanel();\n }\n\n /** @ignore */\n onFocus(): void {\n /**\n * if we have no displayed options,\n * we can load data on initial value,\n * we are not dealing with static options,\n * initial suggestions are not yet loaded,\n * and we have input value or can emit empty values - we can start loading suggestions\n */\n if (\n !this.displayedOptions.size &&\n this.loadSuggestionOnInit &&\n !this.staticOptions &&\n !this.initialSuggestionsChecked &&\n (this.input?.nativeElement.value || this.emitEmptyValues)\n ) {\n this.loading.set(true);\n\n this.unsubscribeFromOptions();\n\n /**\n * if we are loading on init and display control has value - mark it as dirty for consistency\n */\n if (this.loadSuggestionOnInit && this.displayControl.value && this.displayControl.pristine) {\n this.displayControl.markAsDirty();\n }\n\n this.emitSearchValueInput.emit(this.input?.nativeElement.value);\n }\n\n this.initialSuggestionsChecked = true;\n }\n\n /** @ignore */\n onInput(eventTarget: EventTarget | null): void {\n if (eventTarget instanceof HTMLInputElement) {\n const value = eventTarget.value.trim();\n\n /**\n * if new trimmed value is different from current trimmed value and new trimmed value is either empty or\n * fits min length - use it\n * NOTE: this allows to avoid reacting on empty strings being input\n * also spaces in the end of the string will be ignored until they are followed by a different character\n */\n if (value !== this.getDisplayedValueAsString(false).trim() && (!value || value.length >= this.minValueLength)) {\n this.displayControl.setValue(eventTarget.value);\n }\n }\n }\n\n /** @ignore */\n getDisplayedValueAsString(checkAdditionalFormatting = true): string {\n let value = '';\n\n if (this.displayControl.value) {\n value =\n typeof this.displayControl.value == 'string'\n ? this.displayControl.value\n : (this.displayControl.value.value ?? '');\n }\n\n if (checkAdditionalFormatting && this.mustApplyAdditionalFiltering() && this.previousControlValue !== value) {\n this.previousControlValue = value;\n\n this.displayedOptions = new Map();\n\n this.allOptions.forEach((optionValue, option) => {\n if (optionValue.toLowerCase().includes(value.toLowerCase())) {\n this.displayedOptions.set(option, optionValue);\n }\n });\n }\n\n return value;\n }\n\n /** @ignore */\n reset(): void {\n this.displayedOptions = new Map(this.allOptions);\n }\n\n /** @ignore */\n onStaticOptionMouseDown(event: MouseEvent, option: SearchDropdownStaticOption): void {\n /**\n * only proceed if left mouse button was clicked\n */\n if (event.button !== 0) return;\n\n this.activateStaticOption(option);\n }\n\n /** @ignore */\n onOptionMouseDown(event: MouseEvent, option: CustomMatOption): void {\n /**\n * only proceed if left mouse button was clicked\n */\n if (event.button !== 0) return;\n\n this.modifyOptionClickEvent(option);\n\n if (this.preventClick) return;\n\n /**\n * NOTE: we set displayControl value in mousedown event to override value setting in onClick\n * and avoid UI artifacts connected with it\n */\n this.displayControl.setValue(option?.value);\n }\n\n /** @ignore */\n displayFn = (option?: { key: DropdownComponentOption; value: string }): string => {\n return option ? option.value : '';\n };\n\n /** @ignore */\n resetInitialState(): void {\n this.loadSuggestionOnInit = true;\n this.initialSuggestionsChecked = false;\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n super.touchInvalid(control);\n super.touchInvalid(this.displayControl);\n }\n\n /** @ignore */\n protected processOptions(): void {\n this.allOptions = new Map();\n\n /**\n * if options are not provided - reset\n */\n if (!this.options) {\n this.loading.set(false);\n this.displayedOptions = new Map();\n return;\n }\n\n /**\n * \"processOptions\" is fired any time options change - thus we need to set loading to true when it happens\n */\n this.loading.set(true);\n\n /**\n * subscribe to options to extract displayedOptions from them\n * NOTE: we do not use displayedOptions as Observable because\n * we may need displayedOptions directly on onKeyDown event\n */\n this.optionsSubscription = this.options.subscribe((options: DropdownComponentOptions) => {\n this.loading.set(false);\n\n /**\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\n */\n super.processOptions(options);\n\n this.allOptions = new Map(this.displayedOptions);\n });\n }\n\n /** @ignore */\n protected setupSubscriptions(): void {\n this.controlValueToDisplayedControlValue();\n\n /**\n * subscribe to control value change to synchronize the value when changed externally\n */\n this.valueControlSubscription = this.valueControl.valueChanges.subscribe(() => {\n if (!this.isInternalValueSet) {\n this.controlValueToDisplayedControlValue();\n }\n });\n\n /**\n * sync display control statuses with value control status for proper error display\n */\n this.valueControlStatusSubscription = this.valueControl.statusChanges.subscribe(() => this.syncState());\n\n this.subscribeToDisplayedControlValueChanged();\n\n /**\n * listen to scroll to reposition the dropdown\n */\n this.unsubscribeFromScroll = this.renderer.listen(\n DomHelper.getScrollableParent(this.ref.nativeElement),\n 'scroll',\n () => {\n if (this.trigger?.panelOpen) this.trigger.updatePosition();\n },\n );\n\n this.syncState();\n }\n\n /** @ignore */\n private subscribeToDisplayedControlValueChanged(): void {\n this.displayedControlSubscription = this.displayControl.valueChanges\n .pipe(\n map((value?: SearchDropdownDisplayControlValue) => {\n if (!value) value = '';\n return value;\n }),\n tap((value) => {\n /**\n * mark displayControl as dirty\n * because MatAutocomplete does not do it automatically\n */\n this.displayControl.markAsDirty();\n\n /**\n * unsubscribe from previous options to stop loading them\n */\n this.unsubscribeFromOptions();\n\n /**\n * stop processing if value is not provided\n */\n if (!value) {\n /**\n * clear displayed options if value is not provided\n */\n if (!this.staticOptions) {\n this.displayedOptions = new Map();\n }\n\n this.setControlValue(null);\n\n if (this.loading()) {\n /**\n * set loadSuggestionOnInit to resume loading when control is focused again\n * NOTE: this is required because by the time onBlur happens - loading is false and\n * this method will not be fired from onBlur\n */\n this.resetInitialState();\n }\n } else if (typeof value != 'string') {\n this.setControlValueFromOption(value.key, false);\n }\n this.loading.set(this.canEmitValue(value));\n }),\n debounce((value) => {\n return this.canEmitValue(value) && value ? timer(500) : of({});\n }),\n )\n .subscribe((value: SearchDropdownDisplayControlValue) => {\n if (this.canEmitValue(value)) {\n this.emitSearchValueInput.emit(<string>value);\n }\n });\n }\n\n /** @ignore */\n private unsubscribeFromOptions(): void {\n this.optionsSubscription?.unsubscribe();\n }\n\n private unsubscribeFromDisplayedControl(): void {\n this.displayedControlSubscription?.unsubscribe();\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.displayControl): string {\n return super.displayFirstError(control);\n }\n\n /** @ignore */\n clear(event?: MouseEvent): void {\n event?.stopPropagation();\n\n if (event && event.button !== 0) {\n return;\n }\n this.displayControl.setValue(null);\n this.displayControl.markAsTouched();\n\n if (this.closePanelEnabled) this.trigger?.closePanel();\n }\n\n /** @ignore */\n togglePanel(event?: MouseEvent): void {\n event?.stopPropagation();\n if (this.trigger?.panelOpen) {\n if (this.closePanelEnabled) this.trigger?.closePanel();\n } else {\n this.trigger?.openPanel();\n this.input?.nativeElement.focus();\n }\n }\n\n /** @ignore */\n private controlValueToDisplayedControlValue(): void {\n /**\n * extract displayable value as string from valueControl, if it is not empty\n */\n const displayedValue = this.valueControl.value\n ? this.getDisplayedValue(this.valueControl.value)\n : this.valueControl.value;\n\n /**\n * use it to build displayedControl value\n */\n this.displayControl.setValue(\n displayedValue ? { key: this.valueControl.value, value: displayedValue } : this.valueControl.value,\n { emitEvent: false },\n );\n }\n\n private mustApplyAdditionalFiltering(): boolean {\n return !this.staticOptions || (this.staticOptions && this.filterOptions);\n }\n\n /** @ignore */\n private unselectComponent(): void {\n if (this.input?.nativeElement instanceof HTMLInputElement) {\n this.input.nativeElement.blur();\n }\n }\n\n /** @ignore */\n private activateStaticOption(option?: SearchDropdownStaticOption): void {\n if (!option) return;\n\n /**\n * ignoreOnBlur to \"true\" to disable\n * component's input onBlur event\n * NOTE: this is needed when we click on static options\n */\n this.ignoreOnBlur = true;\n\n this.moreDataMatOption?.deselect();\n this.noDataMatOption?.deselect();\n\n if (option.onClick) {\n option.onClick(this.input?.nativeElement.value);\n }\n\n this.unselectComponent();\n }\n\n /** @ignore */\n private setValidators(): void {\n /**\n * make sure displayControl has the same validators as control\n */\n this.displayControl.addValidators(this.valueControl.validator ?? []);\n /**\n * required validator must be set manually in this component\n * because controls are disconnected from input field\n */\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n this.displayControl.addValidators(Validators.required);\n }\n this.valueControl.updateValueAndValidity({ emitEvent: false });\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n }\n\n /** @ignore */\n private canEmitValue(value: SearchDropdownDisplayControlValue): boolean {\n /**\n * only emit event if value is a string, and we can emit empty values, or it is not empty\n * NOTE: it disallows to emit explicitly selected \"REAL\" values\n */\n return !this.staticOptions && typeof value == 'string' && (this.emitEmptyValues || !!value);\n }\n\n /** @ignore */\n private setControlValueFromString(displayedValue: string): void {\n let isValueApplied = false;\n\n /**\n * loop through displayedOptions;\n * if matching displayedOption value found - use displayedOptions option as control value\n */\n for (const [option, value] of this.displayedOptions) {\n if (value.toLowerCase() === displayedValue.toLowerCase()) {\n this.setControlValueFromOption(option);\n isValueApplied = true;\n break;\n }\n }\n\n if (!isValueApplied) {\n this.clear();\n }\n }\n\n /** @ignore */\n private setControlValueFromOption(option: DropdownComponentOption | null, skipSame = true): void {\n this.unselectComponent();\n\n this.setControlValue(option, skipSame);\n }\n\n private setControlValue(option: DropdownComponentOption | null, skipSame = true) {\n /**\n * only update control value if it differs from provided one\n * NOTE: we need this check to avoid emitting control value change\n * when the same dropdown option is selected in dropdown several times\n */\n if (skipSame && this.valueControl.value === option) {\n return;\n }\n\n this.valueControl.markAsTouched();\n this.valueControl.markAsDirty();\n\n /**\n * toggle isInternalValueSet to make\n * sure internal subscription to control value will\n * ignore this setValue event\n */\n this.isInternalValueSet = true;\n this.valueControl.setValue(option);\n this.isInternalValueSet = false;\n }\n\n private overrideKeydownHandler(): void {\n if (this.trigger) {\n const handler = this.trigger._handleKeydown;\n\n /**\n * this allows to block default keydown handler if needed\n */\n this.trigger._handleKeydown = (event: KeyboardEvent): void => {\n const option = <CustomMatOption>this.trigger?.activeOption;\n\n this.modifyOptionClickEvent(option);\n\n handler.call(this.trigger, event);\n\n /**\n * make sure option does not lose \"selected\" state if click is prevented\n * NOTE: this is d one for \"nicety\"\n */\n if (this.preventClick && option && event.key === 'Enter') {\n this.auto?._keyManager.setActiveItem(option);\n }\n };\n }\n }\n\n private modifyOptionClickEvent(option: CustomMatOption): void {\n /**\n * modify \"_selectViaInteraction\" method of the option\n * so that we can block its selection if needed\n */\n if (option && !option.modified) {\n option.modified = true;\n\n const handler = option._selectViaInteraction;\n\n option._selectViaInteraction = () => {\n if (this.preventClick) {\n this.auto?._keyManager.setActiveItem(-1);\n return;\n }\n handler.call(option);\n };\n }\n }\n}\n","<div class=\"form-control-row\" [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'is-open': trigger?.panelOpen,\n invalid: canShowError(),\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n #input\n [disabled]=\"displayControl.disabled\"\n (keydown.enter)=\"onKeyDown($event.target)\"\n (blur)=\"onBlur()\"\n (input)=\"onInput($event.target)\"\n (focus)=\"onFocus()\"\n type=\"text\"\n [autocomplete]=\"'none'\"\n [id]=\"id\"\n matInput\n [value]=\"getDisplayedValueAsString()\"\n [attr.maxlength]=\"maxlength\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn\"\n [disableRipple]=\"true\"\n [class]=\"\n 'ads-dropdown-panel' +\n (fitContent ? ' fit-content' : '') +\n (loading() ? ' loading' : '') +\n (preventClick ? '' : ' clickable') +\n ' ' +\n panelClass\n \"\n >\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\n <mat-option #opt [value]=\"option\" (mousedown)=\"onOptionMouseDown($event, opt)\">\n @if (useOptionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\n ></ng-template>\n } @else {\n <span\n [innerHtml]=\"\n displayValueFormatter\n ? displayValueFormatter(\n option!.value! | adsSearchDropdownHighlighter: displayControl.value,\n option.key\n )\n : (option!.value! | adsSearchDropdownHighlighter: displayControl.value)\n \"\n ></span>\n }\n </mat-option>\n }\n\n @if (canUseMoreDataOption) {\n <hr class=\"no-results-hr\" />\n <mat-option #moreDataMatOption class=\"extra\" [disabled]=\"!moreDataOption!.onClick\">\n <ng-container\n [ngTemplateOutlet]=\"extraOptionValue\"\n [ngTemplateOutletContext]=\"{ $implicit: moreDataOption }\"\n />\n </mat-option>\n }\n\n @if (canUseNoDataOption) {\n <mat-option #noDataMatOption class=\"extra\" [disabled]=\"!noDataOption!.onClick\">\n <ng-container [ngTemplateOutlet]=\"extraOptionValue\" [ngTemplateOutletContext]=\"{ $implicit: noDataOption }\" />\n </mat-option>\n }\n\n @if (canUseStaticOption) {\n @if (displayedOptions.size) {\n <hr class=\"no-results-hr\" />\n }\n <mat-option #staticDataMatOption class=\"extra\" [disabled]=\"!staticDataOption!.onClick\">\n <ng-container\n [ngTemplateOutlet]=\"extraOptionValue\"\n [ngTemplateOutletContext]=\"{ $implicit: staticDataOption }\"\n />\n </mat-option>\n }\n </mat-autocomplete>\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n @if (showDropdownIcon) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"togglePanel($event)\" class=\"action-icon\">\n <ads-icon name=\"chevron_down\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"chevron-down\" />\n </button>\n }\n @if (!staticOptions && loading()) {\n <mat-spinner matTextSuffix diameter=\"22\" />\n }\n @if (!staticOptions && !loading()) {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n [disabled]=\"!canSearch\"\n (click)=\"canSearch ? onSearchIconClick($event) : null\"\n class=\"action-icon\"\n >\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\n </button>\n }\n </mat-form-field>\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n\n<ng-template #extraOptionValue let-option>\n <span\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"onStaticOptionMouseDown($event, option!)\"\n [innerHTML]=\"option!.label\"\n ></span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsSearchDropdownComponent } from './search-dropdown.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AdsSearchDropdownHighlighterPipeModule } from './search-dropdown-highlighter.pipe';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n AdsIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatSelectModule,\n AdsSearchDropdownHighlighterPipeModule,\n MatDatepickerModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSearchDropdownComponent],\n exports: [AdsSearchDropdownComponent],\n})\nexport class AdsSearchDropdownModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsInputComponent } from '../../input';\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['../../input/input.component.scss'],\n})\nexport class AdsSearchInputComponent extends AdsInputComponent {\n /** a callback function that will be called every time when enter button or search icons are clicked */\n @Input() searchCallback?: (value: string) => void;\n\n /** set to true if you want to execute searchCallback when icon is clicked */\n @Input() isIconClickable = false;\n\n constructor() {\n super();\n this.registry.register(adsIconSearch);\n }\n\n /** ignore */\n get canClick() {\n return this.isIconClickable && this.valueControl.value;\n }\n\n /** ignore */\n onSearch() {\n if (this.valueControl.value && this.searchCallback) {\n this.searchCallback(this.valueControl.value);\n }\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'success-label': canShowSuccess(),\n 'error-label': canShowError(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <input\n matInput\n (keydown.enter)=\"onSearch()\"\n [maxlength]=\"maxlength\"\n [pattern]=\"pattern\"\n [id]=\"id\"\n [type]=\"type\"\n [formControl]=\"valueControl\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\n </button>\n }\n\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n [disabled]=\"!canClick\"\n (click)=\"canClick ? onSearch() : null\"\n class=\"action-icon\"\n >\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\n </button>\n </mat-form-field>\n\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsSearchInputComponent } from './search-input.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n AdsIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatSelectModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSearchInputComponent],\n exports: [AdsSearchInputComponent],\n})\nexport class AdsSearchInputModule {}\n","export const FORMAT_TIME = 'HH:mm';\nexport const FORMAT_DATE = 'MM/dd/yyyy';\nexport const FORMAT_DATETIME = 'MM/dd/yyyy HH:mm';\n\nexport interface DateTimeParseDisplay {\n dateInput?: string;\n datetimeInput?: string;\n timeInput?: string;\n}\n\nexport class CustomDateTimeFormat {\n private _parse: DateTimeParseDisplay = {\n dateInput: FORMAT_DATE,\n datetimeInput: FORMAT_DATETIME,\n timeInput: FORMAT_TIME,\n };\n private _display: DateTimeParseDisplay = {\n dateInput: FORMAT_DATE,\n datetimeInput: FORMAT_DATETIME,\n timeInput: FORMAT_TIME,\n };\n\n set parse(parse: DateTimeParseDisplay) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateTimeParseDisplay {\n return this._parse;\n }\n\n set display(display: DateTimeParseDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateTimeParseDisplay {\n return this._display;\n }\n\n updateParse(parse: DateTimeParseDisplay): void {\n this.parse = parse;\n }\n\n updateDisplay(display: DateTimeParseDisplay): void {\n this.display = display;\n }\n}\n","import { MatCalendarView } from '@mat-datetimepicker/core/datetimepicker/calendar';\n\nexport class DatetimeTemplateFormatter {\n private container: HTMLElement | null = null;\n private isFirstRun = true;\n\n run(view: MatCalendarView): void {\n /**\n * make sure container has proper class to encapsulate styles\n */\n this.container = document.querySelector('mat-datetimepicker-content');\n this.container?.classList.add('ads-datetimepicker-calendar');\n\n /**\n * if isFirstRun=true (we've just opened the picker)\n * hide container to allow concealed rearranging\n */\n if (this.isFirstRun) {\n this.container?.classList.add('hidden');\n }\n\n setTimeout(() => {\n this.rearrangeTemplate(view);\n this.isFirstRun = false;\n });\n }\n\n reset(): void {\n this.isFirstRun = true;\n }\n\n private rearrangeTemplate(view: MatCalendarView): void {\n const calendar: HTMLElement | null = document.querySelector('mat-datetimepicker-calendar');\n\n if (!calendar) return;\n\n /**\n * make sure calendar only has one \"view\" class\n */\n calendar.classList.remove('clock', 'month', 'year', 'multi-year');\n calendar.classList.add(view);\n\n const header: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-header');\n const content: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-content');\n\n if (!header || !content) return;\n\n /**\n * get all the buttons that we need to rearrange\n */\n const yearButton = header.querySelector('.mat-datetimepicker-calendar-header-year');\n const monthButton = content.querySelector('.mat-datetimepicker-calendar-period-button');\n const prevButton =\n content.querySelector('.mat-datetimepicker-calendar-previous-button') ??\n header.querySelector('.mat-datetimepicker-calendar-previous-button');\n const nextButton =\n content.querySelector('.mat-datetimepicker-calendar-next-button') ??\n header.querySelector('.mat-datetimepicker-calendar-next-button');\n\n /**\n * create headerLine1 that will contain month name, year value and year prev/next buttons\n */\n const headerLine1 = header.querySelector('.header.line-1') ?? document.createElement('div');\n headerLine1.className = 'header line-1';\n headerLine1.innerHTML = '';\n\n /**\n * create headerSubLine1 that will contain month name and year value\n */\n const headerSubLine1 = document.createElement('div');\n headerSubLine1.className = 'sub-line-1';\n\n if (yearButton) {\n const svg: HTMLElement | null = yearButton.querySelector('.arrow-down');\n const monthShortcut: HTMLElement | null = document.createElement('div');\n if (view !== 'year' && view !== 'clock') {\n monthShortcut.className = 'month-shortcut';\n monthShortcut.innerHTML = monthButton?.textContent?.slice(0, 3) || '';\n yearButton.prepend(monthShortcut);\n /**\n * create arrow down icon\n */\n const arrowSVG = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"8\" viewBox=\"0 0 11 8\" fill=\"none\">\n <path d=\"M0.5 0.0178223L10.5 0.0178224L5.5 7.01782L0.5 0.0178223Z\" />\n </svg>`;\n\n const arrowDiv = document.createElement('div');\n arrowDiv.className = 'arrow-down';\n arrowDiv.innerHTML = arrowSVG;\n /**\n * append arrow to the button\n */\n yearButton.append(arrowDiv);\n }\n\n /**\n * remove svg on a year view\n */\n if (svg && (view === 'year' || view === 'clock')) {\n svg.remove();\n }\n\n /**\n * remove svg on a year view\n */\n const monthEl: HTMLElement | null = yearButton.querySelector('.month-shortcut');\n\n if (monthEl && (view === 'year' || view === 'clock')) {\n monthEl.remove();\n }\n\n /**\n * append year to subLine1\n */\n headerSubLine1.append(yearButton);\n }\n\n /**\n * only append headerSubLine1 to he headerLine1 if it has items\n */\n if (headerSubLine1.hasChildNodes() && view !== 'clock') {\n headerLine1.append(headerSubLine1);\n }\n\n /**\n * create headerSubLine2 that will contain year prev/next buttons\n */\n const headerSubLine2 = document.createElement('div');\n headerSubLine2.className = 'sub-line-2';\n\n if (prevButton) {\n headerSubLine2.append(prevButton);\n }\n\n if (nextButton) {\n headerSubLine2.append(nextButton);\n }\n\n /**\n * only append headerSubLine2 to he headerLine1 if it has items\n */\n if (headerSubLine2.hasChildNodes()) {\n headerLine1.append(headerSubLine2);\n }\n\n /**\n * only append headerLine1 header if it has items\n */\n if (headerLine1.hasChildNodes()) {\n header.prepend(headerLine1);\n }\n\n /**\n * remove existing div to headerLine2 that will contain date and time information\n */\n const headerLine2 = header.querySelector('.mat-datetimepicker-calendar-header-date-time');\n\n if (headerLine2) {\n headerLine2.remove();\n }\n\n /**\n * make sure calendar container is not hidden anymore\n */\n this.container?.classList.remove('hidden');\n\n /**\n * Add event listeners to the buttons to detect month changes\n */\n\n if (this.isFirstRun) {\n this.addMonthChangeListeners(prevButton, nextButton);\n }\n }\n\n private addMonthChangeListeners(prevButton: Element | null, nextButton: Element | null): void {\n if (prevButton) {\n prevButton.addEventListener('click', () => {\n this.clearHeaderLine1();\n });\n }\n\n if (nextButton) {\n nextButton.addEventListener('click', () => {\n this.clearHeaderLine1();\n });\n }\n }\n\n /**\n * Remove old month label and prevent duplicate arrow down\n */\n private clearHeaderLine1(): void {\n const monthLabel = document.querySelector('.month-shortcut');\n const arrowIcon = document.querySelector('.arrow-down');\n if (monthLabel && arrowIcon) {\n monthLabel.remove();\n arrowIcon.remove();\n this.run('month');\n }\n }\n}\n","import { Directive, Inject, Input, NgModule, OnChanges, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\nimport { CustomDateTimeFormat } from './custom-datetime-format';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Directive({\n selector: '[dateTimePickerFormat]',\n providers: [\n {\n provide: MAT_DATETIME_FORMATS,\n useClass: CustomDateTimeFormat,\n },\n ],\n})\nexport class DateTimePickerFormatDirective implements OnChanges {\n /** Custom display format that will override current format for this component */\n @Input() customDisplayFormat: GENERIC_COLLECTION = {};\n /** Set to use custom display format, overriding the one, provided by locale */\n @Input() overrideDisplayFormat = true;\n\n ngOnChanges() {\n if (this.overrideDisplayFormat) {\n this.format.updateDisplay(this.customDisplayFormat);\n this.format.updateParse(this.customDisplayFormat);\n this.ngControl.valueAccessor?.writeValue(this.ngControl.value);\n }\n }\n\n constructor(\n @Inject(MAT_DATETIME_FORMATS) private format: CustomDateTimeFormat,\n @Optional() private ngControl: NgControl,\n ) {}\n}\n\n@NgModule({\n imports: [],\n declarations: [DateTimePickerFormatDirective],\n exports: [DateTimePickerFormatDirective],\n})\nexport class DateTimePickerFormatDirectiveModule {}\n","import {\n Input,\n Component,\n OnInit,\n OnDestroy,\n SimpleChange,\n OnChanges,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n inject,\n} from '@angular/core';\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\nimport { FormControl, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { adsIconCross, adsIconDatepicker, adsIconTimepicker } from '@ascentgl/ads-icons/icons';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { add } from 'date-fns';\nimport { FORMAT_DATETIME } from './custom-datetime-format';\nimport { MatDatetimepickerComponent, MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\nimport { MatCalendarView } from '@mat-datetimepicker/core/datetimepicker/calendar';\nimport { DatetimeTemplateFormatter } from './datetime-template.formatter';\n\n@Component({\n selector: 'ads-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', './datetimepicker.component.scss'],\n})\nexport class AdsDatetimepickerComponent extends AbstractInputComponent implements OnChanges, OnInit, OnDestroy {\n /** @ignore */\n @ViewChild(MatDatetimepickerComponent) picker?: MatDatetimepickerComponent<unknown>;\n\n /** Choose between 12 and 24 hour time input mode. NOTE: twelveHour=true may have minor issues when allowPastValues=false */\n @Input() twelveHour = false;\n\n /** Set time offset relative to GMT. If parameter is omitted offset will be calculated based on browser info */\n @Input() offset?: number;\n\n /** Allow or forbid choosing date values from the past */\n @Input() allowPastValues = true;\n\n /** Set to inputting value manually */\n @Input() allowManualInput = true;\n\n /** Whether to use key shortcuts (\"y\", \"n\", \"t\") for setting the value */\n @Input() useShortcuts = true;\n\n /** Set to use custom display format, overriding the one, provided by locale */\n @Input() overrideDisplayFormat = true;\n\n /** Show or hide time picker */\n @Input() showTimePicker = true;\n\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_DATETIME;\n\n /** @ignore */\n @ViewChild('input') input?: ElementRef;\n\n /** @ignore */\n customDisplayFormatOverride: GENERIC_COLLECTION = {};\n\n /** @ignore */\n type: MatDatetimepickerType = 'datetime';\n\n /** @ignore */\n minDate?: string;\n\n /** @ignore */\n protected shortcuts: GENERIC_COLLECTION = {\n y: -1, //yesterday\n n: 0, //now\n t: 1, //tomorrow\n };\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Date and Time must appear in this format: MM/DD/YYYY HH:mm',\n matDatepickerMin: 'The value is too old',\n };\n\n /** @ignore */\n private subscriptions: Subscription[] = [];\n\n /** @ignore */\n private isDisplayValueChangeRegistered = false;\n\n private cdr = inject(ChangeDetectorRef);\n\n private templateFormatter = new DatetimeTemplateFormatter();\n\n constructor() {\n super();\n this.registry.register([adsIconCross, adsIconDatepicker, adsIconTimepicker]);\n }\n\n /** @ignore */\n ngOnInit(): void {\n this.setupSubscriptions();\n this.applyCustomFormat();\n this.cdr.detectChanges();\n }\n /** @ignore */\n ngOnChanges(changes: {\n customDisplayFormat: SimpleChange;\n offset: SimpleChange;\n showTimePicker: SimpleChange;\n immediateValidation: SimpleChange;\n }): void {\n if (changes.customDisplayFormat || changes.showTimePicker) {\n this.applyCustomFormat();\n }\n\n if (changes.offset && !changes.offset.isFirstChange()) {\n this.syncDisplayedValue();\n }\n\n super.ngOnChanges(changes);\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n /** @ignore */\n toggle(event: MouseEvent): void {\n event.stopPropagation();\n if (this.picker?.opened) {\n this.picker.close();\n } else {\n this.picker?.open();\n }\n }\n\n /** @ignore */\n get showExclamation() {\n return this.showExclamationOnError && this.displayControl.invalid && this.displayControl.touched;\n }\n\n get canClear() {\n return this.showClearButton && !!this.input?.nativeElement.value;\n }\n\n /** @ignore */\n canShowError(): boolean {\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\n }\n\n /** @ignore */\n displayFirstError(control: FormControl = this.displayControl): string {\n /**\n * if we have format error - make sure to show it first\n */\n if (this.displayControl.errors?.matDatepickerParse) {\n this.displayControl.setErrors({ matDatepickerParse: this.displayControl.errors?.matDatepickerParse });\n }\n\n return super.displayFirstError(control);\n }\n\n /** @ignore */\n onKeyDown(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n /**\n * blur input to make sure the value is applied\n */\n if (event.key === 'Enter' && event.target instanceof HTMLInputElement) {\n this.setMinValue();\n event.target.blur();\n return;\n }\n\n if (!this.useShortcuts) {\n return;\n }\n\n const shortcutOffset = this.shortcuts[event.key.toLowerCase()];\n\n /**\n * if one of the shortcuts was clicked - set current date value accordingly\n */\n if (shortcutOffset !== undefined) {\n /**\n * create date object. taking into account shortcut offset (yesterday, now, tomorrow)\n */\n const value: Date = this.createDate(shortcutOffset);\n\n /**\n * set date object to required offset value, and apply it to valueControl\n * (it will eventually sync displayControl too)\n */\n this.onChanged(this.dateToRequiredOffset(value).toISOString());\n\n event.preventDefault();\n }\n }\n\n /** @ignore */\n touchControls(): void {\n if (!this.displayControl.touched) {\n this.displayControl.markAsTouched();\n }\n\n if (!this.valueControl.touched) {\n this.valueControl.markAsTouched();\n }\n\n if (!this.displayControl.dirty) {\n this.displayControl.markAsDirty();\n }\n\n if (!this.valueControl.dirty) {\n this.valueControl.markAsDirty();\n }\n }\n\n /** @ignore */\n clear(event: MouseEvent): void {\n /**\n * stop even propagation so that calendar won't open on \"clear\" button click\n */\n event.stopPropagation();\n\n this.displayControl.setValue(null);\n\n this.onChanged(this.displayControl.value);\n }\n\n /** @ignore */\n mousedown(event: MouseEvent): void {\n event.preventDefault();\n }\n\n /** @ignore */\n onOpened(): void {\n this.templateFormatter.reset();\n this.setMinValue();\n this.isDisplayValueChangeRegistered = false;\n }\n\n /** @ignore */\n onClosed(): void {\n /**\n * NOTE: this is needed to override an issue when closing a dropdown passes focus to input\n * when allowManualInput is false\n */\n if (!this.allowManualInput) {\n this.input?.nativeElement.blur();\n }\n\n /**\n * if control value is empty, displayControl with be cleared (brought to initial state)\n */\n this.syncEmptyValues();\n\n /**\n * focus on control value and select time part\n */\n if (!this.showTimePicker && this.isDisplayValueChangeRegistered && this.type !== 'date') {\n this.input?.nativeElement.focus();\n\n const spacePosition = this.input?.nativeElement.value.lastIndexOf(' ');\n const totalLength = this.input?.nativeElement.value.length;\n\n if (spacePosition > -1) {\n this.input?.nativeElement.setSelectionRange(spacePosition + 1, spacePosition + (totalLength - spacePosition));\n }\n }\n }\n\n /** @ignore */\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\n const value = event === null ? null : typeof event == 'string' ? event : event.value;\n\n /**\n * sync valueControl errors with displayControl errors\n * NOTE: this is needed for \"invalid format\" errors that are calculated for displayControl\n * by MatDatetimepicker component\n */\n this.valueControl.setErrors(this.displayControl.errors);\n\n this.onDisplayedValueChange(value ? new Date(value) : null);\n\n /**\n * mark controls as touched and dirty to ensure proper error display\n */\n this.touchControls();\n }\n\n onViewChanged(view: MatCalendarView) {\n this.templateFormatter.run(view);\n }\n\n /** @ignore */\n protected touchInvalid(control: FormControl): void {\n super.touchInvalid(control);\n super.touchInvalid(this.displayControl);\n }\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride.datetimeInput = this.customDisplayFormat;\n }\n\n if (!this.showTimePicker) {\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride.dateInput = this.customDisplayFormat;\n } else {\n this.customDisplayFormatOverride.dateInput = FORMAT_DATETIME;\n }\n }\n }\n\n /** @ignore */\n protected setControlValue(control: FormControl, value: string | null = null, emitEvent = true): void {\n if (control.value !== value) {\n control.setValue(value, { emitEvent: emitEvent });\n }\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n /**\n * always make sure that date string is in UTC format\n */\n const value: Date = new Date(valueToApply + (valueToApply.endsWith('Z') ? '' : 'Z'));\n\n this.setControlValue(this.displayControl, this.dateToRequiredOffset(value).toISOString());\n }\n\n /** @ignore */\n protected onDisplayedValueChange(value: Date | null): void {\n let newValue: null | string = null;\n\n if (value) {\n newValue = this.displayedValueToControlValue(value);\n }\n\n /**\n * only set value if it did change\n */\n if (newValue === this.valueControl.value) {\n return;\n }\n\n /**\n * set control value reverting offset calculation\n */\n this.setControlValue(this.valueControl, newValue);\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return this.dateToActualOffset(value).toISOString();\n }\n\n /** @ignore */\n protected setMinValue(): void {\n /**\n * calculate minimum allowed datetime if needed\n */\n if (!this.allowPastValues) {\n this.minDate = this.dateToRequiredOffset().toISOString();\n }\n }\n\n /** @ignore */\n protected addOffset(date: Date, offset: number): Date {\n return add(date, { minutes: offset });\n }\n\n /** @ignore */\n protected removeOffset(date: Date, offset: number): Date {\n return add(date, { minutes: offset * -1 });\n }\n\n /** @ignore */\n protected getActualDateOffset(value: Date = this.createDate()): number {\n return value.getTimezoneOffset() * -1;\n }\n\n /** @ignore */\n protected getRequiredOffset(value: Date = this.createDate()): number {\n return this.offset ? this.offset * 60 : this.getActualDateOffset(value);\n }\n\n /** @ignore */\n protected createDate(daysShift = 0): Date {\n let value: Date = new Date();\n\n if (daysShift) {\n value = this.addOffset(value, daysShift * 24 * 60);\n }\n\n return value;\n }\n\n /** @ignore */\n private setupSubscriptions(): void {\n /**\n *\n *sync display control statuses with value control status for proper error display\n * make sure \"displayControl\" disabled state and value are synchronized with \"control\" disabled state and value\n */\n this.subscriptions.push(this.valueControl.statusChanges.subscribe(() => this.syncState()));\n this.subscriptions.push(this.valueControl.valueChanges.subscribe(() => this.syncDisplayedValue()));\n\n /**\n * NOTE: registering display value change is needed to know when to focus time part of datetime if showTimePicker is false\n */\n this.subscriptions.push(\n this.displayControl.valueChanges.subscribe(() => (this.isDisplayValueChangeRegistered = true)),\n );\n\n /**\n * make sure displayControl has the same validators as control\n */\n this.displayControl.addValidators(this.valueControl.validator ?? []);\n /**\n * required validator must be set manually in this component\n * because valueControl is disconnected from input field\n */\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n }\n this.valueControl.updateValueAndValidity({ emitEvent: false });\n this.displayControl.updateValueAndValidity({ emitEvent: false });\n /**\n * perform initial synchronizations\n */\n this.syncState();\n this.syncDisplayedValue();\n }\n\n /** @ignore */\n private syncDisplayedValue(): void {\n /**\n * if control value is empty, displayControl with be cleared (brought to initial state)\n */\n if (this.syncEmptyValues()) return;\n\n this.onSyncDisplayedValue();\n }\n\n /** @ignore */\n private syncEmptyValues(): boolean {\n if (this.valueControl.value) return false;\n\n this.setControlValue(this.displayControl, this.valueControl.value, false);\n\n return true;\n }\n\n /** @ignore */\n private dateToRequiredOffset(value: Date = this.createDate()): Date {\n value = this.removeOffset(value, this.getActualDateOffset(value));\n return this.addOffset(value, this.getRequiredOffset(value));\n }\n\n /** @ignore */\n private dateToActualOffset(value: Date = this.createDate()): Date {\n value = this.addOffset(value, this.getActualDateOffset(value));\n return this.removeOffset(value, this.getRequiredOffset(value));\n }\n}\n","<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NativeDateAdapter } from '@angular/material/core';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { format } from 'date-fns';\nimport { Injectable } from '@angular/core';\nimport { FORMAT_DATETIME, FORMAT_TIME } from './custom-datetime-format';\n\n@Injectable()\nexport class CustomDatetimeAdapter extends NativeDateAdapter {\n constructor() {\n super();\n }\n format(date: Date, displayFormat: string | GENERIC_COLLECTION): string {\n if (typeof displayFormat === 'string') {\n return format(date, displayFormat);\n } else {\n return super.format(date, displayFormat);\n }\n }\n\n parse(value: string, parseFormat?: string): Date | null {\n if (parseFormat === FORMAT_TIME) {\n /**\n * we need to add date before we parse manually input time value\n */\n value = format(new Date(), 'yyyy-MM-dd') + ' ' + this.inferTime(value);\n } else if (parseFormat === FORMAT_DATETIME) {\n const [date, time] = value.split(' ');\n\n value = time ? date + ' ' + this.inferTime(time) : value;\n }\n return super.parse(value, parseFormat);\n }\n\n private inferTime(value: string): string {\n /**\n * this allows to construct valid time when only 1 or 2 characters are input\n */\n if (value.length === 1) {\n return `0${value}:00`;\n } else if (value.length === 2) {\n return `${value}:00`;\n }\n\n return value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsDatetimepickerComponent } from './datetimepicker.component';\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { DateTimePickerFormatDirectiveModule } from './datetime-picker-format-directive';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { CustomDatetimeAdapter } from './custom-datetime.adapter';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatNativeDatetimeModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatDatetimepickerModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsDatetimepickerComponent],\n exports: [AdsDatetimepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsDatetimepickerModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { format } from 'date-fns';\nimport { FORMAT_DATE } from '../datetime-picker/custom-datetime-format';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-datepicker',\n templateUrl: '../datetime-picker/datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', '../datetime-picker/datetimepicker.component.scss'],\n})\nexport class AdsDatepickerComponent extends AdsDatetimepickerComponent {\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_DATE;\n\n /** @ignore */\n type: MatDatetimepickerType = 'date';\n\n /** @ignore */\n twelveHour = false;\n\n /** @ignore */\n showTimePicker = false;\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Date must appear in this format: MM/DD/YYYY',\n };\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride = { dateInput: this.customDisplayFormat };\n }\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return format(value, 'yyyy-MM-dd');\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n if (this.valueControl.value !== null) {\n valueToApply = this.valueControl.value + 'T00:00:00';\n }\n this.setControlValue(this.displayControl, valueToApply);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatDatetimepickerModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AdsDatepickerComponent } from './datepicker.component';\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatInputModule,\n MatNativeDateModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatDatetimepickerModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n AdsInputTooltipComponent,\n MatIconButton,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsDatepickerComponent],\n exports: [AdsDatepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsDatepickerModule {}\n","import { Component, Input } from '@angular/core';\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\nimport { MatDatetimepickerType } from '@mat-datetimepicker/core/datetimepicker/datetimepicker-type';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { format } from 'date-fns';\nimport { FORMAT_TIME } from '../datetime-picker/custom-datetime-format';\nimport { adsIconTimepicker } from '@ascentgl/ads-icons/icons';\nimport { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\n\n@Component({\n selector: 'ads-timepicker',\n templateUrl: '../datetime-picker/datetimepicker.component.html',\n styleUrls: ['../../input/input.component.scss', '../datetime-picker/datetimepicker.component.scss'],\n})\nexport class AdsTimepickerComponent extends AdsDatetimepickerComponent {\n /** if overrideDisplayFormat=true, this display format will be used */\n @Input() customDisplayFormat: string = FORMAT_TIME;\n\n /** @ignore */\n type: MatDatetimepickerType = 'time';\n\n /** @ignore */\n protected shortcuts: GENERIC_COLLECTION = {\n n: 0, //now\n };\n\n /** @ignore */\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\n matDatepickerParse: 'Time must appear in this format: HH:mm',\n };\n\n constructor() {\n super();\n this.registry.register([adsIconTimepicker]);\n }\n\n /** @ignore */\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\n /**\n * NOTE: this is needed to clear values when input field is cleared;\n * otherwise the timepicker will be set to 00:00\n */\n if (this.displayControl.value && !this.input?.nativeElement.value) {\n this.setControlValue(this.displayControl, null);\n this.setControlValue(this.valueControl, null);\n } else {\n super.onChanged(event);\n }\n }\n\n /** @ignore */\n protected applyCustomFormat(): void {\n this.customDisplayFormatOverride = {};\n\n if (this.overrideDisplayFormat) {\n this.customDisplayFormatOverride = { timeInput: this.customDisplayFormat };\n }\n }\n\n /** @ignore */\n protected displayedValueToControlValue(value: Date): string {\n return format(this.addOffset(value, this.getRequiredOffset(value) * -1), 'HH:mm:00');\n }\n\n /** @ignore */\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\n if (this.valueControl.value !== null) {\n valueToApply = format(this.createDate(), 'yyyy-MM-dd') + ' ' + this.valueControl.value;\n }\n\n super.onSyncDisplayedValue(valueToApply);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AdsTimepickerComponent } from './timepicker.component';\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatetimepickerModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatNativeDatetimeModule,\n MatNativeDateModule,\n MatInputModule,\n ReactiveFormsModule,\n AdsIconModule,\n MatIconModule,\n DateTimePickerFormatDirectiveModule,\n MatIconButton,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsTimepickerComponent],\n exports: [AdsTimepickerComponent],\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDatetimeAdapter,\n },\n ],\n})\nexport class AdsTimepickerModule {}\n","import { Component, contentChild, Input, OnChanges, SimpleChange, TemplateRef } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AdsDropdownComponent } from '../../dropdowns/dropdown';\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\n\n@Component({\n selector: 'ads-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n})\nexport class AdsRadioButtonComponent extends AdsDropdownComponent implements OnChanges {\n /** @ignore */\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\n\n /** Set to \"true\" to make the checkbox indeterminate */\n @Input() vertical = false;\n\n /** Enable/disable options sorting */\n @Input() sortOptions = false;\n\n /** If \"true\", will read option template provided via \"ng-template radio-option\" selector */\n @Input() useOptionTemplate = false;\n\n /** @ignore */\n fitContent = false;\n\n /** @ignore */\n placeholder = '';\n\n /** @ignore */\n declare label?: string;\n\n /** @ignore */\n ngOnChanges(changes: { required: SimpleChange; options: SimpleChange; immediateValidation: SimpleChange }): void {\n super.ngOnChanges(changes);\n\n if (changes.required) {\n if (this.required) {\n this.valueControl.addValidators(Validators.required);\n } else {\n this.valueControl.removeValidators(Validators.required);\n }\n }\n }\n}\n","<div class=\"form-control-row\" [ngStyle]=\"{ minWidth: width }\">\n <mat-radio-group\n [id]=\"id\"\n [ngClass]=\"{\n vertical: vertical,\n 'radio-invalid': valueControl.invalid && (valueControl.touched || immediateValidation),\n }\"\n [formControl]=\"valueControl\"\n >\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\n <mat-radio-button [value]=\"option.key\">\n @if (useOptionTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"optionRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\n ></ng-template>\n } @else {\n {{ displayValueFormatter ? displayValueFormatter(option.key) : option.value }}\n }\n </mat-radio-button>\n }\n </mat-radio-group>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsRadioButtonComponent } from './radio-button.component';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsSearchDropdownHighlighterPipeModule } from '../../search-fields/search-dropdown/search-dropdown-highlighter.pipe';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatRadioModule,\n MatOptionModule,\n MatInputModule,\n AdsErrorComponent,\n AdsHintComponent,\n AdsInputTooltipComponent,\n AdsSearchDropdownHighlighterPipeModule,\n AdsSuccessComponent,\n ],\n declarations: [AdsRadioButtonComponent],\n exports: [AdsRadioButtonComponent],\n})\nexport class AdsRadioButtonModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\n\n@Component({\n selector: 'ads-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n})\nexport class AdsSlideToggleComponent extends AbstractBaseComponent {\n /** @ignore */\n valueControl: FormControl = new FormControl();\n\n /** Form control, associated with input field */\n @Input() set control(control: AbstractControl | null) {\n /**\n * NOTE: we use setter and internal \"valueControl\" here\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\n *\n */\n if (control instanceof FormControl) {\n this.valueControl = control;\n } else {\n throw Error('Control must be a \"FormControl\" instance');\n }\n }\n\n /** Optional \"label\" attribute for slide toggle field */\n @Input() label = '';\n\n /** Optional \"id\" attribute for slide toggle field */\n @Input() id = '';\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n @Input() width = 'fit-content';\n\n /** @ignore */\n toggle() {\n if (this.valueControl.disabled) return;\n\n this.valueControl.setValue(!this.valueControl.value);\n }\n}\n","<div class=\"ads-toggle\">\n <div\n class=\"toggle-container\"\n [class.checked]=\"valueControl.value\"\n [class.disabled]=\"valueControl.disabled\"\n (click)=\"toggle()\"\n [ngStyle]=\"{ width: width }\"\n >\n <div class=\"toggle-track\">\n <span class=\"toggle-label\">{{ valueControl.value ? 'On' : 'Off' }}</span>\n </div>\n <div class=\"toggle-handle\"></div>\n </div>\n</div>\n@if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsSlideToggleComponent } from './slide-toggle.component';\nimport { CommonModule } from '@angular/common';\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\nimport { AdsSuccessComponent } from '../../common/success/success.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n AdsInputTooltipComponent,\n AdsErrorComponent,\n AdsHintComponent,\n AdsSuccessComponent,\n ],\n declarations: [AdsSlideToggleComponent],\n exports: [AdsSlideToggleComponent],\n})\nexport class AdsSlideToggle {}\n","import { Component, Input } from '@angular/core';\nimport { AdsCheckboxComponent } from '../checkbox';\n\n@Component({\n selector: 'ads-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n})\nexport class AdsSliderComponent extends AdsCheckboxComponent {\n /** Set minimum slider value */\n @Input() min = 0;\n\n /** Set maximum slider value */\n @Input() max = 100;\n\n /** Set slider step value */\n @Input() step = 1;\n\n /** How often to show ticks. Relative to the step so that a tick always appears on a step. Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values). */\n @Input() tickInterval?: 'auto' | number;\n\n /** Whether to invert slider direction */\n @Input() invert = false;\n\n /** Whether to show the thumb label */\n @Input() thumbLabel = true;\n\n /** @ignore */\n label = '';\n}\n","<div>\n <mat-slider [id]=\"id\" [ngStyle]=\"{ width: width }\" [min]=\"min\" [max]=\"max\" [step]=\"step\" aria-label=\"slider\"\n ><input matSliderThumb [formControl]=\"valueControl\" />\n </mat-slider>\n @if (valueControl.touched && valueControl.errors) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AdsSliderComponent } from './slider.component';\nimport { CommonModule } from '@angular/common';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatInputModule } from '@angular/material/input';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsErrorComponent } from '../../common/error/error.component';\nimport { AdsHintComponent } from '../../common/hint/hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSliderModule,\n MatInputModule,\n AdsIconModule,\n AdsErrorComponent,\n AdsHintComponent,\n ],\n declarations: [AdsSliderComponent],\n exports: [AdsSliderComponent],\n})\nexport class AdsSliderModule {}\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ads-inline-snackbar',\n templateUrl: './inline-snackbar.component.html',\n styleUrls: ['./inline-snackbar.component.scss'],\n})\nexport class AdsInlineSnackbarComponent implements OnInit, AfterViewInit {\n /** Set panel class for the snackbar. It determines snackbar color */\n @Input() panelClass: 'success' | 'warn' | 'primary' = 'success';\n\n /** Set message that will be shown on snackbar */\n @Input() message = 'Inline Snackbar';\n\n /** Set action button label */\n @Input() action = 'Click here';\n\n /** Set callback function that will be executed when action button is clicked. The button will be visible only if callback is set */\n @Input() actionCallback?: () => void;\n\n /** Set action2 button label */\n @Input() action2 = 'Click here';\n\n /** Set callback2 function that will be executed when action button is clicked. The button will be visible only if callback is set */\n @Input() actionCallback2?: () => void;\n\n /** @ignore */\n visible = false;\n\n constructor(private snackBar: MatSnackBar) {}\n\n /** @ignore */\n ngOnInit(): void {\n /**\n * connect regular snackbar to make sure all the required snackbar styles are linked\n */\n this.snackBar.open(this.message || 'X', this.action || 'X');\n this.snackBar.dismiss();\n }\n\n /** @ignore */\n click(): boolean {\n if (this.actionCallback) this.actionCallback();\n\n return false;\n }\n\n /** @ignore */\n click2(): boolean {\n if (this.actionCallback2) this.actionCallback2();\n\n return false;\n }\n\n /** @ignore */\n ngAfterViewInit(): void {\n setTimeout(() => (this.visible = true), 1);\n }\n}\n","<div class=\"mat-snack-bar-container {{ panelClass }}\" [ngClass]=\"{ visible: visible }\">\n <div class=\"mat-simple-snackbar\">\n <span class=\"message\">{{ message }}</span>\n <div class=\"links\" *ngIf=\"actionCallback || actionCallback2\">\n <a href=\"#\" *ngIf=\"actionCallback\" (click)=\"click()\">\n {{ action }}\n </a>\n <a href=\"#\" *ngIf=\"actionCallback2\" (click)=\"click2()\">\n {{ action2 }}\n </a>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsInlineSnackbarComponent } from './inline-snackbar.component';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\n@NgModule({\n declarations: [AdsInlineSnackbarComponent],\n imports: [CommonModule, MatSnackBarModule],\n exports: [AdsInlineSnackbarComponent],\n})\nexport class AdsInlineSnackbarModule {}\n","import { Component, HostListener, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\nexport type SnackBarData = {\n title?: string;\n message: string;\n hideActionButton?: boolean;\n buttonCaption?: string;\n closeOnClick?: boolean;\n};\n\n@Component({\n selector: 'ads-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n})\nexport class AdsSnackbarComponent {\n data: SnackBarData = inject(MAT_SNACK_BAR_DATA);\n snackBarRef = inject(MatSnackBarRef);\n readonly defaultButtonCaption = 'CloseButton';\n protected readonly PanelClass = PanelClass;\n\n get buttonPanelClass(): PanelClass {\n const panelClass = this.snackBarRef.containerInstance.snackBarConfig.panelClass as PanelClass;\n return panelClass === PanelClass.Error ? PanelClass.Error : PanelClass.Secondary;\n }\n\n /** @ignore */\n @HostListener('click')\n onSnackbarClick(): void {\n if (this.data.closeOnClick) {\n this.snackBarRef.dismiss();\n }\n }\n}\n\nexport enum PanelClass {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n}\n","<div class=\"container\" (click)=\"onSnackbarClick()\">\n <div>\n @if (data.title) {\n <div class=\"snackbar-title\" [innerHTML]=\"data.title\"></div>\n }\n <span [innerHTML]=\"data.message\"></span>\n </div>\n @if (!data.hideActionButton) {\n <ads-button [variant]=\"buttonPanelClass\" (click)=\"snackBarRef.dismissWithAction(); $event.stopPropagation()\">\n {{ data.buttonCaption ?? (defaultButtonCaption | transloco) }}\n </ads-button>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { AdsSnackbarComponent } from './snackbar.component';\nimport { AdsButtonModule } from '../../buttons/button';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [AdsButtonModule, MatSnackBarModule, TranslocoPipe, CommonModule],\n declarations: [AdsSnackbarComponent],\n exports: [AdsSnackbarComponent],\n})\nexport class AdsSnackbarModule {}\n","import { Injectable } from '@angular/core';\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Observable } from 'rxjs';\nimport { IViewportService } from './viewport.service.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ViewportService implements IViewportService {\n constructor(private breakpointObserver: BreakpointObserver) {}\n\n /**\n * Whether one or more media queries match the current viewport size.\n * @param breakpoints\n * @returns boolean\n */\n public isMatched(breakpoints: string | string[] = Breakpoints.Handset): boolean {\n return this.breakpointObserver.isMatched(breakpoints);\n }\n\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes in matching of the given queries.\n * @param breakpoints\n * @returns Observable<BreakpointState>\n */\n public observe(breakpoints: string | string[] = Breakpoints.Handset): Observable<BreakpointState> {\n return this.breakpointObserver.observe(breakpoints);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IWindowService } from './window.service.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class WindowService implements IWindowService {\n get innerHeight(): number {\n return window.innerHeight;\n }\n\n get innerWidth(): number {\n return window.innerWidth;\n }\n\n get search(): string {\n return window.location.search;\n }\n\n reload(): void {\n window.location.reload();\n }\n\n setTimeout(callback: (...args: unknown[]) => void, ms?: number | undefined, ...args: unknown[]): number {\n return window.setTimeout(callback, ms, args);\n }\n\n public clearTimeout(id: number): void {\n window.clearTimeout(id);\n }\n}\n","import { Component, Inject, TemplateRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\n\nexport type AdsModalData = {\n title: string;\n content: string;\n hideCancel?: boolean;\n cancelButtonText?: string;\n confirmButtonText?: string;\n contentTemplate?: TemplateRef<unknown>;\n actionsTemplate?: TemplateRef<unknown>;\n};\n\nexport enum ModalPanelClass {\n Confirmation = 'ads-confirmation',\n}\n\n@Component({\n selector: 'ads-modal',\n templateUrl: './modal.component.html',\n styleUrl: './modal.component.scss',\n})\nexport class AdsModalComponent {\n constructor(\n private dialogRef: MatDialogRef<AdsModalComponent>,\n private registry: AdsIconRegistry,\n @Inject(MAT_DIALOG_DATA) public data: AdsModalData,\n ) {\n this.registry.register(adsIconCross);\n }\n\n public onCancel(): void {\n this.dialogRef.close(false);\n }\n\n public onSubmit(): void {\n this.dialogRef.close(true);\n }\n\n public onClose(): void {\n this.dialogRef.close();\n }\n}\n","<div mat-dialog-title>\n {{ data.title }}\n <div class=\"cross-icon-container\">\n <ads-icon name=\"cross\" size=\"xxs\" stroke=\"iconPrimary\" (click)=\"onClose()\" />\n </div>\n</div>\n\n<div mat-dialog-content>\n @if (data.contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"data.contentTemplate\" [ngTemplateOutletContext]=\"{ $implicit: data }\" />\n }\n {{ data.content }}\n</div>\n\n<div mat-dialog-actions>\n @if (data.actionsTemplate) {\n <ng-container [ngTemplateOutlet]=\"data.actionsTemplate\" [ngTemplateOutletContext]=\"{ $implicit: data }\" />\n } @else {\n @if (!data.hideCancel) {\n <ads-button variant=\"secondary\" (click)=\"onCancel()\">\n @if (data.cancelButtonText) {\n {{ data.cancelButtonText | transloco }}\n } @else {\n {{ 'Cancel' | transloco }}\n }\n </ads-button>\n }\n <ads-button variant=\"primary\" (click)=\"onSubmit()\">\n @if (data.confirmButtonText) {\n {{ data.confirmButtonText | transloco }}\n } @else {\n {{ 'Save' | transloco }}\n }\n </ads-button>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AdsButtonModule } from '../buttons/button';\nimport { AdsModalComponent } from './modal.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@NgModule({\n imports: [MatDialogModule, AdsButtonModule, AdsIconModule, TranslocoPipe, NgTemplateOutlet],\n declarations: [AdsModalComponent],\n exports: [AdsModalComponent],\n})\nexport class AdsModalModule {}\n","import { Component, input, output } from '@angular/core';\nimport { Chip } from './chip.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCheck, adsIconCross } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class AdsChipComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconCross, adsIconCheck]);\n }\n\n /** The unique id of the chip */\n id = input.required<string>();\n\n /** The text of the chip */\n title = input.required<string>();\n\n /** Show check icon before text */\n showCheckedIcon = input<boolean>(false);\n\n /** Disable chip */\n disabled = input<boolean>(false);\n\n /** Show delete icon before text */\n deletable = input<boolean>(false);\n\n /** Event emitted when the remove icon is clicked */\n deleted = output<string>();\n\n /** Event emitted when a chip is selected */\n selected = output<Chip>();\n\n /** @ignore */\n onSelected() {\n this.selected.emit({\n id: this.id(),\n title: this.title(),\n });\n }\n\n /** @ignore */\n onDelete() {\n if (!this.disabled()) {\n this.deleted.emit(this.id());\n }\n }\n}\n","<div class=\"chip\" [class.disabled]=\"disabled()\" tabindex=\"0\">\n @if (showCheckedIcon()) {\n <ads-icon name=\"check\" />\n }\n <span (click)=\"onSelected()\">{{ title() }}</span>\n @if (deletable()) {\n <ads-icon name=\"cross\" class=\"chip-delete\" (click)=\"onDelete()\" />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AdsChipComponent } from './chip.component';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n declarations: [AdsChipComponent],\n exports: [AdsChipComponent],\n imports: [NgClass, NgStyle, AdsIconModule],\n})\nexport class AdsChipModule {}\n","import { Component, input, TemplateRef } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconChevronDown, adsIconChevronUp } from '@ascentgl/ads-icons/icons';\nimport { Colors } from '../general/color-palette/colors.enums';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\n\n@Component({\n selector: 'ads-expansion-panel',\n templateUrl: './expansion-panel.component.html',\n styleUrls: ['./expansion-panel.component.scss'],\n})\nexport class AdsExpansionPanelComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconChevronDown, adsIconChevronUp]);\n }\n\n /** @ignore */\n protected readonly Colors = Colors;\n\n /** The unique id of the chip */\n id = input<string>('');\n\n /** The header text */\n header = input<string>('');\n\n /** The header template */\n headerTemplate = input<TemplateRef<unknown>>();\n\n /** The header template data */\n headerTemplateData = input<GENERIC_COLLECTION>();\n\n /** Whether the AccordionItem is expanded. */\n isExpanded = input<boolean>(false);\n\n /** Whether the AccordionItem is disabled. */\n disabled = input<boolean>(false);\n\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\n width = input<string>('100%');\n}\n","<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n","import { NgModule } from '@angular/core';\nimport { AdsExpansionPanelComponent } from './expansion-panel.component';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from '@angular/material/expansion';\n\n@NgModule({\n declarations: [AdsExpansionPanelComponent],\n exports: [AdsExpansionPanelComponent],\n imports: [\n NgClass,\n NgStyle,\n AdsIconModule,\n MatExpansionPanel,\n MatExpansionPanelTitle,\n MatExpansionPanelHeader,\n MatExpansionPanelDescription,\n NgTemplateOutlet,\n ],\n})\nexport class AdsExpansionPanelModule {}\n","import { Component, HostListener, Input } from '@angular/core';\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\nimport { ColDef, FirstDataRenderedEvent, GridApi, GridOptions, GridReadyEvent } from 'ag-grid-community';\n\n@Component({\n selector: 'ads-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class AdsTableComponent {\n /** The grid's width */\n @Input() width = '100%';\n\n /** The grid's height */\n @Input() height = '100%';\n\n /** The grid options for ag-Grid */\n @Input() gridOptions?: GridOptions;\n\n /** The data to be displayed in the grid */\n @Input() rowData!: GENERIC_COLLECTION[];\n\n /** The column definitions for the grid */\n @Input() columnDefs!: ColDef[];\n\n /** Default column definitions that will be applied to all columns */\n @Input() defaultColDef: ColDef<GENERIC_COLLECTION> = {};\n\n /** @ignore */\n getDefaultColDef(): ColDef<GENERIC_COLLECTION> {\n return {\n ...this.defaultColDef,\n unSortIcon: true,\n };\n }\n\n /** @ignore */\n private gridApi?: GridApi;\n\n /** @ignore */\n @HostListener('window:resize') resize(): void {\n this.gridApi?.sizeColumnsToFit();\n }\n\n /** @ignore */\n onGridReady(params: GridReadyEvent): void {\n this.gridApi = params.api;\n this.resize();\n }\n\n /** @ignore */\n onFirstDataRendered(params: FirstDataRenderedEvent): void {\n params.api.sizeColumnsToFit();\n }\n\n /** @ignore */\n getAgGridIcons(): GENERIC_COLLECTION {\n return {\n sortAscending:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n sortDescending:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n\n sortUnSort:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\n '</svg>',\n };\n }\n\n /** @ignore */\n gridReady($event: GridReadyEvent): void {\n return this.gridOptions?.onGridReady ? this.gridOptions.onGridReady($event) : this.onGridReady($event);\n }\n\n /** @ignore */\n firstDataRendered($event: FirstDataRenderedEvent): void {\n return this.gridOptions?.onFirstDataRendered\n ? this.gridOptions.onFirstDataRendered($event)\n : this.onFirstDataRendered($event);\n }\n}\n","<ag-grid-angular\n [ngStyle]=\"{ width: width, height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"getDefaultColDef()\"\n (gridReady)=\"gridReady($event)\"\n (firstDataRendered)=\"firstDataRendered($event)\"\n/>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsTableComponent } from './table.component';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AgGridAngular } from 'ag-grid-angular';\n\n@NgModule({\n declarations: [AdsTableComponent],\n imports: [CommonModule, AdsIconModule, AgGridAngular],\n exports: [AdsTableComponent],\n})\nexport class AdsTableModule {}\n","import { Component, input } from '@angular/core';\nimport { NavMenuItem } from './nav-menu.types';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconUserCircle, adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\n\n@Component({\n selector: 'ads-nav-menu',\n styleUrls: ['nav-menu.component.scss'],\n templateUrl: 'nav-menu.component.html',\n})\nexport class AdsNavMenuComponent {\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconUserCircle, adsIconMenuMoreInfo]);\n }\n\n /**\n * Array of menu items to display in the main menu\n */\n navMenuItems = input.required<NavMenuItem[]>();\n\n /** Image url path */\n iconUrl = input<string>();\n\n /** Optional label text before icon */\n label = input<string>();\n}\n","<div class=\"ads-avatar-container\">\n @if (iconUrl()) {\n <img [ngSrc]=\"iconUrl()!\" alt=\"User Logo\" height=\"48\" width=\"48\" />\n } @else {\n <ads-icon name=\"user_circle\" theme=\"secondary\" />\n }\n @if (label()) {\n <span>{{ label() }}</span>\n }\n\n <ads-icon class=\"more-info-icon\" name=\"menu_more_info\" theme=\"secondary\" [matMenuTriggerFor]=\"menu\" />\n</div>\n\n<mat-menu #menu=\"matMenu\" [class]=\"'ads-mat-menu'\">\n @for (item of navMenuItems(); track $index) {\n @if (item.template) {\n <ng-container *ngTemplateOutlet=\"item.template; context: { menuItem: item }\" />\n } @else if (item.href) {\n <button mat-menu-item [routerLink]=\"item.href!\" routerLinkActive=\"selected\">\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\n </button>\n } @else {\n <button mat-menu-item (click)=\"item.onClick ? item.onClick() : null\">\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\n </button>\n }\n }\n</mat-menu>\n\n<ng-template #text let-item=\"menuItem\">\n <div class=\"ads-menu-item-container\">\n @if (item.icon) {\n <ads-icon [id]=\"item.id\" [name]=\"item.icon\" size=\"sm\" theme=\"iconPrimary\"></ads-icon>\n }\n <span>{{ item.label }}</span>\n </div>\n</ng-template>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsNavMenuComponent } from './nav-menu.component';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\n@NgModule({\n imports: [\n CommonModule,\n AdsIconModule,\n NgOptimizedImage,\n MatMenu,\n MatMenuTrigger,\n RouterLinkActive,\n MatMenuItem,\n RouterLink,\n ],\n exports: [AdsNavMenuComponent],\n declarations: [AdsNavMenuComponent],\n})\nexport class AdsNavMenuModule {}\n","import { Component, ElementRef, input, OnInit, signal, TemplateRef, ViewChild } from '@angular/core';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\nimport { NavItem } from './nav-item.types';\nimport { SplitGutterInteractionEvent } from 'angular-split/lib/models';\n\n@Component({\n selector: 'ads-side-nav-bar',\n styleUrls: ['side-nav-bar.component.scss'],\n templateUrl: 'side-nav-bar.component.html',\n})\nexport class AdsSideNavBarComponent implements OnInit {\n /** @ignore */\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconSearch]);\n }\n\n /** The default expanded width for the sidebar */\n defaultExpandedWidth = input<number>(220);\n\n /** The search template */\n searchTemplate = input<TemplateRef<unknown>>();\n\n /** The extra data template below search */\n extraDataTemplate = input<TemplateRef<unknown>>();\n\n /** Array of nav elements */\n navItems = input<NavItem[]>([]);\n\n /** @ignore */\n isCollapsed = signal<boolean>(false);\n\n /** @ignore */\n sidebarSize = signal<number>(this.defaultExpandedWidth());\n\n /** @ignore */\n private localStorageName = 'side-nav-bar-width';\n\n /** @ignore */\n private widthToCollapsed = 70;\n\n /** @ignore */\n private minWidth = 50;\n\n /** @ignore */\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\n\n /** @ignore */\n ngOnInit() {\n if (localStorage.getItem(this.localStorageName)) {\n this.sidebarSize.set(JSON.parse(localStorage.getItem(this.localStorageName)!));\n }\n this.isCollapsed.set(this.sidebarSize() <= this.widthToCollapsed);\n }\n\n /** @ignore */\n onDragEnd(event: SplitGutterInteractionEvent): void {\n this.saveLocalStorage(Number(event.sizes[0]));\n this.isCollapsed.set(Number(event.sizes[0]) <= this.widthToCollapsed);\n }\n\n /** Expand the sidebar between collapsed and expanded */\n /** @ignore */\n expandSidebar(): void {\n if (this.isCollapsed()) {\n this.sidebarSize.set(this.widthToCollapsed);\n setTimeout(() => {\n this.isCollapsed.set(false);\n this.saveLocalStorage(this.defaultExpandedWidth());\n this.sidebarSize.set(this.defaultExpandedWidth());\n });\n } else {\n setTimeout(() => {\n this.isCollapsed.set(true);\n this.saveLocalStorage(this.minWidth);\n this.sidebarSize.set(this.minWidth);\n });\n }\n }\n\n /** Save current width to the local storage */\n /** @ignore */\n saveLocalStorage(size: number): void {\n localStorage.setItem(this.localStorageName, JSON.stringify(size));\n }\n}\n","<as-split\n [useTransition]=\"true\"\n unit=\"pixel\"\n [gutterSize]=\"10\"\n (dragEnd)=\"onDragEnd($event)\"\n (gutterDblClick)=\"expandSidebar()\"\n [gutterDblClickDuration]=\"500\"\n>\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track $index) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AdsSideNavBarComponent } from './side-nav-bar.component';\nimport { AdsPrimaryLogoModule } from '../../logo/primary-logo';\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [\n CommonModule,\n AdsPrimaryLogoModule,\n SplitComponent,\n SplitAreaComponent,\n RouterOutlet,\n RouterLink,\n RouterLinkActive,\n AdsIconModule,\n ],\n exports: [AdsSideNavBarComponent],\n declarations: [AdsSideNavBarComponent],\n})\nexport class AdsSideNavBarModule {}\n","import { Component, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatFormField } from '@angular/material/form-field';\n\n@Component({\n selector: 'ads-numeric-step',\n templateUrl: './numeric-step.component.html',\n styleUrls: ['./numeric-step.component.scss'],\n standalone: true,\n imports: [NgClass, MatFormField],\n})\nexport class AdsNumericStepComponent {\n isLast = input.required<boolean>();\n isDelivery = input.required<boolean>();\n index = input.required<number>();\n distance = input<string>();\n\n get isFirst(): boolean {\n return this.index() === 0;\n }\n}\n","<div\n class=\"circle-container\"\n [ngClass]=\"{\n 'dash-line': true,\n outermost: isFirst || isLast(),\n }\"\n>\n <div\n class=\"dash-line top\"\n [ngClass]=\"{\n top: isLast(),\n bottom: isFirst,\n }\"\n ></div>\n @if (!isLast() && distance()) {\n <div class=\"distance-text\">\n {{ distance() }}\n </div>\n }\n <div class=\"stop-circle\" [ngClass]=\"{ delivery: isDelivery() }\">{{ index() + 1 }}</div>\n</div>\n","import { Component, input } from '@angular/core';\nimport { NumericStep } from './numeric-step.type';\n\n@Component({\n selector: 'ads-numeric-stepper',\n templateUrl: './numeric-stepper.component.html',\n styleUrls: ['./numeric-stepper.component.scss'],\n})\nexport class AdsNumericStepperComponent {\n /** Steps array */\n steps = input.required<NumericStep[]>();\n}\n","<mat-accordion multi=\"true\" class=\"stepper-container\">\n @for (step of steps(); track i; let i = $index) {\n <div class=\"step-item\">\n <ads-numeric-step\n [isLast]=\"i === steps().length - 1\"\n [index]=\"i\"\n [isDelivery]=\"step.isDelivery\"\n [distance]=\"step.distance\"\n />\n <ads-expansion-panel\n width=\"unset\"\n [headerTemplate]=\"step.headerTemplate\"\n [headerTemplateData]=\"step.templateData\"\n >\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\n </ads-expansion-panel>\n </div>\n @if (i !== steps().length - 1) {\n <div class=\"dash-container\">\n <div class=\"dash-line\"></div>\n </div>\n }\n }\n</mat-accordion>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsNumericStepperComponent } from './numeric-stepper.component';\nimport { AdsNumericStepComponent } from './components/numeric-step.component';\nimport { MatAccordion } from '@angular/material/expansion';\nimport { AdsExpansionPanelModule } from '../../expansion-panel';\n\n@NgModule({\n declarations: [AdsNumericStepperComponent],\n imports: [CommonModule, AdsNumericStepComponent, MatAccordion, AdsExpansionPanelModule],\n exports: [AdsNumericStepperComponent],\n})\nexport class AdsNumericStepperModule {}\n","import { input } from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { VerticalStep } from './vertical-step.type';\n\nexport enum VerticalStepStatus {\n Completed = 'completed',\n Current = 'current',\n Future = 'future',\n Disabled = 'disabled',\n}\n\n@Component({\n selector: 'ads-vertical-stepper',\n styleUrls: ['./vertical-stepper.component.scss'],\n templateUrl: './vertical-stepper.component.html',\n})\nexport class AdsVerticalStepperComponent implements OnInit {\n /**\n * The steps to display\n */\n steps = input.required<VerticalStep[]>();\n\n /** @ignore */\n focusedStepIndex!: number;\n\n /** @ignore */\n protected readonly VerticalStepStatus = VerticalStepStatus;\n\n /** @ignore */\n ngOnInit(): void {\n this.focusedStepIndex = this.steps().findIndex((step: VerticalStep) => step.status === VerticalStepStatus.Current);\n }\n}\n","<div class=\"vertical-stepper\">\n @for (step of steps(); track index; let first = $first; let last = $last; let index = $index) {\n <div class=\"step\" [class.focused]=\"index === focusedStepIndex\" [ngClass]=\"{ clickable: step.onClick }\">\n @if (!first) {\n <div class=\"line-container\">\n <div></div>\n <div></div>\n </div>\n }\n\n <div\n class=\"step-icon-wrapper\"\n (click)=\"step.onClick && step.status !== VerticalStepStatus.Disabled ? step.onClick!(step) : null\"\n [ngClass]=\"step.status\"\n [class.clickable]=\"step.onClick && step.status !== VerticalStepStatus.Disabled\"\n >\n <div class=\"step-icon\" [matTooltip]=\"step.tooltip || ''\" [matTooltipDisabled]=\"!step.tooltip\">\n <ads-icon [name]=\"step.icon\" size=\"sm\" stroke=\"white\" theme=\"white\" />\n </div>\n\n <span class=\"title\">{{ step.title }}</span>\n </div>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\nimport { AdsVerticalStepperComponent } from './vertical-stepper.component';\n\n@NgModule({\n imports: [CommonModule, MatTooltipModule, AdsIconModule],\n exports: [AdsVerticalStepperComponent],\n declarations: [AdsVerticalStepperComponent],\n})\nexport class AdsVerticalStepperModule {}\n","import { input } from '@angular/core';\nimport { Component } from '@angular/core';\nimport { Step } from './step.type';\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\nimport { adsIconCheck } from '@ascentgl/ads-icons/icons';\n\nexport enum StepStatus {\n Planned = 'planned',\n InProgress = 'in-progress',\n Completed = 'completed',\n}\n\n@Component({\n selector: 'ads-stepper',\n styleUrls: ['./stepper.component.scss'],\n templateUrl: './stepper.component.html',\n})\nexport class AdsStepperComponent {\n /** @ignore */\n constructor(private registry: AdsIconRegistry) {\n this.registry.register([adsIconCheck]);\n }\n\n /** @ignore */\n protected readonly StepStatus = StepStatus;\n\n /**\n * The steps to display\n */\n steps = input.required<Step[]>();\n}\n","<div class=\"stepper-container\">\n @for (step of steps(); track i; let i = $index) {\n <div class=\"step-item\">\n <div class=\"step-circle-container\">\n <div class=\"step-circle\" [ngClass]=\"[step.status]\">\n @if (step.status === StepStatus.Completed) {\n <ads-icon name=\"check\" stroke=\"white\" size=\"xxxs\" theme=\"white\" />\n }\n </div>\n @if (i !== steps().length - 1) {\n <div class=\"dash-line\" [ngClass]=\"[step.status]\"></div>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdsStepperComponent } from './stepper.component';\nimport { MatButton } from '@angular/material/button';\nimport { AdsIconModule } from '@ascentgl/ads-icons';\n\n@NgModule({\n imports: [CommonModule, MatButton, AdsIconModule],\n exports: [AdsStepperComponent],\n declarations: [AdsStepperComponent],\n})\nexport class AdsStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3.AdsIconButtonComponent","i3","i4","i5.AdsButtonComponent","i6.AdsTagContainerComponent","i7.AdsTagComponent","i8","i4.AdsButtonComponent","i2.AdsHintComponent","i3.AdsErrorComponent","i4.AdsSuccessComponent","i5","i6","i7","i8.AdsInputTooltipComponent","i9.AdsErrorComponent","i10.AdsHintComponent","i11.AdsSuccessComponent","i12.AdsTagComponent","i13.AdsCheckboxComponent","i7.AdsInputTooltipComponent","i9.AdsSuccessComponent","i10.AdsErrorComponent","i11.AdsHintComponent","i6.AdsInputTooltipComponent","i8.AdsSuccessComponent","i2.AdsInputComponent","i3.AdsDropdownComponent","i4.AdsInputTooltipComponent","i5.AdsErrorComponent","i6.AdsHintComponent","i7.AdsSuccessComponent","i9.AdsInputTooltipComponent","i12.AdsSuccessComponent","i13.AdsSearchDropdownHighlighterPipe","i8.AdsErrorComponent","i9.AdsHintComponent","i10.AdsSuccessComponent","i7.DateTimePickerFormatDirective","i9","i4.AdsErrorComponent","i5.AdsHintComponent","i2.AdsErrorComponent","i3.AdsHintComponent","i1.AdsButtonComponent","i3.AdsButtonComponent","i3.AdsPrimaryLogoComponent","i2.AdsNumericStepComponent","i4.AdsExpansionPanelComponent"],"mappings":"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"}
|