{"version":3,"file":"ca-components.mjs","sources":["../../../projects/ca-components/src/lib/enums/position.enum.ts","../../../projects/ca-components/src/lib/enums/dropdown.enum.ts","../../../projects/ca-components/src/lib/enums/filter-color.enum.ts","../../../projects/ca-components/src/lib/enums/load-status.enum.ts","../../../projects/ca-components/src/lib/enums/trailer-name.enum.ts","../../../projects/ca-components/src/lib/enums/truck-name.enum.ts","../../../projects/ca-components/src/lib/enums/style-property.enum.ts","../../../projects/ca-components/src/lib/enums/string-placeholder.enum.ts","../../../projects/ca-components/src/lib/enums/load-filter.enum.ts","../../../projects/ca-components/src/lib/enums/general-actions.enum.ts","../../../projects/ca-components/src/lib/enums/unit.enum.ts","../../../projects/ca-components/src/lib/enums/color.enum.ts","../../../projects/ca-components/src/lib/enums/styling.enum.ts","../../../projects/ca-components/src/lib/enums/common-element.enum.ts","../../../projects/ca-components/src/lib/enums/shared-string.enum.ts","../../../projects/ca-components/src/lib/enums/animation-state.enum.ts","../../../projects/ca-components/src/lib/enums/date-time-formats.enum.ts","../../../projects/ca-components/src/lib/enums/thousand-separator-format.enum.ts","../../../projects/ca-components/src/lib/enums/gps-motion-status.enum.ts","../../../projects/ca-components/src/lib/enums/gps-heading-direction.enum.ts","../../../projects/ca-components/src/lib/enums/dispatch-status.enum.ts","../../../projects/ca-components/src/lib/pipes/name-initials.pipe.ts","../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.ts","../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.html","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.ts","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.html","../../../projects/ca-components/src/lib/animations/animation.ts","../../../projects/ca-components/src/lib/pipes/ca-svg.pipe.ts","../../../projects/ca-components/src/lib/pipes/date-from-string.pipe.ts","../../../projects/ca-components/src/lib/pipes/date.pipe.ts","../../../projects/ca-components/src/lib/pipes/dispatch-status-color.pipe.ts","../../../projects/ca-components/src/lib/pipes/dropdown-load-status-color.pipe.ts","../../../projects/ca-components/src/lib/pipes/format-city-state.pipe.ts","../../../projects/ca-components/src/lib/pipes/format-currency.pipe.ts","../../../projects/ca-components/src/lib/pipes/highlight-search.pipe.ts","../../../projects/ca-components/src/lib/pipes/load-status-color.pipe.ts","../../../projects/ca-components/src/lib/pipes/n-formatter.pipe.ts","../../../projects/ca-components/src/lib/pipes/safe-html.pipe.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/models/status-types.enum.ts","../../../projects/ca-components/src/lib/utils/helpers/dropdown-menu-content.helper.ts","../../../projects/ca-components/src/lib/utils/constants/dropdown-menu-content.constants.ts","../../../projects/ca-components/src/lib/utils/constants/gps-location.constants.ts","../../../projects/ca-components/src/lib/utils/constants/search-multiple-states.constant.ts","../../../projects/ca-components/src/lib/utils/helpers/dropdown-menu-content-conditional-items.helper.ts","../../../projects/ca-components/src/lib/utils/helpers/methods-calculations.helper.ts","../../../projects/ca-components/src/lib/utils/helpers/uuid.helper.ts","../../../projects/ca-components/src/lib/utils/helpers/user.helper.ts","../../../projects/ca-components/src/lib/utils/helpers/date-time.helper.ts","../../../projects/ca-components/src/lib/utils/helpers/gps-location.helper.ts","../../../projects/ca-components/src/lib/pipes/thousand-separator.pipe.ts","../../../projects/ca-components/src/lib/pipes/thousand-to-short-format-pipe.ts","../../../projects/ca-components/src/lib/pipes/to-lower-case.pipe.ts","../../../projects/ca-components/src/lib/pipes/truncate-string.pipe.ts","../../../projects/ca-components/src/lib/pipes/unit-position.pipe.ts","../../../projects/ca-components/src/lib/pipes/user-initials.pipe.ts","../../../projects/ca-components/src/lib/pipes/truck-trailer-color-finder.pipe.ts","../../../projects/ca-components/src/lib/components/ca-load-status/enums/load-status-svg-colors.enum.ts","../../../projects/ca-components/src/lib/components/ca-load-status/enums/load-status-icon-colors.enum.ts","../../../projects/ca-components/src/lib/pipes/load-status-colors.pipe.ts","../../../projects/ca-components/src/lib/pipes/thousand-formater.pipe.ts","../../../projects/ca-components/src/lib/components/ca-load-status/enums/load-status-background-colors.enum.ts","../../../projects/ca-components/src/lib/pipes/load-status-background-color.pipe.ts","../../../projects/ca-components/src/lib/pipes/format-duration.pipe.ts","../../../projects/ca-components/src/lib/pipes/date-wait-time.pipe.ts","../../../projects/ca-components/src/lib/pipes/progress-bar-line.pipe.ts","../../../projects/ca-components/src/lib/pipes/table-highlight-search-text.pipe.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.html","../../../projects/ca-components/src/lib/animations/show.animation.ts","../../../projects/ca-components/src/lib/animations/close-form.animation.ts","../../../projects/ca-components/src/lib/components/ca-map/enums/toolbar-filter-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-set.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-popover-conditions.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-user-box.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/enums/filter-actions-string.enum.ts","../../../projects/ca-components/src/lib/animations/in-out.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/svg-routes/ca-filters-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/helpers/filter.helper.ts","../../../projects/ca-components/src/lib/services/truckassist-table.service.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/helpers/time-filter.helper.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.html","../../../projects/ca-components/src/lib/components/ca-input/pipes/color-finder.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/form-control.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/enums/dropdown-template-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/enums/dropdown-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-clear-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-container-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-datetime-picker-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-dropdown-arrow-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-error.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-password-eye-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-placeholder-icon.class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-dropdown-arrow.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-invalid-danger-mark.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-valid-check.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-placeholder-icon-right.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-placeholder-text-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-config-name-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-placeholder-text.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/utils/input-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.html","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.html","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.html","../../../projects/ca-components/src/lib/directives/hover-svg-directives.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.html","../../../projects/ca-components/src/lib/components/ca-load-modal-progress-bar/ca-load-modal-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-load-modal-progress-bar/ca-load-modal-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/services/calendar-datetime-picker.service.ts","../../../projects/ca-components/src/lib/components/ca-input/directives/min-max-value.directive.ts","../../../projects/ca-components/src/lib/components/ca-input/directives/caps-lock.directive.ts","../../../projects/ca-components/src/lib/components/ca-input/directives/input-max-value.directive.ts","../../../projects/ca-components/src/lib/components/ca-input/directives/price_format.directive.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-pattern.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-text-transform.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/mixins/restriction-pipe.mixin.ts","../../../projects/ca-components/src/lib/components/ca-input/directives/restrict-input.directive.ts","../../../projects/ca-components/src/lib/components/ca-input/utils/constants/input-constants.ts","../../../projects/ca-components/src/lib/components/ca-input/base-classes/ca-input-base-helpres.ts","../../../projects/ca-components/src/lib/components/ca-input/base-classes/ca-input-base.ts","../../../projects/ca-components/src/lib/components/ca-input/base-classes/ca-input-event-manager.ts","../../../projects/ca-components/src/lib/components/ca-input/services/ca-input-validation.service.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/config/ca-dispatcher-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/config/ca-driver-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/config/ca-fuel-stop-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/config/ca-broker-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.html","../../../projects/ca-components/src/lib/animations/state-header.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/directive.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/config/ca-state-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/config/ca-truck-type-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-truck-color.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/config/ca-trailer-type-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-trailer-color.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/pipes/filter-selected-items.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/pipes/group-selection-state.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/pipes/selected-users.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/config/ca-user-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.html","../../../projects/ca-components/src/lib/components/ca-autoclose-popover/enums/autoclose-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-autoclose-popover/ca-autoclose-popover.component.ts","../../../projects/ca-components/src/lib/components/ca-autoclose-popover/ca-autoclose-popover.component.html","../../../projects/ca-components/src/lib/components/ca-ngx-slider/enums/slider-template.enum.ts","../../../projects/ca-components/src/lib/components/ca-ngx-slider/ca-ngx-slider.component.ts","../../../projects/ca-components/src/lib/components/ca-ngx-slider/ca-ngx-slider.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/filter-config.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/validators/range.validator.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-violation-filter/ca-violation-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-violation-filter/ca-violation-filter.component.html","../../../projects/ca-components/src/lib/components/ca-map/enums/google-map.enum.ts","../../../projects/ca-components/src/lib/components/ca-map/enums/map-marker-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-map/enums/map-marker-stop-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.html","../../../projects/ca-components/src/lib/components/ca-new-filter/enums/filter-dropdown-types.enum.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/enums/filter-time.enum.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/enums/filter-sorting-key.enum.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/utils/helpers/time-filter.helper.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter-dropdown/ca-time-filter-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter-dropdown/ca-time-filter-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/strategy/calendar-strategy.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/utils/constants/custom-datetime-pickers.constants.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-days/ca-custom-datetime-pickers-calendar-days.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-days/ca-custom-datetime-pickers-calendar-days.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-main-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-list-preview-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-dates-main/ca-custom-datetime-pickers-calendar-dates-main.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-dates-main/ca-custom-datetime-pickers-calendar-dates-main.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/pipes/calendar-months.pipe.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-left-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-left/ca-custom-datetime-pickers-calendar-left.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-calendar-left/ca-custom-datetime-pickers-calendar-left.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-date-calendars/ca-custom-datetime-pickers-date-calendars.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/components/ca-custom-datetime-pickers-date-calendars/ca-custom-datetime-pickers-date-calendars.component.html","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-type-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/enums/calendar-scroll-type-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/ca-custom-datetime-pickers.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-datetime-pickers/ca-custom-datetime-pickers.component.html","../../../projects/ca-components/src/lib/components/ca-input-test/utils/input-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input-test/enums/input-commands-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-test/enums/input-commands-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-test/enums/input-config-name-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-test/enums/input-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/color-finder.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/form-control.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-clear-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-container-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-datetime-picker-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-dropdown-arrow-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-error.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-password-eye-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-placeholder-icon.class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/show-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/show-dropdown-arrow.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/show-invalid-danger-mark.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/show-valid-check.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-placeholder-icon-right.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-placeholder-text-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/show-placeholder-text.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-password/ca-input-password.component.ts","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-password/ca-input-password.component.html","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.ts","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.html","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-clear/ca-input-clear.component.ts","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-clear/ca-input-clear.component.html","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-commands/ca-input-commands.component.ts","../../../projects/ca-components/src/lib/components/ca-input-test/components/ca-input-commands/ca-input-commands.component.html","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.ts","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.html","../../../projects/ca-components/src/lib/components/ca-input-test/directives/min-max-value.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/directives/caps-lock.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/directives/input-max-value.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/directives/price_format.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/pipes/input-pattern.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-test/enums/input-text-transform.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-test/mixins/restriction-pipe.mixin.ts","../../../projects/ca-components/src/lib/components/ca-input-test/directives/restrict-input.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/directives/command-visible.directive.ts","../../../projects/ca-components/src/lib/components/ca-input-test/base-classes/ca-input-event-manager.ts","../../../projects/ca-components/src/lib/components/ca-input-test/mixins/input-command.mixin.ts","../../../projects/ca-components/src/lib/components/ca-input-test/mixins/input-helper.mixin.ts","../../../projects/ca-components/src/lib/components/ca-input-test/input-test.component.ts","../../../projects/ca-components/src/lib/components/ca-input-test/input-test.component.html","../../../projects/ca-components/src/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.ts","../../../projects/ca-components/src/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.html","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.ts","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.html","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/utils/svg-routes/last-fuel-price-progress-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/utils/constants/last-fuel-price-progress.constants.ts","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/utils/helpers/last-fuel-price-progress.helper.ts","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/enums/last-fuel-price-progress.enum.ts","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.ts","../../../projects/ca-components/src/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.html","../../../projects/ca-components/src/lib/components/ca-map-dropdown/utils/svg-routes/map-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/pipes/map-dropdown-content-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/pipes/map-dropdown-cluster-content-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/pipes/map-dropdown-value.pipe.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-map/utils/helpers/map.helper.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/constants/map-info-window-options.constants.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/constants/map.constants.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/constants/map-options.constants.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/constants/map-marker-icons.constants.ts","../../../projects/ca-components/src/lib/utils/svg-routes/shared-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/svg-routes/map-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/helpers/map-marker-icon.helper.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/services/map-marker-icon.service.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.html","../../../projects/ca-components/src/lib/directives/placeholder-directive.ts","../../../projects/ca-components/src/lib/components/ca-note/utils/helper/copy-paste.helper.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/constants/note-config.constant.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-selected-color.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-default-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/svg-routes/note-container-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.html","../../../projects/ca-components/src/lib/components/ca-note/utils/svg-routes/note-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.html","../../../projects/ca-components/src/lib/animations/accordion-animation.ts","../../../projects/ca-components/src/lib/utils/svg-routes/payroll-list-summary-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.html","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.html","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.ts","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/enums/dropdown-menu-item-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-checkbox/utils/svg-routes/checkbox-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-checkbox/ca-checkbox.component.ts","../../../projects/ca-components/src/lib/components/ca-checkbox/ca-checkbox.component.html","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/utils/svg-routes/dropdown-menu-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/pipes/dropdown-menu-placement-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/pipes/group-item-checked-state.pipe.ts","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.ts","../../../projects/ca-components/src/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/pickup-delivery-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.html","../../../projects/ca-components/src/lib/animations/tabs-modal.animation.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/constants/animation-object-default.constants.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.html","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/constants/progress-bar.constants.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/svg-routes/progress-bar-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/helpers/convert-minutes-to-hours.helper.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/pipes/convert-minutes-to-hours.pipe.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/enums/progress-bar-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/svg-routes/search-multiple-states.routes.ts","../../../projects/ca-components/src/lib/animations/expand-search-button.animation.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/pipes/chip-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/enums/chips-colors.enum.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/enums/keyboard-event-commands.enum.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/enums/search-count.enum.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/services/search-multiple-states.service.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.html","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.ts","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/utils/svg-routes/period-content.routes.ts","../../../projects/ca-components/src/lib/components/ca-period-content/enums/payroll-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-period-content/enums/period-title-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/helpers/payroll-period-content.helper.ts","../../../projects/ca-components/src/lib/components/ca-period-content/pipes/included_count.pipe.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/constants/color-map.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/pipes/period_status.pipe.ts","../../../projects/ca-components/src/lib/components/ca-period-content/pipes/payroll-status-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/animations/input-dropdown.animation.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/dropdown-count.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-svgtext-template-icon.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-svgtext-template-container.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-load-broker-container.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-multiselect-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-default-template-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/pipes/input-dropdown-fuel-franchise-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/utils/svg-routes/input-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.html","../../../projects/ca-components/src/lib/components/ca-load-status-string/pipes/load-status-string-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-load-status-string/ca-load-status-string.component.ts","../../../projects/ca-components/src/lib/components/ca-load-status-string/ca-load-status-string.component.html","../../../projects/ca-components/src/lib/services/image-base64.service.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-parking/ca-input-dropdown-parking.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/components/ca-input-dropdown-parking/ca-input-dropdown-parking.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown/ca-input-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown/ca-input-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/enums/input-address-commands-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/enums/input-address-stop-types-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/enums/input-address-type-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/enums/input-address-layers-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/enums/input-address-basic-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-rating-review/utils/svg-routes/ratings-reviews.routes.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/enums/rating-reviews-type.enums.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/components/ca-rating-review-user/ca-rating-review-user.component.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/components/ca-rating-review-user/ca-rating-review-user.component.html","../../../projects/ca-components/src/lib/components/ca-rating-review/utils/pipe/filter-title.pipe.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/utils/config/rating-review-search.config.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/utils/helpers/sort-data.helper.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component.html","../../../projects/ca-components/src/lib/components/ca-rating-review/ca-rating-review.component.ts","../../../projects/ca-components/src/lib/components/ca-rating-review/ca-rating-review.component.html","../../../projects/ca-components/src/lib/components/ca-todo/utils/svg-routes/todo.routes.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/pipes/ca-progress-expiration-abs.pipe.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/pipes/ca-progress-expiration-width.pipe.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/pipes/currency-format.pipe.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/pipes/time.pipe.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/helpers/hex-to-rgba.helper.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/utils/constants/progress-expiration.constant.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/enums/time-units.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/directives/template.directive.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/helpers/progress-expiration.helper.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/ca-progress-expiration.component.ts","../../../projects/ca-components/src/lib/components/ca-progress-expiration/ca-progress-expiration.component.html","../../../projects/ca-components/src/lib/components/ca-comment/enums/svg-icon.enum.ts","../../../projects/ca-components/src/lib/components/ca-comment/utils/constants/comment.constant.ts","../../../projects/ca-components/src/lib/components/ca-comment/pipes/icon.pipe.ts","../../../projects/ca-components/src/lib/components/ca-comment/directives/auto-resize.directive.ts","../../../projects/ca-components/src/lib/components/ca-comment/modals/comment-modal/svg-routes/modal.routes.ts","../../../projects/ca-components/src/lib/components/ca-comment/modals/comment-modal/comment-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-comment/modals/comment-modal/comment-modal.component.html","../../../projects/ca-components/src/lib/components/ca-comment/services/modal.service.ts","../../../projects/ca-components/src/lib/components/ca-comment/ca-comment.component.ts","../../../projects/ca-components/src/lib/components/ca-comment/ca-comment.component.html","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/carousel-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/file-carousel-size.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/utils/constants/files-by-size.constant.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/utils/svg-routes/carousel-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.html","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-dropzone-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-dropzone-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-upload-page.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/template-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-icons.constants.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/mime-type.constants.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/lottie-animation.constants.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-limit.constants.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/svg-routes/dropzone-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/pipes/url-extension.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/pipes/file-name.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/pipes/byte-convert.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/enums/file-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/enums/file-size.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/enums/file-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/enums/review-state.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/pipes/ng-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/pipes/mime-type-to-extension.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.html","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/enums/document-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/utils/config/upload-file-input.config.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/utils/svg-routes/upload-file.routes.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/services/document.service.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.html","../../../projects/ca-components/src/lib/components/ca-upload-files/pipes/map-file.pipe.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/pipes/upload-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-logo-change/utils/constants/logo-change.constants.ts","../../../projects/ca-components/src/lib/components/ca-logo-change/enums/logo-change.enum.ts","../../../projects/ca-components/src/lib/utils/helpers/file.helpers.ts","../../../projects/ca-components/src/lib/components/ca-logo-change/ca-logo-change.component.ts","../../../projects/ca-components/src/lib/components/ca-logo-change/ca-logo-change.component.html","../../../projects/ca-components/src/lib/components/ca-upload-files/utils/svg-routes/files-upload-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/services/upload-file.service.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/ca-upload-files.component.ts","../../../projects/ca-components/src/lib/components/ca-upload-files/ca-upload-files.component.html","../../../projects/ca-components/src/lib/animations/card-component.animation.ts","../../../projects/ca-components/src/lib/components/ca-todo/services/file-service.ts","../../../projects/ca-components/src/lib/components/ca-todo/enums/column.enum.ts","../../../projects/ca-components/src/lib/components/ca-todo/enums/download-link.enum.ts","../../../projects/ca-components/src/lib/components/ca-todo/components/ca-todo-card.component.ts","../../../projects/ca-components/src/lib/components/ca-todo/components/ca-todo-card.component.html","../../../projects/ca-components/src/lib/components/ca-todo/config/column.config.ts","../../../projects/ca-components/src/lib/components/ca-todo/ca-todo.component.ts","../../../projects/ca-components/src/lib/components/ca-todo/ca-todo-component.html","../../../projects/ca-components/src/lib/components/ca-main-table/pipes/ca-main-table-hidden-rows/ca-main-table-hidden-rows.pipe.ts","../../../projects/ca-components/src/lib/components/ca-main-table/ca-main-table.component.ts","../../../projects/ca-components/src/lib/components/ca-main-table/ca-main-table.component.html","../../../projects/ca-components/src/lib/components/ca-activity-log-list/enums/action-log-type-title-text.enum.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/enums/action-log-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/enums/activity-entity-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/enums/activity-log-utils.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/right-side-panel-current-tab.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/selected-module.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/filter-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/activity-log-sort-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/time-filter-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/modules-filter-item-label.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company-font-size.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company-info-title.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company/preferred-load-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company/fleet-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company/bank-account-status.enum.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/enums/company/bank-card-types-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/utils/pipes/action-log-name-transform.pipe.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/utils/pipes/activity-log-date-transform.pipe.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/utils/pipes/tab-title-transform.pipe.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/utils/pipes/company-user-name-transform.pipe.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/config/activity-log-search-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/ca-activity-log-list.component.ts","../../../projects/ca-components/src/lib/components/ca-activity-log-list/ca-activity-log-list.component.html","../../../projects/ca-components/src/lib/components/ca-right-side-panel/config/ca-right-side-panel.config.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/utils/svg-routes/right-side-panel-top-bar-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/utils/svg-routes/side-panel-company-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.html","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.html","../../../projects/ca-components/src/lib/components/ca-right-side-panel/utils/pipes/hide-account.pipe.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/utils/pipes/bank-card-types.pipe.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component.html","../../../projects/ca-components/src/lib/components/ca-right-side-panel/ca-right-side-panel.component.ts","../../../projects/ca-components/src/lib/components/ca-right-side-panel/ca-right-side-panel.component.html","../../../projects/ca-components/src/lib/components/ca-chart/enums/cubic-interpolation-mode.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-plugin-ids.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-event-types.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-event-properties.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-font-properties.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-annotation-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/enums/chart-annotation.enum.ts","../../../projects/ca-components/src/lib/components/ca-chart/utils/helpers/chart.helper.ts","../../../projects/ca-components/src/lib/components/ca-chart/utils/guards/chart-type.guard.ts","../../../projects/ca-components/src/lib/components/ca-chart/utils/constants/chart.constants.ts","../../../projects/ca-components/src/lib/components/ca-chart-manager/services/chart-manager.service.ts","../../../projects/ca-components/src/lib/components/ca-chart/ca-chart.component.ts","../../../projects/ca-components/src/lib/components/ca-chart/ca-chart.component.html","../../../projects/ca-components/src/lib/components/ca-tooltip-list/utils/constants/ca-tooltip-list.constants.ts","../../../projects/ca-components/src/lib/components/ca-tooltip-list/ca-tooltip-list.component.ts","../../../projects/ca-components/src/lib/components/ca-tooltip-list/ca-tooltip-list.component.html","../../../projects/ca-components/src/lib/components/ca-chart-manager/ca-chart-manager.component.ts","../../../projects/ca-components/src/lib/components/ca-chart-manager/ca-chart-manager.component.html","../../../projects/ca-components/src/lib/components/ca-sort-dropdown/enums/sort-dropdown.enum.ts","../../../projects/ca-components/src/lib/components/ca-sort-dropdown/utils/svg-routes/ca-sort-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-sort-dropdown/ca-sort-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-sort-dropdown/ca-sort-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-new-filter/ca-filter-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/ca-filter-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-new-filter/components/new-filter-base/new-filter-base.component.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/components/new-filter-base/new-filter-base.component.html","../../../projects/ca-components/src/lib/components/ca-new-filter/utils/configs/filter-dropdown-fields.config.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/pipes/filter-search.pipe.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/constant/filter-dropdown-icons.constant.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-load-status/constants/load-status.constants.ts","../../../projects/ca-components/src/lib/components/ca-load-status/pipes/status-text.pipe.ts","../../../projects/ca-components/src/lib/pipes/dispatch-status-colors.pipe.ts","../../../projects/ca-components/src/lib/components/ca-load-status/ca-load-status.component.ts","../../../projects/ca-components/src/lib/components/ca-load-status/ca-load-status.component.html","../../../projects/ca-components/src/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-vehicle-list/enums/vehicle-list.enum.ts","../../../projects/ca-components/src/lib/components/ca-vehicle-list/utils/constants/vehicle-list.constants.ts","../../../projects/ca-components/src/lib/components/ca-vehicle-list/utils/svg-routes/vehicle-list-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-vehicle-list/ca-vehicle-list.component.ts","../../../projects/ca-components/src/lib/components/ca-vehicle-list/ca-vehicle-list.component.html","../../../projects/ca-components/src/lib/components/ca-search-multiple-states-2/enums/search-multiple-state-action.enum.ts","../../../projects/ca-components/src/lib/animations/area-left-side.animation.ts","../../../projects/ca-components/src/lib/animations/area-right-side.animation.ts","../../../projects/ca-components/src/lib/animations/slide-in-out.animation.ts","../../../projects/ca-components/src/lib/animations/puff-in-out.animation.ts","../../../projects/ca-components/src/lib/animations/search-bar-button-opacity.animation.ts","../../../projects/ca-components/src/lib/animations/search-input-expand.animation.ts","../../../projects/ca-components/src/lib/animations/fade-in.animation.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states-2/util/routes/multiple-search-state-svg.route.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.html","../../../projects/ca-components/src/lib/components/ca-checkbox-selected-count/pipes/checkbox-selected-count-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-checkbox-selected-count/ca-checkbox-selected-count.component.ts","../../../projects/ca-components/src/lib/components/ca-checkbox-selected-count/ca-checkbox-selected-count.component.html","../../../projects/ca-components/src/lib/components/ca-table-card-view/utils/svg-routes/table-card-view-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/utils/helpers/table-card-skeleton.helper.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/utils/helpers/table-card-view-helper.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/pipes/is-card-flipped.pipe.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/enums/table-card-types.enum.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/enums/table-card-general.enum.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/components/additional-components/ca-table-card-view-skeleton/ca-table-card-view-skeleton.component.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/components/additional-components/ca-table-card-view-skeleton/ca-table-card-view-skeleton.component.html","../../../projects/ca-components/src/lib/components/ca-table-card-view/ca-table-card-view.component.ts","../../../projects/ca-components/src/lib/components/ca-table-card-view/ca-table-card-view.component.html","../../../projects/ca-components/src/lib/components/ca-details-title-card/ca-details-title-card.component.ts","../../../projects/ca-components/src/lib/components/ca-details-title-card/ca-details-title-card.component.html","../../../projects/ca-components/src/lib/components/ca-custom-card/utils/animations/card-modal.animation.ts","../../../projects/ca-components/src/lib/components/ca-custom-card/utils/enums/custom-card.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-card/ca-custom-card.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-card/ca-custom-card.component.html","../../../projects/ca-components/src/lib/pipes/date-to-time-from-backend.pipe.ts","../../../projects/ca-components/src/lib/pipes/date-from-backend.pipe.ts","../../../projects/ca-components/src/lib/components/ca-load-status-log/ca-load-status-log.component.ts","../../../projects/ca-components/src/lib/components/ca-load-status-log/ca-load-status-log.component.html","../../../projects/ca-components/src/lib/components/ca-status-change-dropdown/ca-status-change-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-status-change-dropdown/ca-status-change-dropdown.component.html","../../../projects/ca-components/src/lib/utils/animations/toggle-up-down.animation.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-dropdown/pipes/filter-by-search-term.pipe.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-dropdown/pipes/selected-item.pipe.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-dropdown/ca-toolbar-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-dropdown/ca-toolbar-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-custom-scrollbar/enums/event-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-scrollbar/enums/scroll-event-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.html","../../../projects/ca-components/src/lib/components/ca-modal/ca-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-modal/ca-modal.component.html","../../../projects/ca-components/src/lib/components/ca-modal-button/enums/modal-button-class-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-modal-button/enums/modal-button-size.enum.ts","../../../projects/ca-components/src/lib/components/ca-modal-button/pipes/modal-button-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-modal-button/ca-modal-button.component.ts","../../../projects/ca-components/src/lib/components/ca-modal-button/ca-modal-button.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-delete-modal/ca-delete-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-delete-modal/ca-delete-modal.component.html","../../../projects/ca-components/src/lib/components/ca-show-more/ca-show-more.component.ts","../../../projects/ca-components/src/lib/components/ca-show-more/ca-show-more.component.html","../../../projects/ca-components/src/lib/components/ca-comments/pipes/is-current-user.pipe.ts","../../../projects/ca-components/src/lib/components/ca-comments/pipes/sort-comments.pipe.ts","../../../projects/ca-components/src/lib/components/ca-comments/pipes/highlight-comment.pipe.ts","../../../projects/ca-components/src/lib/components/ca-comments/pipes/highlight-single-string.pipe.ts","../../../projects/ca-components/src/lib/components/ca-comments/ca-comments.component.ts","../../../projects/ca-components/src/lib/components/ca-comments/ca-comments.component.html","../../../projects/ca-components/src/lib/components/ca-sorting-card-dropdown/ca-sorting-card-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-sorting-card-dropdown/ca-sorting-card-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-activate-modal/ca-active-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-activate-modal/ca-active-modal.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/utils/constants/confirmation-modal-buttons.constants.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-deactive-modal/ca-deactive-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-deactive-modal/ca-deactive-modal.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-move-modal/ca-move-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-move-modal/ca-move-modal.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-reset-table-modal/ca-reset-table-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-reset-table-modal/ca-reset-table-modal.component.html","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-void-modal/ca-void-modal.component.ts","../../../projects/ca-components/src/lib/components/ca-confirmation-modals/components/ca-void-modal/ca-void-modal.component.html","../../../projects/ca-components/src/lib/components/ca-files-count/ca-files-count.component.ts","../../../projects/ca-components/src/lib/components/ca-files-count/ca-files-count.component.html","../../../projects/ca-components/src/lib/directives/description-items-text-count.directive.ts","../../../projects/ca-components/src/lib/components/ca-items-dropdown/pipes/pm-item.pipe.ts","../../../projects/ca-components/src/lib/components/ca-items-dropdown/pipes/dropdown-width.pipe.ts","../../../projects/ca-components/src/lib/components/ca-items-dropdown/utils/helpers/items-dropdown.helper.ts","../../../projects/ca-components/src/lib/components/ca-items-dropdown/ca-items-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-items-dropdown/ca-items-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-toast-messages/enums/toast-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-toast-messages/pipes/toast-background.pipe.ts","../../../projects/ca-components/src/lib/components/ca-toast-messages/pipes/toast-stack.pipe.ts","../../../projects/ca-components/src/lib/components/ca-toast-messages/ca-toast-messages.component.ts","../../../projects/ca-components/src/lib/components/ca-toast-messages/ca-toast-messages-component.html","../../../projects/ca-components/src/lib/components/ca-fleet-filter/enums/fleet-filter-item-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/utils/constants/fleet-filter.constants.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/utils/svg-routes/fleet-filter-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/utils/pipes/remove-svg-extension.pipe.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/utils/helpers/fleet-filter.helper.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/ca-fleet-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-fleet-filter/ca-fleet-filter.component.html","../../../projects/ca-components/src/lib/components/ca-custom-horizontal-scrollbar/directives/scrollbar-sync.directive.ts","../../../projects/ca-components/src/lib/components/ca-custom-horizontal-scrollbar/ca-custom-horizontal-scrollbar.component.ts","../../../projects/ca-components/src/lib/components/ca-custom-horizontal-scrollbar/ca-custom-horizontal-scrollbar.component.html","../../../projects/ca-components/src/lib/components/ca-modal-items/enums/modal-items.enum.ts","../../../projects/ca-components/src/lib/components/ca-modal-items/pipes/modal-items-header-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-modal-items/directives/scroll-shadow-border.directive.ts","../../../projects/ca-components/src/lib/components/ca-modal-items/ca-modal-items.component.ts","../../../projects/ca-components/src/lib/components/ca-modal-items/ca-modal-items.component.html","../../../projects/ca-components/src/lib/components/ca-progress-bar-v2/ca-progress-bar-v2.component.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar-v2/ca-progress-bar-v2.component.html","../../../projects/ca-components/src/lib/components/ca-range-slider/directives/range-slider.directive.ts","../../../projects/ca-components/src/lib/components/ca-range-slider/ca-range-slider.component.ts","../../../projects/ca-components/src/lib/components/ca-range-slider/ca-range-slider.component.html","../../../projects/ca-components/src/lib/components/ca-fuel-prices-range/utils/constants/fuel-prices-range.constants.ts","../../../projects/ca-components/src/lib/components/ca-fuel-prices-range/pipes/fuel-prices-range.pipe.ts","../../../projects/ca-components/src/lib/components/ca-fuel-prices-range/ca-fuel-prices-range.component.ts","../../../projects/ca-components/src/lib/components/ca-fuel-prices-range/ca-fuel-prices-range.component.html","../../../projects/ca-components/src/lib/components/ca-heatmap-usa/constants/heatmap-usa.constants.ts","../../../projects/ca-components/src/lib/components/ca-icon-dropdown/enums/placement.enum.ts","../../../projects/ca-components/src/lib/components/ca-heatmap-usa/ca-heatmap-usa.component.ts","../../../projects/ca-components/src/lib/components/ca-heatmap-usa/ca-heatmap-usa.component.html","../../../projects/ca-components/src/lib/ca-components.module.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/animations/input-dropdown.animation.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/dropdown-count.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-icon.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-container.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-load-broker-container.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-multiselect-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-default-template-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-fuel-franchise-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/input-dropdown-get-icon.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/utils/svg-routes/input-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/enums/dropdown-template-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/enums/dropdown-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/pipes/dropdown-options.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.ts","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.html","../../../projects/ca-components/src/lib/components/ca-map-list/utils/constants/map-list.constants.ts","../../../projects/ca-components/src/lib/components/ca-map-list/ca-map-list.component.ts","../../../projects/ca-components/src/lib/components/ca-map-list/ca-map-list.component.html","../../../projects/ca-components/src/lib/components/ca-map-list-card/ca-map-list-card.component.ts","../../../projects/ca-components/src/lib/components/ca-map-list-card/ca-map-list-card.component.html","../../../projects/ca-components/src/lib/components/ca-load-pickup-delivery/ca-load-pickup-delivery.component.ts","../../../projects/ca-components/src/lib/components/ca-load-pickup-delivery/ca-load-pickup-delivery.component.html","../../../projects/ca-components/src/lib/components/ca-icon-dropdown/utils/svg-routes/icon-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-icon-dropdown/ca-icon-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-icon-dropdown/ca-icon-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-input-dropdown-test/validators/dropdown-empty-value.validator.ts","../../../projects/ca-components/src/lib/components/ca-load-pickup-delivery/interfaces/load-pickup-delivery.interface.ts","../../../projects/ca-components/src/lib/components/ca-tab-switch/ca-tab-switch.component.ts","../../../projects/ca-components/src/lib/components/ca-tab-switch/ca-tab-switch.component.html","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/enums/factoring-pdf-format.enum.ts","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/enums/factoring-pdf-organize.enum.ts","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/enums/factoring-form-control.enum.ts","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/utils/constants/factoring-dropdown.constants.ts","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/ca-factoring-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-factoring-dropdown/ca-factoring-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-contacts-card/ca-contacts-card.component.ts","../../../projects/ca-components/src/lib/components/ca-contacts-card/ca-contacts-card.component.html","../../../projects/ca-components/src/lib/components/ca-modal-spinner/ca-modal-spinner.component.ts","../../../projects/ca-components/src/lib/components/ca-modal-spinner/ca-modal-spinner.component.html","../../../projects/ca-components/src/lib/components/ca-toolbar-tab-switch/pipes/toolbar-tabs-class-pipe.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-tab-switch/enums/toolbar-variant.enum.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-tab-switch/ca-toolbar-tab-switch.component.ts","../../../projects/ca-components/src/lib/components/ca-toolbar-tab-switch/ca-toolbar-tab-switch.component.html","../../../projects/ca-components/src/lib/interfaces/table/sortOrder.ts","../../../projects/ca-components/src/public-api.ts","../../../projects/ca-components/src/ca-components.ts"],"sourcesContent":["export enum ePosition {\n    TOP = 'top',\n    BOTTOM = 'bottom',\n    LEFT = 'left',\n    RIGHT = 'right',\n    BOTTOM_LEFT = 'bottom-left',\n    BOTTOM_RIGHT = 'bottom-right',\n    TABLE_CARDS_DROPDOWN_MENU = 'right-top bottom-right right-bottom top-right',\n    BOTTOM_END = 'bottom-end',\n}\n","export enum eDropdownMenu {\n    // titles\n    EDIT = 'Edit',\n    VIEW_DETAILS = 'View Details',\n    SHARE = 'Share',\n    PRINT = 'Print',\n    DELETE = 'Delete',\n    UNASSIGN = 'Unassign',\n\n    // types\n    EDIT_TYPE = 'edit',\n    VIEW_DETAILS_TYPE = 'view-details',\n    SHARE_TYPE = 'share',\n    PRINT_TYPE = 'print',\n    DELETE_TYPE = 'delete',\n    UNASSIGN_TYPE = 'unassign',\n\n    // svg classes\n    REGULAR = 'regular',\n}\n","export enum eFilterColor {\n    YELLOW = '#F89B2E',\n    GREEN = '#50AC25',\n    RED = '#DF3C3C',\n    BLUE = '#3B73ED',\n    PURPLE = '#9E47EC',\n    ORANGE = '#FF7043',\n    BROWN = '#865E3A',\n    DARK_BLUE = '#5755DF',\n    LIGHT_GREEN = '#259F94',\n    PINK = '#DF3D85',\n    GOLD = '#CF961D',\n    DEFAULT = '#F89B2E',\n}\n","export enum eLoadStatus {\n    Booked = 1,\n    Assigned,\n    Unassigned,\n    Loaded,\n    Offloaded,\n    CheckedIn,\n    Dispatched,\n    Invoiced,\n    InvoicedFactoring,\n    InvoicedHold,\n    Delivered,\n    LoadCancelled,\n    Paid,\n    PaidFactoring,\n    RevisedPaidFactoring,\n    ShortPaid,\n    ShortPaidFactoring,\n    RevisedShortPaidFactoring,\n    Claim,\n    ClaimFactoring,\n    RevisedClaimFactoring,\n    Unpaid,\n    UnpaidFactoring,\n    RevisedUnpaidFactoring,\n    Tonu,\n    TonuInvoiced,\n    TonuInvoicedFactoring,\n    TonuPaid,\n    TonuPaidFactoring,\n    TonuClaim,\n    TonuClaimFactoring,\n    TonuShortPaid,\n    TonuShortPaidFactoring,\n    TonuUnpaid,\n    TonuUnpaidFactoring,\n    Hold,\n    HoldFactoring,\n    Revised,\n    RevisedFactoring,\n    RevisedPaid,\n    RevisedClaim,\n    RevisedShortPaid,\n    RevisedUnpaid,\n    Cancelled,\n    Split,\n    Loading,\n    Offloading,\n    ArrivedPickup,\n    ArrivedDelivery,\n    CheckedInPickup,\n    CheckedInDelivery,\n    RepairDispatched,\n    RepairLoaded,\n    RepairOffloaded,\n    InvoicedHoldFactoring,\n    Preassigned\n}\n","export enum eTrailerName {\n    FLAT_BED = 'Flat Bed',\n    STEP_DECK = 'Step Deck',\n    LOW_BOY_RGN = 'Low Boy / RGN',\n    CHASSIS = 'Chassis',\n    CONESTOGA = 'Conestoga',\n    SIDE_KIT = 'Side Kit',\n    CONTAINER = 'Container',\n    REEFER = 'Reefer',\n    DRY_VAN = 'Dry Van',\n    END_DUMP = 'End Dump',\n    BOTTOM_DUMP = 'Bottom Dump',\n    HOPPER = 'Hopper',\n    TANKER = 'Tanker',\n    PNEUMATIC_TANKER = 'Pneumatic Tanker',\n    CAR_HAULER = 'Car Hauler',\n    CAR_HAULER_STINGER = 'Car Hauler Stinger',\n}\n","export enum eTruckNameString {\n    SEMI_TRUCK = 'Semi Truck',\n    SEMI_SLEEPER = 'Semi Sleeper',\n    BOX_TRUCK = 'Box Truck',\n    REEFER_TRUCK = 'Reefer Truck',\n    CARGO_VAN = 'Cargo Van',\n    DUMP_TRUCK = 'Dump Truck',\n    CEMENT_TRUCK = 'Cement Truck',\n    GARBAGE_TRUCK = 'Garbage Truck',\n    CAR_HAULER = 'Car Hauler',\n    TOW_TRUCK = 'Tow Truck',\n    SPOTTER = 'Spotter',\n}\n","export enum eStyleProperty {\n    WIDTH_PX = 'width.px',\n    HEIGHT_PX = 'height.px',\n}\n","export enum eStringPlaceholder {\n    EMPTY = '',\n    WHITESPACE = ' ',\n    DASH = '-',\n    DASH_WITH_SPACES = ' - ',\n    COMMA_WHITESPACE = ', ',\n    DOT = '.',\n    FORWARD_SLASH = '/',\n    NA = 'N/A',\n    NONE = 'None',\n    ASTERISK = '*',\n    HASH_SIGN = '#',\n    YES = 'Yes',\n    YES_UPPERCASE = 'YES',\n    YES_LOWERCASE = 'yes',\n    NO = 'No',\n    NO_UPPERCASE = 'NO',\n    NO_LOWERCASE = 'no',\n    GI_LOWERCASE = 'gi',\n}\n","export enum eLoadFilter {\n    // Actions\n    SET = 'Set',\n    CLEAR = 'Clear',\n\n    // Filter Types\n    TIME_FILTER = 'timeFilter',\n    STATUS_FILTER = 'statusFilter',\n    USER_FILTER = 'userFilter',\n    MONEY_FILTER = 'moneyFilter',\n    LOAD_TYPE_FILTER = 'loadTypeFilter',\n\n    // Load Tabs\n    PENDING = 'pending',\n    ACTIVE = 'active',\n    CLOSED = 'closed',\n\n    // Load Types\n    FTL = 'ftl',\n    LTL = 'ltl',\n    ALL = 'all',\n\n    // Other\n    DISPATCH_DATA_UPDATE = 'dispatch-data-update',\n}\n","export enum eGeneralActions {\n    ADD = 'Add',\n    ADD_LOWERCASE = 'add',\n    ADD_NEW = 'Add New',\n    UPDATE = 'Update',\n    UPDATE_LOWERCASE = 'update',\n    DELETE = 'Delete',\n    DELETE_LOWERCASE = 'delete',\n    EDIT = 'Edit',\n    EDIT_LOWERCASE = 'edit',\n    EDIT_UPPERCASE = 'EDIT',\n\n    SAVE = 'Save',\n    SAVE_LOWERCASE = 'save',\n    CANCEL = 'Cancel',\n    CANCEL_LOWERCASE = 'cancel',\n    ENTER = 'Enter',\n    ESCAPE = 'Escape',\n    CONFIRM = 'Confirm',\n    CONFIRM_LOWERCASE = 'confirm',\n    SET = 'Set',\n    SET_LOWERCASE = 'set',\n    REMOVE = 'Remove',\n    REMOVE_LOWERCASE = 'remove',\n\n    SELECT = 'Select',\n    SELECT_LOWERCASE = 'select',\n    SEARCH = 'Search',\n    SEARCH_LOWERCASE = 'search',\n\n    SELECT_ALL = 'Select All',\n    SELECT_REMAINING = 'Select Remaining',\n    CLEAR_SELECTED = 'Clear Selected',\n\n    ACTIVATE = 'Activate',\n    ACTIVATE_LOWERCASE = 'activate',\n    DEACTIVATE = 'deactivate',\n    DEACTIVATE_LOWERCASE = 'deactivate',\n\n    CLOSE = 'Close',\n    CLOSE_LOWERCASE = 'close',\n    CLOSE_UPPERCASE = 'CLOSE',\n    OPEN = 'Open',\n    OPEN_LOWERCASE = 'open',\n\n    NEXT = 'Next',\n    NEXT_LOWERCASE = 'next',\n    PREVIOUS = 'Previous',\n    PREVIOUS_LOWERCASE = 'previous',\n\n    CLEAR = 'Clear',\n    CLEAR_LOWERCASE = 'clear',\n    CLEAR_ALL = 'Clear All',\n\n    SHOW_MORE = 'show more',\n\n    OPEN_MODAL = 'open-modal',\n\n    EXPAND = 'Expand',\n    EXPAND_LOWERCASE = 'expand',\n    EXPAND_UPPERCASE = 'EXPAND',\n\n    COLLAPSE = 'Collapse',\n    COLLAPSE_LOWERCASE = 'collapse',\n    COLLAPSE_UPPERCASE = 'COLLAPSE',\n\n    SORT_BY = 'Sort By',\n\n    COPY = 'Copy',\n    COPIED = 'Copied',\n}\n","export enum eUnit {\n    // Currency\n    DOLLAR_SIGN = '$',\n\n    // Ratio\n    PERCENTAGE_SIGN = '%',\n\n    // Distance\n    MILE = 'mi',\n\n    // Quantity\n    GALLON = 'gal.',\n\n    // Time\n    DAYS = 'days',\n    HOURS = 'hours',\n    \n    DAYS_SHORT = 'd',\n    HOURS_SHORT = 'h',\n    MINUTES_SHORT = 'm',\n\n    // Pixel\n    PX = 'px',\n\n    // Pounds\n    POUNDS = 'lbs',\n\n    // Feet\n    FT = 'ft',\n}\n","export enum eColor {\n    BLACK = '#424242',\n    TOTAL_BLACK = '#000000',\n    LIGHT_GREY = '#CCCCCC',\n    DARK_GREY = '#2F2F2F',\n    WHITE = '#FFFFFF',\n    BLUE = '#3B73ED',\n    RED = '#DF3C3C',\n}\n","export enum eStyling {\n    PX = 'px',\n\n    // dimensions\n    WIDTH = 'width',\n    MAX_WIDTH = 'max-width',\n    MIN_WIDTH = 'min-width',\n    HEIGHT = 'height',\n    MAX_HEIGHT = 'max-height',\n    MIN_HEIGHT = 'min-height',\n\n    TEXT_CONTENT = 'textContent',\n}\n","export enum eCommonElement {\n    LIST = 'List',\n    LIST_LOWERCASE = 'list',\n    CARD = 'Card',\n    CARD_LOWERCASE = 'card',\n    MAP = 'Map',\n    MAP_LOWERCASE = 'map',\n}\n","export enum eSharedString {\n    ONGOING = 'Ongoing',\n\n    COMMON = 'Common',\n    COMMON_LOWERCASE = 'common',\n\n    USER = 'User',\n    USER_LOWERCASE = 'user',\n\n    TRUCK = 'truck',\n    TRUCK_CAPITALIZED = 'Truck',\n    TRAILER = 'trailer',\n    DRIVER = 'driver',\n    MILES = 'Miles',\n\n    CDL = 'cdl',\n    DRUG_ALCOHOL = 'drug-alcohol',\n    MEDICAL = 'medical',\n    MVR = 'mvr',\n\n    GENERAL = 'general',\n    DETAILS = 'details',\n\n    BUSINESS = 'business',\n\n    SMALL = 'small',\n\n    HEIGHT = 'height',\n\n    DSC = 'dsc',\n    ASC = 'asc',\n\n    ASCENDING = 'Ascending',\n    DESCENDING = 'Descending',\n\n    DATA_IMAGE_JPG_BASE64 = 'data:image/jpg;base64,',\n\n    // Miles Stop Types\n    PICKUP = 'Pickup',\n    DELIVERY = 'Delivery',\n    FUEL = 'Fuel',\n    DEADHEAD = 'DeadHead',\n    REPAIR = 'Repair',\n    TOWING = 'Towing',\n    PARKING = 'Parking',\n    SPLIT_LOCATION = 'SplitLocation',\n\n    // Address\n    ADDRESS = 'address',\n    PO_BOX_ADDRESS = 'poBoxAddress',\n    PO_BOX = 'poBox',\n\n    // Status\n    INVITED = 'Invited',\n\n    // Load Types\n    TEMPLATE = 'Template',\n    PENDING = 'Pending',\n    ACTIVE = 'Active',\n    CLOSED = 'Closed',\n    DATE = 'Date',\n\n    COMMENT = 'Comment',\n\n    HUNDRED_PERCENT = '100%',\n\n    RESULTS = 'Results',\n    PARKING_LOWERCASE = 'parking',\n\n    // Fleet Filter\n    UNIT_NO = 'unitNo',\n    TYPE = 'type',\n\n    // Tooltips\n    CLOSE = 'Close',\n\n    IGNITION = 'IGNITION',\n    CURRENT_LOCATION = 'currentLocation',\n}\n","export enum eAnimationState {\n    DEFAULT = 'default',\n    ROTATED = 'rotated',\n}\n","export enum eDateTimeFormats {\n    SHORT_FORMAT = 'short-format',\n    MONTH_FORMAT = 'month-format',\n    DIFFERENCE_DAYS = 'difference-days',\n    DATE_TIME = 'date-time',\n    TIME = 'time',\n    TIME_AGO = 'time-ago',\n\n    MM_DD_YY = 'MM/dd/YY',\n    HH_MM_A = 'hh:mm A',\n    HH_MM_AA = 'hh:mm aa',\n    MM_DD_YY_HH_MM_A = 'MM/DD/YY, hh:mm A',\n    YYYY_MM_DD_HH_MM_SS = 'YYYY-MM-DD HH:mm:ss',\n}\n","export enum eThousandSeparatorFormat {\n    REGULAR_FORMAT = '1.0-0',\n    DECIMAL_FORMAT = '1.1-1',\n    DECIMAL_DOUBLE_FORMAT = '1.2-2',\n}\n","export enum eGpsMotionStatus {\n    MOVING = 1,\n    SHORT_STOP,\n    EXTENDED_STOP,\n    PARKING,\n    NO_GPS_DEVICE,\n}\n","export enum eGpsHeadingDirection {\n    N = 'North',\n    NE = 'Northeast',\n    E = 'East',\n    SE = 'Southeast',\n    S = 'South',\n    SW = 'Southwest',\n    W = 'West',\n    NW = 'Northwest',\n}\n","export enum eDispatchStatus {\n    Off = 1,\n    Available,\n    Dispatched,\n    DeadHeading,\n    Canceled,\n    Repair,\n    DispatchedRepair,\n    LoadedRepair,\n    Towing,\n    CheckedIn,\n    Loaded,\n    Empty,\n    Offloaded,\n    Loading,\n    Offloading,\n    Break,\n    ArrivedPickup,\n    ArrivedDelivery,\n    CheckedInPickup,\n    CheckedInDelivery,\n    Split\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eStringPlaceholder } from '../enums';\n\n@Pipe({\n    name: 'nameInitials',\n    standalone: true,\n})\nexport class NameInitialsPipe implements PipeTransform {\n    constructor() {}\n\n    transform(fullName: string | number | undefined): string {\n        const fullname = fullName?.toString();\n        if (!fullname) return eStringPlaceholder.EMPTY;\n\n        const initials: string = fullname\n            .split(eStringPlaceholder.WHITESPACE)\n            .map((x) => x.charAt(0))\n            .join(eStringPlaceholder.EMPTY)\n            .substr(0, 2)\n            .toUpperCase();\n\n        return initials;\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\n\n// pipes\nimport { NameInitialsPipe } from '../../pipes/name-initials.pipe';\n\n@Component({\n  selector: 'app-ca-profile-image',\n  templateUrl: './ca-profile-image.component.html',\n  styleUrls: ['./ca-profile-image.component.scss'],\n  imports: [\n    CommonModule,\n    // pipes\n    NameInitialsPipe\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaProfileImageComponent implements OnChanges {\n  @Input() indx!: number;\n  @Input() avatarImg: string | undefined;\n  @Input() avatarColor: { background?: string; color?: string } = {\n    background: '#B7B6F1',\n    color: '#6D82C7',\n  };\n\n  private imageColor: string[] = [\n    '#2724D666',\n    '#1AB5E666',\n    '#259F9466',\n    '#50AC2566',\n    '#DF3C3C66',\n    '#FF704366',\n    '#9E47EC66',\n    '#DF3D8566',\n    '#F89B2E66',\n    '#CF961D66',\n    '#865E3A66',\n    '#91919166',\n  ];\n\n  private backgroundColors: string[] = [\n    '#B7B6F1',\n    '#B2E6F7',\n    '#B6DFDB',\n    '#C5E3B6',\n    '#F4BEBE',\n    '#FFCFC0',\n    '#DFC2F9',\n    '#F4BED6',\n    '#FDDEB9',\n    '#EFDCB4',\n    '#D6C9BD',\n    '#DADADA',\n  ];\n\n  @Input() textShortName!: string | undefined;\n  @Input() name!: string | number;\n  @Input() isRound: boolean = true;\n  @Input() size!: string | number;\n  @Input() height: string | number = 0;\n  @Input() fontSize!: string | number;\n  @Input() isHoverEffect: boolean = false;\n  @Input() isCursorPointer: boolean = true;\n  constructor() { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['indx']?.currentValue) {\n      this.getProfileImageColors();\n    }\n  }\n\n  public getProfileImageColors(): void {\n    this.avatarColor['color'] = this.imageColor[this.indx];\n    this.avatarColor['background'] = this.backgroundColors[this.indx];\n\n    if (this.indx > 11) {\n      const randomIndex = Math.floor(Math.random() * 12);\n\n      this.avatarColor['color'] = this.imageColor[randomIndex];\n      this.avatarColor['background'] = this.backgroundColors[randomIndex];\n    }\n  }\n}","<div\n    class=\"avatar-image-container d-flex\"\n    [ngClass]=\"{\n        'avatar-hover': isHoverEffect,\n        'c-pointer': isCursorPointer,\n    }\"\n>\n    @if (avatarImg) {\n        <div\n            class=\"avatar-img\"\n            [ngClass]=\"{\n                'round-avatar': isRound,\n                'regular-avatar': !isRound,\n            }\"\n            [ngStyle]=\"{\n                width: size + 'px',\n                height: size + 'px',\n            }\"\n        >\n            <img class=\"d-flex\" alt=\"avatar\" [src]=\"avatarImg\" />\n        </div>\n    } @else {\n        <div\n            class=\"avatar-no-img d-flex justify-content-center align-items-center\"\n            [ngClass]=\"{\n                'round-avatar': isRound,\n                'regular-avatar': !isRound,\n            }\"\n            [ngStyle]=\"{\n                'background-color': avatarColor.background\n                    ? avatarColor.background\n                    : 'unset',\n                color: avatarColor.color ? avatarColor.color : 'unset',\n                width: size + 'px',\n                height: (height || size) + 'px',\n                'font-size': fontSize + 'px',\n            }\"\n        >\n            {{ textShortName ?? (name | nameInitials) }}\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport {\n    Component,\n    Host,\n    ViewChild,\n    TemplateRef,\n    AfterViewInit,\n    Input,\n} from '@angular/core';\n\n@Component({\n    selector: 'mainCaTooltip, [mainCaTooltip]',\n    templateUrl: './ca-app-tooltip-v2.component.html',\n    styleUrls: ['./ca-app-tooltip-v2.component.scss'],\n    standalone: true,\n    imports: [CommonModule],\n})\nexport class CaAppTooltipV2Component implements AfterViewInit {\n    @ViewChild(TemplateRef) template!: TemplateRef<void>;\n\n    @Input() mainCaTooltip?: string = '';\n    @Input() position: string = '';\n    @Input() tooltipBackground?: string = 'rgb(40, 82, 159)';\n    @Input() tooltipColor: string = '#fff';\n    @Input() tooltipTextAlign: string = 'left';\n    @Input() tooltipMarginTop!: string;\n    @Input() tooltipMarginRight!: string;\n    @Input() set disableTooltip(isDisabled: boolean) {\n        if (this.ngbTooltop) this.ngbTooltop.disableTooltip = isDisabled;\n    }\n    @Input()\n    set openTooltipDelay(value: number) {\n        this._openTooltipDelay = value;\n        this.updateDelay();\n    }\n\n    private _openTooltipDelay: number = 1000;\n\n    constructor(@Host() private ngbTooltop: NgbTooltip) {\n        this.ngbTooltop.container = 'body';\n        this.setOpenDelay();\n    }\n\n    ngAfterViewInit() {\n        this.updateDelay();\n        this.bindTemplete();\n    }\n\n    private updateDelay() {\n        if (this.ngbTooltop) {\n            this.ngbTooltop.openDelay = this._openTooltipDelay;\n            this.setOpenDelay();\n        }\n    }\n\n    private setOpenDelay(): void {\n        Object.defineProperty(this.ngbTooltop, 'openDelay', {\n            value: this._openTooltipDelay,\n            writable: true,\n            configurable: true,\n        });\n    }\n\n    public bindTemplete(): void {\n        if (this.ngbTooltop) {\n            this.ngbTooltop.tooltipClass = 'app-ca-main-tooltip';\n            this.ngbTooltop.placement = this.position;\n            this.ngbTooltop.ngbTooltip = this.template;\n\n            this.updateDelay();\n        }\n    }\n}\n","<ng-content> </ng-content>\n<ng-template>\n    <div\n        class=\"tooltip-holder prevent-text-selection\"\n        [style]=\"\n            'margin-top: ' +\n            tooltipMarginTop +\n            '; background-color: ' +\n            tooltipBackground +\n            '; color: ' +\n            tooltipColor +\n            '; text-align: ' +\n            tooltipTextAlign +\n            '; margin-right: ' +\n            tooltipMarginRight +\n            ' '\n        \"\n        [innerHTML]=\"mainCaTooltip\"\n    ></div>\n</ng-template>\n","import { trigger, transition, style, animate } from \"@angular/animations\";\n\nexport const showAnimation = trigger(\"showAnimation\", [\n  transition(\":enter\", [\n    style({ height: \"10px\" }),\n    animate(\"150ms ease\", style({ height: \"26px\" })),\n  ]),\n  transition(\":leave\", [animate(\"150ms ease\", style({ height: 0 }))]),\n]);\n\nexport const borderShowAnimation = trigger(\"borderShowAnimation\", [\n  transition(\":enter\", [\n    style({ height: \"0px\", opacity: 0 }),\n    animate(\"300ms ease\", style({ height: \"*\", opacity: 1 })),\n  ]),\n  transition(\":leave\", [animate(\"300ms ease\", style({ height: 0 }))]),\n]);\n\nexport const pickupAnimation = trigger(\"pickupAnimation\", [\n  transition(\":enter\", [\n    style({ height: 10 }),\n    animate(\"100ms\", style({ height: \"*\" })),\n  ]),\n  transition(\":leave\", [animate(\"50ms\", style({ height: 0 }))]),\n]);\n\nexport const noteLongAnimation = trigger(\"noteLongAnimation\", [\n  transition(\":enter\", [\n    style({ width: 10 }),\n    animate(\"100ms\", style({ width: \"*\" })),\n  ]),\n  transition(\":leave\", [animate(\"300ms\", style({ width: 0 }))]),\n]);\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eStringPlaceholder } from '../enums';\nimport { OptionModel } from '../components/ca-input-dropdown/models';\n\n@Pipe({\n    standalone: true,\n    name: 'caSvg',\n})\nexport class CaSvgPipe implements PipeTransform {\n    transform(\n        svgPath?: string,\n        folder?: string,\n        subFolder?: string,\n        option?: OptionModel\n    ): string {\n        const SVG_PATH: string = 'assets/ca-components/svg';\n\n        if (!svgPath) return eStringPlaceholder.EMPTY;\n        let modifiedSvgPath: string = svgPath;\n\n        if (!modifiedSvgPath.includes('.svg'))\n            modifiedSvgPath = modifiedSvgPath.concat('.svg');\n\n        if (!modifiedSvgPath.includes('ic_'))\n            modifiedSvgPath = 'ic_'.concat(modifiedSvgPath);\n\n        if (!subFolder) return `${SVG_PATH}/${folder}/${modifiedSvgPath}`;\n\n        return `${SVG_PATH}/${folder}/${subFolder}/${modifiedSvgPath}`;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n// enums\nimport { eDateTimeFormats } from '../enums';\n\n@Pipe({\n    standalone: true,\n    name: 'dateFromStringPipe',\n})\nexport class DateFromStringPipe implements PipeTransform {\n    transform(\n        date: string | Date | null | undefined,\n        template?: eDateTimeFormats | string\n    ): any {\n        switch (template) {\n            case eDateTimeFormats.SHORT_FORMAT:\n                return moment(date).format('MM/YY');\n\n            case eDateTimeFormats.MONTH_FORMAT:\n                return moment(date, 'YYYY-MM-DDTHH:mm:ss.SSS[Z]').format(\n                    'MMMM DD, YYYY | hh:mm A'\n                );\n\n            case eDateTimeFormats.DIFFERENCE_DAYS: {\n                const a = moment();\n                const b = moment(date);\n                const diff = a.diff(b, 'days');\n                return diff < 1\n                    ? 'Today'\n                    : `${diff} ${diff === 1 ? 'day' : 'days'}`;\n            }\n            case eDateTimeFormats.DATE_TIME:\n                return moment(date).format('MM/DD/YY hh:mm A');\n\n            case eDateTimeFormats.TIME:\n                return moment(date).format('hh:mm A');\n\n            case eDateTimeFormats.TIME_AGO:\n                return moment(date, 'YYYYMMDD').fromNow();\n\n            default:\n                return moment(date).format('MM/DD/YY');\n        }\n    }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: true,\n  name: 'dateFormat',\n})\nexport class DateFormatPipe implements PipeTransform {\n  transform(value: Date | null) {\n    if (!value) return;\n\n    const today = new Date();\n    const yesterday = new Date(today);\n    yesterday.setDate(yesterday.getDate() - 1);\n\n    const timeFormat = new DatePipe('en-US').transform(value, 'HH:mm a');\n\n    if (\n      value.getFullYear() == today.getFullYear() &&\n      value.getMonth() == today.getMonth() &&\n      value.getDate() == today.getDate()\n    ) {\n      return `Today, ${timeFormat}`;\n    } else if (\n      value.getFullYear() == yesterday.getFullYear() &&\n      value.getMonth() == yesterday.getMonth() &&\n      value.getDate() == yesterday.getDate()\n    ) {\n      return `Yesterday, ${timeFormat}`;\n    } else {\n      return new DatePipe('en-US').transform(value, 'dd/MM/yyyy, HH:mm');\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'dispatchStatusColor',\n  standalone: true,\n})\nexport class DispatchStatusColorPipe implements PipeTransform {\n  transform(\n    status: string,\n    isDarkColor: boolean\n  ): { color: string; backgroundColor?: string } {\n    const adjustedStatus = status.replace(/\\s+/g, '');\n\n    const statusDarkGreyColorCondition = ['DeadHeading', 'Off'].includes(\n      adjustedStatus\n    );\n\n    const statusLightPurpleColorCondition = adjustedStatus === 'Towing';\n    const statusLightYellowColorCondition = adjustedStatus === 'Empty';\n\n    const statusLightOrangeColorCondition = [\n      'Repair',\n      'DispatchedRepair',\n      'LoadedRepair',\n    ].includes(adjustedStatus);\n    const statusTurquoiseColorCondition = [\n      'ArrivedPickup',\n      'CheckedInPickup',\n      'Loading',\n    ].includes(adjustedStatus);\n    const statusLightGreenColorCondition = adjustedStatus === 'Available';\n\n    const statusBlueColorCondition = ['Dispatched'].includes(adjustedStatus);\n\n    const statusDarkTurquoiseColorCondition = ['Loaded'].includes(\n      adjustedStatus\n    );\n    const statusRedColorCondition = [\n      'Offloading',\n      'ArrivedDelivery',\n      'CheckedInDelivery',\n      'Checked-In',\n    ].includes(adjustedStatus);\n    const statusDarkRedColorCondition = [\n      'Offloaded',\n      'RepairOffloaded',\n    ].includes(status);\n    const statusDarkRed2ColorCondition = [\n      'Cancelled',\n      'Cancel',\n      'Canceled',\n    ].includes(status);\n\n    if (statusDarkGreyColorCondition) {\n      return { color: isDarkColor ? '#AAAAAA' : '#919191' };\n    } else if (statusBlueColorCondition) {\n      return { color: isDarkColor ? '#92B1F5' : '#3B73ED' };\n    } else if (statusTurquoiseColorCondition) {\n      return { color: isDarkColor ? '#56B4AC' : '#56B4AC' };\n    } else if (statusDarkTurquoiseColorCondition) {\n      return { color: isDarkColor ? '#86C9C3' : '#259F94' };\n    } else if (statusRedColorCondition) {\n      return { color: isDarkColor ? '#E66767' : '#E66767' };\n    } else if (statusDarkRedColorCondition) {\n      return { color: isDarkColor ? '#ED9292' : '#DF3C3C' };\n    } else if (statusDarkRed2ColorCondition) {\n      return { color: isDarkColor ? ' #F4BEBE' : '#C20C0C' };\n    } else if (statusLightGreenColorCondition) {\n      return { color: isDarkColor ? '#50AC25' : '#9ED186' };\n    } else if (statusLightPurpleColorCondition) {\n      return { color: isDarkColor ? '#9E47EC' : '#C999F4' };\n    } else if (statusLightOrangeColorCondition) {\n      return { color: isDarkColor ? '#FF7043' : '#FFB097' };\n    } else if (statusLightYellowColorCondition) {\n      return { color: isDarkColor ? '#FAB15C' : '#F89B2E' };\n    }\n\n    return { color: '' };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'dropdownLoadStatusColor',\n  standalone: true,\n})\nexport class DropdownLoadStatusColorPipe implements PipeTransform {\n  transform(\n    status: string,\n    isBadge?: boolean\n  ): { color: string; backgroundColor?: string } {\n    const adjustedStatus = status.replace(/\\s+/g, '');\n\n    const statusGreyColorCondition = adjustedStatus === 'Booked';\n    const statusDarkGreyColorCondition = adjustedStatus === 'Unassigned';\n    const darkGrey = [\n      'Claim'\n    ].includes(adjustedStatus)\n    const statusDarkGrey2ColorCondition = [\n      'InvoicedHold',\n      'Hold',\n      'HoldFactoring',\n      'Revised',\n      'RevisedFactoring',\n    ].includes(adjustedStatus);\n\n    const statusGreenColorCondition =\n      adjustedStatus === 'Assigned' || adjustedStatus === 'Available';\n    const statusBlueColorCondition = [\n      'RepairDispatched',\n      'Dispatched',\n    ].includes(adjustedStatus);\n    const statusTurquoiseColorCondition = [\n      'Arrived',\n      'ArrivedPickup',\n      'CheckedInPickup',\n      'CheckedIn',\n      'Loading',\n    ].includes(adjustedStatus);\n    const statusDarkTurquoiseColorCondition = [\n      'Loaded',\n      'RepairLoaded',\n    ].includes(adjustedStatus);\n    const statusRedColorCondition = [\n      'ArrivedDelivery',\n      'CheckedInDelivery',\n      'Offloading',\n      'Checked-In',\n      'Tonu',\n    ].includes(adjustedStatus);\n    const statusDarkRedColorCondition = [\n      'Offloaded',\n      'RepairOffloaded',\n    ].includes(adjustedStatus);\n    const statusDarkRed2ColorCondition = [\n      'Cancelled',\n      'Split',\n      'LoadCancelled',\n    ].includes(adjustedStatus);\n    const statusOrangeColorCondition = adjustedStatus === 'Delivered';\n    const statusYellowColorCondition = [\n      'Invoiced',\n      'Paid',\n      'InvoicedFactoring',\n      'TonuInvoiced',\n      'TonuInvoicedFactoring',\n    ].includes(adjustedStatus);\n    const statusDarkYellowColorCondition = [\n      'Unpaid',\n      'ShortPaid',\n      'TonuUnpaid',\n      'TonuClaim',\n      'TonuClaimFactoring',\n      'ClaimFactoring',\n      'UnpaidFactoring',\n      'RevisedUnpaid',\n      'RevisedUnpaidFactoring',\n      'RevisedClaim',\n      'RevisedClaimFactoring',\n      'TonuUnpaidFactoring',\n    ].includes(adjustedStatus);\n    const statusMildDarkYellowColorCondition = [\n      'ShortPaidFactoring',\n      'RevisedPaid',\n      'RevisedShortPaidFactoring',\n      'RevisedShortPaid',\n      'TonuShortPaid',\n      'TonuShortPaidFactoring',\n      'TonuPaid',\n      'TonuPaidFactoring',\n      'RevisedPaidFactoring',\n      'PaidFactoring',\n    ].includes(adjustedStatus);\n\n    if (statusGreyColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#919191' }\n        : { color: '#919191' };\n    } else if (statusDarkGreyColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#CCCCCC' }\n        : { color: '#CCCCCC' };\n    } else if (statusGreenColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#77BF56' }\n        : { color: '#77BF56' };\n    } else if (statusBlueColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#6692F1' }\n        : { color: '#6692F1' };\n    } else if (statusTurquoiseColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#259F94' }\n        : { color: '#259F94' };\n    } else if (statusDarkTurquoiseColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#86C9C3' }\n        : { color: '#86C9C3' };\n    } else if (statusRedColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#FF7043' }\n        : { color: '#FF7043' };\n    } else if (statusDarkRedColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#ED9292' }\n        : { color: '#ED9292' };\n    } else if (statusOrangeColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#FAB15C' }\n        : { color: '#FAB15C' };\n    } else if (statusYellowColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#CF961D' }\n        : { color: '#CF961D' };\n    } else if (statusDarkYellowColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#E4C481' }\n        : { color: '#E4C481' };\n    } else if (statusDarkRed2ColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#E66767' }\n        : { color: '#F4BEBE' };\n    } else if (statusMildDarkYellowColorCondition) {\n      return isBadge\n        ? { color: '#2F2F2F', backgroundColor: '#CDB255' }\n        : { color: '#CDB255' };\n    } else if(statusDarkGrey2ColorCondition) {\n      return isBadge\n          ? { color: '#fff', backgroundColor: '#E5E5E5' }\n          : { color: '#E5E5E5' };\n    }else if(darkGrey) {\n      return isBadge\n          ? { color: '#fff', backgroundColor: '#AAAAAA' }\n          : { color: '#E5E5E5' };\n    }\n\n    return { color: '' };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'formatCityStatePipe',\n  standalone: true,\n})\nexport class FormatCityStatePipe implements PipeTransform {\n  transform(city: string, state: string): string {\n    if (!city && !state) {\n      return 'Invalid city, Invalid state';\n    }\n    if (!city) {\n      return `Invalid city, ${state}`;\n    }\n    if (!state) {\n      return `${city}, Invalid state`;\n    }\n    return `${city}, ${state}`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eStringPlaceholder, eUnit } from '../enums';\n\n@Pipe({\n    name: 'formatCurrency',\n    standalone: true,\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n    transform(currency: number, useAbbreviation?: boolean): string {\n        if (!currency) return eUnit.DOLLAR_SIGN + 0;\n\n        if (useAbbreviation) return this.nFormatter(currency);\n\n        return (\n            eUnit.DOLLAR_SIGN +\n            currency.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n        );\n    }\n\n    private nFormatter(num: number): string {\n        const si = [\n            { value: 1, symbol: eStringPlaceholder.EMPTY },\n            { value: 1e3, symbol: 'K' },\n            { value: 1e6, symbol: 'M' },\n            { value: 1e9, symbol: 'G' },\n            { value: 1e12, symbol: 'T' },\n            { value: 1e15, symbol: 'P' },\n            { value: 1e18, symbol: 'E' },\n        ];\n        const decimalPlaces = 2;\n        const regex = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n        let index;\n        for (index = si.length - 1; index > 0; index--) {\n            if (num >= si[index].value) break;\n        }\n        return (\n            eUnit.DOLLAR_SIGN +\n            (num / si[index].value)\n                .toFixed(decimalPlaces)\n                .replace(regex, '$1') +\n            si[index].symbol\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { HighlightText } from '../models/highlight-text.model';\n\n// models\n\n@Pipe({\n    name: 'caHighlight',\n    standalone: true,\n})\nexport class HighlightSearchPipe implements PipeTransform {\n    constructor(private sanitizer: DomSanitizer) {}\n\n    transform(text: any, chips: HighlightText[]): SafeHtml {\n        if (text && chips && chips.length) {\n            text = text.toString();\n            chips = chips.sort((a, b) => {\n                return b.text.length - a.text.length;\n            });\n            chips.forEach((item) => {\n                if (item.text && text && text !== 'No Results') {\n                    let pattern = item.text\n                        .toString()\n                        .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n                    const regex = new RegExp(\n                        '(' + pattern + ')(?!([^<]+)?>)',\n                        'gi'\n                    );\n                    text = text.replace(\n                        regex,\n                        (match: any) =>\n                            `<span class=\"highlight-text-${item.index}\">${match}</span>`\n                    );\n                } else return text;\n            });\n\n            return this.sanitizer.bypassSecurityTrustHtml(text);\n        }\n        return text;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'loadStatusColor',\n    standalone: true,\n})\nexport class LoadStatusColorPipe implements PipeTransform {\n    transform(status: string, isBadge?: boolean): any {\n        const adjustedStatus = status.replace(/\\s+/g, '');\n\n        const statusGreyColorCondition = adjustedStatus === 'Booked';\n        const statusDarkGreyColorCondition = adjustedStatus === 'Unassigned';\n        const statusDarkGrey2ColorCondition = [\n            'InvoicedHold',\n            'Hold',\n            'HoldFactoring',\n            'Revised',\n            'RevisedFactoring',\n        ].includes(adjustedStatus);\n        const statusGreenColorCondition = status === 'Assigned';\n        const statusBlueColorCondition = [\n            'RepairDispatched',\n            'Dispatched',\n        ].includes(status);\n        const statusTurquoiseColorCondition = [\n            'Arrived',\n            'ArrivedPickup',\n            'CheckedInPickup',\n            'CheckedIn',\n            'Loading',\n        ].includes(adjustedStatus);\n        const statusDarkTurquoiseColorCondition = [\n            'Loaded',\n            'RepairLoaded',\n        ].includes(adjustedStatus);\n        const statusRedColorCondition = [\n            'ArrivedDelivery',\n            'CheckedInDelivery',\n            'Offloading',\n            'Checked-In',\n        ].includes(status);\n        const statusDarkRedColorCondition = [\n            'Tonu',\n            'Offloaded',\n            'RepairOffloaded',\n        ].includes(status);\n        const statusDarkRed2ColorCondition = [\n            'Cancelled',\n            'Split',\n            'LoadCancelled',\n        ].includes(status);\n        const statusDarkRed3ColorCondition = status === 'Tonu';\n        const statusOrangeColorCondition = status === 'Delivered';\n        const statusYellowColorCondition = [\n            'Invoiced',\n            'Paid',\n            'InvoicedFactoring',\n            'TonuInvoiced',\n            'TonuInvoicedFactoring',\n        ].includes(adjustedStatus);\n        const statusDarkYellowColorCondition = [\n            'Claim',\n            'Unpaid',\n            'ShortPaid',\n            'TonuUnpaid',\n            'TonuClaim',\n            'TonuClaimFactoring',\n            'ClaimFactoring',\n            'UnpaidFactoring',\n            'RevisedUnpaid',\n            'RevisedUnpaidFactoring',\n            'RevisedClaim',\n            'RevisedClaimFactoring',\n            'TonuUnpaidFactoring',\n        ].includes(adjustedStatus);\n        const statusMildDarkYellowColorCondition = [\n            'ShortPaidFactoring',\n            'RevisedPaid',\n            'RevisedShortPaidFactoring',\n            'RevisedShortPaid',\n            'TonuShortPaid',\n            'TonuShortPaidFactoring',\n            'TonuPaid',\n            'TonuPaidFactoring',\n            'RevisedPaidFactoring',\n            'PaidFactoring',\n        ].includes(adjustedStatus);\n\n        if (statusGreyColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#AAAAAA' }\n                : { color: '#AAAAAA' };\n        } else if (statusDarkGreyColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#919191' }\n                : { color: '#919191' };\n        } else if (statusGreenColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#50AC25' }\n                : { color: '#50AC25' };\n        } else if (statusBlueColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#3B73ED' }\n                : { color: '#3B73ED' };\n        } else if (statusTurquoiseColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#56B4AC' }\n                : { color: '#56B4AC' };\n        } else if (statusDarkTurquoiseColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#259F94' }\n                : { color: '#259F94' };\n        } else if (statusRedColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#E66767' }\n                : { color: '#E66767' };\n        } else if (statusDarkRedColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#DF3C3C' }\n                : { color: '#DF3C3C' };\n        } else if (statusOrangeColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#F89B2E' }\n                : { color: '#F89B2E' };\n        } else if (statusYellowColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#b370f0' }\n                : { color: '#DFC66C' };\n        } else if (statusDarkYellowColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#BD9F41' }\n                : { color: '#BD9F41' };\n        } else if (statusDarkGrey2ColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#6c6c6c' }\n                : { color: '#6c6c6c' };\n        } else if (statusDarkRed2ColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#C20C0C' }\n                : { color: '#C20C0C' };\n        } else if (statusDarkRed3ColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#C20C0C' }\n                : { color: '#C20C0C' };\n        } else if (statusMildDarkYellowColorCondition) {\n            return isBadge\n                ? { color: '#fff', backgroundColor: '#CDB255' }\n                : { color: '#CDB255' };\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'nFormatter',\n  standalone: true,\n})\nexport class NFormatterPipe implements PipeTransform {\n  transform(value: number | string): string {\n    return this.nFormatter(value, 2);\n  }\n\n  public nFormatter(num: number | string, digits: number) {\n    num = num as number;\n    const si = [\n      { value: 1, symbol: '' },\n      { value: 1e3, symbol: 'K' },\n      { value: 1e6, symbol: 'M' },\n      { value: 1e9, symbol: 'G' },\n      { value: 1e12, symbol: 'T' },\n      { value: 1e15, symbol: 'P' },\n      { value: 1e18, symbol: 'E' },\n    ];\n    const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n    let i;\n    for (i = si.length - 1; i > 0; i--) {\n      if (num >= si[i].value) {\n        break;\n      }\n    }\n\n    let total = (num / si[i].value).toFixed(digits).replace(rx, '$1');\n    if (si[i].symbol) {\n      return total + si[i].symbol;\n    } else {\n      if (!total.includes('.') && !Number.isInteger(parseFloat(total))) {\n        total = total + '.00';\n      }\n      return total;\n    }\n  }\n}\n","import { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eStringPlaceholder } from '../enums';\n\n@Pipe({ name: 'safeHtml', standalone: true })\nexport class SafeHtmlPipe implements PipeTransform {\n    constructor(private sanitized: DomSanitizer) {}\n\n    transform(value: string): SafeHtml {\n        return value\n            ? this.sanitized.bypassSecurityTrustHtml(value)\n            : eStringPlaceholder.EMPTY;\n    }\n}\n","export enum StatusTypeEnum {\n  CLOSED = \"CLOSED\",\n  ACTIVE = \"ACTIVE\",\n  PENDING = \"PENDING\",\n}\n","import { DropdownMenuContentConditionalItemsHelper } from '../../utils/helpers';\n\n// enums\nimport { StatusTypeEnum } from '../../components/ca-pickup-delivery-block/models';\nimport { eDropdownMenu } from '../../enums';\n\n// models\nimport { IDropdownMenuItem } from '../../components/ca-dropdown-menu/interfaces';\n\nexport class DropdownMenuContentHelper {\n    // payroll - period content payment component\n    static getPayrollDropdownContent(\n        isOpenPayroll: boolean\n    ): IDropdownMenuItem[] {\n        // requested items\n        const requestedSharedItems = isOpenPayroll\n            ? []\n            : [\n                  eDropdownMenu.VIEW_DETAILS,\n                  eDropdownMenu.SHARE,\n                  eDropdownMenu.PRINT,\n              ];\n\n        // items\n        const sharedItems =\n            DropdownMenuContentConditionalItemsHelper.getConditionalItems(\n                requestedSharedItems,\n                true\n            );\n\n        return [...sharedItems];\n    }\n\n    // dispatchboard - pickup delivery component\n    static getPickupDeliveryDropdownContent(\n        loadStatus: string\n    ): IDropdownMenuItem[] {\n        const modifierItems =\n            DropdownMenuContentConditionalItemsHelper.getPickupDeliveryModifierItems(\n                loadStatus\n            );\n\n        const sharedItems =\n            DropdownMenuContentConditionalItemsHelper.getConditionalItems(\n                [],\n                true,\n                modifierItems\n            );\n\n        if (loadStatus === StatusTypeEnum.PENDING) {\n            const conditionalItems =\n                DropdownMenuContentConditionalItemsHelper.getConditionalItems(\n                    [eDropdownMenu.UNASSIGN],\n                    false\n                );\n\n            return [\n                sharedItems[0],\n                ...conditionalItems,\n                ...sharedItems.slice(1),\n            ];\n        }\n\n        return [...sharedItems];\n    }\n}\n","// enums\nimport { eDropdownMenu } from '../../enums/dropdown.enum';\n\n// models\nimport { IDropdownMenuItem } from '../../components/ca-dropdown-menu/interfaces';\n\nexport class DropdownMenuContentConstants {\n    // shared items\n    static DROPDOWN_MENU_SHARED_ITEMS: Record<string, IDropdownMenuItem> = {\n        [eDropdownMenu.EDIT]: {\n            title: eDropdownMenu.EDIT,\n            type: eDropdownMenu.EDIT_TYPE,\n            svgUrl: 'assets/ca-components/svg/popup/edit-hover.svg',\n            svgClass: eDropdownMenu.REGULAR,\n            hasBorder: true,\n        },\n        [eDropdownMenu.VIEW_DETAILS]: {\n            title: eDropdownMenu.VIEW_DETAILS,\n            type: eDropdownMenu.VIEW_DETAILS_TYPE,\n            svgUrl: 'assets/ca-components/svg/popup/ic_info.svg',\n            svgClass: eDropdownMenu.REGULAR,\n            hasBorder: true,\n        },\n        //TODO: next version\n        /*  [eDropdownMenu.SHARE]: {\n            title: eDropdownMenu.SHARE,\n            type: eDropdownMenu.SHARE_TYPE,\n            svgUrl: 'assets/svg/common/share-icon.svg',\n            svgClass: eDropdownMenu.REGULAR,\n        },\n        [eDropdownMenu.PRINT]: {\n            title: eDropdownMenu.PRINT,\n            type: eDropdownMenu.PRINT_TYPE,\n            svgUrl: 'assets/svg/truckassist-table/print-icon.svg',\n            svgClass: eDropdownMenu.REGULAR,\n            hasBorder: true,\n        }, */\n        [eDropdownMenu.DELETE]: {\n            title: eDropdownMenu.DELETE,\n            type: eDropdownMenu.DELETE_TYPE,\n            svgUrl: 'assets/ca-components/svg/popup/Delete.svg',\n            svgClass: eDropdownMenu.DELETE_TYPE,\n        },\n    };\n\n    // conditional items\n    static DROPDOWN_MENU_CONDITIONAL_ITEMS: Record<string, IDropdownMenuItem> =\n        {\n            // dispatchboard - pickup delivery component\n\n            [eDropdownMenu.UNASSIGN]: {\n                title: eDropdownMenu.UNASSIGN,\n                type: eDropdownMenu.UNASSIGN_TYPE,\n                svgUrl: 'assets/ca-components/svg/popup/Minus.svg',\n                svgClass: eDropdownMenu.REGULAR,\n                hasBorder: true,\n            },\n        };\n}\n","import { eGpsHeadingDirection, eGpsMotionStatus } from '../../enums';\n\nexport class GpsLocationConstants {\n    static GPS_DEVICE_COLORS: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: '#6692F1',\n        [eGpsMotionStatus.SHORT_STOP]: '#FAB15C',\n        [eGpsMotionStatus.EXTENDED_STOP]: '#E66767',\n        [eGpsMotionStatus.PARKING]: '#919191',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: '#91919133',\n    };\n\n    static GPS_DEVICE_HOVER_COLORS: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: '#3B73ED',\n        [eGpsMotionStatus.SHORT_STOP]: '#F89B2E',\n        [eGpsMotionStatus.EXTENDED_STOP]: '#DF3C3C',\n        [eGpsMotionStatus.PARKING]: '#6C6C6C',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: '#91919133',\n    };\n\n    static GPS_SVG_CLASSES: Record<\n        eGpsMotionStatus,\n        { fill: string; hover: string }\n    > = {\n        [eGpsMotionStatus.MOVING]: { fill: 'blue-8', hover: 'blue-14' },\n        [eGpsMotionStatus.SHORT_STOP]: { fill: 'yellow-1', hover: 'yellow-5' },\n        [eGpsMotionStatus.EXTENDED_STOP]: { fill: 'red-10', hover: 'red-11' },\n        [eGpsMotionStatus.PARKING]: { fill: 'muted', hover: 'bw6-2' },\n        [eGpsMotionStatus.NO_GPS_DEVICE]: { fill: 'dark-2', hover: 'dark-2' },\n    };\n\n    static GPS_SVG_FILL_COLORS: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: '#6692F1',\n        [eGpsMotionStatus.SHORT_STOP]: '#FAB15C',\n        [eGpsMotionStatus.EXTENDED_STOP]: '#E66767',\n        [eGpsMotionStatus.PARKING]: '#AAAAAA',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: '#6C6C6C',\n    };\n\n    static GPS_TITLES: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: 'MOVING',\n        [eGpsMotionStatus.SHORT_STOP]: 'SHORT STOP',\n        [eGpsMotionStatus.EXTENDED_STOP]: 'EXTENDED STOP',\n        [eGpsMotionStatus.PARKING]: 'PARKING',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: 'NO GPS DEVICE',\n    };\n\n    static GPS_TITLE_COLOR_CLASSES: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: 'text-color-blue-14',\n        [eGpsMotionStatus.SHORT_STOP]: 'text-color-yellow-4',\n        [eGpsMotionStatus.EXTENDED_STOP]: 'text-color-red-11',\n        [eGpsMotionStatus.PARKING]: 'text-color-muted',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: 'text-color-light-grey-2',\n    };\n\n    static GPS_TITLE_DROPDOWN_COLOR_CLASSES: Record<eGpsMotionStatus, string> =\n        {\n            [eGpsMotionStatus.MOVING]: 'text-color-blue-19',\n            [eGpsMotionStatus.SHORT_STOP]: 'text-color-yellow-5',\n            [eGpsMotionStatus.EXTENDED_STOP]: 'text-color-red-13',\n            [eGpsMotionStatus.PARKING]: 'text-color-muted',\n            [eGpsMotionStatus.NO_GPS_DEVICE]: 'text-color-light-grey-2',\n        };\n\n    static GPS_HEADING_ROTATION_ANGLE: Record<eGpsHeadingDirection, number> = {\n        [eGpsHeadingDirection.N]: 0,\n        [eGpsHeadingDirection.NE]: 45,\n        [eGpsHeadingDirection.E]: 90,\n        [eGpsHeadingDirection.SE]: 135,\n        [eGpsHeadingDirection.S]: 180,\n        [eGpsHeadingDirection.SW]: 225,\n        [eGpsHeadingDirection.W]: 270,\n        [eGpsHeadingDirection.NW]: 315,\n    };\n\n    static GPS_MOTION_TEXT: Record<\n        eGpsMotionStatus,\n        { text: string; textColorClass: string }\n    > = {\n        [eGpsMotionStatus.MOVING]: {\n            text: 'Driving',\n            textColorClass: 'text-color-blue-14',\n        },\n        [eGpsMotionStatus.SHORT_STOP]: {\n            text: 'Short Stop',\n            textColorClass: 'text-color-yellow-5',\n        },\n        [eGpsMotionStatus.EXTENDED_STOP]: {\n            text: 'Extended Stop',\n            textColorClass: 'text-color-red-11',\n        },\n        [eGpsMotionStatus.PARKING]: {\n            text: 'Parking',\n            textColorClass: 'text-color-bw6-2',\n        },\n        [eGpsMotionStatus.NO_GPS_DEVICE]: {\n            text: 'No GPS Device',\n            textColorClass: 'text-color-muted',\n        },\n    };\n\n    static GPS_IGNITION_SVG_CLASSES: Record<eGpsMotionStatus, string> = {\n        [eGpsMotionStatus.MOVING]: 'svg-fill-blue-8',\n        [eGpsMotionStatus.SHORT_STOP]: 'svg-fill-yellow-1',\n        [eGpsMotionStatus.EXTENDED_STOP]: 'svg-fill-red-10',\n        [eGpsMotionStatus.PARKING]: 'svg-fill-muted',\n        [eGpsMotionStatus.NO_GPS_DEVICE]: 'svg-fill-light-grey-6',\n    };\n}\n","export class SearchMultipleStatesConstant {\n    static COLOR_CLASSES: string[] = [\n        'chip-green',\n        'chip-yellow',\n        'chip-purple',\n    ];\n}","// constants\nimport { DropdownMenuContentConstants } from '../../utils/constants';\n\n// enums\nimport { eDropdownMenu } from '../../enums';\nimport { StatusTypeEnum } from '../../components/ca-pickup-delivery-block/models';\n\n// models\nimport { IDropdownMenuItem } from '../../components/ca-dropdown-menu/interfaces';\n\nexport class DropdownMenuContentConditionalItemsHelper {\n    // conditional items\n    static getConditionalItems(\n        requestedItemTitles: string[],\n        isSharedConditionalItems: boolean,\n        modifiers?: Partial<IDropdownMenuItem>[]\n    ): IDropdownMenuItem[] {\n        const dropdownMenuItems = isSharedConditionalItems\n            ? DropdownMenuContentConstants.DROPDOWN_MENU_SHARED_ITEMS\n            : DropdownMenuContentConstants.DROPDOWN_MENU_CONDITIONAL_ITEMS;\n\n        // if no specific items are requested, return all items\n        const requestedItems =\n            Array.isArray(requestedItemTitles) && !requestedItemTitles.length\n                ? Object.values(dropdownMenuItems)\n                : requestedItemTitles.map((title) => dropdownMenuItems[title]);\n\n        // map requested item - optional modifiers\n        const mapDropdownMenuItems = () => {\n            return requestedItems.map((item) => {\n                const modifier = modifiers?.find(\n                    (modifier) => modifier.title === item.title\n                );\n\n                return modifier ? { ...item, ...modifier } : item;\n            });\n        };\n\n        return mapDropdownMenuItems();\n    }\n\n    // modifier items\n    // dispatchboard - pickup delivery component\n    static getPickupDeliveryModifierItems(\n        loadStatus: string\n    ): Partial<IDropdownMenuItem>[] {\n        return [\n            {\n                title: eDropdownMenu.EDIT,\n                hasBorder: loadStatus !== StatusTypeEnum.PENDING,\n            },\n            {\n                title: eDropdownMenu.DELETE,\n                isDisabled: loadStatus !== StatusTypeEnum.PENDING,\n            },\n        ];\n    }\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport moment from 'moment';\n\n// enums\nimport { eUnit } from '../../enums';\n\nexport class MethodsCalculationsHelper {\n    //------------------------------- Calculating Parking Slots -------------------------------\n    static calculateParkingSlot = (\n        value: string,\n        formControl: AbstractControl\n    ) => {\n        // First check if value exist\n        if (!value) {\n            return 0;\n        }\n        let arrayStops: any[] = value.split(',');\n        // Second check if arrayStops has ',' or ''\n        if (arrayStops.includes(',') || arrayStops.includes('')) {\n            arrayStops.pop();\n            formControl.patchValue(value.substring(0, value.lastIndexOf(',')));\n            return;\n        }\n        return arrayStops\n            .map((item: string) => {\n                // Third check if value has '-'\n                if (item.includes('-')) {\n                    const doubleValues: string[] = item.split('-');\n                    // Fourth check lentgh of doubleValues after splitting by -, must be 2\n                    if (doubleValues.length > 2) {\n                        arrayStops.pop();\n                        formControl.patchValue(\n                            value.substring(0, value.lastIndexOf(','))\n                        );\n                        return;\n                    }\n                    const foundSameElements: boolean = arrayStops.some(\n                        (array1) => doubleValues.includes(array1)\n                    );\n                    // Fifth check if values exist, denided, delete, return\n                    if (foundSameElements) {\n                        arrayStops.pop();\n                        formControl.patchValue(\n                            value.substring(0, value.lastIndexOf(','))\n                        );\n                        return;\n                    }\n                    // Sixth check if second value > first value\n                    if (!doubleValues.includes('')) {\n                        if (\n                            parseInt(doubleValues[1]) >\n                            parseInt(doubleValues[0])\n                        ) {\n                            // Seventh check if value in range\n                            arrayStops.forEach((item) => {\n                                if (\n                                    parseInt(item) >\n                                        parseInt(doubleValues[0]) &&\n                                    parseInt(item) < parseInt(doubleValues[1])\n                                ) {\n                                    arrayStops.pop();\n                                    formControl.patchValue(\n                                        value.substring(\n                                            0,\n                                            value.lastIndexOf(',')\n                                        )\n                                    );\n                                    return;\n                                }\n                            });\n                            return (\n                                parseInt(doubleValues[1]) -\n                                parseInt(doubleValues[0])\n                            );\n                        } else {\n                            arrayStops.pop();\n                            formControl.patchValue(\n                                value.substring(0, value.lastIndexOf(','))\n                            );\n                            return;\n                        }\n                    } else {\n                        arrayStops.pop();\n                        formControl.patchValue(\n                            value.substring(0, value.lastIndexOf(','))\n                        );\n                        return;\n                    }\n                } else {\n                    // Eight chech has array duplicate items\n                    if (arrayStops.length !== new Set(arrayStops).size) {\n                        arrayStops = [...new Set(arrayStops)];\n                        formControl.patchValue(arrayStops.join(','));\n                        return;\n                    } else {\n                        return 1;\n                    }\n                }\n            })\n            .reduce((accumulator, item) => {\n                return (accumulator! += item!);\n            }, 0);\n    };\n\n    //------------------------------- DATE TO BACKEND -------------------------------\n    static convertDateToBackend = (date: string) => {\n        return moment(new Date(date)).toISOString(true);\n    };\n\n    //------------------------------- DATE FROM BACKEND -------------------------------\n    static convertDateFromBackend = (date: string) => {\n        return moment.utc(date).local().format('MM/DD/YY');\n    };\n\n    //------------------------------- TIME FROM DATE FROM BACKEND -------------------------------\n    static convertDateToTimeFromBackend = (\n        date: string,\n        show_am_ap?: boolean\n    ) => {\n        if (!date) {\n            return null;\n        }\n        return moment\n            .utc(date)\n            .local()\n            .format(show_am_ap ? 'HH:mm A' : 'HH:mm:SS');\n    };\n\n    //------------------------------- TIME FROM BACKEND -------------------------------\n    static convertTimeFromBackend = (time: string) => {\n        return moment(time, 'HH:mm:SS A').toDate();\n    };\n\n    //------------------------------- DATE FROM BACKEND TO TIME -------------------------------\n    static convertDateFromBackendToTime = (date: string) => {\n        return moment(new Date(date)).format('LT');\n    };\n\n    static combineDateAndTimeToBackend = (date: string, time: string) => {\n        if (!time) {\n            return moment(new Date(date)).toISOString(true);\n        }\n        return moment(new Date(date + ' ' + time)).toISOString(true);\n    };\n\n    //------------------------------- DATE FROM BACKEND TO DATE AND TIME  -------------------------------\n    static convertDateFromBackendToDateAndTime = (date: Date | string) => {\n        return moment(new Date(date)).format('MM/DD/YY, hh:mm A');\n    };\n\n    //------------------------------- Convert thousand separator in number -------------------------------\n    static convertThousanSepInNumber = (value: string) => {\n        if (value) return parseFloat(value.toString().replace(/,/g, ''));\n        else return 0;\n    };\n\n    //------------------------------- Convert number in thousand separator -------------------------------\n    static convertNumberInThousandSep = (value: number) => {\n        if (value)\n            return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n        else return 0;\n    };\n\n    //------------------------------- Convert number to short format (1.000 to 1K, 1.000.000 to 1M) -------------------------------\n    static convertThousandToShortFormat = (value: number) => {\n        if (value)\n            return new Intl.NumberFormat(undefined, {\n                //@ts-ignore\n                notation: 'compact',\n                compactDisplay: 'short',\n            }).format(value);\n        else return '0';\n    };\n\n    //------------------------------- SPECIFIC PRICE CONVERTORS -------------------------------\n    static convertNumberWithCurrencyFormatterToBackend = (\n        value: number,\n        hasDollar: boolean = false\n    ) => {\n        const formatedValue = value.toLocaleString('en-US', {\n            style: 'currency',\n            currency: 'USD',\n            minimumFractionDigits: 2,\n        });\n\n        if (formatedValue.includes(eUnit.DOLLAR_SIGN) && !hasDollar) {\n            return formatedValue.slice(1);\n        }\n\n        return formatedValue;\n    };\n}\n","export function uuidv4() {\n  return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n    (\n      +c ^\n      crypto.getRandomValues(new Uint8Array(1))[0] &\n        (15 >> (+c / 4))\n    ).toString(16)\n  );\n}","// models\nimport { IUser } from '../../interfaces/user/user.interface';\n\n// enums\nimport { eSharedString, eStringPlaceholder } from '../../enums';\n\nexport class UserHelper {\n    public static getUserFromLocalStorage(): IUser | null {\n        const item = localStorage.getItem(eSharedString.USER_LOWERCASE);\n        if (!item) return null;\n\n        return (\n            JSON.parse(\n                localStorage.getItem(eSharedString.USER_LOWERCASE) ||\n                    eStringPlaceholder.EMPTY\n            ) ?? null\n        );\n    }\n}\n","import moment from 'moment';\n\n// enums\nimport { eDateTimeFormats, eSharedString } from '../../enums';\n\nexport class DateTimeHelper {\n    public static sortByCreatedAt<T extends { createdAt?: string | Date }>(\n        data: T[],\n        sortDirection: eSharedString.ASC | eSharedString.DSC,\n        dateFormat: string = eDateTimeFormats.MM_DD_YY_HH_MM_A\n    ): T[] {\n        return [...data].sort((a, b) => {\n            if (!a?.createdAt || !b?.createdAt) return 0;\n            const dateA = moment(a.createdAt, dateFormat).valueOf();\n            const dateB = moment(b.createdAt, dateFormat).valueOf();\n\n            return sortDirection === eSharedString.ASC\n                ? dateA - dateB\n                : dateB - dateA;\n        });\n    }\n}\n","// Enums\nimport {\n    eGpsHeadingDirection,\n    eGpsMotionStatus,\n    eSharedString,\n    eStringPlaceholder,\n} from '../../enums';\n\n// Constants\nimport { GpsLocationConstants } from '../constants';\n\nexport class GpsLocationHelper {\n    static getGpsIcon = (\n        motionStatus: eGpsMotionStatus,\n        headingDirection: eGpsHeadingDirection,\n        isIgnition?: boolean\n    ): string => {\n        const svgInnerContent = GpsLocationHelper.getGpsSvgInnerContent(\n            motionStatus,\n            headingDirection,\n            isIgnition\n        );\n\n        const svg = GpsLocationHelper.getGpsSvg(\n            motionStatus,\n            svgInnerContent\n        );\n\n        return svg;\n    };\n\n    static getGpsCurrentLocationIcon = (\n        motionStatus: eGpsMotionStatus\n    ): string => {\n        if (motionStatus === eGpsMotionStatus.NO_GPS_DEVICE)\n            return eStringPlaceholder.EMPTY;\n\n        const classes = GpsLocationHelper.getGpsSvgClasses(motionStatus);\n\n        return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\n                    <rect class=\"${classes}\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#6692F1\"/>\n                    <rect x=\"3\" y=\"3\" width=\"4\" height=\"4\" rx=\"2\" fill=\"white\"/>\n                </svg>`;\n    };\n\n    static getGpsSvg = (\n        motionStatus: eGpsMotionStatus,\n        innerSvgContent: string\n    ): string => {\n        const classes = GpsLocationHelper.getGpsSvgClasses(motionStatus);\n\n        return `<svg class=\"gps-svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <rect class=\"${classes}\" width=\"22\" height=\"22\" rx=\"11\" />\n                    ${innerSvgContent}\n                </svg>`;\n    };\n\n    static getGpsSvgClasses = (motionStatus: eGpsMotionStatus): string => {\n        const svgClassesString =\n            GpsLocationConstants.GPS_SVG_CLASSES[motionStatus];\n\n        return `svg-rect-fill-${svgClassesString.fill} svg-rect-hover-${svgClassesString.hover}`;\n    };\n\n    static getGpsSvgInnerContent = (\n        motionStatus: eGpsMotionStatus,\n        headingDirection: eGpsHeadingDirection,\n        isIgnition?: boolean\n    ): string => {\n        let svgContent: string = eStringPlaceholder.EMPTY;\n\n        switch (motionStatus) {\n            case eGpsMotionStatus.NO_GPS_DEVICE:\n                svgContent = GpsLocationHelper.getNoGpsDeviceIconPath();\n                break;\n            case eGpsMotionStatus.MOVING:\n                svgContent =\n                    GpsLocationHelper.getMovingIconPath(headingDirection);\n                break;\n            default:\n                svgContent =\n                    GpsLocationHelper.getStoppedIconPath(isIgnition);\n                break;\n        }\n\n        return svgContent;\n    };\n\n    static getGpsTitle = (\n        motionStatus: eGpsMotionStatus,\n        headingDirection?: eGpsHeadingDirection,\n        isIgnition?: boolean\n    ): string => {\n        let gpsTitle =\n            GpsLocationConstants.GPS_TITLES[motionStatus] ??\n            eStringPlaceholder.EMPTY;\n\n        if (motionStatus === eGpsMotionStatus.MOVING && headingDirection) {\n            gpsTitle += `${eStringPlaceholder.DASH_WITH_SPACES} ${headingDirection}`;\n        }\n\n        const isStopStatus = [\n            eGpsMotionStatus.SHORT_STOP,\n            eGpsMotionStatus.EXTENDED_STOP,\n            eGpsMotionStatus.PARKING,\n        ].includes(motionStatus);\n\n        if (isStopStatus && isIgnition) {\n            gpsTitle += `${eStringPlaceholder.DASH_WITH_SPACES} ${eSharedString.IGNITION}`;\n        }\n\n        return gpsTitle;\n    };\n\n    static getGpsTitleColorClass = (\n        motionStatus: eGpsMotionStatus,\n        isDarkMode?: boolean\n    ): string => {\n        const colorClasses = isDarkMode\n            ? GpsLocationConstants.GPS_TITLE_DROPDOWN_COLOR_CLASSES\n            : GpsLocationConstants.GPS_TITLE_COLOR_CLASSES;\n\n        return colorClasses[motionStatus] ?? eStringPlaceholder.EMPTY;\n    };\n\n    static getMovingIconPath = (\n        headingDirection: eGpsHeadingDirection\n    ): string => {\n        const rotationDeg =\n            GpsLocationConstants.GPS_HEADING_ROTATION_ANGLE[\n                headingDirection\n            ];\n\n        return `<g transform=\"rotate(${rotationDeg ?? 0}, 11, 11)\">\n                    <path d=\"M10.4961 5.31177L6.13156 13.9689C6.0747 14.081 6.05676 14.2089 6.08055 14.3324C6.10435 14.4558 6.16852 14.5678 6.26298 14.6508C6.35744 14.7338 6.47681 14.783 6.6023 14.7906C6.72779 14.7983 6.85227 14.764 6.95613 14.6932L10.3641 12.3789C10.5521 12.2512 10.7741 12.1829 11.0014 12.1829C11.2287 12.1829 11.4507 12.2512 11.6387 12.3789L15.0501 14.6932C15.154 14.764 15.2785 14.7983 15.404 14.7906C15.5294 14.783 15.6488 14.7338 15.7433 14.6508C15.8377 14.5678 15.9019 14.4558 15.9257 14.3324C15.9495 14.2089 15.9316 14.081 15.8747 13.9689L11.5084 5.31177C11.4611 5.21802 11.3887 5.13923 11.2993 5.08419C11.2098 5.02914 11.1069 5 11.0018 5C10.8968 5 10.7939 5.02914 10.7044 5.08419C10.615 5.13923 10.5426 5.21802 10.4953 5.31177\" fill=\"white\"/>\n                </g>`;\n    };\n\n    static getStoppedIconPath = (isIgnition?: boolean): string => {\n        return isIgnition\n            ? `<g clip-path=\"url(#clip0_46471_37062)\">\n                    <path d=\"M16.3939 10.2833V13.3699C16.4085 13.5689 16.3928 13.769 16.3473 13.9633C16.2937 14.1475 16.1949 14.3154 16.0598 14.4516C15.9247 14.5879 15.7577 14.6881 15.5739 14.7433C15.335 14.7922 15.0905 14.8079 14.8473 14.7899C14.7465 14.7899 14.6498 14.7499 14.5786 14.6786C14.5073 14.6074 14.4673 14.5107 14.4673 14.4099V13.2666H13.3139V13.7833C13.3131 13.8346 13.3086 13.8859 13.3006 13.9366C13.274 14.1243 13.179 14.2956 13.0338 14.4174C12.8885 14.5392 12.7034 14.6031 12.5139 14.5966H9.82725C9.62347 14.5976 9.42374 14.5396 9.2522 14.4296C9.08066 14.3196 8.94465 14.1622 8.86059 13.9766H8.24725C8.06109 13.9654 7.88536 13.8868 7.75288 13.7556C7.62039 13.6243 7.54019 13.4493 7.52725 13.2633V12.5166H6.75392C6.75392 12.8966 6.76059 13.2699 6.75392 13.6566C6.75409 13.7259 6.73482 13.7939 6.69828 13.8528C6.66175 13.9118 6.60943 13.9593 6.54725 13.9899C6.43014 14.0331 6.30424 14.0468 6.18059 14.0299C6.0618 14.0457 5.94099 14.0343 5.82725 13.9966C5.76181 13.9663 5.70602 13.9185 5.66602 13.8585C5.62602 13.7985 5.60338 13.7286 5.60059 13.6566V10.2366C5.60278 10.1399 5.64084 10.0474 5.70736 9.97722C5.77389 9.907 5.86414 9.86401 5.96059 9.85659C6.10725 9.84993 6.25392 9.84993 6.40059 9.85659C6.49703 9.86401 6.58728 9.907 6.65381 9.97722C6.72033 10.0474 6.75839 10.1399 6.76059 10.2366V11.3766H7.52725C7.52725 10.8499 7.52059 10.3299 7.52725 9.80993C7.54129 9.62427 7.62184 9.44991 7.7541 9.31887C7.88637 9.18783 8.06147 9.1089 8.24725 9.09659C8.78059 9.08993 9.31392 9.09659 9.84059 9.09659V8.34326H8.29392C8.19211 8.34089 8.09514 8.29939 8.02313 8.22738C7.95112 8.15538 7.90962 8.0584 7.90725 7.95659V7.93659C7.90408 7.78521 7.91076 7.63378 7.92725 7.48326H7.92059C7.94618 7.39848 7.99954 7.32477 8.07209 7.27398C8.14464 7.22319 8.23217 7.19829 8.32059 7.20326H12.5333C12.6058 7.20414 12.6766 7.22519 12.7378 7.26405C12.799 7.3029 12.8482 7.35803 12.8799 7.42326C12.9131 7.51266 12.9268 7.60814 12.9199 7.70326C12.9199 7.80326 12.9199 7.90326 12.9133 8.00993C12.9015 8.1023 12.8564 8.1872 12.7864 8.2486C12.7164 8.31001 12.6264 8.34367 12.5333 8.34326H10.9999V9.09659H12.5133C12.717 9.09042 12.915 9.16452 13.0646 9.30293C13.2143 9.44134 13.3036 9.63299 13.3133 9.83659V10.6166H14.4666V9.47659C14.4669 9.40051 14.49 9.32626 14.5327 9.26332C14.5754 9.20039 14.636 9.15162 14.7066 9.12326C14.7914 9.10128 14.8791 9.09229 14.9666 9.09659C15.1451 9.08754 15.324 9.09872 15.4999 9.12993C15.669 9.16798 15.8274 9.24341 15.9636 9.3507C16.0997 9.45799 16.2101 9.5944 16.2866 9.74993C16.3621 9.91733 16.3992 10.0997 16.3939 10.2833Z\" fill=\"white\"/>\n                </g>\n                <defs>\n                    <clipPath id=\"clip0_46471_37062\">\n                        <rect width=\"12\" height=\"12\" fill=\"white\" transform=\"translate(5 5)\"/>\n                    </clipPath>\n                </defs>`\n            : `<rect x=\"6\" y=\"6\" width=\"10\" height=\"10\" rx=\"5\" fill=\"white\"/>`;\n    };\n\n    static getNoGpsDeviceIconPath = (): string => {\n        return `<path d=\"M6.29726 11.0553L7.38313 9.9719L8.34258 10.9314L7.25525 12.016C6.92911 12.386 6.75624 12.8663 6.77183 13.3593C6.78742 13.8522 6.99031 14.3207 7.33919 14.6693C7.68806 15.018 8.15669 15.2205 8.64965 15.2357C9.14262 15.251 9.62286 15.0777 9.99259 14.7513L11.0784 13.6672L12.0352 14.624L10.9493 15.71C10.6448 16.0196 10.282 16.2658 9.88195 16.4345C9.48185 16.6032 9.05231 16.691 8.61811 16.6928C8.1839 16.6947 7.75363 16.6106 7.35211 16.4453C6.95058 16.28 6.58575 16.0369 6.27865 15.7299C5.97155 15.423 5.72827 15.0583 5.56284 14.6568C5.3974 14.2553 5.31308 13.8251 5.31475 13.3909C5.31642 12.9567 5.40403 12.5271 5.57255 12.127C5.74106 11.7268 5.98714 11.3639 6.29659 11.0593L6.29726 11.0553Z\" fill=\"#919191\" fill-opacity=\"0.4\"/>\n                <path d=\"M12.6313 10.0404L10.1766 7.58565C10.3314 7.54823 10.4906 7.5299 10.6506 7.53134C11.1954 7.53187 11.718 7.7475 12.1046 8.13134C12.4776 8.50419 12.6882 9.00928 12.6906 9.53667C12.6927 9.70681 12.6727 9.87612 12.6313 10.0404Z\" fill=\"#919191\" fill-opacity=\"0.4\"/>\n                <path d=\"M14.6251 12.0342L13.6703 11.0793L14.7486 10.0027C15.1012 9.64929 15.304 9.1736 15.3148 8.67452C15.3256 8.17544 15.1437 7.6914 14.8068 7.32305C14.4698 6.9547 14.0039 6.73041 13.5058 6.69681C13.0078 6.66322 12.5159 6.82291 12.1326 7.14267L11.9786 7.268L11.7999 7.17667C11.5821 7.0725 11.344 7.01742 11.1026 7.01534L11.0793 7.01534L10.9533 7.02067C10.9019 7.02362 10.8509 7.01074 10.8071 6.98378C10.7633 6.95682 10.7288 6.91708 10.7083 6.86991C10.6878 6.82274 10.6823 6.77042 10.6925 6.72001C10.7027 6.6696 10.7281 6.62353 10.7653 6.588L11.0506 6.302C11.3562 5.99655 11.719 5.75428 12.1183 5.58904C12.5175 5.42379 12.9454 5.33881 13.3775 5.33893C13.8096 5.33906 14.2375 5.42429 14.6366 5.58976C15.0358 5.75523 15.3985 5.99771 15.7039 6.30334C16.0094 6.60897 16.2516 6.97177 16.4169 7.37102C16.5821 7.77028 16.6671 8.19818 16.667 8.63028C16.6669 9.06238 16.5816 9.49023 16.4162 9.88939C16.2507 10.2886 16.0082 10.6512 15.7026 10.9567L14.6251 12.0342Z\" fill=\"#919191\" fill-opacity=\"0.4\"/>\n                <path d=\"M9.27782 11.8666L10.2332 12.822L9.79592 13.2573C9.66738 13.3779 9.49684 13.4435 9.32064 13.4402C9.14443 13.4368 8.9765 13.3648 8.85263 13.2394C8.72875 13.1141 8.65873 12.9453 8.65747 12.7691C8.65622 12.5929 8.72384 12.4231 8.84592 12.296L9.27782 11.8666Z\" fill=\"#919191\" fill-opacity=\"0.4\"/>\n                <path d=\"M15.972 15.0031C16.0892 14.8859 16.0892 14.6959 15.972 14.5788L7.64962 6.25636C7.53246 6.1392 7.34251 6.1392 7.22536 6.25636L6.25743 7.22428C6.14027 7.34144 6.14027 7.53139 6.25743 7.64855L14.5799 15.971C14.697 16.0881 14.887 16.0881 15.0041 15.971L15.972 15.0031Z\" fill=\"#919191\" fill-opacity=\"0.4\"/>`;\n    };\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers';\n\n@Pipe({\n    name: 'thousandSeparator',\n    standalone: true,\n})\n@Injectable({ providedIn: 'root' })\nexport class ThousandSeparatorPipe implements PipeTransform {\n    transform(value: any): any {\n        return MethodsCalculationsHelper.convertNumberInThousandSep(\n            MethodsCalculationsHelper.convertThousanSepInNumber(\n                value ? value : '0'\n            )\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers';\n\n@Pipe({\n    name: 'thousandToShortFormatPipe',\n    standalone: true,\n})\nexport class ThousandToShortFormatPipe implements PipeTransform {\n    transform(value: number): string {\n        return MethodsCalculationsHelper.convertThousandToShortFormat(\n            value ?? 0\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'toLowerCase',\n  standalone: true,\n})\nexport class ToLowerCasePipe implements PipeTransform {\n  transform(value: string): string {\n    if (!value) return value;\n    return value.toLowerCase();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'truncate',\n  standalone: true,\n})\nexport class TruncatePipe implements PipeTransform {\n  transform(value: string, limit: number): string {\n    if (!value) return '';\n    return value.length > limit ? value.substring(0, limit) + '...' : value;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eUnit } from '../enums';\n\n@Pipe({\n    name: 'unitPosition',\n    standalone: true,\n})\nexport class UnitPositionPipe implements PipeTransform {\n    transform(value: string, indicator: string): string {\n        switch (indicator) {\n            case eUnit.DOLLAR_SIGN:\n                return `${indicator}${value}`;\n            case eUnit.GALLON:\n            case eUnit.MILE:\n                return `${value} ${indicator}`;\n            default:\n                return `${value}`;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: true,\n  name: 'userNameInitials',\n})\nexport class UserNameInitialsPipe implements PipeTransform {\n  transform(userName: string): string {\n    if( !userName ) return \"\";\n    return userName\n      .split(' ')\n      .map((word) => word[0])\n      .join('');\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'truckTrailerColorFinder',\n    standalone: true,\n})\nexport class TruckTrailerColorFinderPipe implements PipeTransform {\n    transform(id?: number, type?: string, isTooltip?: boolean): string {\n        if (type === 'truck') {\n            switch (id) {\n                case 1:\n                case 2:\n                    if (isTooltip) return '#3B73ED';\n\n                    return 'svg-fill-blue-14';\n                case 3:\n                case 4:\n                case 5:\n                    if (isTooltip) return '#F89B2E';\n\n                    return 'svg-fill-yellow-5';\n                case 6:\n                case 7:\n                case 8:\n                    if (isTooltip) return '#DF3C3C ';\n\n                    return 'svg-fill-red-11';\n                default:\n                    if (isTooltip) return '#259F94';\n\n                    return 'svg-fill-green-2';\n            }\n        } else {\n            switch (id) {\n                case 1:\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                    if (isTooltip) return '#3B73ED';\n\n                    return 'svg-fill-blue-14';\n                case 8:\n                case 9:\n                    if (isTooltip) return '#F89B2E';\n\n                    return 'svg-fill-yellow-5';\n                case 10:\n                case 11:\n                case 12:\n                case 13:\n                case 14:\n                    if (isTooltip) return '#DF3C3C ';\n\n                    return 'svg-fill-red-11';\n                default:\n                    if (isTooltip) return '#259F94';\n\n                    return 'svg-fill-green-2';\n            }\n        }\n    }\n}\n","export enum eLoadStatusSvgColors {\n    MAGENTA_BOLD = 'color-background-magenta-bold',\n    LIME_BOLD = 'color-background-lime-bold',\n    BLUE_BOLD = 'color-background-blue-bold',\n    GREEN_BOLD = 'color-background-green-bold',\n    ORANGE_BOLD = 'color-background-orange-bold',\n    GOLD_BOLD = 'color-background-gold-bold',\n    RED_BOLD = 'color-background-red-bold',\n    BROWN_BOLD = 'color-background-brown-bold',\n    BLACK_200 = 'color-background-black-200',\n    YELLOW_BOLD = 'color-background-yellow-bold',\n    PURPLE_BOLD = 'color-background-purple-bold',\n}\n","export enum eLoadStatusIconColors {\n    MAGENTA = 'svg-fill-red-10',\n    MUTED = 'svg-fill-muted',\n    LIME = 'svg-fill-green-6',\n    BLUE = 'svg-fill-blue-13',\n    GREEN = 'svg-fill-green',\n    ORANGE = 'svg-fill-orange-4',\n    GOLD = 'svg-fill-yellow-4',\n    RED = 'svg-fill-red-10',\n    BROWN = 'svg-fill-brown-bold',\n    PURPLE = 'svg-fill-purple-4',\n    YELLOW = 'svg-fill-yellow-5',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eLoadStatus } from '../enums';\nimport { eLoadStatusSvgColors } from '../components/ca-load-status/enums/load-status-svg-colors.enum';\nimport { eLoadStatusIconColors } from '../components/ca-load-status/enums/load-status-icon-colors.enum';\n\n@Pipe({\n    name: 'loadStatusColors',\n    standalone: true,\n})\nexport class LoadStatusColorsPipe implements PipeTransform {\n    transform(statusId?: number, iconColor?: boolean): string | undefined {\n        if (!statusId) return;\n\n        let colorClass;\n\n        switch (statusId) {\n            case eLoadStatus.Booked:\n            case eLoadStatus.Unassigned:\n            case eLoadStatus.Claim:\n            case eLoadStatus.ClaimFactoring:\n            case eLoadStatus.RevisedClaim:\n            case eLoadStatus.Hold:\n            case eLoadStatus.HoldFactoring:\n            case eLoadStatus.InvoicedHold:\n            case eLoadStatus.Revised:\n            case eLoadStatus.RevisedFactoring:\n            case eLoadStatus.InvoicedHoldFactoring:\n            case eLoadStatus.Preassigned:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.MUTED\n                    : eLoadStatusSvgColors.BLACK_200;\n                break;\n            case eLoadStatus.Tonu:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.MAGENTA\n                    : eLoadStatusSvgColors.MAGENTA_BOLD;\n                break;\n            case eLoadStatus.Assigned:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.LIME\n                    : eLoadStatusSvgColors.LIME_BOLD;\n                break;\n            case eLoadStatus.Dispatched:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.BLUE\n                    : eLoadStatusSvgColors.BLUE_BOLD;\n                break;\n            case eLoadStatus.ArrivedPickup:\n            case eLoadStatus.CheckedInPickup:\n            case eLoadStatus.Loading:\n            case eLoadStatus.Loaded:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.GREEN\n                    : eLoadStatusSvgColors.GREEN_BOLD;\n                break;\n            case eLoadStatus.ArrivedDelivery:\n            case eLoadStatus.CheckedInDelivery:\n            case eLoadStatus.Offloading:\n            case eLoadStatus.Offloaded:\n            case eLoadStatus.Delivered:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.ORANGE\n                    : eLoadStatusSvgColors.ORANGE_BOLD;\n                break;\n            case eLoadStatus.Invoiced:\n            case eLoadStatus.InvoicedFactoring:\n            case eLoadStatus.Paid:\n            case eLoadStatus.PaidFactoring:\n            case eLoadStatus.ShortPaid:\n            case eLoadStatus.ShortPaidFactoring:\n            case eLoadStatus.Unpaid:\n            case eLoadStatus.UnpaidFactoring:\n            case eLoadStatus.TonuPaid:\n            case eLoadStatus.TonuPaidFactoring:\n            case eLoadStatus.TonuInvoiced:\n            case eLoadStatus.TonuInvoicedFactoring:\n            case eLoadStatus.TonuUnpaid:\n            case eLoadStatus.RevisedPaid:\n            case eLoadStatus.RevisedShortPaid:\n            case eLoadStatus.RevisedUnpaid:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.GOLD\n                    : eLoadStatusSvgColors.GOLD_BOLD;\n                break;\n            case eLoadStatus.Cancelled:\n            case eLoadStatus.LoadCancelled:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.RED\n                    : eLoadStatusSvgColors.RED_BOLD;\n                break;\n            case eLoadStatus.RepairDispatched:\n            case eLoadStatus.RepairOffloaded:\n            case eLoadStatus.RepairLoaded:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.BROWN\n                    : eLoadStatusSvgColors.BROWN_BOLD;\n                break;\n            case eLoadStatus.Split:\n                colorClass = iconColor\n                    ? eLoadStatusIconColors.YELLOW\n                    : eLoadStatusSvgColors.YELLOW_BOLD;\n                break;\n            default:\n                break;\n        }\n\n        return colorClass;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'addThousandSign',\n    standalone: true,\n})\nexport class ThousandFormatterPipe implements PipeTransform {\n    transform(value: number): string {\n        return value >= 1000\n            ? (value / 1000).toFixed(1) + 'K'\n            : value\n              ? value.toString()\n              : '0';\n    }\n}\n","export enum eLoadStatusBackgroundColors {\n    MAGENTA = 'background-red-10',\n    MUTED = 'background-muted',\n    LIME = 'background-green-6',\n    BLUE = 'background-blue-13',\n    GREEN = 'background-green-0',\n    GREEN_SUBTLE = 'background-green-4',\n    ORANGE = 'background-orange-4',\n    ORANGE_SUBTLE = 'background-orange-3',\n    GOLD = 'background-yellow-8',\n    GOLD_SUBTLE = 'background-gold-subtle',\n    RED = 'background-red-10',\n    BROWN = 'background-brown-bold',\n    PURPLE = 'background-purple-4',\n    GREY = 'background-light-gray-2',\n    YELLOW = 'background-yellow-1',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eLoadStatus } from '../enums';\nimport { eLoadStatusSvgColors } from '../components/ca-load-status/enums/load-status-svg-colors.enum';\nimport { eLoadStatusBackgroundColors } from '../components/ca-load-status/enums/load-status-background-colors.enum';\n\n@Pipe({\n    name: 'loadStatusBackgroundColor',\n    standalone: true,\n})\nexport class LoadStatusBackgroundColorPipe implements PipeTransform {\n    transform(statusId?: number, iconColor?: boolean): string | undefined {\n        if (!statusId) return;\n\n        let colorClass;\n\n        switch (statusId) {\n            case eLoadStatus.Booked:\n            case eLoadStatus.Unassigned:\n            case eLoadStatus.Claim:\n            case eLoadStatus.ClaimFactoring:\n            case eLoadStatus.RevisedClaim:\n            case eLoadStatus.Hold:\n            case eLoadStatus.HoldFactoring:\n            case eLoadStatus.InvoicedHold:\n            case eLoadStatus.Revised:\n            case eLoadStatus.RevisedFactoring:\n            case eLoadStatus.InvoicedHoldFactoring:\n            case eLoadStatus.Preassigned:\n                colorClass = eLoadStatusBackgroundColors.GREY;\n                break;\n            case eLoadStatus.Tonu:\n                colorClass = iconColor\n                    ? eLoadStatusBackgroundColors.MAGENTA\n                    : eLoadStatusSvgColors.MAGENTA_BOLD;\n                break;\n            case eLoadStatus.Assigned:\n                colorClass = iconColor\n                    ? eLoadStatusBackgroundColors.LIME\n                    : eLoadStatusSvgColors.LIME_BOLD;\n                break;\n            case eLoadStatus.Dispatched:\n                colorClass = iconColor\n                    ? eLoadStatusBackgroundColors.BLUE\n                    : eLoadStatusSvgColors.BLUE_BOLD;\n                break;\n            case eLoadStatus.ArrivedPickup:\n            case eLoadStatus.CheckedInPickup:\n            case eLoadStatus.Loading:\n                colorClass = eLoadStatusBackgroundColors.GREEN_SUBTLE;\n                break;\n            case eLoadStatus.Loaded:\n                colorClass = eLoadStatusBackgroundColors.GREEN;\n                break;\n            case eLoadStatus.ArrivedDelivery:\n            case eLoadStatus.CheckedInDelivery:\n            case eLoadStatus.Offloading:\n                colorClass = eLoadStatusBackgroundColors.ORANGE_SUBTLE;\n                break;\n            case eLoadStatus.Delivered:\n            case eLoadStatus.Offloaded:\n                colorClass = eLoadStatusBackgroundColors.ORANGE;\n                break;\n            case eLoadStatus.Invoiced:\n            case eLoadStatus.InvoicedFactoring:\n            case eLoadStatus.TonuInvoiced:\n            case eLoadStatus.TonuInvoicedFactoring:\n                colorClass = eLoadStatusBackgroundColors.GOLD_SUBTLE;\n                break;\n            case eLoadStatus.TonuUnpaid:\n            case eLoadStatus.RevisedPaid:\n            case eLoadStatus.RevisedShortPaid:\n            case eLoadStatus.RevisedUnpaid:\n            case eLoadStatus.Paid:\n            case eLoadStatus.PaidFactoring:\n            case eLoadStatus.ShortPaid:\n            case eLoadStatus.ShortPaidFactoring:\n            case eLoadStatus.Unpaid:\n            case eLoadStatus.UnpaidFactoring:\n            case eLoadStatus.TonuPaid:\n            case eLoadStatus.TonuPaidFactoring:\n                colorClass = eLoadStatusBackgroundColors.GOLD;\n                break;\n            case eLoadStatus.Cancelled:\n            case eLoadStatus.LoadCancelled:\n                colorClass = iconColor\n                    ? eLoadStatusBackgroundColors.RED\n                    : eLoadStatusSvgColors.RED_BOLD;\n                break;\n            case eLoadStatus.RepairDispatched:\n            case eLoadStatus.RepairOffloaded:\n            case eLoadStatus.RepairLoaded:\n                colorClass = iconColor\n                    ? eLoadStatusBackgroundColors.BROWN\n                    : eLoadStatusSvgColors.BROWN_BOLD;\n                break;\n            case eLoadStatus.Split:\n                colorClass = \n                    eLoadStatusBackgroundColors.YELLOW;\n                break;\n            default:\n                break;\n        }\n\n        return colorClass;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eUnit } from '../enums';\n\n@Pipe({\n    name: 'formatDuration',\n    standalone: true,\n})\nexport class FormatDurationPipe implements PipeTransform {\n    transform(time: {\n        days: number;\n        hours: number;\n        minutes: number;\n        seconds: number;\n    }): string {\n        if (!time || !time.hasOwnProperty(eUnit.HOURS)) {\n            return `0${eUnit.MINUTES_SHORT}`;\n        }\n\n        const minutesRoundedToFive = Math.trunc(time.minutes / 5) * 5;\n\n        const timeUnits = [\n            { value: time.days, label: eUnit.DAYS_SHORT },\n            { value: time.hours, label: eUnit.HOURS_SHORT },\n            { value: minutesRoundedToFive, label: eUnit.MINUTES_SHORT },\n        ];\n\n        const filteredUnits = timeUnits.filter(\n            (unit) => unit.value > 0 || unit.label === eUnit.MINUTES_SHORT\n        );\n\n        const topUnits = filteredUnits.slice(0, 2);\n        return topUnits\n            .map((unit) => {\n                return `${unit.value}${unit.label}`;\n            })\n            .join(' ');\n    }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'dateWaitTime',\n    standalone: true,\n})\nexport class DateWaitTimePipe implements PipeTransform {\n    constructor(private datePipe: DatePipe) {}\n\n    transform(\n        dateFrom: string,\n        dateTo: string | null,\n        timeFrom: string,\n        timeTo: string | null\n    ): string | null {\n        let dateText = '';\n        let timeText = '';\n\n        const dateFromFormatted = this.datePipe.transform(\n            dateFrom,\n            'dd/MM/yyyy'\n        );\n        const dateToFormatted = this.datePipe.transform(dateTo, 'dd/MM/yyyy');\n\n        const isSameDate = dateFromFormatted === dateToFormatted;\n\n        if (isSameDate || !dateToFormatted) dateText = dateFromFormatted!;\n        else dateText = [dateFromFormatted, dateToFormatted].join(' - ');\n\n        if (timeTo) timeText = [timeFrom, timeTo].join(' - ');\n        else timeText = timeFrom;\n\n        return [dateText, timeText].join(' | ');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'progressBarLine',\n  standalone: true,\n})\nexport class ProgressBarLinePipe implements PipeTransform {\n  transform(type: 'back' | 'front', percentageValue: number): Record<string, boolean> {\n    if (type === 'back') {\n      return {\n        expired: percentageValue === 0,\n        'back-gray': percentageValue > 50,\n        'back-yellow': percentageValue > 20 && percentageValue <= 50,\n        'back-red': percentageValue <= 20 && percentageValue > 0,\n      };\n    }\n\n    // type === 'front'\n    return {\n      'front-gray': percentageValue > 50,\n      'front-yellow': percentageValue > 20 && percentageValue <= 50,\n      'front-red': percentageValue <= 20,\n    };\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n// Interfaces\nimport { ISearchQueryItem } from '../components/ca-search-multiple-states-2/interfaces';\n\n@Pipe({\n    name: 'tableHighlightSearchText',\n})\nexport class TableHighlightSearchTextPipe implements PipeTransform {\n    constructor(private sanitizer: DomSanitizer) {}\n\n    transform(\n        text: string | number | null | undefined,\n        chips: ISearchQueryItem[]\n    ): SafeHtml {\n        // convert to string and handle null/undefined\n        const textString = String(text ?? '');\n\n        if (!textString) {\n            return '' as unknown as SafeHtml;\n        }\n\n        if (!chips?.length) return textString as unknown as SafeHtml;\n\n        let highlighted = textString;\n\n        // Apply all chips cumulatively so earlier matches are preserved\n        chips.forEach((chip) => {\n            if (!chip || !chip.text) return;\n\n            // Escape regex special characters\n            let pattern = chip.text.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n            pattern = pattern\n                .split(' ')\n                .filter((_pattern) => !!_pattern.length)\n                .join('|');\n\n            if (!pattern) return;\n\n            const regex = new RegExp('(' + pattern + ')(?!([^<]+)?>)', 'gi');\n\n            // Get colorClass from chip\n            const colorClass = chip.colorClass || '';\n\n            highlighted = highlighted.replace(\n                regex,\n                (match) =>\n                    `<span class=\"table-highlight-text-${colorClass}\">${match}</span>`\n            );\n        });\n\n        return this.sanitizer.bypassSecurityTrustHtml(highlighted);\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n    ChangeDetectorRef,\n    NgZone,\n} from '@angular/core';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { Options } from '@popperjs/core/lib/popper';\n\n// icon\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animation\nimport { borderShowAnimation, showAnimation } from '../../animations/animation';\n\n// model\nimport {\n    DropDownData,\n    IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\n\n// pipes\nimport { CaSvgPipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-details-dropdown',\n    templateUrl: './ca-details-dropdown.component.html',\n    styleUrls: ['./ca-details-dropdown.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // pipes\n        CaSvgPipe,\n    ],\n    animations: [showAnimation, borderShowAnimation]\n})\nexport class CaDetailsDropdownComponent {\n    @Input() options!: DropDownData[];\n    @Input() id!: number;\n    @Input() customClassDropDown!: string;\n    @Input() hasVericalDots!: boolean;\n    @Input() data!: DropDownData;\n    @Input() leftIcon: boolean = true;\n    @Input() public placement: string = 'bottom-right';\n    @Output() dropDownActions: EventEmitter<IDropDownActions> =\n        new EventEmitter();\n    @Output() openModalAction: EventEmitter<string> = new EventEmitter();\n\n    public tooltip!: NgbPopover;\n    public dropDownActive: number = -1;\n    public subtypeHovered: boolean = false;\n\n    constructor(\n        private chnd: ChangeDetectorRef,\n        private ngZone: NgZone\n    ) {}\n\n    public toggleDropdown(tooltip: NgbPopover): void {\n        this.ngZone.run(() => {\n            this.tooltip = tooltip;\n            if (tooltip.isOpen()) {\n                tooltip.close();\n            } else {\n                if (this.options) {\n                    tooltip.open({ data: [...this.options] });\n                }\n            }\n\n            this.dropDownActive = tooltip.isOpen() ? this.id : -1;\n            this.chnd.detectChanges();\n        });\n    }\n\n    /**Function retrun id */\n    public identity(index: number): number {\n        return index;\n    }\n\n    public onAction(action: DropDownData, event?: Event): void | boolean {\n        event!.stopPropagation();\n        event!.preventDefault();\n\n        if (action?.disabled) {\n            return false;\n        }\n\n        this.dropDownActions.emit({\n            id: this.id,\n            data: this.data,\n            type: action.name,\n        });\n\n        this.tooltip.close();\n    }\n\n    public dropdownClosed(): void {\n        this.options.map((item: DropDownData) => {\n            item['mutedStyle'] = false;\n        });\n    }\n\n    public popperOptions = (options: Partial<Options>): Partial<Options> => {\n        options.modifiers?.push({\n            name: 'custom',\n            enabled: true,\n            phase: 'main',\n            effect: ({ state, instance }) => {\n                const observer = new ResizeObserver(() => instance.update());\n                observer.observe(state.elements!.reference as any);\n                return () => {\n                    observer.disconnect();\n                };\n            },\n        });\n        return options;\n    };\n\n    ngOnDestroy() {\n        this.tooltip?.close();\n    }\n}\n","<div\n    #t2=\"ngbPopover\"\n    class=\"details-dropdown-container\"\n    container=\"body\"\n    triggers=\"manual\"\n    popoverClass=\"details-dropdown-popover\"\n    [autoClose]=\"'outside'\"\n    [ngbPopover]=\"dropdownPopover\"\n    [placement]=\"placement\"\n    [ngClass]=\"{\n        'active-drop': dropDownActive === id,\n        rightRotation: leftIcon,\n        leftRotation: !leftIcon,\n    }\"\n    [popperOptions]=\"popperOptions\"\n    [container]=\"'body'\"\n    (click)=\"toggleDropdown(t2)\"\n    (hidden)=\"dropDownActive = -1\"\n    (hidden)=\"dropdownClosed()\"\n>\n    <!-- TODO  Check src -->\n    <svg-icon class=\"dropdown-dots\" [src]=\"'menuRoute' | caSvg\"></svg-icon>\n</div>\n\n<ng-template #dropdownPopover let-data=\"data\">\n    <div\n        class=\"dropdown-main-popover-body d-flex justify-content-center align-items-center\"\n    >\n        <div class=\"details-dropdown-body\">\n            @for (action of data; let i = $index; track action.id) {\n                @if (\n                    action.title !== 'border' &&\n                    action.title !== 'Add New' &&\n                    action.title !== 'Request' &&\n                    action.title !== 'Report' &&\n                    !action.hide\n                ) {\n                    <div\n                        class=\"action-holder d-flex justify-content-between align-content-center\"\n                        @showAnimation\n                        [class.leftIcon]=\"leftIcon\"\n                        [class.disabledAction]=\"action.disabled\"\n                        [class.disabledActionMain]=\"action.disabled\"\n                        (click)=\"onAction(action, $event)\"\n                    >\n                        <div\n                            class=\"action-select-holder d-flex align-items-center\"\n                        >\n                            <div class=\"actionTitle d-flex align-items-center\">\n                                {{ action.title }}\n                            </div>\n                            <div\n                                class=\"actionIcon d-flex justify-content-center align-items-center\"\n                                [class.redIcon]=\"\n                                    action.title === 'Delete' ||\n                                    action.title === 'Close Business'\n                                \"\n                                [class.blueIcon]=\"action.blueIcon\"\n                                [class.greenIcon]=\"action.greenIcon\"\n                            >\n                                <svg-icon [src]=\"action.svgUrl\"></svg-icon>\n                            </div>\n                        </div>\n                    </div>\n                    @if (action.hasBorder) {\n                        <div\n                            class=\"border-holder d-flex justify-content-center\"\n                            @borderShowAnimation\n                        >\n                            <div class=\"action-border-line\"></div>\n                        </div>\n                    }\n                }\n            }\n        </div>\n    </div>\n</ng-template>\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const showAnimation = (type: string) =>\n  trigger(type, [\n    state(\n      'true',\n      style({\n        height: '*',\n        opacity: 1,\n      })\n    ),\n    state(\n      'false',\n      style({\n        height: '0px',\n        opacity: '0.5',\n      })\n    ),\n    state(\n      'null',\n      style({\n        height: '10px',\n        opacity: '0.5',\n      })\n    ),\n    transition('false => true', [\n      animate('150ms cubic-bezier(0, 0, 0.60, 1.99)'),\n    ]),\n    transition('true => false', [animate('150ms ease')]),\n  ]);\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\nexport const closeForm = (type: string) =>\n    trigger(type, [\n        state(\n            'true',\n            style({\n                height: '*',\n                opacity: 1,\n            })\n        ),\n        state(\n            'false',\n            style({\n                height: '0px',\n                'margin-top': '0px',\n                opacity: 0,\n            })\n        ),\n        state(\n            'null',\n            style({\n                height: '*',\n            })\n        ),\n        transition('false <=> true', [animate('0.1s linear')]),\n        transition('true <=> false', [animate('0.1s ease-in-out')]),\n    ]);\n","export enum ToolbarFilterStringEnum {\n  // Filter types\n\n  DEPARTMENT_FILTER = 'departmentFilter',\n  STATUS_FILTER = 'statusFilter',\n  PM_FILTER = 'pmFilter',\n  CATEGORY_FUEL_FILTER = 'categoryFuelFilter',\n  CATEGORY_REPAIR_FILTER = 'categoryRepairFilter',\n  SERVICE_FILTER = 'serviceFilter',\n  TRUCK_FILTER = 'truckFilter',\n  TRAILER_FILTER = 'trailerFilter',\n  FUEL_STOP_FILTER = 'fuelStopFilter',\n  BROKER_FILTER = 'brokerFilter',\n  DRIVER_FILTER = 'driverFilter',\n  TRUCK_TYPE_FILTER = 'truckTypeFilter',\n  TRAILER_TYPE_FILTER = 'trailerTypeFilter',\n  USER_FILTER = 'userFilter',\n  MODULE_FILTER = 'moduleFilter',\n  STATE_FILTER = 'stateFilter',\n  LABEL_FILTER = 'labelFilter',\n  TIME_FILTER = 'timeFilter',\n  TIME_FILTER_DROPDOWN = \"timeFilterDropdown\",\n  INJURY_FILTER = 'injuryFilter',\n  FATALITY_FILTER = 'fatalityFilter',\n  VIOLATION_FILTER = 'violationFilter',\n  VACATION_FILTER = 'vacationFilter',\n  LOCATION_FILTER = 'locationFilter',\n  MONEY_FILTER = 'moneyFilter',\n  MILES_FILTER = 'milesFilter',\n  PAY_FILTER = 'payFilter',\n  DISPATCHER_FILTER = 'dispatcherFilter',\n  FUEL_ITEM_FILTER = 'fuelItemFilter',\n  PARKING_FILTER = 'parkingFilter',\n  TAG_FILTER = 'tagFilter',\n  ACTION_FILTER = 'actionFilter',\n\n  // Filter Type Titles\n  MONEY_FILTER_2 = 'Money Filter',\n  MILES_FILTER_2 = 'Miles Filter',\n  STATUS_FILTER_2 = 'Status Filter',\n  TIME_FILTER_2 = 'Time Filter',\n  DISPATCHER_FILTER_2 = 'Dispatcher Filter',\n  DRIVER_FILTER_2 = 'Driver Filter',\n  FUEL_STOP_FILTER_2 = 'Fuel Stop Filter',\n  BROKER_FILTER_2 = 'Broker Filter',\n  USER_FILTER_2 = 'User Filter',\n  MODULE_FILTER_2 = 'Module Filter',\n  STATE_FILTER_2 = 'State / Province Filter',\n  TRUCK_TYPE_FILTER_2 = 'Truck Type Filter',\n  TRAILER_TYPE_FILTER_2 = 'Trailer Type Filter',\n  TRUCK_UNIT_FILTER_2 = 'Truck Unit Filter',\n  TRAILER_UNIT_FILTER_2 = 'Trailer Unit Filter',\n  PM_FILTER_2 = 'PM Filter',\n  SERVICE_FILTER_2 = 'Service Filter',\n  FUEL_ITEM_FILTER_2 = 'Fuel Item Filter',\n  DEPARTMENT_FILTER_2 = 'Department Filter',\n  PARKING_FILTER_2 = 'Parking Filter',\n  TAG_FILTER_2 = 'Tag Filter',\n  ACTION_FILTER_2 = 'Action Filter',\n  LABEL_FILTER_2 = 'Label Filter',\n  AREA_FILTER = 'Area Filter',\n  VIOLATION_FILTER_2 = 'Violation Filter',\n\n  // Location filter subtypes\n\n  LOCATION = 'Location',\n  IC_ADDRESS = 'ic_address',\n\n  // Time filter subtypes\n\n  PAST = 'past',\n  FUTURE = 'future',\n  SHORT = 'short',\n\n  // Icons\n  DOLLAR = 'dollar',\n  BROKER_HALF_CIRCLE = 'broker-half-circle',\n  TIME = 'ic_time',\n  USER = 'user',\n  STATE = 'state',\n  TRUCK = 'truck',\n  TRAILER = 'trailer',\n  DEFAULT_PM = 'default_pm',\n  IC_KEY_REPAIR = 'ic_key-repair',\n  FUEL = 'fuel',\n  LABEL = 'label',\n  MILES = 'miles',\n\n  // Filter Popover Conditions\n  MAIN_TOOLTIP = 'mainTooltip',\n  CLOSE_FILTER = 'Close Filter',\n  REMOVE_FILTER = 'Remove Filter',\n  FILTER_TEXT = 'filterText',\n  USER_BOX = 'userBox',\n  SORT_ITEMS = 'sortItems',\n\n  // State Filter\n  CANADA = 'canada',\n  CANADA_2 = 'Canada',\n\n  // Empty string\n  EMPTY_STRING_PLACEHOLDER = '',\n\n  // Control names\n  BOOLEAN = 'boolean',\n  TEXT = 'text',\n  SET = 'Set',\n  CLEAR = 'Clear',\n\n  // Classes\n  ACTIVE = 'active',\n\n  // Money filter\n  PENDING_STATUS = 'pendingStatus',\n  ALL = 'all',\n  MIN_VALUE = '0',\n  MAX_VALUE = '5,000',\n  MONEY_MAX_VALUE = '20,000',\n  VIOLATION_MAX_VALUE = '5',\n  FROM = 'from',\n  TO = 'to',\n  MONEY_ARRAY = 'moneyArray',\n\n  // Service filter\n  REPAIR_CATEGORY_UPDATE = 'repair-category-update',\n\n  // Pm filter\n  PM_TRAILER_DATA_UPDATE = 'pm-trailer-data-update',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum';\n\n// components\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaDispatcherFilterComponent } from '../components/ca-dispatcher-filter/ca-dispatcher-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaViolationFilterComponent } from '../components/ca-violation-filter/ca-violation-filter.component';\nimport { CaTimeFilterDropdownComponent } from '../components/ca-time-filter-dropdown/ca-time-filter-dropdown.component';\n\n@Pipe({\n    name: 'filterConditionsSet',\n    standalone: true,\n    pure: false,\n})\nexport class FilterConditionsSetPipe implements PipeTransform {\n    transform(\n        type: string,\n        caStatusFilter: CaStatusFilterComponent,\n        caTimeFilter: CaTimeFilterComponent,\n        caDispatcherFilter: CaDispatcherFilterComponent,\n        caStateFilter: CaStateFilterComponent,\n        caTruckTypeFilter: CaTruckTypeFilterComponent,\n        caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n        caPmFilter: CaPmFilterComponent,\n        caUserFilter: CaUserFilterComponent,\n        caViolationFilter: CaViolationFilterComponent,\n        caTimeFilterDropdown: CaTimeFilterDropdownComponent\n    ): boolean | number {\n        switch (type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                return caStatusFilter?.selectedUser?.length;\n            case ToolbarFilterStringEnum.TIME_FILTER:\n                return (\n                    caTimeFilter?.selectedTimeValue !==\n                    caTimeFilter?.filterActiveTime\n                );\n            case ToolbarFilterStringEnum.TIME_FILTER_DROPDOWN:\n                return (\n                    caTimeFilterDropdown?.selectedTimeValue !==\n                    caTimeFilterDropdown?.filterActiveTime\n                );\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n                return (\n                    (caDispatcherFilter?.selectedUser.length ||\n                        caDispatcherFilter?.filterActiveArray.length) &&\n                    caDispatcherFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.STATE_FILTER:\n                return (\n                    (caStateFilter?.canadaSelectedStates.length ||\n                        caStateFilter?.usaSelectedStates.length) &&\n                    caStateFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                return (\n                    caTruckTypeFilter?.selectedTruckTypeArray.length &&\n                    caTruckTypeFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                return (\n                    caTrailerTypeFilter?.selectedTrailerTypeArray.length &&\n                    caTrailerTypeFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n                return (\n                    caPmFilter?.selectedPmFilterArray.length &&\n                    caPmFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                return (\n                    caPmFilter?.selectedPmFilterArray.length &&\n                    caPmFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                return (\n                    caUserFilter?.hasSelectedUsers ||\n                    caUserFilter?.isButtonAvailable\n                );\n            case ToolbarFilterStringEnum.VIOLATION_FILTER:\n                return (\n                    caViolationFilter?.violationFilterForm.dirty &&\n                    caViolationFilter?.violationFilterForm.valid\n                );\n            default:\n                return false;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum';\n\n// components\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaDispatcherFilterComponent } from '../components/ca-dispatcher-filter/ca-dispatcher-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaViolationFilterComponent } from '../components/ca-violation-filter/ca-violation-filter.component';\n\n@Pipe({\n    name: 'filterConditionsClear',\n    standalone: true,\n    pure: false,\n})\nexport class FilterConditionsClearPipe implements PipeTransform {\n    transform(\n        type: string,\n        caStatusFilter: CaStatusFilterComponent,\n        caTimeFilter: CaTimeFilterComponent,\n        caDispatcherFilter: CaDispatcherFilterComponent,\n        caStateFilter: CaStateFilterComponent,\n        caTruckTypeFilter: CaTruckTypeFilterComponent,\n        caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n        caPmFilter: CaPmFilterComponent,\n        caUserFilter: CaUserFilterComponent,\n        caViolationFilter: CaViolationFilterComponent\n    ): boolean | number {\n        switch (type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                return caStatusFilter?.selectedUser?.length;\n            case ToolbarFilterStringEnum.TIME_FILTER:\n                return (\n                    caTimeFilter?.selectedTimeValue !==\n                        caTimeFilter?.filterActiveTime ||\n                    !!caTimeFilter?.selectedTimeValue\n                );\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                return (\n                    caDispatcherFilter?.selectedUser.length ||\n                    caDispatcherFilter?.filterActiveArray.length\n                );\n            case ToolbarFilterStringEnum.STATE_FILTER:\n                return (\n                    caStateFilter?.canadaSelectedStates.length ||\n                    caStateFilter?.usaSelectedStates.length\n                );\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                return caTruckTypeFilter?.selectedTruckTypeArray.length;\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                return caTrailerTypeFilter?.selectedTrailerTypeArray.length;\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n                return caPmFilter?.selectedPmFilterArray.length;\n\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                return caPmFilter?.selectedPmFilterArray.length;\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                return caUserFilter?.hasSelectedUsers;\n            case ToolbarFilterStringEnum.VIOLATION_FILTER:\n                return caViolationFilter?.violationFilterForm.dirty;\n            default:\n                return false;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum';\n\n// components\nimport { CaFilterComponent } from '../ca-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaDispatcherFilterComponent } from '../components/ca-dispatcher-filter/ca-dispatcher-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\n\n@Pipe({\n    name: 'filterPopoverConditionsPipe',\n    standalone: true,\n    pure: false,\n})\nexport class FilterPopoverConditionsPipe implements PipeTransform {\n    transform(\n        type: string,\n        caFilterComponent: CaFilterComponent,\n        caStatusFilter: CaStatusFilterComponent,\n        caDispatcherFilter: CaDispatcherFilterComponent,\n        caStateFilter: CaStateFilterComponent,\n        caTruckTypeFilter: CaTruckTypeFilterComponent,\n        caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n        caPmFilter: CaPmFilterComponent\n    ): boolean | number | string {\n        switch (type) {\n            case ToolbarFilterStringEnum.MAIN_TOOLTIP:\n                return !caFilterComponent?.isHoverClosed\n                    ? caStateFilter?.totalFiltersNum! > 0\n                        ? caFilterComponent?.isFilterActive\n                            ? ToolbarFilterStringEnum.CLOSE_FILTER\n                            : caFilterComponent?.filterTitle\n                        : caFilterComponent?.isFilterActive\n                          ? ToolbarFilterStringEnum.CLOSE_FILTER\n                          : caFilterComponent?.filterTitle\n                    : ToolbarFilterStringEnum.REMOVE_FILTER;\n            case ToolbarFilterStringEnum.FILTER_TEXT:\n                return caPmFilter?.filterActiveArray.length > 0 ||\n                    caStatusFilter?.filterActiveArray.length > 0 ||\n                    caTrailerTypeFilter?.filterActiveArray.length > 0 ||\n                    caTruckTypeFilter?.filterActiveArray.length > 0 ||\n                    caDispatcherFilter?.filterActiveArray.length > 0\n                    ? caPmFilter?.filterActiveArray.length > 0 ||\n                          caStatusFilter?.filterActiveArray.length > 0 ||\n                          caTrailerTypeFilter?.filterActiveArray.length > 0 ||\n                          caTruckTypeFilter?.filterActiveArray.length > 0 ||\n                          caDispatcherFilter?.filterActiveArray.length > 0\n                    : caStateFilter?.totalFiltersNum! > 0;\n            case ToolbarFilterStringEnum.USER_BOX:\n                return (\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.STATE_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.DISPATCHER_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.FUEL_STOP_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.BROKER_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.DRIVER_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.USER_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.MODULE_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.MONEY_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.MILES_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.TIME_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.FUEL_ITEM_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.DEPARTMENT_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.PARKING_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.TAG_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.ACTION_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.LABEL_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.LOCATION_FILTER &&\n                    caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.VIOLATION_FILTER\n                );\n            case ToolbarFilterStringEnum.SORT_ITEMS:\n                return (\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.PM_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.FUEL_ITEM_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.DEPARTMENT_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.PARKING_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.TAG_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.ACTION_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.LABEL_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.TRUCK_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.TRUCK_TYPE_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.TRAILER_TYPE_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.TRAILER_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.STATUS_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.DISPATCHER_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.DRIVER_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.FUEL_STOP_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.BROKER_FILTER ||\n                    caFilterComponent?.type ===\n                        ToolbarFilterStringEnum.USER_FILTER ||\n                    (caFilterComponent?.type !==\n                        ToolbarFilterStringEnum.LOCATION_FILTER &&\n                        caFilterComponent?.type !==\n                            ToolbarFilterStringEnum.TIME_FILTER &&\n                        caFilterComponent?.type !==\n                            ToolbarFilterStringEnum.MONEY_FILTER &&\n                        caFilterComponent?.type !==\n                            ToolbarFilterStringEnum.MILES_FILTER &&\n                        caFilterComponent?.type !==\n                            ToolbarFilterStringEnum.VIOLATION_FILTER)\n                );\n            default:\n                return false;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum';\n\n// components\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\n\n@Pipe({\n  name: 'filterConditionsUserBox',\n  standalone: true,\n  pure: false,\n})\nexport class FilterConditionsUserBoxPipe implements PipeTransform {\n  transform(\n    type: string,\n    caTruckTypeFilter: CaTruckTypeFilterComponent,\n    caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n    caStatusFilter: CaStatusFilterComponent,\n    caPmFilter: CaPmFilterComponent\n  ): boolean | number {\n    switch (type) {\n      case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n        return caTruckTypeFilter?.selectedTruckTypeArray?.length;\n      case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n        return caTrailerTypeFilter?.selectedTrailerTypeArray?.length;\n      case ToolbarFilterStringEnum.STATUS_FILTER:\n        return caStatusFilter?.selectedUser?.length;\n      case ToolbarFilterStringEnum.PM_FILTER:\n      case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n        return caPmFilter?.selectedPmFilterArray?.length;\n      default:\n        return false;\n    }\n  }\n}\n","export enum FilterActionsStringEnum {\n  ACTION_CLEAR = 'Clear',\n  TYPE_UNKNOWN = 'Unknown',\n  SET_FILTER_EMIT = 'setFilterEmit',\n  CLEAR_ALL_VALUES_EMIT = 'clearAllValuesEmit',\n}\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n  keyframes,\n} from '@angular/animations';\n\nexport const inOutAnimation = (type: string) =>\n  trigger(type, [\n    state('in', style({ opacity: 1, scale: 1, height: '28px' })),\n    transition(':enter', [\n      animate(\n        150,\n        keyframes([\n          style({\n            opacity: 0,\n            offset: 0,\n            scale: 0.6,\n            height: '0px',\n          }),\n          style({\n            opacity: 0.25,\n            offset: 0.25,\n            scale: 0.7,\n            height: '10px',\n          }),\n          style({\n            opacity: 0.5,\n            offset: 0.5,\n            scale: 0.8,\n            height: '15px',\n          }),\n          style({\n            opacity: 0.75,\n            offset: 0.75,\n            scale: 0.9,\n            height: '20px',\n          }),\n          style({\n            opacity: 1,\n            offset: 1,\n            scale: 1,\n            height: '28px',\n          }),\n        ])\n      ),\n    ]),\n    transition(':leave', [\n      animate(\n        150,\n        keyframes([\n          style({\n            opacity: 1,\n            offset: 0,\n            scale: 1,\n            height: '28px',\n          }),\n          style({\n            opacity: 1,\n            offset: 0.25,\n            scale: 0.9,\n            height: '20px',\n          }),\n          style({\n            opacity: 0.75,\n            offset: 0.5,\n            scale: 0.8,\n            height: '15px',\n          }),\n          style({\n            opacity: 0.25,\n            offset: 0.75,\n            scale: 0.7,\n            height: '10px',\n          }),\n          style({\n            opacity: 0,\n            offset: 1,\n            scale: 0.6,\n            height: '0px',\n          }),\n        ])\n      ),\n    ]),\n  ]);\n","export class CaFiltersSvgRoutes {\n  static arrowLeftSvgRoute: string =\n    'assets/ca-components/svg/common/calendar/arrow-left.svg';\n  static sortArrowSvgRoute: string =\n    'assets/ca-components/svg/common/sortArrow_filter.svg';\n  static searchIconRoute: string =\n    'assets/ca-components/svg/common/ic_search.svg';\n  static iconConfirm: string = 'assets/ca-components/svg/common/ic_confirm.svg';\n  static removeSelectedValue: string =\n    'assets/ca-components/svg/truckassist-table/x.svg';\n  static cancelViolation: string =\n    'assets/ca-components/svg/common/ic_cancel_violation.svg';\n  static arrowFilter: string =\n    'assets/ca-components/svg/common/ic_arrow_filter.svg';\n}\n","import { ArrayStatus } from '../../../../models/array-status.model';\n\n// models\nimport { UserGroup } from '../../components/ca-user-filter/models/ca-user-group.model';\nimport { UserData } from '../../components/ca-user-filter/models/ca-user-data.model';\n\n// routes\nimport { CaFiltersSvgRoutes } from '../svg-routes/ca-filters-svg-routes';\nimport { UntypedFormGroup } from '@angular/forms';\n\nexport class FilterHelper {\n  static sortItems(\n    sortedFilterArray: ArrayStatus[],\n    sortedSelectedFilterArray: ArrayStatus[],\n    isAscendingSortOrder: boolean\n  ): {\n    sortedFilterArray: ArrayStatus[];\n    sortedSelectedFilterArray: ArrayStatus[];\n    isAscendingSortOrder: boolean;\n  } {\n    sortedFilterArray.sort((a, b) => {\n      if (isAscendingSortOrder) {\n        return a.name!.localeCompare(b.name!);\n      } else {\n        return b.name!.localeCompare(a.name!);\n      }\n    });\n\n    sortedSelectedFilterArray.sort((a, b) => {\n      if (isAscendingSortOrder) {\n        return a.name!.localeCompare(b.name!);\n      } else {\n        return b.name!.localeCompare(a.name!);\n      }\n    });\n\n    isAscendingSortOrder = !isAscendingSortOrder;\n\n    return {\n      sortedFilterArray,\n      sortedSelectedFilterArray,\n      isAscendingSortOrder,\n    };\n  }\n\n  static sortItemsCount(\n    sortedFilterArray: ArrayStatus[],\n    sortedSelectedFilterArray: ArrayStatus[],\n    isAscendingSortOrder: boolean\n  ): {\n    sortedFilterArray: ArrayStatus[];\n    sortedSelectedFilterArray: ArrayStatus[];\n    isAscendingSortOrder: boolean;\n  } {\n    sortedFilterArray.sort((a, b) => {\n      if (isAscendingSortOrder) {\n        return a.count! - b.count!;\n      } else {\n        return b.count! - a.count!;\n      }\n    });\n\n    sortedSelectedFilterArray.sort((a, b) => {\n      if (isAscendingSortOrder) {\n        return a.count! - b.count!;\n      } else {\n        return b.count! - a.count!;\n      }\n    });\n\n    isAscendingSortOrder = !isAscendingSortOrder;\n\n    return {\n      sortedFilterArray,\n      sortedSelectedFilterArray,\n      isAscendingSortOrder,\n    };\n  }\n\n  static sortGroupItemsCount(\n    sortedFilterArray: UserGroup[],\n    sortedSelectedFilterArray: UserGroup[],\n    isAscendingSortOrder: boolean\n  ): {\n    sortedFilterArray: UserGroup[];\n    sortedSelectedFilterArray: UserGroup[];\n    isAscendingSortOrder: boolean;\n  } {\n    sortedFilterArray.forEach((group) => {\n      group.items.sort((a: UserData, b: UserData) => {\n        if (isAscendingSortOrder) {\n          return a.count! - b.count!;\n        } else {\n          return b.count! - a.count!;\n        }\n      });\n\n      group.items.sort((a: UserData, b: UserData) => {\n        if (isAscendingSortOrder) {\n          return a.count! - b.count!;\n        } else {\n          return b.count! - a.count!;\n        }\n      });\n    });\n\n    isAscendingSortOrder = !isAscendingSortOrder;\n\n    return {\n      sortedFilterArray,\n      sortedSelectedFilterArray,\n      isAscendingSortOrder,\n    };\n  }\n\n  static getInitials(name: string | undefined) {\n    if (name === undefined) return '';\n    const [firstName, lastName] = name.trim().split(' ');\n    return (firstName?.[0] || '') + (lastName?.[0] || '').toUpperCase();\n  }\n\n  static addOrRemoveFromGroup(\n    addOrRemove: 'add' | 'remove',\n    groupArray: UserGroup[],\n    item: UserData,\n    indx: number,\n    indx2: number\n  ) {\n    const id = item.id;\n    const newGroupArray: UserGroup[] = [];\n\n    groupArray.forEach((group, groupIndex) => {\n      newGroupArray.push({\n        ...group,\n        items: group.items.map((item, itemIndex) => {\n          return item.id === id || (groupIndex === indx && itemIndex === indx2)\n            ? { ...item, isSelected: addOrRemove === 'add' || undefined }\n            : item;\n        }),\n      });\n    });\n\n    groupArray = newGroupArray;\n\n    const unselectedVisibleCount = groupArray.reduce(\n      (count, group) =>\n        count + group.items.filter((item) => !item.isSelected).length,\n      0\n    );\n\n    let hasSelectedUsers = false;\n\n    for (const group of groupArray) {\n      if (group.items.some((item: UserData) => item.isSelected)) {\n        hasSelectedUsers = true;\n        break;\n      } else hasSelectedUsers = false;\n    }\n\n    return { hasSelectedUsers, unselectedVisibleCount, groupArray };\n  }\n\n  static checkFilterActiveValue(\n    filterArray: ArrayStatus[],\n    selectedFilterArray: ArrayStatus[],\n    isButtonAvailable: boolean\n  ): {\n    isButtonAvailable: boolean;\n  } {\n    const array1 = [...selectedFilterArray];\n    const array2 = [...filterArray];\n\n    array1.sort((a, b) => {\n      return a.id! - b.id!;\n    });\n\n    array2.sort((a, b) => {\n      return a.id! - b.id!;\n    });\n\n    const stringfy1 = JSON.stringify(array1);\n    const stringfy2 = JSON.stringify(array2);\n\n    if (stringfy1 === stringfy2) {\n      isButtonAvailable = false;\n    } else {\n      isButtonAvailable = true;\n    }\n\n    return { isButtonAvailable };\n  }\n\n  static checkGroupFilterActiveValue(\n    filterArray: UserGroup[],\n    isButtonAvailable: boolean\n  ): {\n    isButtonAvailable: boolean;\n  } {\n    const array = [...filterArray];\n\n    array.forEach((group) => {\n      group.items.sort((a: UserData, b: UserData) => {\n        return a.id! - b.id!;\n      });\n    });\n\n    return { isButtonAvailable };\n  }\n\n  static getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n    return CaFiltersSvgRoutes[propertyName] as string;\n  }\n\n  static handleGroupFilterClose(\n    filterArray: UserGroup[],\n    selectedFilterArray: UserGroup[],\n    removeFunction: (item: UserData, index: number, index2: number) => void,\n    addFunction: (item: UserData, index: number, index2: number) => void\n  ) {\n    filterArray.forEach((group) => {\n      const indexNum = selectedFilterArray.indexOf(group);\n      group.items.forEach((item: UserData) => {\n        if (\n          (item.isSelected && !item.currentSet) ||\n          (!item.isSelected && item.currentSet)\n        ) {\n          const indexNum2 = group.items.indexOf(item);\n          if (indexNum > -1) removeFunction(item, indexNum, indexNum2);\n          else {\n            const inactiveIndexNum = filterArray.indexOf(group);\n            addFunction(item, inactiveIndexNum, indexNum2);\n          }\n        }\n      });\n    });\n  }\n\n  static handleFilterClose(\n    filterArray: ArrayStatus[],\n    selectedFilterArray: ArrayStatus[],\n    removeFunction: (item: ArrayStatus, index: number) => void,\n    addFunction: (item: ArrayStatus, index: number) => void\n  ) {\n    filterArray &&\n      filterArray.forEach((item) => {\n        if (\n          (item.isSelected && !item.currentSet) ||\n          (!item.isSelected && item.currentSet)\n        ) {\n          const indexNum = selectedFilterArray.findIndex(\n            (selectedItem) => selectedItem.id === item.id\n          );\n          if (indexNum > -1) removeFunction(item, indexNum);\n          else {\n            const inactiveIndexNum = filterArray.indexOf(item);\n            addFunction(item, inactiveIndexNum);\n          }\n        }\n      });\n  }\n\n  static handleAreaFilterClose(\n    locationForm: UntypedFormGroup,\n    locationNameSet: string | null,\n    longVal: number,\n    latVal: number,\n    longValueSet: number,\n    latValSet: number,\n    locationRange: number,\n    locationRangeSet: number\n  ) {\n    locationForm.setValue({ address: locationNameSet });\n    longVal = longValueSet;\n    latVal = latValSet;\n    locationRange = locationRangeSet;\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n// models\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TruckassistTableService {\n  /* Set Load Status Filter Options */\n  private setLoadStatusFilterOptions = new BehaviorSubject<any>(null);\n  public currentLoadStatusFilterOptions =\n    this.setLoadStatusFilterOptions.asObservable();\n\n  private actionAnimation = new BehaviorSubject<any>(null);\n  public currentActionAnimation = this.actionAnimation.asObservable();\n}\n","import {\n    Component,\n    Input,\n    OnDestroy,\n    OnInit,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// enums\nimport { eGeneralActions, eLoadFilter, eLoadStatus } from '../../../../enums';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// pipes\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes/dropdown-load-status-color.pipe';\nimport { CaSvgPipe } from '../../../../pipes';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n@Component({\n    selector: 'app-ca-status-filter',\n    imports: [\n        // modules\n        AngularSvgIconModule,\n        CommonModule,\n        HttpClientModule,\n        // pipes\n        DropdownLoadStatusColorPipe,\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    templateUrl: './ca-status-filter.component.html',\n    styleUrls: ['./ca-status-filter.component.scss'],\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n    ]\n})\nexport class CaStatusFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isLegendView: boolean = false;\n    @Input() isFilterActive: boolean = false;\n    @Input() toDoSubType!: string;\n    @Input() loadStatusOptionsArray!: ArrayStatus[];\n\n    private destroy$ = new Subject<void>();\n    public unselectedVisibleCount: number = 0;\n\n    public selectedUser: ArrayStatus[] = [];\n\n    public isButtonAvailable: boolean = false;\n    public isAscendingSortOrder: boolean = true;\n\n    public eLoadStatus = eLoadStatus;\n    public filterActiveArray: ArrayStatus[] = [];\n    public totalFiltersNum: number = 0;\n\n    constructor(\n        // services\n        private tableService: TruckassistTableService\n    ) {}\n\n    ngOnInit(): void {\n        this.watchLoadStatusFilterValueChanges();\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleFilterClose(\n            this.loadStatusOptionsArray,\n            this.selectedUser,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public setFilterValue(): filterOutput | filterOutputWithParams {\n        let queryParams = {};\n        let subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.filterActiveArray = [...this.selectedUser];\n        const selectedUsersIdArray: number[] = [];\n        this.totalFiltersNum = this.filterActiveArray.length;\n\n        const mainArray: ArrayStatus[] = this.loadStatusOptionsArray;\n\n        mainArray.forEach((item: ArrayStatus) => {\n            item['currentSet'] = item.isSelected;\n        });\n\n        this.filterActiveArray.forEach((data) => {\n            selectedUsersIdArray.push(data.id!);\n        });\n\n        queryParams = selectedUsersIdArray;\n        subType =\n            this.toDoSubType ??\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedUser = [];\n\n        this.loadStatusOptionsArray = this.loadStatusOptionsArray.map(\n            (item) => {\n                item.isSelected = false;\n                item.currentSet = false;\n                return item;\n            }\n        );\n\n        this.checkFilterActiveValue();\n\n        this.isButtonAvailable = true;\n        this.filterActiveArray = [];\n        this.totalFiltersNum = 0;\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n            queryParams: [],\n        };\n\n        return data;\n    }\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortItemsCount(\n            this.loadStatusOptionsArray,\n            this.selectedUser,\n            this.isAscendingSortOrder\n        );\n\n        this.loadStatusOptionsArray = sortResult.sortedFilterArray;\n        this.selectedUser = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    private watchLoadStatusFilterValueChanges(): void {\n        this.type = ToolbarFilterStringEnum.STATUS_FILTER;\n        this.tableService.currentLoadStatusFilterOptions\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res) => {\n                if (res && this.type === eLoadFilter.STATUS_FILTER) {\n                    this.loadStatusOptionsArray = res.options;\n                }\n            });\n    }\n\n    public addToSelectedUser(item: ArrayStatus, indx: number) {\n        const mainArray = this.loadStatusOptionsArray;\n\n        mainArray[indx].isSelected = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (status) => !status.isSelected\n        )?.length;\n\n        this.selectedUser.push(item);\n\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(item: ArrayStatus, indx: number): void {\n        this.selectedUser.splice(indx, 1);\n        const id = item.id;\n        const mainArray = this.loadStatusOptionsArray;\n\n        mainArray.forEach((status) => {\n            if (status.id === id) {\n                status.isSelected = false;\n            }\n        });\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (status) => !status.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkFilterActiveValue(\n            this.selectedUser,\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"border-filter\"></div>\n<div class=\"filter-status-holder\">\n    @if (type === 'statusFilter') {\n        <div class=\"status-data-main-holder\">\n            @for (item of selectedUser; let indx = $index; track item.id) {\n                <div class=\"status-frame-holder d-flex align-items-center\">\n                    <div\n                        class=\"selected-status-holder d-flex flex-column justify-content-start align-items-start\"\n                    >\n                        <div\n                            class=\"status-main-holder\"\n                            [@inOutAnimation]=\"'in'\"\n                            [@showAnimation]=\"!!isFilterActive\"\n                            (click)=\"removeFromSelectedUser(item, indx)\"\n                        >\n                            <div\n                                class=\"selected-status-frame d-flex align-items-center ca-font-bold\"\n                            >\n                                <div\n                                    class=\"status-profile-img d-flex align-items-center\"\n                                >\n                                    <div\n                                        class=\"status-circle\"\n                                        [ngStyle]=\"\n                                            eLoadStatus[item.id!]\n                                                | dropdownLoadStatusColor: true\n                                        \"\n                                    ></div>\n                                </div>\n                                <div\n                                    class=\"selected-name-text d-flex align-items-center\"\n                                    [class.text-uppercase]=\"\n                                        type === 'statusFilter'\n                                    \"\n                                >\n                                    <div\n                                        class=\"selected-name-text d-flex align-items-center\"\n                                        [class.text-uppercase]=\"\n                                            type === 'statusFilter'\n                                        \"\n                                    >\n                                        <span> {{ item.name }}</span>\n                                    </div>\n                                </div>\n\n                                @if (item?.count) {\n                                    <span\n                                        class=\"count-holder d-inline-flex justify-content-center align-items-center activeCount ca-font-semi-bold\"\n                                    >\n                                        {{ item.count }}\n                                    </span>\n                                } @else {\n                                    @if (!item.count) {\n                                        <div class=\"selected-icon\">\n                                            <svg-icon\n                                                [src]=\"'x' | caSvg: 'common'\"\n                                            ></svg-icon>\n                                        </div>\n                                    } @else {\n                                        <div\n                                            class=\"counter-holder activeCounter\"\n                                        >\n                                            2\n                                        </div>\n                                    }\n                                }\n                                <div\n                                    (click)=\"removeFromSelectedUser(item, indx)\"\n                                    class=\"icon-delete d-flex\"\n                                    [class.counterMargin]=\"item.count\"\n                                >\n                                    <svg-icon\n                                        [src]=\"'x' | caSvg: 'common'\"\n                                    ></svg-icon>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            }\n            @if (selectedUser.length && unselectedVisibleCount) {\n                <div class=\"border-filter border-thrird-margin\"></div>\n            }\n\n            @for (\n                item of loadStatusOptionsArray;\n                let indx = $index;\n                track item.id\n            ) {\n                <div class=\"status-frame-holder d-flex align-items-center\">\n                    @if (!item.hidden && !item.isSelected) {\n                        <div\n                            [@inOutAnimation]=\"'in'\"\n                            [@showAnimation]=\"!!isFilterActive\"\n                            (click)=\"addToSelectedUser(item, indx)\"\n                            class=\"status-main-holder d-flex align-items-center justify-content-center;\"\n                        >\n                            <div\n                                class=\"status-profile-img d-flex align-items-center\"\n                            >\n                                <div\n                                    class=\"status-circle\"\n                                    [ngStyle]=\"\n                                        eLoadStatus[item.id!]\n                                            | dropdownLoadStatusColor: true\n                                    \"\n                                ></div>\n                            </div>\n                            <div\n                                class=\"status-frame d-flex justify-content-between align-items-center fw-normal\"\n                            >\n                                <div\n                                    class=\"selected-name-text text-uppercase d-flex align-items-center\"\n                                >\n                                    <span> {{ item.name }} </span>\n                                </div>\n\n                                @if (item?.count) {\n                                    <span\n                                        class=\"count-holder d-inline-flex justify-content-center align-items-center ca-font-semi-bold\"\n                                    >\n                                        {{ item.count }}\n                                    </span>\n                                }\n                            </div>\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    }\n</div>\n@if (\n    !isLegendView && (type === 'statusFilter' || type === 'dispatcherFilter')\n) {\n    <div class=\"border-filter\"></div>\n}\n","export class TimeFilterConstants {\n  static getTimePastOptions(lastYear: string, last2Years: string) {\n    let idCounter = 1;\n    return [\n      {\n        label: 'Time Filter',\n        items: [\n          { label: 'Today', id: idCounter++, value: 'Today' },\n          { label: 'Yesterday', id: idCounter++, value: 'Yesterday' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'WTD', id: idCounter++, value: 'WTD' },\n          { label: 'Last Week', id: idCounter++, value: 'Last Week' },\n          { label: '1 Week', id: idCounter++, value: '1 Week' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'MTD', id: idCounter++, value: 'MTD' },\n          { label: 'Last Month', id: idCounter++, value: 'Last Month' },\n          { label: '1 Month', id: idCounter++, value: '1 Month' },\n          { label: '3 Months', id: idCounter++, value: '3 Months' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'QTD', id: idCounter++, value: 'QTD' },\n          { label: 'Last Quarter', id: idCounter++, value: 'Last Quarter' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'YTD', id: idCounter++, value: 'YTD' },\n          { label: '1 Year', id: idCounter++, value: '1 Year' },\n          // { label: lastYear, id: idCounter++, year: lastYear, value: 'last year' }, disabled in design...\n          // { label: last2Years, id: idCounter++, year: last2Years, value: 'year before last' }\n        ],\n      }\n    ];\n  }\n\n  static getTimeFutureOptions() {\n    let idCounter = 1;\n    return [\n      {\n        label: 'Time Filter',\n        items: [\n          { label: 'Today', id: idCounter++, value: 'Today' },\n          { label: 'Tomorrow', id: idCounter++, value: 'Tomorrow' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'WTD', id: idCounter++, value: 'WTD' },\n          { label: 'Next Week', id: idCounter++, value: 'Next Week' },\n          { label: '1 Week', id: idCounter++, value: '1 Week' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'This Month', id: idCounter++, value: 'This Month' },\n          { label: 'Next Month', id: idCounter++, value: 'Next Month' },\n          { label: '1 Month', id: idCounter++, value: '1 Month' },\n          { label: '3 Months', id: idCounter++, value: '3 Months' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'QTD', id: idCounter++, value: 'QTD' },\n          { label: 'Next Quarter', id: idCounter++, value: 'Next Quarter' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'YTD', id: idCounter++, value: 'YTD' },\n          { label: '1 Year', id: idCounter++, value: '1 Year' }\n        ],\n      }\n    ];\n  }\n\n  static getTimeShortOptions() {\n    let idCounter = 1;\n    return [\n      {\n        label: 'Time Filter',\n        items: [\n          { label: 'Today', id: idCounter++, value: 'Today' },\n          { label: 'Yesterday', id: idCounter++, value: 'Yesterday' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'WTD', id: idCounter++, value: 'WTD' },\n          { label: 'Last Week', id: idCounter++, value: 'Last Week' }\n        ],\n      },\n      {\n        label: '',\n        items: [\n          { label: 'This Month', id: idCounter++, value: 'This Month' },\n          { label: 'Last Month', id: idCounter++, value: 'Last Month' }\n        ],\n      }\n    ];\n  }\n}\n","import {\n    Component,\n    Input,\n    OnDestroy,\n    OnInit,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { TimeFilterOptions } from '../../../../models/time-filter.model';\n\n// constants\nimport { TimeFilterConstants } from '../../utils/helpers/time-filter.helper';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes';\n\n@Component({\n    imports: [\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        // pipes\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    selector: 'app-ca-time-filter',\n    templateUrl: './ca-time-filter.component.html',\n    styleUrls: ['./ca-time-filter.component.scss'],\n    animations: [showAnimation('showAnimation')]\n})\nexport class CaTimeFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() timeSubType!: string;\n    @Input() isFilterActive: boolean = false;\n\n    private destroy$ = new Subject<void>();\n    public selectedTimeValue!: string;\n    public selectedTimeYear: number | null = null;\n    public filterActiveTime!: string;\n\n    public isButtonAvailable: boolean = false;\n    public lastYear: number | null = null;\n    public last2Years: number | null = null;\n    public timeOptionsArray: TimeFilterOptions[] = [];\n\n    ngOnInit(): void {\n        this.timeFilterInit();\n        this.timeOptionsInit();\n    }\n\n    private timeFilterInit(): void {\n        this.type = ToolbarFilterStringEnum.TIME_FILTER;\n\n        const date = new Date();\n        const pastYear = date.getFullYear() - 1;\n        const past2Year = date.getFullYear() - 2;\n\n        this.lastYear = pastYear;\n        this.last2Years = past2Year;\n    }\n\n    private timeOptionsInit(): void {\n        if (this.timeSubType === ToolbarFilterStringEnum.PAST)\n            this.timeOptionsArray = TimeFilterConstants.getTimePastOptions(\n                this.lastYear!.toString(),\n                this.last2Years!.toString()\n            );\n        else if (this.timeSubType === ToolbarFilterStringEnum.FUTURE)\n            this.timeOptionsArray = TimeFilterConstants.getTimeFutureOptions();\n        else this.timeOptionsArray = TimeFilterConstants.getTimeShortOptions();\n    }\n\n    public setTimeValue(mod: string, year?: number): void {\n        if (this.selectedTimeValue === mod) {\n            this.selectedTimeValue =\n                ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n        } else {\n            this.selectedTimeValue = mod;\n        }\n\n        if (year) {\n            if (this.selectedTimeYear === year) this.selectedTimeYear = null;\n            else this.selectedTimeYear = year;\n        } else {\n            this.selectedTimeYear = null;\n        }\n\n        if (this.filterActiveTime === mod) {\n            this.isButtonAvailable = false;\n        } else {\n            this.isButtonAvailable = true;\n        }\n    }\n\n    public onFilterClose(): void {\n        this.selectedTimeValue = this.filterActiveTime;\n    }\n\n    public setFilterValue(\n        $event: Event\n    ): filterOutput | filterOutputWithParams | undefined {\n        let queryParams = {};\n        let subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.filterActiveTime = this.selectedTimeValue;\n        const setActionType: string = 'Set';\n\n        if (!this.selectedTimeValue) {\n            this.clearAll($event);\n            return;\n        }\n\n        if (this.selectedTimeYear) {\n            queryParams = {\n                timeSelected: this.filterActiveTime,\n                year: this.selectedTimeYear,\n            };\n        } else {\n            queryParams = {\n                timeSelected: this.filterActiveTime,\n            };\n        }\n\n        const data = {\n            filterType: this.type,\n            action: setActionType,\n            queryParams,\n            subType,\n        };\n        return data;\n    }\n\n    public clearAll(event?: Event) {\n        this.selectedTimeValue =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n        this.filterActiveTime =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n        this.isButtonAvailable = true;\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n\n        return data;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (type === 'timeFilter') {\n    <div class=\"time-filter-holder\">\n        <div\n            class=\"time-items-holder d-flex justify-content-start align-items-start flex-column\"\n        >\n            @for (\n                timeOption of timeOptionsArray;\n                let indx = $index;\n                track indx\n            ) {\n                @for (item of timeOption.items; let ind = $index; track ind) {\n                    <div\n                        class=\"time-items d-flex align-items-center fw-normal\"\n                        [class.active]=\"selectedTimeValue === item.label\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"setTimeValue(item.label)\"\n                    >\n                        {{ item.label }}\n                        <div\n                            class=\"selected-icon d-flex justify-content-center align-items-center\"\n                        >\n                            <svg-icon\n                                [src]=\"'confirm' | caSvg: 'common'\"\n                            ></svg-icon>\n                        </div>\n                        <div\n                            class=\"icon-delete d-flex justify-content-center align-items-center\"\n                        >\n                            <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                        </div>\n                    </div>\n                }\n            }\n            <div class=\"border-filter time-data-border\"></div>\n        </div>\n    </div>\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n  name: \"colorFinder\",\n  standalone: true,\n})\nexport class ColorFinderPipe implements PipeTransform {\n  transform(id: number, type: string, isTooltip?: boolean): string {\n    if (type === \"truck\") {\n      switch (id) {\n        case 1:\n        case 6:\n          if (isTooltip) return \"#3B73ED\";\n\n          return \"blue\";\n        case 2:\n        case 5:\n          if (isTooltip) return \"#F89B2E\";\n\n          return \"yellow\";\n        default:\n          if (isTooltip) return \"#259F94\";\n\n          return \"green\";\n      }\n    } else {\n      switch (id) {\n        case 3:\n        case 4:\n        case 6:\n        case 9:\n        case 10:\n        case 11:\n        case 12:\n          if (isTooltip) return \"#3B73ED\";\n\n          return \"blue\";\n        case 1:\n        case 2:\n          if (isTooltip) return \"#F89B2E\";\n\n          return \"yellow\";\n        case 7:\n        case 13:\n          if (isTooltip) return \"#DF3C3C \";\n\n          return \"red\";\n        default:\n          if (isTooltip) return \"#259F94\";\n\n          return \"green\";\n      }\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\n\n@Pipe({\n    name: 'formControl',\n    standalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n    transform(value: AbstractControl): UntypedFormControl {\n        return value as UntypedFormControl;\n    }\n}","export enum DropdownTemplateTypeEnum {\n  SVG_TEMPLATE = 'svg-template',\n  SVGTEXT_TEMPLATE = 'svgtext-template',\n  SVGTEXT_DISPATCH_TEMPLATE = 'svgtext-dispatch-template',\n  DETAILS_TEMPLATE = 'details-template',\n  GROUPS = 'groups',\n  MULTISELECT = 'multiselect',\n  LABELS = 'labels',\n  DISPATCH = 'dispatch',\n  LOAD_DISPATCHER = 'load-dispatcher',\n  LOAD_DISPATCHES_TTD = 'load-dispatches-ttd',\n  LOAD_BROKER = 'load-broker',\n  LOAD_BROKER_CONTACT = 'load-broker-contact',\n  LOAD_SHIPPER = 'load-shipper',\n  TEXT_COUNTER = 'text-counter',\n  FUEL_FRANCHISE = 'fuel-franchise',\n  DOUBLE_TEXT_TEMPLATE = 'double-text-template',\n  DOUBLE_COLUMN_TEMPLATE = 'double-column-template',\n  TRIPLE_COLUMN_TEMPLATE = 'triple-column-template',\n  PAYROLL_TRUCKS = 'payroll-trucks',\n  PARKING = 'parking',\n}\n","export enum DropdownStringEnum {\n  NO_RESULTS = 'No Results',\n  ADD_NEW = 'ADD NEW',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\nimport { DropdownTemplateTypeEnum } from '../../ca-input-dropdown/enums';\n\n@Pipe({\n  name: 'inputClass',\n  standalone: true,\n})\nexport class InputClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    isTouchedInput: boolean,\n    inputConfig: ICaInput,\n    input: { value: string },\n    isVisibleCommands: boolean,\n    value: string | number,\n    superControlInvalid: boolean | undefined,\n    superControlTouched: boolean | undefined,\n    isDropdownToggler: boolean,\n    isEditInput: boolean,\n    template: string\n  ): { [key: string]: boolean | undefined | number | null | string } {\n    return {\n      'input-fixed-placehoder-input':\n        inputConfig.fixedPlacholder && input.value && !isFocusInput,\n      focus: isFocusInput && !inputConfig.isInvalidSearchInDropdown,\n      'inactive-empty': !value && inputConfig.isDisabled,\n      'inactive-filled': value && inputConfig.isDisabled,\n      'valid-focus-in':\n        ((value || inputConfig.placeholder) &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !isVisibleCommands &&\n          !inputConfig?.dropdownImageInput?.url &&\n          !inputConfig.blackInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.dropdownLabel) ||\n        (inputConfig.multipleInputValues?.options?.length &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.dropdownLabel),\n      'valid-focus-out-filled':\n        ((( (value || value === 0) &&\n          getSuperControl?.valid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled &&\n          !isVisibleCommands &&\n          !inputConfig.blackInput) ||\n          (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n          !inputConfig.blackInput) ||\n        (inputConfig.multipleInputValues?.options?.length &&\n          !isFocusInput &&\n          !inputConfig.blackInput),\n      'invalid-focus-in':\n        getSuperControl?.invalid &&\n        value &&\n        isFocusInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.mergeDropdownBodyWithInput &&\n        !inputConfig.isDisabled &&\n        !inputConfig.dropdownLabel &&\n        !(\n          inputConfig.dropdownImageInput?.url ||\n          inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n        ),\n      'invalid-focus-out-filled':\n        ((value &&\n          getSuperControl?.invalid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput) ||\n          (!inputConfig.dropdownImageInput?.url &&\n            (isTouchedInput || getSuperControl?.touched) &&\n            getSuperControl?.invalid &&\n            !inputConfig.isDisabled &&\n            !isFocusInput)) &&\n        !inputConfig.blackInput &&\n        !inputConfig.requiredLabel,\n      'invalid-focus-out-empty':\n        !isFocusInput &&\n        !value &&\n        superControlInvalid &&\n        (isTouchedInput || superControlTouched) &&\n        !inputConfig.isDisabled &&\n        !inputConfig.requiredLabel,\n    'invalid-focus-out-empty-table':\n        !isFocusInput &&\n        !getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl.touched) &&\n        !inputConfig.isDisabled &&\n        inputConfig.requiredLabel,\n      'invalid-search-in-dropdown-focus-in':\n        isFocusInput &&\n        value &&\n        inputConfig.isInvalidSearchInDropdown &&\n        inputConfig.isDropdown &&\n        !inputConfig.blackInput &&\n        !inputConfig.mergeDropdownBodyWithInput &&\n        !inputConfig.isDisabled,\n      'has-placeholderIcon': !!inputConfig.placeholderIcon,\n      'dropdown-placeholder-active':\n        inputConfig.isDropdown &&\n        inputConfig.placeholder &&\n        isDropdownToggler &&\n        isFocusInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDisabled &&\n        !inputConfig.isInvalidSearchInDropdown,\n      'multiSelect-dropdown-active':\n        inputConfig.multiSelectDropdownActive &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n      'dropdown-label-active':\n        inputConfig.dropdownLabel &&\n        isVisibleCommands &&\n        isEditInput &&\n        !inputConfig.isDisabled,\n      'input-commands': inputConfig.commands?.active && isVisibleCommands,\n      'blue-commands':\n        inputConfig.commands?.blueCommands &&\n        inputConfig.commands?.active &&\n        isVisibleCommands,\n      'dropdown-input-image-truck':\n        inputConfig?.dropdownImageInput?.withText &&\n        inputConfig?.dropdownImageInput?.url &&\n        inputConfig?.dropdownImageInput?.template === 'truck' &&\n        !inputConfig?.dropdownImageInput?.remove &&\n        !isFocusInput,\n      'dropdown-input-image-truck-focus':\n        inputConfig?.dropdownImageInput?.withText &&\n        inputConfig?.dropdownImageInput?.url &&\n        inputConfig?.dropdownImageInput?.template === 'truck' &&\n        !inputConfig?.dropdownImageInput?.remove &&\n        isFocusInput,\n      'dropdown-input-image-trailer':\n        inputConfig?.dropdownImageInput?.withText &&\n        inputConfig?.dropdownImageInput?.url &&\n        inputConfig?.dropdownImageInput?.template === 'trailer' &&\n        !inputConfig?.dropdownImageInput?.remove &&\n        !isFocusInput,\n      'dropdown-input-image-trailer-focus':\n        inputConfig?.dropdownImageInput?.withText &&\n        inputConfig?.dropdownImageInput?.url &&\n        inputConfig?.dropdownImageInput?.template === 'trailer' &&\n        !inputConfig?.dropdownImageInput?.remove &&\n        isFocusInput,\n      'dropdown-input-image-color':\n        inputConfig?.dropdownImageInput?.withText &&\n        (inputConfig?.dropdownImageInput?.url ||\n          inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl) &&\n        inputConfig?.dropdownImageInput?.template === 'color',\n      'dropdown-input-image-user':\n        inputConfig?.dropdownImageInput?.withText &&\n        !inputConfig?.hideAllItemsInInputDropdown &&\n        inputConfig?.dropdownImageInput?.template === 'user' &&\n        (inputConfig.selectedDropdown ||\n          (inputConfig.placeholder && isFocusInput) ||\n          getSuperControl?.value),\n      'dropdown-input-image-pm':\n        inputConfig?.dropdownImageInput?.withText &&\n        !inputConfig?.hideAllItemsInInputDropdown &&\n        inputConfig?.dropdownImageInput?.template === 'pm' &&\n        (inputConfig.selectedDropdown ||\n          (inputConfig.placeholder && isFocusInput) ||\n          getSuperControl?.value),\n      'dropdown-input-image-without-text-transparent':\n        inputConfig?.dropdownImageInput &&\n        !inputConfig?.dropdownImageInput?.withText &&\n        !isFocusInput,\n      'multiple-input-values':\n        inputConfig?.multipleInputValues?.options?.length && !isFocusInput,\n      'disable-select-on-focus-out': !isFocusInput,\n      'hide-placeholder-in-multiple-placeholder-input':\n        inputConfig?.multipleInputValues?.options?.length && isFocusInput,\n      'cursor-on-right-side': inputConfig?.inputCursorOnRightSide,\n      'merge-dropdown-body-with-input': inputConfig.mergeDropdownBodyWithInput,\n      'dispatch-dropdown':\n        template === DropdownTemplateTypeEnum.SVGTEXT_DISPATCH_TEMPLATE,\n      'ca-font-bold text-uppercase': inputConfig.statusStyle,\n      'blue-dropdown':\n        inputConfig.isBlueDropdown &&\n        getSuperControl?.valid &&\n        (inputConfig.isItemSelected ||\n          inputConfig.isDisplayingCustomPeriodRange),\n      'hide-input-value':\n        template === DropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// confis\nimport { ICaInput } from '../config/ca-input.config';\n\n// enums\nimport { DropdownTemplateTypeEnum } from '../../ca-input-dropdown/enums';\n\n@Pipe({\n  name: 'inputClearClass',\n  standalone: true,\n})\nexport class InputClearClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    incorrectValue: boolean,\n    selectedDropdownLabelColor: boolean,\n    template: string,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      focus:\n        isFocusInput &&\n        getSuperControl?.value &&\n        !(inputConfig.blackInput && inputConfig.isDropdown),\n      'valid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !inputConfig.customClass?.includes('repair-shop-open-hour') &&\n          !inputConfig.blackInput &&\n          !inputConfig.dropdownImageInput?.url &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.multipleInputValues?.options.length &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.dropdownLabel &&\n          template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS),\n      'valid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.customClass?.includes('repair-shop-open-hour') &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDisabled,\n      'invalid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.invalid &&\n          isFocusInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.isInvalidSearchInDropdown &&\n          inputConfig.isDropdown &&\n          isFocusInput &&\n          getSuperControl?.value &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !inputConfig.isDropdown &&\n        !inputConfig.blackInput &&\n        !(\n          !inputConfig.dropdownImageInput?.withText &&\n          inputConfig.dropdownImageInput?.url\n        ) &&\n        !inputConfig.isDisabled,\n      'incorrect-input': inputConfig.incorrectInput && getSuperControl?.value,\n      'incorrect-input-on':\n        inputConfig.incorrectInput && getSuperControl?.value && incorrectValue,\n      hidden:\n        getSuperControl?.value && isFocusInput && inputConfig.dropdownLabel,\n      'dropdown-on':\n        (getSuperControl?.value &&\n          inputConfig.isDropdown &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput &&\n          !inputConfig.multiSelectDropdownActive &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        (inputConfig.dropdownImageInput?.url &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput &&\n          !inputConfig.multiSelectDropdownActive &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        (!inputConfig.blackInput && selectedDropdownLabelColor) ||\n        (inputConfig.dropdownImageInput?.url &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS,\n      'trash-can-svg': inputConfig.removeInput,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n    name: 'inputContainerClass',\n    standalone: true,\n})\nexport class InputContainerClassPipe implements PipeTransform {\n    transform(\n        getSuperControl: AbstractControl<any, any> | null,\n        isFocusInput: boolean,\n        isTouchedInput: boolean,\n        inputConfig: ICaInput,\n        value: string,\n        isDisabledInput?: boolean,\n        invalid?: boolean\n    ): { [key: string]: boolean | undefined | null | string } {\n        const isDisabled = isDisabledInput ?? inputConfig.isDisabled;\n        return {\n            'transparent': inputConfig.transparentInput,\n            'custom-empty-hover': !isFocusInput,\n            'custom-filled-hover':\n                value && !isFocusInput && !inputConfig.dropdownLabel,\n            'invalid-filled-focus-out':\n                value &&\n                (getSuperControl?.invalid || invalid) &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'invalid-empty-focus-out':\n                !value &&\n                (getSuperControl?.invalid || invalid) &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled &&\n                !inputConfig.dropdownLabel,\n            'invalid-focus-in':\n                value &&\n                (getSuperControl?.invalid || invalid) &&\n                isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'valid-focus-in':\n                value &&\n                getSuperControl?.valid &&\n                isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'valid-focus-out':\n                value &&\n                getSuperControl?.valid &&\n                !isFocusInput &&\n                !inputConfig.blackInput &&\n                !inputConfig.isDisabled,\n            'inactive-empty': isDisabled && !value,\n            'inactive-filled': isDisabled && value,\n            'input-remove-trash-can': inputConfig.removeInput,\n            'input-remove-background': inputConfig.isInputBackgroundRemoved,\n            'input-blue-text': inputConfig.isBlueText,\n            'required-label-table': inputConfig.requiredLabel,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n    name: 'inputDatetimePickerClass',\n    standalone: true,\n})\nexport class InputDatetimePickerClassPipe implements PipeTransform {\n    transform(\n        isFocusInput: boolean | undefined,\n        isVisibleCommands: boolean,\n        inputConfig: Partial<ICaInput>,\n        isTouchedInput: boolean | undefined,\n        isDisabledInput?: boolean,\n        value?: any,\n        valid?: boolean,\n        touched?: boolean\n    ): { [key: string]: boolean | undefined | number } {\n        const isDisabled = isDisabledInput ?? inputConfig.isDisabled;\n        return {\n            focus: isFocusInput,\n            'valid-focus-in':\n                (value &&\n                    valid &&\n                    isFocusInput &&\n                    !isVisibleCommands &&\n                    !inputConfig.dropdownImageInput?.url &&\n                    !inputConfig.blackInput &&\n                    !isDisabled) ||\n                (inputConfig.multipleInputValues?.options?.length &&\n                    isFocusInput &&\n                    !inputConfig.isInvalidSearchInDropdown &&\n                    !isDisabled),\n            'valid-focus-out-filled':\n                (((value &&\n                    valid &&\n                    !isFocusInput &&\n                    !isDisabled &&\n                    !isVisibleCommands &&\n                    !inputConfig.blackInput &&\n                    !isDisabled) ||\n                    (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n                    !inputConfig.blackInput &&\n                    !isDisabled) ||\n                (inputConfig.dropdownLabel &&\n                    value &&\n                    valid &&\n                    !isFocusInput &&\n                    !isDisabled) ||\n                (inputConfig.multipleInputValues?.options?.length &&\n                    !isFocusInput),\n            'invalid-focus-in':\n                !valid &&\n                value &&\n                isFocusInput &&\n                !inputConfig.blackInput &&\n                !(\n                    inputConfig.dropdownImageInput?.url ||\n                    inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n                ) &&\n                !isDisabled,\n            'invalid-focus-out-filled':\n                ((value &&\n                    !valid &&\n                    !isFocusInput &&\n                    !isDisabled &&\n                    !inputConfig.blackInput) ||\n                    (!inputConfig.dropdownImageInput?.url &&\n                        (isTouchedInput || touched) &&\n                        !valid &&\n                        !isFocusInput &&\n                        !isDisabled)) &&\n                !inputConfig.blackInput,\n            'invalid-focus-out-empty':\n                !isFocusInput &&\n                !value &&\n                !valid &&\n                (isTouchedInput || touched) &&\n                inputConfig.multipleLabel?.labels?.length &&\n                !inputConfig.multipleInputValues?.options?.length &&\n                !isDisabled,\n            dark: inputConfig.customClass === 'datetimeclass dark',\n            'time-picker-opacity':\n                inputConfig.customClass === 'time-picker-opacity',\n            'dispatch-history-default-color':\n                inputConfig.customClass === 'time-picker-opacity' &&\n                inputConfig.hideDropdownArrow &&\n                !isFocusInput,\n            'dispatch-history-row-hover':\n                inputConfig.customClass === 'time-picker-opacity' &&\n                inputConfig.isHoverRow &&\n                inputConfig.hideDropdownArrow &&\n                !isFocusInput,\n            transparent: inputConfig.transparentInput,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n  name: 'inputDropdownArrowClass',\n  standalone: true,\n})\nexport class InputDropdownArrowClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    isTouchedInput: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      focus: isFocusInput,\n      'valid-focus-in':\n        (!inputConfig.dropdownLabel &&\n          (getSuperControl?.value || inputConfig.placeholder) &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.isInvalidSearchInDropdown) ||\n        ((inputConfig.dropdownImageInput?.url ||\n          inputConfig.dropdownImageInput?.nameInitialsInsteadUrl ||\n          inputConfig.placeholder) &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.isDisabled),\n      'valid-focus-out':\n        (getSuperControl?.value &&\n          getSuperControl?.valid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled) ||\n        (!inputConfig.dropdownImageInput?.withText &&\n          inputConfig.dropdownImageInput?.url &&\n          !isFocusInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.invalid &&\n          isFocusInput &&\n          !inputConfig.isDisabled) ||\n        (isFocusInput &&\n          getSuperControl?.value &&\n          inputConfig.isInvalidSearchInDropdown &&\n          inputConfig.isDropdown &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-out':\n        !getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      'invalid-search-in-dropdown-focus-in':\n        inputConfig.isInvalidSearchInDropdown &&\n        inputConfig.isDropdown &&\n        isFocusInput &&\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !inputConfig.isDisabled,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'inputError',\n    standalone: true,\n})\nexport class InputErrorPipe implements PipeTransform {\n    transform(value: any, inputName?: string): string {\n        let errorMessageValue: string = '';\n\n        if (value !== null) {\n            if (value['required']) {\n                errorMessageValue = 'Required';\n            } else if (value['invalid']) {\n                errorMessageValue = 'Invalid';\n            } else if (value['minlength']) {\n                errorMessageValue = `${value['minlength'].requiredLength} Characters Min`;\n            } else if (value['maxlength']) {\n                errorMessageValue = `${value['maxlength'].requiredLength} Characters Max`;\n            } else if (value['min']) {\n                errorMessageValue = `${value['min']} Is Minimum Value`;\n            } else if (value['max']) {\n                errorMessageValue = `${value['max']} Is Maximum Value`;\n            } else if (value['passwordDontMatch']) {\n                errorMessageValue = \"Passwords don't match.\";\n            } else if (value['fuelStore']) {\n                errorMessageValue = 'Store already added.';\n            } else if (value['fuelStoreCommonMessage']) {\n                errorMessageValue = 'Already in use by other fuel stop.';\n            } else if (value['fuelTransactionTruckNotLinkedMessage']) {\n                errorMessageValue = 'Truck not Linked';\n            } else if (value['fuelTransactionDriverNotLinkedMessage']) {\n                errorMessageValue = 'Driver Not Linked';\n            } else if (value['pattern']?.requiredPattern) {\n                switch (inputName?.toLowerCase()) {\n                    case 'phone': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    case 'ssn': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    case 'ein': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    default: {\n                        errorMessageValue = `Invalid`;\n                        break;\n                    }\n                }\n            } else if (value['userDoesntExist']) {\n                errorMessageValue = \"This user doesn't exist\";\n            } else if (value['userAlreadyRegistered']) {\n                errorMessageValue = 'This user is already registered';\n            } else if (value['wrongPassword']) {\n                errorMessageValue = 'Wrong password, try again';\n            } else if (\n                value['einAlreadyExist'] ||\n                value['phoneAlreadyExist'] ||\n                value['emailAlreadyExist'] ||\n                value['ssnAlreadyExist']\n            ) {\n                errorMessageValue = 'Already in use';\n            } else if (value['truckNotLinked']) {\n                errorMessageValue = 'Truck not Linked';\n            } else if (value['driverNotLinked']) {\n                errorMessageValue = 'Driver not Linked';\n            } else if (value['incorrectVinNumber']) {\n                errorMessageValue = '13 or 17 characters';\n            } else {\n                errorMessageValue = `Invalid`;\n            }\n        }\n        return errorMessageValue;\n    }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"inputPasswordEyeClass\",\n  standalone: true,\n})\nexport class InputPasswordEyeClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    isTouchedInput: boolean,\n    value: string\n  ): { [key: string]: boolean } {\n    return {\n      visible: getSuperControl?.value,\n      inactive: inputConfig.isDisabled!,\n      \"valid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      \"valid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !inputConfig.isDisabled &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput,\n      \"invalid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\nimport { LabelColor } from \"../models/label-color.model\";\n\n@Pipe({\n  name: \"inputPlaceholderIconClass\",\n  standalone: true,\n})\nexport class InputPlaceholderIconClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    selectedDropdownLabelColor: LabelColor | null,\n    isTouchedInput: boolean,\n    isEditInput: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      \"inactive-empty\": !getSuperControl?.value && inputConfig.isDisabled,\n      \"inactive-filled\": getSuperControl?.value && inputConfig.isDisabled,\n      \"default-svg-color\":\n        !(inputConfig.dropdownLabel && isFocusInput) &&\n        !(inputConfig.dropdownLabel && selectedDropdownLabelColor),\n      focus: isFocusInput && !inputConfig.dropdownLabel,\n      \"valid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.blackInput &&\n        !inputConfig.commands?.active &&\n        !inputConfig.isDisabled,\n      \"valid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.isDisabled,\n      \"valid-focus-out-dropdown-label\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        selectedDropdownLabelColor &&\n        inputConfig.dropdownLabel &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-out\":\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !inputConfig.isDisabled,\n      hidden: inputConfig.type === \"password\" && getSuperControl?.value,\n      'cursor-pointer': isEditInput\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'inputType',\n    standalone: true\n})\nexport class InputTypePipe implements PipeTransform {\n    transform(type: string, value: boolean): any {\n        if (type === 'password') {\n            if (value) {\n                return 'text';\n            } else {\n                return 'password';\n            }\n        }\n        return type;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n    name: 'labelClass',\n    standalone: true,\n})\nexport class LabelClassPipe implements PipeTransform {\n    transform(\n        value: string | number,\n        isFocusInput: boolean,\n        inputConfig: ICaInput,\n        isTouchedInput: boolean,\n        superControlInvalid?: boolean,\n        superControlTouched?: boolean\n    ): { [key: string]: boolean | null | undefined | string | number } {\n        return {\n            required: inputConfig.isRequired && !inputConfig.isDisabled,\n            'inactive-empty': !value && inputConfig.isDisabled,\n            'up-label':\n                inputConfig.placeholderWithLabel ||\n                value ||\n                value === 0 ||\n                isFocusInput ||\n                inputConfig?.multipleInputValues?.options?.length ||\n                (!inputConfig.dropdownImageInput?.withText &&\n                    inputConfig.dropdownImageInput?.url &&\n                    !inputConfig.labelInInput),\n            'input-placeholderIcon-on': inputConfig.placeholderIcon,\n            hidden:\n                inputConfig.placeholderInsteadOfLabel &&\n                (isFocusInput || value),\n            'multiple-labels':\n                inputConfig?.multipleInputValues?.options?.length,\n            'in-label-focus': isFocusInput && inputConfig.labelInInput,\n            'in-label': inputConfig.labelInInput,\n            'required-label':\n                !isFocusInput &&\n                !value &&\n                superControlInvalid &&\n                (isTouchedInput || superControlTouched) &&\n                !inputConfig.isDisabled &&\n                inputConfig.requiredLabel,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"showClear\",\n  standalone: true\n})\nexport class ShowClearPipe implements PipeTransform {\n  transform(inputConfig: ICaInput): boolean | undefined {\n    return (\n      (!inputConfig.hideClear &&\n        (!inputConfig.isDisabled || inputConfig.removeInput) &&\n        !inputConfig.customClass?.includes(\"details-pages\") &&\n        !inputConfig.commands?.active &&\n        !inputConfig?.loadingSpinner?.isLoading) ||\n      inputConfig.incorrectInput\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n  name: 'showDropdownArrow',\n  standalone: true,\n})\nexport class ShowDropdownArrowPipe implements PipeTransform {\n  transform(inputConfig: ICaInput): boolean {\n    return (\n      (!inputConfig.hideDropdownArrow &&\n        (inputConfig.isDropdown || inputConfig.dropdownLabel) &&\n        !inputConfig.multiSelectDropdownActive &&\n        !inputConfig.isDisabled) ||\n      ((inputConfig.name === 'datepicker' ||\n        inputConfig.name === 'timepicker' ||\n        inputConfig.name == 'datepickerBankCard') &&\n        !inputConfig.incorrectInput &&\n        !inputConfig.isDisabled &&\n        !inputConfig.hideDropdownArrow)\n    );\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"showInvalidDangerMark\",\n  standalone: true,\n})\nexport class ShowInvalidDangerMarkPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    isTouchedInput: boolean,\n    value: string\n  ): boolean | undefined {\n    return (\n      ((isTouchedInput || getSuperControl?.touched) &&\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled &&\n        !inputConfig.incorrectInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDropdown &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.hideDangerMark) ||\n      inputConfig.dangerMark\n    );\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"showValidCheck\",\n  standalone: true\n})\nexport class ShowValidCheckPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    value: string\n  ): boolean {\n    return (\n      (getSuperControl?.value || getSuperControl?.value === 0) &&\n      getSuperControl?.valid &&\n      !isFocusInput &&\n      !inputConfig.isDisabled &&\n      !inputConfig.placeholderIcon &&\n      !inputConfig.isDropdown &&\n      !inputConfig.blackInput &&\n      !inputConfig.hideRequiredCheck &&\n      !inputConfig.incorrectInput &&\n      !inputConfig?.loadingSpinner?.isLoading &&\n      !inputConfig.dropdownLabel\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n  name: 'inputPlaceholderIconRightClass',\n  standalone: true,\n})\nexport class InputPlaceholderIconRightClassPipe implements PipeTransform {\n  transform(\n    isFocusInput: boolean,\n    getSuperControl: AbstractControl<any, any> | null,\n    inputConfig: ICaInput,\n    isTouchedInput: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      hide: isFocusInput && getSuperControl?.value,\n      focus: isFocusInput,\n      'valid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      'valid-focus-in':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n      'invalid-focus-out':\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      'invalid-focus-in':\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n      red:\n        inputConfig.isPlaceHolderIconRightSideDynamicColor &&\n        getSuperControl?.invalid &&\n        !inputConfig.isDisabled &&\n        (((isTouchedInput || getSuperControl?.touched) && !isFocusInput) ||\n          (getSuperControl?.value && isFocusInput)),\n      blue:\n        inputConfig.isPlaceHolderIconRightSideDynamicColor &&\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n  name: 'inputPlaceholderTextClass',\n  standalone: true,\n})\nexport class InputPlaceholderTextClassPipe implements PipeTransform {\n  transform(\n    isFocusInput: boolean,\n    isTouchedInput: boolean,\n    getSuperControl: AbstractControl<any, any> | null,\n    inputConfig: ICaInput,\n    isVisibleCommands: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      focus: isFocusInput,\n      'inactive-filled': getSuperControl?.value && inputConfig.isDisabled,\n      'valid-focus-in':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.commands?.active &&\n        !isVisibleCommands &&\n        !inputConfig.isDisabled,\n      'valid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.commands?.active &&\n        !isVisibleCommands &&\n        !inputConfig.isDisabled,\n      'invalid-focus-in':\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.commands?.active &&\n        !isVisibleCommands &&\n        !inputConfig.isDisabled,\n      'invalid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput &&\n        !inputConfig.isDisabled\n    };\n  }\n}\n","export enum InputCommandsAction {\n  DECREMENT = 'decrement',\n  INCREMENT = 'increment',\n  RESET = 'reset',\n  CONFIRM = 'confirm',\n  CANCEL = 'cancel',\n  MINUS = 'minus',\n  PLUS = 'plus',\n}\n","export enum InputCommandsType {\n  PM_INCREMENT_DECREMENT = 'pm-increment-decrement',\n  INCREMENT_DECREMENT = 'increment-decrement',\n  CONFIRM_CANCEL = 'confirm-cancel',\n  MONTHS = 'months',\n\n}\n","export enum InputConfigNameStringEnum {\n  DATE_PICKER = 'datepicker',\n  TIME_PICKER = 'timepicker',\n  DATE_PICKER_BANK_CARD = 'datepickerBankCard',\n  INPUT_DROPDOWN_BANK_NAME = 'Input Dropdown Bank Name',\n  ADDRESS = 'Address'\n}\n","export enum InputStringEnum {\n  PHONE = 'phone',\n  CAPITALIZE = 'capitalize',\n  UPPERCASE = 'uppercase',\n  CAPITALIZED_CASE = 'capitalizedcase',\n  YEAR = 'year',\n  MONTHS = 'months',\n  AXLES = 'axles',\n  FULL_NAME = 'full name',\n  EMAIL = 'email',\n  INVOICE = 'invoice',\n  ADDRESS = 'address',\n  PERSONS = 'persons',\n  VEHICLES = 'vehicles',\n\n  PRICE_SEPARATOR = 'price-separator',\n  BUSINESS_NAME = 'business name',\n  SHOP_NAME = 'shop name',\n  FUEL_STOP = 'fuel stop',\n  PRODUCER_NAME = 'producer name',\n  TERMINAL_NAME = 'terminal name',\n\n  EIN = 'ein',\n  MC_FF = 'mc/ff',\n  PHONE_EXTENSION = 'phone-extension',\n  ACCOUNT_BANK = 'account-bank',\n  ROUTING_BANK = 'routing-bank',\n  SSN = 'ssn',\n  FUEL_CARD = 'fuel-card',\n  EMPTY_WEIGHT = 'empty-weight',\n  CREDIT_LIMIT = 'credit limit',\n  PO_BOX = 'po box',\n  PRICE = 'price',\n  TRAILER_VOLUME = 'trailer-volume',\n  REPAIR_ODOMETER = 'repair-odometer',\n  USDOT = 'usdot',\n  IRP = 'irp',\n  STARTING = 'starting',\n  CUSTOMER_PAY_TERM = 'customer pay term',\n  CUSTOMER_CREDIT = 'customer credit',\n  DEFAULT_BASE = 'default base',\n  EACH_OCCURRENCE = 'each occurrence',\n  DAMAGE = 'damage',\n  PERSONAL_ADVER_INJ = 'personal-adver-inj',\n  MEDICAL_EXPENSES = 'medical expenses',\n  BODILY_INJURY = 'bodily injury',\n  GENERAL_AGGREGATE = 'general aggregate',\n  PRODUCTS_COMP_OP_AGG = 'products-comp-op-agg',\n  COMBINED_SINGLE_LIMIT = 'combined-single-limit',\n  SINGLE_CONVEYANCE = 'single-conveyance',\n  DEDUCTABLE = 'deductable',\n  COMPREH_COLLISION = 'compreh-collision',\n  TRAILER_VALUE_INSURANCE_POLICY = 'trailer-value-insurance-policy',\n  RENT = 'rent',\n  SALARY = 'salary',\n  MILEAGE = 'mileage',\n  EMPTY_WEIGHT_SPACE = 'empty weight',\n  QTY = 'qty',\n  PURCHASE_PRICE = 'purchase price',\n  FUEL_TANK_SIZE = 'fuel tank size',\n  DEVICE_NO = 'device no',\n  WEIGHT = 'weight',\n  FUEL_PER_MILES = 'fuel per miles',\n  FUEL_PRICE_MAP = 'fuel price map',\n  AMOUNT = 'amount',\n  BOL_NO = 'bol no.',\n  SEAL_NO = 'seal no.',\n  PICKUP_NO = 'pickup no.',\n  CODE = 'code',\n  MULTI_FROM_FIRST_FROM = 'multifromfirstfrom',\n  MULTI_FROM_FIRST_TO = 'multifromfirstto',\n  MULTI_FORM_SECOND_FROM = 'multiformsecondfrom',\n  MULTI_FORM_SECOND_TO = 'multiformsecondto',\n  MULTI_FORM_THIRD_FROM = 'multiformthirdfrom',\n  MULTI_FORM_THIRD_TO = 'multiformthirdto',\n\n  ADDRESS_UNIT = 'address-unit',\n  DEPARTMENT = 'department',\n  VEHICLE_UNIT = 'vehicle-unit',\n  FIRST_NAME = 'first name',\n  LAST_NAME = 'last name',\n  BANK_NAME = 'bank name',\n  VIN_NUMBER = 'vin-number',\n  INSURANCE_POLICY = 'insurance-policy',\n  IFTA = 'ifta',\n  TRUCK_TRAILER_MODEL = 'truck-trailer-model',\n  LICENSE_PLATE = 'license plate',\n  DESCRIPTION = 'description',\n  ALLOW_ALL = 'allow all',\n  DBA_NAME = 'dba name',\n  PER_MILE = 'per mile',\n  PER_STOP = 'per stop',\n  FLAT_RATE = 'flat rate',\n  PER_LOAD = 'per load',\n  RELATIONSHIP = 'relationship',\n  SCAC = 'scac',\n  EMERGENCY_NAME = 'emergency name',\n  FULL_CONTACT_NAME = 'full contact name',\n  FUEL_STORE = 'fuel-store',\n  HOS = 'hos',\n  FULL_PARKING_SLOT = 'full parking slot',\n  PARKING_SLOT = 'parking slot',\n  CDL_NUMBER = 'cdl-number',\n  USERNAME = 'username',\n  NICKNAME = 'nickname',\n  PASSWORD = 'password',\n  TOLL_VALIDATION = 'tollvalidation',\n  PREFIX = 'prefix',\n  SUFFIX = 'suffix',\n  PARKING_NAME = 'parking name',\n  FILE_NAME = 'file name',\n  INSURER_NAME = 'insurer name',\n  OFFICE_NAME = 'office name',\n  INPUT_DROPDOWN_LABEL = 'input dropdown label'\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\nimport { AbstractControl } from '@angular/forms';\nimport { InputCommandsType } from '../enums';\n\n@Pipe({\n  name: 'showPlaceholderText',\n  standalone: true,\n})\nexport class ShowPlaceholderTextPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    getSuperControl: AbstractControl<any, any> | null,\n    isVisibleCommands: boolean,\n    value: string\n  ): boolean {\n    return (\n      (inputConfig.placeholderText &&\n        (getSuperControl?.value || getSuperControl?.value === 0) &&\n        !isVisibleCommands &&\n        inputConfig?.commands?.type === InputCommandsType.INCREMENT_DECREMENT) ||\n      (inputConfig.placeholderText &&\n        (getSuperControl?.value || getSuperControl?.value === 0) &&\n        inputConfig?.commands?.type !== InputCommandsType.INCREMENT_DECREMENT)\n    );\n  }\n}\n","export class InputSvgRoutes {\n  static removeInputSvg: string =\n    'assets/ca-components/svg/input/ic_remove_input.svg';\n  static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n  static xClearCommonSvg: string = 'assets/ca-components/svg/common/ic_x.svg';\n  static confirmSvg: string = 'assets/ca-components/svg/input/ic_confirm.svg';\n  static dangerSvg: string = 'assets/ca-components/svg/input/ic_danger.svg';\n  static eyeVisibleSvg: string =\n    'assets/ca-components/svg/input/ic_eye-visible.svg';\n  static eyeHiddenSvg: string =\n    'assets/ca-components/svg/input/ic_eye-hidden.svg';\n  static decrementSvg: string =\n    'assets/ca-components/svg/input/ic_pm_decrement.svg';\n  static incrementSvg: string =\n    'assets/ca-components/svg/input/ic_pm_increment.svg';\n  static inputPenSvg: string =\n    'assets/ca-components/svg/input/ic_spec_input_pen.svg';\n  static inputDropdownArrowSvg: string =\n    'assets/ca-components/svg/input/ic_arrow_input.svg';\n  static dynamicLabelSvg: string =\n    'assets/ca-components/svg/input/ic_dynamic_label.svg';\n  static dynamicFocusLabelSvg: string =\n    'assets/ca-components/svg/input/ic_dynamic_focus_label.svg';\n  static ownerBadgeBlueSvg: string =\n    'assets/ca-components/svg/common/owner-badge-blue.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    AbstractControl,\n    FormsModule,\n    ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config';\nimport { LabelColor } from '../../models';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { InputClearClassPipe } from '../../pipes';\n\n// helpers\nimport { InputSvgRoutes } from '../../utils';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// enums\nimport { eGeneralActions } from '../../../../enums';\n\n@Component({\n    selector: 'app-ca-input-clear',\n    templateUrl: './ca-input-clear.component.html',\n    styleUrls: ['./ca-input-clear.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // Module\n        CommonModule,\n        AngularSvgIconModule,\n        FormsModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // Pipes\n        InputClearClassPipe,\n        // Components\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaInputClearComponent {\n    @Input() inputConfig!: ICaInput;\n    @Input() getSuperControl!: AbstractControl<any, any> | null;\n    @Input() isFocusInput!: boolean;\n    @Input() incorrectValue!: boolean;\n    @Input() selectedDropdownLabelColor!: LabelColor | null;\n    @Input() template!: string;\n\n    @Output() clearInputClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n    public eGeneralActions = eGeneralActions;\n\n    constructor() {}\n\n    public clearInput(event: Event): void {\n        this.clearInputClick.emit(event);\n    }\n\n    public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n        return InputSvgRoutes[propertyName] as string;\n    }\n}\n","<div\n    class=\"input-clear {{ inputConfig.customClass }}\"\n    [ngClass]=\"\n        getSuperControl\n            | inputClearClass\n                : isFocusInput\n                : inputConfig\n                : incorrectValue\n                : !!selectedDropdownLabelColor\n                : template\n                : getSuperControl?.value\n    \"\n    ngbTooltip\n    [mainCaTooltip]=\"\n        inputConfig.incorrectInput\n            ? 'Mark Incorrect'\n            : inputConfig.removeInput\n              ? eGeneralActions.REMOVE\n              : eGeneralActions.CLEAR\n    \"\n    [tooltipBackground]=\"inputConfig.incorrectInput ? '#ef5350' : '#2F2F2F'\"\n    position=\"top\"\n    (click)=\"clearInput($event)\"\n>\n    <svg-icon\n        [src]=\"\n            inputConfig.removeInput\n                ? getSvgPath('removeInputSvg')\n                : getSvgPath('xClearSvg')\n        \"\n        class=\"input-clear-x\"\n    ></svg-icon>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n// modules\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\n\n// models\nimport { ICaInput } from \"../../config\";\nimport { CommandClick } from \"../../models\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// enums\nimport { InputCommandsType } from \"../../enums\";\n\n\n@Component({\n    selector: \"app-ca-input-commands\",\n    templateUrl: \"./ca-input-commands.component.html\",\n    styleUrls: [\"./ca-input-commands.component.scss\"],\n    imports: [\n        // Module\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // Components\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaInputCommandsComponent {\n  @Input() inputConfig!: ICaInput;\n  @Input() isFocusInput!: boolean;\n  @Input() isVisibleCommands!: boolean;\n\n  @Output() onCommandsClick: EventEmitter<CommandClick> = new EventEmitter();\n\n  public inputCommandsType = InputCommandsType;\n\n  constructor() {}\n\n  public onCommands(event: Event, type: string, action: string): void {\n    this.onCommandsClick.emit({ event, type, action });\n  }\n}\n","<div\n    class=\"ta-input-commands\"\n    [ngClass]=\"{\n        'blue-commands': inputConfig.commands?.blueCommands,\n        'blue-commands-focus':\n            isFocusInput &&\n            inputConfig.commands?.blueCommands &&\n            inputConfig.commands?.active &&\n            isVisibleCommands,\n    }\"\n    [attr.data-before-content]=\"\n        inputConfig.commands?.type === inputCommandsType.INCREMENT_DECREMENT\n            ? inputConfig.placeholderText\n            : ''\n    \"\n>\n    <div\n        class=\"ta-input-command-first\"\n        ngbTooltip\n        [mainCaTooltip]=\"inputConfig.commands?.firstCommand?.popup?.name\"\n        [tooltipBackground]=\"\n            inputConfig.commands?.firstCommand?.popup?.backgroundColor\n        \"\n        [disableTooltip]=\"!inputConfig.commands?.firstCommand?.popup\"\n        position=\"top\"\n    >\n        <svg-icon\n            class=\"ta-input-command-svg-first\"\n            [src]=\"inputConfig.commands?.firstCommand?.svg!\"\n            (mousedown)=\"\n                onCommands(\n                    $event,\n                    inputConfig.commands?.type!,\n                    inputConfig.commands?.firstCommand?.name!\n                )\n            \"\n        ></svg-icon>\n    </div>\n    <div\n        class=\"ta-input-command-second\"\n        ngbTooltip\n        [mainCaTooltip]=\"inputConfig.commands?.secondCommand?.popup?.name\"\n        [tooltipBackground]=\"\n            inputConfig.commands?.secondCommand?.popup?.backgroundColor\n        \"\n        [disableTooltip]=\"!inputConfig.commands?.secondCommand?.popup\"\n        position=\"top\"\n    >\n        <svg-icon\n            class=\"ta-input-command-svg-second\"\n            [src]=\"inputConfig.commands?.secondCommand?.svg!\"\n            (mousedown)=\"\n                onCommands(\n                    $event,\n                    inputConfig.commands?.type!,\n                    inputConfig.commands?.secondCommand?.name!\n                )\n            \"\n        ></svg-icon>\n    </div>\n    @if (inputConfig.commands?.thirdCommand) {\n        <div\n            class=\"ta-input-command-third\"\n            ngbTooltip\n            [mainCaTooltip]=\"inputConfig.commands?.thirdCommand?.popup?.name\"\n            [tooltipBackground]=\"\n                inputConfig.commands?.thirdCommand?.popup?.backgroundColor\n            \"\n            [disableTooltip]=\"!inputConfig.commands?.thirdCommand?.popup\"\n            position=\"top\"\n        >\n            <svg-icon\n                class=\"ta-input-command-svg-third\"\n                [src]=\"inputConfig.commands?.thirdCommand?.svg!\"\n                (mousedown)=\"\n                    onCommands(\n                        $event,\n                        inputConfig.commands?.type!,\n                        inputConfig.commands?.thirdCommand?.name!\n                    )\n                \"\n            ></svg-icon>\n        </div>\n    }\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AbstractControl } from \"@angular/forms\";\n\n// helpers\nimport { InputSvgRoutes } from \"../../utils\";\n\n// models\nimport { ICaInput } from \"../../config\";\n\n// modules\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// pipes\nimport { InputPasswordEyeClassPipe } from \"../../pipes\";\n\n@Component({\n    selector: \"app-ca-input-password\",\n    templateUrl: \"./ca-input-password.component.html\",\n    styleUrls: [\"./ca-input-password.component.scss\"],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        InputPasswordEyeClassPipe,\n    ]\n})\nexport class CaInputPasswordComponent implements OnInit {\n  @Input() inputConfig!: ICaInput;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() isFocusInput!: boolean;\n  @Input() isTouchedInput!: boolean;\n  @Input() isCapsLockOn!: boolean;\n  @Input() isTogglePassword!: boolean;\n\n  @Output() onTogglePasswordClick: EventEmitter<Event> =\n    new EventEmitter<Event>();\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  public onTogglePassword(event: Event): void {\n    this.onTogglePasswordClick.emit(event);\n  }\n\n  public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n    return InputSvgRoutes[propertyName] as string;\n  }\n}\n","<!-- Input Password Caps Lock -->\n@if (\n    isCapsLockOn &&\n    inputConfig.type === 'password' &&\n    isFocusInput &&\n    !inputConfig.isDisabled\n) {\n    <p class=\"password-capslock\">Caps Lock is ON</p>\n}\n<!-- Input Password Eye -->\n@if (inputConfig.type === 'password' && getSuperControl?.value) {\n    <div\n        class=\"input-password-eye {{ inputConfig.customClass }}\"\n        [ngClass]=\"\n            getSuperControl\n                | inputPasswordEyeClass\n                    : isFocusInput\n                    : inputConfig\n                    : isTouchedInput\n                    : getSuperControl?.value\n        \"\n        ngbTooltip\n        mainCaTooltip=\"{{\n            !isTogglePassword ? 'Show Password' : 'Hide Password'\n        }}\"\n        tooltipBackground=\"#2f2f2f\"\n        position=\"top\"\n        (click)=\"onTogglePassword($event)\"\n    >\n        <svg-icon\n            src=\"{{\n                !isTogglePassword\n                    ? getSvgPath('eyeVisibleSvg')\n                    : getSvgPath('eyeHiddenSvg')\n            }}\"\n        ></svg-icon>\n    </div>\n}\n","import {\n  Directive,\n  ElementRef,\n  HostListener,\n  Input,\n  Renderer2,\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[appHoverSvg]\",\n  standalone: true,\n})\nexport class HoverSvgDirective {\n  @Input() set fill(value: string | null | undefined) {\n    if (value) {\n      this._fill = value;\n\n      this.renderer2.setStyle(this.elRef.nativeElement, \"fill\", this._fill);\n    }\n  }\n\n  @Input() set fillHover(value: string | null | undefined) {\n    if (value) {\n      this._fillHover = value;\n    }\n  }\n\n  public _fill: string = \"\";\n  public _fillHover: string = \"\";\n\n  constructor(\n    private elRef: ElementRef,\n    private renderer2: Renderer2\n  ) {}\n\n  @HostListener(\"mouseover\")\n  onMouseOver() {\n    this.renderer2.setStyle(\n      this.elRef.nativeElement,\n      \"fill\",\n      this._fillHover ? this._fillHover : this._fill\n    );\n  }\n\n  @HostListener(\"mouseleave\")\n  onMouseLeave() {\n    this.renderer2.setStyle(this.elRef.nativeElement, \"fill\", this._fill);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { InputPlaceholderIconClassPipe } from '../../pipes';\n\n// directive\nimport { HoverSvgDirective } from '../../../../directives/hover-svg-directives';\n\n@Component({\n    selector: 'app-ca-input-placeholder-icon',\n    templateUrl: './ca-input-placeholder-icon.component.html',\n    styleUrls: ['./ca-input-placeholder-icon.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        InputPlaceholderIconClassPipe,\n        CaSvgPipe,\n        // directive\n        HoverSvgDirective,\n    ]\n})\nexport class CaInputPlaceholderIconComponent {\n  @Input() inputConfig!: ICaInput;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() isFocusInput!: boolean;\n  @Input() isTouchedInput!: boolean;\n  @Input() selectedDropdownLabelColor!: LabelColor | null;\n  @Input() isEditInput!: boolean;\n  @Input() dateTimePopover!: TemplateRef<any>;\n\n  @Output() onPopoverShownEmitter = new EventEmitter<boolean>();\n  @Output() onPopoverHiddenEmitter = new EventEmitter<boolean>();\n  @Output() onPlaceholderIconEventEmitter = new EventEmitter<Event>();\n\n  @ViewChild('t2') t2!: NgbPopover;\n  @ViewChild(NgbPopover) ngbMainPopover!: NgbPopover;\n\n  constructor() {}\n\n  public onPopoverShown(): void {\n    this.onPopoverShownEmitter.emit(true);\n  }\n\n  public onPopoverHidden(): void {\n    this.onPopoverHiddenEmitter.emit(true);\n  }\n\n  public onPlaceholderIconEvent(event: Event): void {\n    this.onPlaceholderIconEventEmitter.emit(event);\n  }\n}\n","<div\n  #t2=\"ngbPopover\"\n  [ngbPopover]=\"dateTimePopover\"\n  [disablePopover]=\"\n    (inputConfig.name !== 'datepicker' &&\n      inputConfig.name !== 'timepicker' &&\n      inputConfig.name !== 'datepickerBankCard') ||\n    inputConfig.isDisabled!\n  \"\n  [placement]=\"['left', 'left-top']\"\n  [popoverClass]=\"'datetimepopovermain'\"\n  autoClose=\"outside\" \n  [container]=\"'body'\"\n  class=\"input-icon {{ inputConfig.customClass }}\"\n  [ngClass]=\"\n    getSuperControl\n      | inputPlaceholderIconClass\n        : isFocusInput\n        : inputConfig\n        : selectedDropdownLabelColor\n        : isTouchedInput\n        : isEditInput\n        : getSuperControl?.value\n  \"\n  ngbTooltip\n  [mainCaTooltip]=\"'Change Color'\"\n  [tooltipBackground]=\"'#424242'\"\n  [disableTooltip]=\"!isEditInput\"\n  position=\"bottom\"\n  (shown)=\"onPopoverShown()\"\n  (hidden)=\"onPopoverHidden()\"\n  (click)=\"onPlaceholderIconEvent($event)\"\n  [ngStyle]=\"{ opacity: inputConfig.isIconHidden ? '0' : {} }\"\n>\n  <svg-icon\n    appHoverSvg\n    [stretch]=\"true\"\n    [fill]=\"\n      inputConfig.dropdownLabel || selectedDropdownLabelColor\n        ? selectedDropdownLabelColor?.code || '#b7b7b7'\n        : null\n    \"\n    [fillHover]=\"\n      (inputConfig.dropdownLabel || selectedDropdownLabelColor) && isEditInput\n        ? selectedDropdownLabelColor?.hoverCode || null\n        : null\n    \"\n    [src]=\"(inputConfig.placeholderIcon! | caSvg : 'input') ?? ''\"\n  ></svg-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n// Pipes\nimport { NFormatterPipe } from '../../pipes/n-formatter.pipe';\n\n@Component({\n    selector: 'ca-load-modal-progress-bar',\n    templateUrl: './ca-load-modal-progress-bar.component.html',\n    styleUrls: ['./ca-load-modal-progress-bar.component.scss'],\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        // Pipes\n        NFormatterPipe,\n    ]\n})\nexport class CaLoadModalProgressBarComponent implements OnChanges {\n  @Input() totalAmount!: number | string;\n  @Input() availableCredit!: number | string;\n  @Input() inputFocus!: boolean;\n  @Input() disable!: boolean;\n\n  public status!: { status: string; colorFilled: string } | null;\n  public activePercentageOfPaid: number = 0;\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.onAvailableCreditChange(changes);\n  }\n\n  public onAvailableCreditChange(changes: SimpleChanges) {\n    if (\n      changes['availableCredit'].previousValue !==\n      changes['availableCredit'].currentValue\n    )\n      this.calculateCurrencyPercentage();\n  }\n\n  private calculateCurrencyPercentage(): void {\n    if (this.availableCredit === 0) {\n      this.activePercentageOfPaid = 100;\n      this.status = {\n        status: this.disable ? 'disable' : 'low',\n        colorFilled: this.disable ? 'transparent' : '#E57373',\n      };\n      return;\n    } else {\n      this.activePercentageOfPaid =\n        (+this.availableCredit / +this.totalAmount) * 100;\n    }\n\n    if (this.activePercentageOfPaid >= 0 && this.activePercentageOfPaid < 30) {\n      this.status = {\n        status: this.disable ? 'disable' : 'low',\n        colorFilled: this.disable ? 'transparent' : '#E57373',\n      };\n    } else if (\n      this.activePercentageOfPaid > 30 &&\n      this.activePercentageOfPaid < 60\n    ) {\n      this.status = {\n        status: this.disable ? 'disable' : 'medium',\n        colorFilled: this.disable ? 'transparent' : '#FFB74D',\n      };\n    } else if (\n      this.activePercentageOfPaid > 60 &&\n      this.activePercentageOfPaid <= 100\n    ) {\n      this.status = {\n        status: this.disable ? 'disable' : 'high',\n        colorFilled: this.disable ? 'transparent' : '#4DB6A2',\n      };\n    } else {\n      this.status = null;\n    }\n  }\n}\n","<div class=\"load-progress-bar-container\">\n  <div class=\"progress-bar-price\" [ngClass]=\"{ focus: inputFocus }\">\n    {{ availableCredit |  nFormatter }}\n  </div>\n  <div class=\"progress-bar-line {{ status?.status }}\">\n    <div\n      [ngStyle]=\"{\n        width: activePercentageOfPaid + '%',\n        height: '100%',\n        'background-color': status?.colorFilled\n      }\"\n    ></div>\n  </div>\n</div>\n","import { distinctUntilChanged } from \"rxjs/operators\";\nimport { Subject } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\n\n// models\nimport { ScrollChange } from \"../models/scroll-change.model\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class CalendarDateTimePickerService {\n  public index$ = new Subject<ScrollChange>();\n  public indexAuto$ = new Subject<number>();\n  public scrollToDate = new Subject<string>();\n  public dateChanged = new Subject<any>();\n  public selectedIndex = 0;\n  scrolledIndexChange = this.index$.pipe(distinctUntilChanged());\n  scrollToAutoIndex = this.indexAuto$.pipe(distinctUntilChanged());\n  private scrolledScroll!: string;\n\n  constructor() {}\n\n  public set setAutoIndex(number: number) {\n    this.selectedIndex = number;\n    this.indexAuto$.next(number);\n  }\n\n  public set scrolledScrollItem(name: string) {\n    this.scrolledScroll = name;\n  }\n\n  public get selectedScroll() {\n    return this.scrolledScroll;\n  }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { ThousandSeparatorPipe } from '../../../pipes/thousand-separator.pipe';\n\n@Directive({\n  selector: '[appMinMaxValue]',\n  standalone: true,\n})\nexport class MinMaxValueDirective {\n  @Input() minValue!: number;\n  @Input() maxValue!: number;\n\n  constructor(\n    private el: ElementRef,\n    private thousandSeparatorPipe: ThousandSeparatorPipe\n  ) {}\n\n  @HostListener('document:keypress', ['$event'])\n  onKeyPress(event: KeyboardEvent) {\n    const oldValue = this.el.nativeElement.value as string;\n    const newKey = event.key;\n    const currentPosition = this.el.nativeElement.selectionStart;\n\n    const newValue =\n      oldValue.slice(0, currentPosition) +\n      newKey +\n      oldValue.slice(currentPosition);\n    const currentValue = parseFloat(newValue.replace(',', ''));\n\n    if (currentValue < this.minValue) event.preventDefault();\n    if (currentValue > this.maxValue) {\n      event.preventDefault();\n      this.el.nativeElement.value = this.thousandSeparatorPipe.transform(\n        this.maxValue\n      );\n    }\n  }\n}\n","import {\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Output,\n} from '@angular/core';\n\n@Directive({\n    selector: '[appCapsLock]',\n    standalone: true,\n})\nexport class CapsLockDirective {\n    @Output() capsLockStatus = new EventEmitter<boolean>(); // ✅ Emit true/false\n\n    private capsLockDetected = false;\n\n    constructor(private el: ElementRef) {}\n\n    @HostListener('keydown', ['$event'])\n    onKeyDown(event: KeyboardEvent) {\n        const capsLockOn = event.getModifierState?.('CapsLock');\n        this.capsLockStatus.emit(capsLockOn); // Emit true when Caps Lock is ON\n        this.capsLockDetected = capsLockOn;\n    }\n\n    @HostListener('keyup', ['$event'])\n    onKeyUP(event: KeyboardEvent) {\n        const capsLockOn = event.getModifierState?.('CapsLock');\n        this.capsLockStatus.emit(capsLockOn); // Emit true when Caps Lock is ON\n        this.capsLockDetected = capsLockOn;\n    }\n\n    @HostListener('focus')\n    onFocus() {\n        // Simulate a key press to check if Caps Lock is on\n        this.capsLockStatus.emit(this.capsLockDetected);\n    }\n\n    @HostListener('blur')\n    onBlur() {\n        this.capsLockStatus.emit(false); // Hide message when input loses focus\n    }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n    selector: '[appMaxValue]',\n    standalone: true,\n})\nexport class MaxValueDirective {\n    @Input() appMaxValue?: number; // Max allowed value\n\n    constructor(private el: ElementRef) {}\n\n    @HostListener('applyMaxValueDirective', ['$event'])\n    onInput(event: Event): void {\n        if (!this.appMaxValue) return;\n\n        const input = event.target as HTMLInputElement;\n        let value = input.value;\n\n        // Remove thousands separators (`,`) before parsing\n        let numericValue = parseFloat(value.replace(/,/g, ''));\n\n        //If value exceeds the max, revert to max value\n        if (!isNaN(numericValue) && numericValue > this.appMaxValue!) {\n            input.value = this.formatNumber(this.appMaxValue!);\n            event.preventDefault();\n        }\n    }\n\n    @HostListener('blur', ['$event'])\n    onBlur(event: Event): void {\n        const input = event.target as HTMLInputElement;\n        let numericValue = parseFloat(input.value.replace(/,/g, ''));\n\n        const dotIndex = input.value.indexOf('.');\n\n        if (!isNaN(numericValue) && dotIndex > 0) {\n            input.value = this.formatNumber(numericValue); // Format correctly on blur\n        }\n    }\n\n    // Helper function to format number with thousands separator\n    private formatNumber(value: number): string {\n        return value.toLocaleString('en-US', {\n            minimumFractionDigits: 2,\n            maximumFractionDigits: 2,\n        });\n    }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n    selector: '[priceFormat]',\n    standalone: true,\n})\nexport class PriceFormatDirective {\n    constructor(private el: ElementRef) {}\n    @Input() priceSeparator?: boolean = false; // Default is false\n\n    @HostListener('input', ['$event'])\n    onInput(event: Event): void {\n        if (!this.priceSeparator) return; // Skip if disabled\n\n        let input = this.el.nativeElement;\n        let value = input.value;\n\n        // Allow only numbers and one dot (.)\n        value = value.replace(/[^0-9.]/g, '');\n\n        const [integerPart, decimalPart] = value.split('.');\n\n        // Ensure decimal part is limited to two places\n        if (decimalPart && decimalPart.length > 2) {\n            value = integerPart + '.' + decimalPart.substring(0, 2);\n        }\n\n        // Apply thousands separator formatting\n        input.value = this.formatWithCommas(value);\n    }\n\n    private formatWithCommas(value: string): string {\n        return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // Format whole number\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\n\n@Pipe({\n    name: 'inputPattern',\n    standalone: true,\n})\nexport class InputPatternPipe implements PipeTransform {\n    transform(inputName: string, inputConfig: ICaInput) {\n        if (inputConfig.priceSeparator) {\n            return {\n                regex: /^[0-9.]*$/,\n                restrictMultipeDots: true,\n                isDecimalAndDotOnly: true,\n            };\n        } else if (inputConfig.thousandSeparator) {\n            return {\n                regex: /^[0-9]*$/,\n                isDecimalAndDotOnly: true,\n            };\n        } else if (\n            ['business name', 'shop name', 'fuel stop'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./[:;=<>?çéâêîôûàèìòùëïü\\s-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n        } else if (['phone', 'fax'].includes(inputName)) {\n            return {\n                regex: /^[0-9() -]*$/g,\n            };\n        } else if (\n            [\n                'mc/ff',\n                'phone-extension',\n                'account-bank',\n                'routing-bank',\n                'fuel-card',\n                'empty-weight',\n                'credit limit',\n                'po box',\n                'price',\n                'trailer-volume',\n                'repair-odometer',\n                'usdot',\n                'irp',\n                'starting',\n                'customer pay term',\n                'customer credit',\n                'default base',\n                'each occurrence',\n                'damage',\n                'personal-adver-inj',\n                'medical expenses',\n                'bodily injury',\n                'general aggregate',\n                'products-comp-op-agg',\n                'combined-single-limit',\n                'single-conveyance',\n                'deductable',\n                'compreh-collision',\n                'trailer-value-insurance-policy',\n                'rent',\n                'salary',\n                'mileage',\n                'months',\n                'empty weight',\n                'qty',\n                'purchase price',\n            ].includes(inputName)\n        ) {\n            return {\n                regex: /^[0-9]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/g;\n        } else if ('email' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~@.-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: true,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~@.-]*$/g;\n        } else if ('invoice' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9/-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9/-]*$/g;\n        } else if (\n            ['address-unit', 'department', 'vehicle-unit'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9]*$/;\n        } else if ('first name' === inputName) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('last name' === inputName) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('bank name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./:;=<>?-^[]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?-^[]*$/;\n        } else if (\n            ['vin-number', 'insurance-policy', 'ifta'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-]*$/;\n        } else if ('truck-trailer-model' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s-]*$/;\n        } else if ('year' === inputName) {\n            return {\n                regex: /^(|0|[1-9]\\d*)$/,\n            };\n            //return /^[0-9]$/;\n        } else if ('license plate' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s]*$/;\n        } else if ('description' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9-.,/\\s]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-.,/\\s]*$/;\n        } else if ('dba name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./:;=<>?^[-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?^[-]*$/;\n        } else if ('per mile' === inputName) {\n            return {\n                regex: /^[0-9.]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9.]*$/;\n        } else if ('per stop' === inputName) {\n            return {\n                regex: /^[0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/;\n        } else if (\n            ['emergency name', 'relationship', 'scac'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('fuel store' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-]*$/;\n        } else if ('hos' === inputName) {\n            return {\n                regex: /^[0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/;\n        } else if (['full parking slot', 'parking slot'].includes(inputName)) {\n            return {\n                regex: /^[0-9,-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9,-]*$/;\n        } else if ('cdl-number' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s*-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s*-]*$/;\n        } else if (\n            ['username', 'nickname', 'terminal name', 'password'].includes(\n                inputName\n            )\n        ) {\n            return {\n                regex: /^[A-Za-z0-9.,_!#^~[?/<`@$%*+=}{|:\";>&'()-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9.,_!#^~[?/<`@$%*+=}{|:\";>&'()-]*$/;\n        } else if ('full name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9.,/!@#$%^&*()_+={}\"':>?<;\\s-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9.,/!@#$%^&*()_+={}\"':>?<;\\s-]*$/;\n        } else if ('tollvalidation' === inputName) {\n            return {\n                regex: /^[0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9-]*$/;\n        } else if (['prefix', 'suffix', 'parking name'].includes(inputName)) {\n            return {\n                regex: /^[A-Za-z0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9]*$/;\n        } else if ('file name' === inputName) {\n            return {\n                regex: /^[:*?\"<>|/]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[:*?\"<>|/]*$/;\n        } else if (\n            ['producer name', 'insurer name', 'office name'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./;:=<>?[^-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./;:=<>?[^-]*$/;\n        } else if (['full contact name'].includes(inputName)) {\n            return {\n                regex: /^[A-Za-z\\s]+$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z\\s]+$/;\n        }\n\n        return {\n            regex: /.*/,\n            restrictConsecutiveSpaces: false,\n            restrictConsecutiveDots: false,\n            restrictMultipeDots: false,\n            isDecimalAndDotOnly: false,\n        };\n    }\n}\n","export enum InputTransformStringEnum {\n    CAPITALIZE = 'capitalize',\n    UPPERCASE = 'uppercase',\n    CAPITALIZED_CASE = 'capitalizedcase',\n    LOWERCASE = 'lowercase'\n};","import { Constructor } from '../../../models/mixin.model';\nimport { ICaInput } from '../config/ca-input.config';\nimport { InputTransformStringEnum } from '../enums/input-text-transform.enum';\n\nexport function RestrictionPipeMixin<\n    T extends Constructor<{ restrictInput: ICaInput }>,\n>(Base: T) {\n    return class extends Base {\n        public checkRangeRegex(value: string): boolean {\n            if (\n                (!this.restrictInput.minValue &&\n                    !this.restrictInput.maxValue) ||\n                !value\n            ) {\n                return true; // ✅ No limits, always valid\n            }\n\n            const min = this.restrictInput.minValue ?? -Infinity;\n            const max = this.restrictInput.maxValue ?? Infinity;\n\n            // ✅ Ensure the value is a valid number\n\n            const tempValue = value.replace(/[^0-9]/g, '');\n\n            const numericValue = Number(tempValue);\n\n            // ✅ Check if value is within the valid range\n            return numericValue >= min && numericValue <= max;\n        }\n\n        public getTextTransformation(\n            value: string,\n            textTransform: InputTransformStringEnum | undefined\n        ): string | undefined {\n            switch (textTransform) {\n                case InputTransformStringEnum.CAPITALIZE:\n                    return (\n                        value.charAt(0).toUpperCase() +\n                        value.substring(1).toLowerCase()\n                    );\n                case InputTransformStringEnum.UPPERCASE:\n                    return value.toLocaleUpperCase('en-US');\n                case InputTransformStringEnum.CAPITALIZED_CASE:\n                    const capitalizedCaseWords = value.replace(\n                        /(^\\w{1})|(\\s+\\w{1})/g,\n                        (letter: string) => letter.toUpperCase()\n                    );\n                    return capitalizedCaseWords;\n                default:\n                    return value;\n            }\n        }\n    };\n}\n","import {\n    Directive,\n    ElementRef,\n    HostListener,\n    Injector,\n    Input,\n} from '@angular/core';\nimport { InputPatternPipe } from '../pipes/input-pattern.pipe';\nimport { ICaInput } from '../config';\nimport { InputTransformStringEnum } from '../enums/input-text-transform.enum';\nimport { RestrictionPipeMixin } from '../mixins/restriction-pipe.mixin';\n\n@Directive({\n    selector: '[restrictInput]',\n    standalone: true,\n    providers: [InputPatternPipe], // Provide the pipe so it can be injected\n})\nexport class RestrictInputDirective extends RestrictionPipeMixin(\n    class {\n        restrictInput!: ICaInput;\n    }\n) {\n    @Input() override restrictInput!: ICaInput;\n    private inputPatternPipe!: InputPatternPipe;\n\n    private lastValidInputValue: string = '';\n\n    constructor(\n        private el: ElementRef,\n        private injector: Injector\n    ) {\n        super();\n        this.inputPatternPipe = this.injector.get(InputPatternPipe); // Inject pipe manually\n    }\n\n    @HostListener('input', ['$event'])\n    onInput(event: InputEvent): void {\n        let inputValue = this.el.nativeElement.value;\n\n        const maxLength = this.restrictInput.maxLength;\n        const configName = this.restrictInput.name.toLowerCase();\n        const {\n            regex,\n            restrictConsecutiveDots,\n            restrictMultipeDots,\n            restrictConsecutiveSpaces,\n            isDecimalAndDotOnly,\n        } = this.inputPatternPipe.transform(configName, this.restrictInput);\n\n        // Prevent first space character\n        if (inputValue.startsWith(' ')) {\n            inputValue = inputValue.trimStart(); // Remove leading space\n        }\n\n        // Allow dots but dont allow on first place...\n        const dotIndex = inputValue.indexOf('.');\n        if (dotIndex == 0) {\n            if (this.restrictInput.priceSeparator) {\n                inputValue = `0${inputValue}`;\n            } else inputValue = '';\n        }\n\n        const inputValueToTestWithRegex = isDecimalAndDotOnly\n            ? inputValue.replace(/[^0-9.]/g, '')\n            : inputValue;\n\n\n            \n\n        if (regex.test(inputValueToTestWithRegex)) {\n            if (maxLength) {\n                // Allow only numbers and one dot (.)\n                const tempLengthValue = isDecimalAndDotOnly\n                    ? inputValue.replace(/[^0-9.]/g, '')\n                    : inputValue;\n\n                const [integerPart, decimalPart] = tempLengthValue.split('.');\n\n                // Ensure integer part respects maxLength (excluding thousand separators)\n                if (integerPart.length > maxLength!) {\n                    inputValue =\n                        integerPart.substring(0, maxLength) +\n                        (decimalPart ? '.' + decimalPart : '');\n                }\n            }\n\n            if (restrictConsecutiveSpaces) {\n                inputValue = inputValue.replace(/\\s{2,}/g, ' '); // Replace consecutive spaces with a single space\n            }\n\n            if (restrictConsecutiveDots) {\n                inputValue = inputValue.replace(/\\.{2,}/g, '.'); // Replace consecutive dots with a single dot\n            }\n\n            if (restrictMultipeDots) {\n                inputValue = inputValue.replace(\n                    /^([^.]*)\\.(.*)$/,\n                    (m: any, p1: any, p2: any) =>\n                        p1 + '.' + p2.replace(/\\./g, '')\n                );\n            }\n\n            this.el.nativeElement.value = inputValue;\n\n            // 🔥 Manually trigger max Directive because current one needs to be done first\n            this.el.nativeElement.dispatchEvent(\n                new Event('applyMaxValueDirective')\n            );\n\n            const transformText = this.getTextTransformation(\n                inputValue,\n                this.restrictInput?.textTransform as InputTransformStringEnum\n            );\n\n            if (transformText) this.el.nativeElement.value = transformText;\n\n            if (!this.checkRangeRegex(this.el.nativeElement.value)) {\n                // If entered is not passing regEx then the input value will be last saved...\n                this.el.nativeElement.value = this.lastValidInputValue;\n            } else {\n                // Save last valid value\n                this.lastValidInputValue = inputValue;\n            }\n        } else {\n            // If entered is not passing regEx then the input value will be last saved...\n            this.el.nativeElement.value = this.lastValidInputValue;\n        }\n    }\n}\n","import { InputStringEnum } from '../../enums';\n\nexport class InputConstants {\n  public static readonly textTransformConfigNames = [\n    'business name',\n    'shop name',\n    'fuel stop',\n    'producer name',\n    'terminal name',\n    'address',\n    'license plate',\n    'description',\n    'emergency name',\n    'cdl-number',\n    'full name',\n    'file name',\n    'input dropdown label',\n  ];\n\n  public static readonly businessNamesArray = [\n    InputStringEnum.BUSINESS_NAME,\n    InputStringEnum.SHOP_NAME,\n    InputStringEnum.FUEL_STOP,\n    InputStringEnum.PRODUCER_NAME,\n    InputStringEnum.TERMINAL_NAME,\n  ];\n\n  public static readonly producerNameArray = [\n    InputStringEnum.INSURER_NAME,\n    InputStringEnum.OFFICE_NAME,\n  ];\n\n  public static readonly emergencyNameArray = [\n    InputStringEnum.RELATIONSHIP,\n    InputStringEnum.SCAC,\n  ];\n\n  public static readonly parkingSlotArray = [\n    InputStringEnum.RELATIONSHIP,\n    InputStringEnum.SCAC,\n  ];\n\n  public static readonly addressUnitArray = [\n    InputStringEnum.ADDRESS_UNIT,\n    InputStringEnum.DEPARTMENT,\n    InputStringEnum.VEHICLE_UNIT,\n  ];\n\n  public static readonly prefixArray = [\n    InputStringEnum.ADDRESS_UNIT,\n    InputStringEnum.DEPARTMENT,\n    InputStringEnum.VEHICLE_UNIT,\n  ];\n\n  public static readonly usernameArray = [\n    InputStringEnum.USERNAME,\n    InputStringEnum.NICKNAME,\n    InputStringEnum.PASSWORD,\n  ];\n\n  public static readonly perStopArray = [\n    InputStringEnum.ADDRESS_UNIT,\n    InputStringEnum.DEPARTMENT,\n    InputStringEnum.VEHICLE_UNIT,\n  ];\n\n  public static readonly vinNumberArray = [\n    InputStringEnum.VIN_NUMBER,\n    InputStringEnum.INSURANCE_POLICY,\n    InputStringEnum.IFTA,\n  ];\n\n  public static readonly qtyArray = [\n    InputStringEnum.EIN,\n    InputStringEnum.MC_FF,\n    InputStringEnum.PHONE,\n    InputStringEnum.PHONE_EXTENSION,\n    InputStringEnum.ACCOUNT_BANK,\n    InputStringEnum.ROUTING_BANK,\n    InputStringEnum.SSN,\n    InputStringEnum.FUEL_CARD,\n    InputStringEnum.EMPTY_WEIGHT,\n    InputStringEnum.CREDIT_LIMIT,\n    InputStringEnum.PO_BOX,\n    InputStringEnum.PRICE,\n    InputStringEnum.TRAILER_VOLUME,\n    InputStringEnum.REPAIR_ODOMETER,\n    InputStringEnum.USDOT,\n    InputStringEnum.IRP,\n    InputStringEnum.STARTING,\n    InputStringEnum.CUSTOMER_PAY_TERM,\n    InputStringEnum.CUSTOMER_CREDIT,\n    InputStringEnum.DEFAULT_BASE,\n    InputStringEnum.EACH_OCCURRENCE,\n    InputStringEnum.DAMAGE,\n    InputStringEnum.PERSONAL_ADVER_INJ,\n    InputStringEnum.MEDICAL_EXPENSES,\n    InputStringEnum.BODILY_INJURY,\n    InputStringEnum.GENERAL_AGGREGATE,\n    InputStringEnum.PRODUCTS_COMP_OP_AGG,\n    InputStringEnum.COMBINED_SINGLE_LIMIT,\n    InputStringEnum.SINGLE_CONVEYANCE,\n    InputStringEnum.DEDUCTABLE,\n    InputStringEnum.COMPREH_COLLISION,\n    InputStringEnum.TRAILER_VALUE_INSURANCE_POLICY,\n    InputStringEnum.RENT,\n    InputStringEnum.SALARY,\n    InputStringEnum.MILEAGE,\n    InputStringEnum.MONTHS,\n    InputStringEnum.EMPTY_WEIGHT_SPACE,\n    InputStringEnum.QTY,\n    InputStringEnum.PURCHASE_PRICE,\n    InputStringEnum.FUEL_TANK_SIZE,\n    InputStringEnum.WEIGHT,\n    InputStringEnum.FUEL_PER_MILES,\n    InputStringEnum.FUEL_PRICE_MAP,\n    InputStringEnum.AMOUNT,\n    InputStringEnum.BOL_NO,\n    InputStringEnum.SEAL_NO,\n    InputStringEnum.PICKUP_NO,\n    InputStringEnum.CODE,\n    InputStringEnum.MULTI_FROM_FIRST_FROM,\n    InputStringEnum.MULTI_FROM_FIRST_TO,\n    InputStringEnum.MULTI_FORM_SECOND_FROM,\n    InputStringEnum.MULTI_FORM_SECOND_TO,\n    InputStringEnum.MULTI_FORM_THIRD_FROM,\n    InputStringEnum.MULTI_FORM_THIRD_TO,\n  ];\n}\n","import { ChangeDetectorRef, ElementRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { InputCommandsAction, InputStringEnum } from '../enums';\nimport { ICaInput } from '../config';\nimport { MethodsCalculationsHelper } from '../../../utils/helpers/methods-calculations.helper';\n\nexport abstract class CaInputBaseHelpersComponent {\n    abstract input: ElementRef;\n\n    abstract lastCursorSpacePosition: number;\n    abstract superControl: NgControl;\n    abstract _inputConfig: ICaInput;\n\n    abstract cdRef: ChangeDetectorRef;\n\n    // Number of points\n    public numberOfConsecutivelyPoints: number = 0;\n    public numberOfPoints: number = 0;\n    public oneSpaceOnlyCounter: number = 0;\n\n    public inputCommandsTimeout!: ReturnType<typeof setTimeout> | number;\n\n    // #region DisableConsecutivelySpaces\n    public disableConsecutivelySpaces(event: any) {\n        const inputElement = this.input.nativeElement as HTMLInputElement;\n\n        // Get cursor position\n        const cursorPosition = inputElement.selectionStart as number;\n\n        // If the cursor is in the middle of a word, allow spaces\n        if (\n            cursorPosition > 0 &&\n            !/\\s/.test(inputElement.value[cursorPosition - 1]) &&\n            !/\\s/.test(inputElement.value[cursorPosition])\n        ) {\n            return;\n        }\n\n        // If the user is typing a space and the previous character is a space, prevent the default behavior\n        if (\n            event.key === ' ' &&\n            /\\s/.test(inputElement.value[cursorPosition - 1])\n        ) {\n            event.preventDefault();\n        }\n\n        // Save the cursor position for the next input event\n        this.lastCursorSpacePosition = cursorPosition;\n    }\n\n    // #endregion\n\n    // #region DisableConsecutivelyPoints\n\n    public disableConsecutivelyPoints(event: KeyboardEvent): void | boolean {\n        if (/^[.]*$/.test(String.fromCharCode(event.charCode))) {\n            this.numberOfConsecutivelyPoints++;\n            if (this.numberOfConsecutivelyPoints > 1) {\n                event.preventDefault();\n                return false;\n            }\n        } else {\n            this.numberOfConsecutivelyPoints = 0;\n        }\n    }\n\n    // #endregion\n\n    // #region DisableMultiplePoints\n\n    public disableMultiplePoints(event: KeyboardEvent): void | boolean {\n        if (/^[.]*$/.test(String.fromCharCode(event.charCode))) {\n            if (!this.superControl.control?.value) {\n                event.preventDefault();\n                return false;\n            }\n\n            if (this.superControl.control?.value?.toString().includes('.')) {\n                event.preventDefault();\n                return false;\n            }\n\n            this.numberOfPoints++;\n            if (this.numberOfPoints > 1) {\n                event.preventDefault();\n                return false;\n            }\n        } else {\n            this.numberOfPoints = 0;\n        }\n    }\n\n    // endregion\n\n    // #region EnableOneSpaceOnly\n    public enableOneSpaceOnly(event: any) {\n        if (\n            /^\\s*$/.test(String.fromCharCode(event.charCode)) ||\n            this.superControl.control?.value?.includes(' ')\n        ) {\n            this.oneSpaceOnlyCounter++;\n        }\n\n        if (\n            this.oneSpaceOnlyCounter > 1 &&\n            /^\\s*$/.test(String.fromCharCode(event.charCode))\n        ) {\n            event.preventDefault();\n            return false;\n        }\n\n        return true;\n    }\n\n    // #endregion\n\n    // #region HandlePmIncrementDecrement\n    public handlePmIncrementDecrement(action: string): void {\n        const value = MethodsCalculationsHelper.convertThousanSepInNumber(\n            this.superControl.control?.value\n        );\n\n        switch (action) {\n            case InputCommandsAction.DECREMENT:\n                this.decrementPmValue(value);\n                break;\n            case InputCommandsAction.INCREMENT:\n                this.incrementPmValue(value);\n                break;\n            case InputCommandsAction.RESET:\n                this.resetPmValue();\n                break;\n            default:\n                break;\n        }\n\n        this.setInputCursorAtTheEnd(this.input.nativeElement);\n    }\n\n    // #endregion\n\n    // #region DecrementPmValue\n    private decrementPmValue(value: number): void {\n        if (value >= 10000 && value < 20000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value - 1000\n                )\n            );\n        } else if (value >= 20001 && value < 50000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value - 3000\n                )\n            );\n        } else if (value >= 50001 && value < 100000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value - 5000\n                )\n            );\n        } else if (value >= 10000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value - 10000\n                )\n            );\n        } else if (value >= 1000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value - 500\n                )\n            );\n        }\n    }\n    // #endregion\n\n    // #region ResetPmValue\n    private resetPmValue(): void {\n        if (this._inputConfig?.defaultValue) {\n            this.superControl.control?.patchValue(\n                this._inputConfig?.defaultValue\n            );\n        }\n    }\n\n    // #endregion\n\n    // #region ResetPmValue\n    private incrementPmValue(value: number): void {\n        if (value > 10000 && value < 20000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value + 1000\n                )\n            );\n        } else if (value >= 20001 && value < 50000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value + 3000\n                )\n            );\n        } else if (value >= 50001 && value < 100000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value + 5000\n                )\n            );\n        } else if (value >= 10000) {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value + 10000\n                )\n            );\n        } else {\n            this.superControl.control?.patchValue(\n                MethodsCalculationsHelper.convertNumberInThousandSep(\n                    value + 500\n                )\n            );\n        }\n    }\n    // #endregion\n\n    // #region SetInputCursorAtTheEnd\n    public setInputCursorAtTheEnd(input: any, time: number = 120): void {\n        const selectionEnd = input.selectionEnd;\n        if (input.setSelectionRange) {\n            input.setSelectionRange(selectionEnd, selectionEnd);\n        }\n        setTimeout(() => {\n            input.focus();\n        }, time);\n    }\n    // #endregion\n\n    // #region HandleIncrementDecrement\n    public handleIncrementDecrement(action: string): void {\n        clearTimeout(this.inputCommandsTimeout);\n        switch (action) {\n            case InputCommandsAction.DECREMENT:\n                this.superControl.control?.patchValue(\n                    (this.superControl.control?.value\n                        ? parseInt(this.superControl.control?.value)\n                        : 0) - 1\n                );\n                break;\n            case InputCommandsAction.INCREMENT:\n                this.superControl.control?.patchValue(\n                    (this.superControl.control?.value\n                        ? parseInt(this.superControl.control?.value)\n                        : 0) + 1\n                );\n                break;\n            default:\n                break;\n        }\n\n        this.setInputCursorAtTheEnd(this.input.nativeElement);\n    }\n    // #endregion\n\n    // #region\n\n    public handleMonths(action: string): void {\n        clearTimeout(this.inputCommandsTimeout);\n\n        switch (action) {\n            case InputCommandsAction.MINUS:\n                this.decrementMonth();\n                break;\n            case InputCommandsAction.PLUS:\n                this.incrementMonth();\n                break;\n            default:\n                break;\n        }\n\n        if (\n            parseInt(this.superControl.control?.value) < 1 ||\n            parseInt(this.superControl.control?.value) > 12\n        ) {\n            this.superControl.control?.setErrors({ invalid: true });\n        } else {\n            this.superControl.control?.setErrors(null);\n        }\n\n        this.setInputCursorAtTheEnd(this.input.nativeElement);\n    }\n    // #endregion\n\n    // #region DecrementMonth\n    private decrementMonth(): void {\n        if (\n            parseInt(this.superControl.control?.value) === 1 ||\n            !this.superControl.control?.value\n        ) {\n            this.blurOnCommands();\n            return;\n        }\n\n        this.superControl.control?.patchValue(\n            (this.superControl.control?.value\n                ? parseInt(this.superControl.control?.value)\n                : 0) - 1\n        );\n    }\n\n    // #endregion\n\n    // #region IncrementMonth\n    private incrementMonth(): void {\n        if (parseInt(this.superControl.control?.value) === 12) {\n            this.blurOnCommands();\n            return;\n        }\n\n        this.superControl.control?.patchValue(\n            (this.superControl.control?.value\n                ? parseInt(this.superControl.control?.value)\n                : 0) + 1\n        );\n    }\n\n    // #endregion\n\n    // #region\n    public blurOnCommands(): void {\n        this.inputCommandsTimeout = setTimeout(() => {\n            this._inputConfig.commands!.active = false;\n            // this.setIsVisibleCommands(false);\n            this._inputConfig.blackInput = false;\n            this.cdRef.detectChanges();\n        }, 200);\n    }\n    // #endregion\n\n    // #region CheckNameArray\n    public checkNameArray(array: string[], name: string): boolean {\n        return array.includes(<InputStringEnum>name);\n    }\n    // #endregion\n}\n","import { ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport {\n    InputCommandsAction,\n    InputCommandsType,\n    InputConfigNameStringEnum,\n    InputStringEnum,\n} from '../enums';\nimport { ThousandSeparatorPipe } from '../../../pipes/thousand-separator.pipe';\nimport moment from 'moment';\nimport { InputConstants } from '../utils/constants';\nimport { InputChangeValue, InputSvgRoutes } from '../utils';\nimport { CaInputValidationService } from '../services';\nimport { CaInputBaseHelpersComponent } from '../base-classes/ca-input-base-helpres';\nimport { EventInputManager } from './ca-input-event-manager';\nimport { CommandsEvent } from '../models';\nimport { ICaInput } from '../config';\n\nexport abstract class CaInputBaseComponent extends CaInputBaseHelpersComponent {\n    abstract focusInputEvent: EventEmitter<FocusEvent>;\n    abstract handleToggleDropdownOptions: EventEmitter<void>;\n\n    // #region abstract variables\n    abstract isFocusInput: boolean;\n    abstract isTouchedInput: boolean;\n\n    // Input Commands\n    abstract isVisibleCommands: boolean;\n\n    // Edit Input\n    abstract isEditInput: boolean;\n\n    abstract isDropdownToggler: boolean;\n    abstract isCapsLockOn: boolean;\n    // #endregion\n\n    // #region abstract events\n    abstract setCommandEvent: EventInputManager<CommandsEvent>;\n    abstract setClearInputEvent: EventInputManager<boolean>;\n    abstract setIncorrectInput: EventInputManager<boolean>;\n    abstract setBlurInput: EventInputManager<boolean>;\n    abstract setChangeInput: EventInputManager<InputChangeValue>;\n    abstract setShowHideDropdown: EventInputManager<boolean>;\n    abstract setDropDownKeyNavigation: EventInputManager<{\n        keyCode: number;\n        data: ICaInput | null;\n    }>;\n    // #endregion\n\n    public inputSelection: boolean = false;\n    public cursorInputPosition!: number;\n    public hasDecimalIndex: number = -1;\n    public originPriceSeparatorLimit!: number | undefined;\n    public timeoutCleaner!: ReturnType<typeof setTimeout> | number;\n    public lastCursorSpacePosition: number = 0;\n    private preventBlur!: boolean;\n    public passwordTimeout!: ReturnType<typeof setTimeout> | number;\n\n    public isDotDeleted!: boolean;\n\n    abstract incorrectValue: boolean;\n\n    // Dropdown\n    public showDateInput: boolean = false;\n    public dateTimeInputDate: Date = new Date();\n\n    // Number of spaces\n    public numberOfConsecutivelySpaces: number = 0;\n\n    abstract caInputValidationService: CaInputValidationService;\n\n    constructor(\n        public cdRef: ChangeDetectorRef,\n        public thousandSeparatorPipe: ThousandSeparatorPipe\n    ) {\n        super();\n    }\n\n    public transformText(value: string, isPaste?: boolean): void {\n        this.cursorInputPosition = this.input.nativeElement.selectionStart;\n\n        // Handle paste operation\n        if (isPaste) {\n            this.handlePaste(value);\n        } else if (value) {\n            this.superControl.control?.patchValue(value, { emitEvent: false });\n        }\n\n        this.applyTextTransformation();\n\n        // Apply thousand and price separators if configured\n        this.applyThousandSeparator();\n        this.applyPriceSeparator();\n\n        this.customValidation(value);\n\n        this.sanitizeConsecutiveSpaces();\n\n        this.removeLeadingZero();\n    }\n\n    private handlePaste(value: string): void {\n        let mainValue = this.superControl.control?.value;\n        if (!this.inputSelection) {\n            mainValue += value;\n            this.limitInputLength();\n        } else {\n            mainValue = value;\n            this.inputSelection = false;\n        }\n\n        // Delete spaces on begin and end\n        mainValue = mainValue.trim();\n        this.superControl.control?.patchValue(mainValue, {\n            emitEvent: false,\n        });\n    }\n\n    private limitInputLength(): void {\n        if (\n            this.superControl.control?.value.length >\n            this._inputConfig.maxLength!\n        ) {\n            this.superControl.control?.patchValue(\n                this.superControl.control?.value.substring(\n                    0,\n                    this._inputConfig.maxLength\n                ),\n                {\n                    emitEvent: false,\n                }\n            );\n        }\n    }\n\n    private applyTextTransformation(): void {\n        let { value } = this.input.nativeElement;\n        switch (this._inputConfig.textTransform) {\n            case InputStringEnum.CAPITALIZE:\n                value =\n                    value.charAt(0).toUpperCase() +\n                    value.substring(1).toLowerCase();\n                break;\n            case InputStringEnum.UPPERCASE:\n                value = value.toLocaleUpperCase('en-US');\n                break;\n            case InputStringEnum.CAPITALIZED_CASE:\n                const capitalizedCaseWords = value.replace(\n                    /(^\\w{1})|(\\s+\\w{1})/g,\n                    (letter: string) => letter.toUpperCase()\n                );\n\n                value = capitalizedCaseWords;\n                break;\n            default:\n                break;\n        }\n        this.superControl.control?.patchValue(value, {\n            emitEvent: false,\n        });\n    }\n\n    private applyThousandSeparator(): void {\n        const controlValue = this.superControl.control?.value;\n        if (this._inputConfig.thousandSeparator && controlValue) {\n            if (this.isAllZeros(controlValue)) {\n                this.superControl.control?.patchValue('0', {\n                    emitEvent: false,\n                });\n                return;\n            }\n            if (this.superControl.control?.value.toString()) {\n                this.superControl.control?.patchValue(\n                    this.thousandSeparatorPipe.transform(controlValue),\n                    {\n                        emitEvent: false,\n                    }\n                );\n            }\n        }\n    }\n\n    private applyPriceSeparator(): void {\n        const controlValue = this.superControl.control?.value;\n        if (this._inputConfig.priceSeparator && controlValue) {\n            // 0. Don't allow 0 as first character\n            if (this.isAllZeros(controlValue)) {\n                this.superControl.control?.patchValue('0', {\n                    emitEvent: false,\n                });\n                return;\n            }\n\n            // 4. If user set dot\n            if (controlValue.includes('.')) {\n                this.formatWithDecimal();\n            } else {\n                // 5. If user doesn't set dot\n                this.formatWithoutDecimal();\n            }\n\n            this.setInputCursorPosition();\n        }\n    }\n\n    private setInputCursorPosition(): void {\n        if (this.superControl.control?.value) {\n            this.timeoutCleaner = setTimeout(() => {\n                this.input.nativeElement.setSelectionRange(\n                    this.cursorInputPosition +\n                        (this.superControl.control?.value.indexOf('.') === -1\n                            ? 1\n                            : 0),\n                    this.cursorInputPosition +\n                        (this.superControl.control?.value.indexOf('.') === -1\n                            ? 1\n                            : 0)\n                );\n            }, 0);\n        } else {\n            // if we have ${n}00000 and we delete N then we got undefined instead of dot\n            this.superControl.control?.patchValue(0, {\n                emitEvent: false,\n            });\n        }\n    }\n\n    private formatWithDecimal(): void {\n        const controlValue = this.superControl.control?.value;\n        // 4.1. Check for Dot position\n        this.hasDecimalIndex = controlValue.indexOf('.');\n\n        this.originPriceSeparatorLimit =\n            this._inputConfig.priceSeparatorLimitation! + 3;\n\n        // 4.2. Divide number into decimal and integer parts\n        let integerPart = this.thousandSeparatorPipe.transform(\n            controlValue\n                .slice(0, this.hasDecimalIndex)\n                .slice(0, this._inputConfig.priceSeparatorLimitation)\n        );\n        let decimalPart = controlValue.slice(this.hasDecimalIndex + 1);\n\n        if (!integerPart) {\n            integerPart = '0';\n        }\n\n        // 4.4. Get only two numbers of the decimal part\n        decimalPart = decimalPart.slice(0, 2);\n\n        if (decimalPart) {\n            // 4.5. Set formatted number\n            this.superControl.control?.patchValue(\n                `${integerPart}.${decimalPart}`,\n                {\n                    emitEvent: false,\n                }\n            );\n            this.hasDecimalIndex =\n                this.superControl.control?.value.indexOf('.');\n        }\n    }\n\n    private customValidation(value: string): void {\n        const configName = this._inputConfig.name.toLowerCase();\n\n        if (\n            configName === InputStringEnum.YEAR &&\n            parseInt(value) > parseInt(moment().add(1, 'year').format('YYYY'))\n        ) {\n            this.superControl.control?.setErrors({ invalid: true });\n        }\n\n        if (configName === InputStringEnum.MONTHS) {\n            if (parseInt(value) < 1 || parseInt(value) > 12) {\n                this.superControl.control?.setErrors({ invalid: true });\n            } else {\n                this.superControl.control?.setErrors(null);\n            }\n        }\n\n        if (configName === InputStringEnum.AXLES) {\n            if (parseInt(value) < 1 || parseInt(value) > 17) {\n                if (parseInt(value) < 1) {\n                    this.superControl.control?.setErrors({ min: 1 });\n                } else if (parseInt(value) > 17) {\n                    this.superControl.control?.setErrors({ max: 17 });\n                }\n            } else {\n                this.superControl.control?.setErrors(null);\n            }\n        }\n\n        if (\n            configName === InputStringEnum.FULL_NAME &&\n            this.superControl.control?.value\n        ) {\n            this.capitalizeWords();\n        }\n    }\n\n    private formatWithoutDecimal(): void {\n        const controlValue = this.superControl.control?.value;\n        this.hasDecimalIndex = -1;\n\n        if (controlValue.indexOf('.') === -1) {\n            // Transform value with thousand separator\n            this.superControl.control?.patchValue(\n                this.thousandSeparatorPipe.transform(controlValue),\n                {\n                    emitEvent: false,\n                }\n            );\n\n            // Limit validation\n            this.originPriceSeparatorLimit =\n                this._inputConfig.priceSeparatorLimitation;\n\n            // Cut value\n            if (controlValue) {\n                this.superControl.control?.patchValue(\n                    controlValue.slice(\n                        0,\n                        this._inputConfig.priceSeparatorLimitation\n                    ),\n                    {\n                        emitEvent: false,\n                    }\n                );\n            }\n\n            // Transform value again after cutting\n            this.superControl.control?.patchValue(\n                this.thousandSeparatorPipe.transform(controlValue),\n                {\n                    emitEvent: false,\n                }\n            );\n        }\n    }\n\n    private sanitizeConsecutiveSpaces(): void {\n        const configNames = InputConstants.textTransformConfigNames;\n\n        if (configNames.includes(this._inputConfig.name.toLowerCase())) {\n            const sanitizedInput = this.input.nativeElement.value.replace(\n                /\\s{2,}/g,\n                ' '\n            );\n            if (sanitizedInput !== this.input.nativeElement.value) {\n                this.superControl.control?.patchValue(sanitizedInput, {\n                    emitEvent: false,\n                });\n                this.setCursorForSanitizedInput();\n            }\n        }\n    }\n\n    private setCursorForSanitizedInput(): void {\n        this.timeoutCleaner = setTimeout(() => {\n            this.input.nativeElement.setSelectionRange(\n                this.lastCursorSpacePosition - 1,\n                this.lastCursorSpacePosition - 1\n            );\n        });\n    }\n\n    private removeLeadingZero(): void {\n        if (this._inputConfig.removeLeadingZero) {\n            const currentValue = this.superControl.control?.value;\n\n            if (!currentValue) {\n                this.superControl.control?.patchValue('', {\n                    emitEvent: false,\n                });\n                this.superControl.control?.setErrors(null);\n                return;\n            }\n\n            if (this._inputConfig.negativeLeadingZero) {\n                const isNegative = currentValue.startsWith('-');\n\n                if (isNegative) {\n                    // Get the part after the negative sign\n                    const numberPart = currentValue.slice(1);\n                    // Remove leading zeros\n                    const transformedNumber = numberPart.replace(\n                        /^0+(?=\\d)/,\n                        ''\n                    );\n                    this.superControl.control?.patchValue(\n                        `-${transformedNumber}`,\n                        {\n                            emitEvent: false,\n                        }\n                    );\n                } else {\n                    this.superControl.control?.patchValue(\n                        currentValue.replace(/^0+(?=\\d)/, ''),\n                        {\n                            emitEvent: false,\n                        }\n                    );\n                }\n            } else {\n                this.superControl.control?.patchValue(\n                    currentValue.replace(/^0+(?!$)/, ''),\n                    {\n                        emitEvent: false,\n                    }\n                );\n            }\n        }\n    }\n\n    public writeValueBase(obj: InputChangeValue): void {\n        this.setChangeInput.next(obj);\n\n        if (!this._inputConfig.priceSeparator) {\n            this.input.nativeElement.value = obj;\n        }\n    }\n\n    private capitalizeWords(): void {\n        const words = this.superControl.control?.value.split(' ');\n        const capitalized = words.map((word: string) => {\n            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n        });\n        this.superControl.control?.patchValue(capitalized.join(' '), {\n            emitEvent: false,\n        });\n    }\n\n    private isAllZeros(value: string): boolean {\n        return value.split('').every((char) => char === '0');\n    }\n\n    public onBlurBase(event?: FocusEvent): void {\n        // DropDown Label\n\n        if (this._inputConfig.dropdownLabel && !this.isEditInput)\n            this._inputConfig.placeholderIcon = InputSvgRoutes.dynamicLabelSvg;\n\n        // Edit Input\n        if (this.isEditInput) {\n            this.superControl.control?.setErrors({ invalid: true });\n            return;\n        }\n\n        // Datepicker;\n        if (this.preventBlur) {\n            this.preventBlur = false;\n            return;\n        }\n\n        // Bank\n        if (\n            this._inputConfig.name ===\n            InputConfigNameStringEnum.INPUT_DROPDOWN_BANK_NAME\n        )\n            this._inputConfig.blackInput = false;\n\n        // Price Separator - remove dot on focus out\n        if (\n            this._inputConfig.priceSeparator &&\n            this.superControl.control?.value &&\n            this.superControl.control?.value?.toString().indexOf('.') >= 0\n        ) {\n            // 4.1. Check for Dot position\n            this.hasDecimalIndex = this.superControl.control?.value\n                .toString()\n                .indexOf('.');\n\n            let integerPart = this.thousandSeparatorPipe.transform(\n                this.superControl.control?.value\n                    .slice(0, this.hasDecimalIndex)\n                    .slice(0, this._inputConfig.priceSeparatorLimitation)\n            );\n\n            let decimalPart = this.superControl.control?.value.slice(\n                this.hasDecimalIndex + 1\n            );\n\n            // 4.4. Get only two numbers of decimal part\n            decimalPart = decimalPart.slice(0, 2);\n\n            if (!decimalPart) {\n                this.hasDecimalIndex = -1;\n                this.superControl.control?.patchValue(integerPart);\n                this.numberOfPoints = 0;\n            }\n        }\n\n        // Dropdown\n        if (this._inputConfig.isDropdown || this._inputConfig.dropdownLabel) {\n            this.blurOnDropDownArrow();\n        }\n        // Normal, without dropdown\n        else {\n            let selection = window.getSelection();\n            selection?.removeAllRanges();\n\n            // Input Commands\n            if (this._inputConfig.commands) this.blurOnCommands();\n\n            // Password\n            if (this._inputConfig.type === 'password') this.blurOnPassword();\n            // Normal focus out\n            else this.isFocusInput = false;\n        }\n\n        this.setBlurInput.next(true);\n        this.isTouchedInput = true;\n    }\n\n    private blurOnDropDownArrow(): void {\n        this.timeoutCleaner = setTimeout(() => {\n            this.isDropdownToggler = false;\n\n            this.isFocusInput = false;\n            this.isDropdownToggler = false;\n            this.isFocusInput = false;\n            this.setShowHideDropdown.next(this.isDropdownToggler);\n        }, 150);\n    }\n\n    public blurOnPassword() {\n        this.passwordTimeout = setTimeout(() => {\n            this.isFocusInput = false;\n            this.input.nativeElement.blur();\n            this.cdRef.detectChanges();\n        }, 150);\n    }\n\n    public checkRegexPattern(\n        charCode: string,\n        name: string\n    ): boolean | undefined {\n        return this.caInputValidationService\n            .getInputRegexPattern(name)\n            ?.test(charCode);\n    }\n\n    // FOCUS INPUT FUNCTION\n    public onKeypress(event: KeyboardEvent): boolean | void {\n        const lowerCaseName = this._inputConfig.name.toLowerCase();\n        const charCode = String.fromCharCode(event.charCode);\n\n        // Disable first character to be space\n        if (!this.input.nativeElement.value && /^\\s*$/.test(charCode)) {\n            event.preventDefault();\n            return false;\n        }\n\n        if (this._inputConfig.priceSeparator) {\n            if (\n                this.checkRegexPattern(\n                    charCode,\n                    InputStringEnum.PRICE_SEPARATOR\n                )\n            ) {\n                if (\n                    this.superControl.control?.value?.length ===\n                        this.originPriceSeparatorLimit &&\n                    event.keyCode !== 46\n                ) {\n                    event.preventDefault();\n                    return;\n                }\n                //  Disable multiple dots\n                this.disableMultiplePoints(event);\n\n                // Find index of dot\n                const valueToString = String(this.superControl.control?.value);\n\n                this.hasDecimalIndex = valueToString?.indexOf('.');\n\n                if (this.hasDecimalIndex >= 0) {\n                    // 1. Divide number on decimal and integer part\n                    let integerPart = this.superControl.control?.value.slice(\n                        0,\n                        this.hasDecimalIndex\n                    );\n\n                    if (!integerPart) integerPart = '0';\n\n                    let decimalPart = this.superControl.control?.value.slice(\n                        this.hasDecimalIndex + 1\n                    );\n\n                    // 2. Disable more than two decimals\n                    if (decimalPart.length > 2) {\n                        event.preventDefault();\n                        return;\n                    }\n\n                    // 3. Get only two numbers of decimal part\n                    decimalPart = decimalPart.slice(0, 2);\n\n                    const currentPosition =\n                        this.input.nativeElement.selectionStart;\n\n                    // 4. Set formatted number\n                    this.superControl.control?.patchValue(\n                        integerPart + '.' + decimalPart\n                    );\n\n                    this.timeoutCleaner = setTimeout(() => {\n                        if (event.keyCode === 51) {\n                            this.cursorInputPosition =\n                                this.input.nativeElement.selectionStart;\n                            this.input.nativeElement.setSelectionRange(\n                                currentPosition,\n                                currentPosition\n                            );\n                        } else {\n                            this.input.nativeElement.setSelectionRange(\n                                currentPosition,\n                                currentPosition\n                            );\n                        }\n                    }, 0);\n                }\n\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (\n            this.checkNameArray(\n                InputConstants.businessNamesArray,\n                lowerCaseName\n            )\n        ) {\n            if (\n                this.checkRegexPattern(charCode, InputStringEnum.BUSINESS_NAME)\n            ) {\n                this.disableMultiplePoints(event);\n                this.disableConsecutivelySpaces(event);\n                return true;\n            }\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray(InputConstants.qtyArray, lowerCaseName)) {\n            // Only numbers\n            if (this.checkRegexPattern(charCode, InputStringEnum.QTY))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.EMAIL], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.EMAIL)) {\n                this.disableConsecutivelyPoints(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.INVOICE], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.INVOICE))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.ADDRESS], lowerCaseName)) {\n            if (/^[A-Za-z0-9\\s.&/,_-]*$/?.test(charCode)) {\n                this.disableConsecutivelySpaces(event);\n                return true;\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (\n            this.checkNameArray(InputConstants.addressUnitArray, lowerCaseName)\n        ) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.ADDRESS_UNIT))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.FIRST_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.FIRST_NAME)) {\n                this.disableMultiplePoints(event);\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.LAST_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.LAST_NAME)) {\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.BANK_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.BANK_NAME)) {\n                this.disableMultiplePoints(event);\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray(InputConstants.vinNumberArray, lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.VIN_NUMBER))\n                return !/^[IiOQ]*$/?.test(charCode);\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (\n            this.checkNameArray(\n                [InputStringEnum.TRUCK_TRAILER_MODEL],\n                lowerCaseName\n            )\n        ) {\n            if (\n                this.checkRegexPattern(\n                    charCode,\n                    InputStringEnum.TRUCK_TRAILER_MODEL\n                )\n            ) {\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.YEAR], lowerCaseName)) {\n            if (/^0*$/.test(charCode) && !this.input.nativeElement.value) {\n                event.preventDefault();\n                return false;\n            }\n\n            if (this.checkRegexPattern(charCode, InputStringEnum.YEAR))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (\n            this.checkNameArray([InputStringEnum.LICENSE_PLATE], lowerCaseName)\n        ) {\n            if (\n                this.checkRegexPattern(charCode, InputStringEnum.LICENSE_PLATE)\n            ) {\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.DESCRIPTION], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.DESCRIPTION)) {\n                this.disableConsecutivelySpaces(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.ALLOW_ALL], lowerCaseName)) {\n            if (/.*/?.test(charCode)) return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.DBA_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.DBA_NAME))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.PER_MILE], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.PER_MILE)) {\n                this.disableMultiplePoints(event);\n\n                // Check for max length\n                if (this.superControl.control?.value?.toString().includes('.'))\n                    this._inputConfig.maxLength = 4;\n                else this._inputConfig.maxLength = 2;\n\n                // Check for range\n                if (\n                    this.superControl.control?.value > this._inputConfig.max! ||\n                    this.superControl.control?.value < this._inputConfig.min!\n                ) {\n                    this.superControl.control?.setErrors({ invalid: true });\n                }\n                return true;\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (this.checkNameArray(InputConstants.perStopArray, lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.PER_STOP)) {\n                this.timeoutCleaner = setTimeout(() => {\n                    if (this.superControl.control?.value) {\n                        let perStopValue =\n                            this.superControl.control?.value.replace(/,/g, '');\n                        if (\n                            perStopValue > this._inputConfig.max! ||\n                            perStopValue < this._inputConfig.min!\n                        ) {\n                            this.superControl.control?.setErrors({\n                                invalid: true,\n                            });\n                            return false;\n                        }\n                        return true;\n                    }\n\n                    return;\n                }, 0);\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (\n            this.checkNameArray(\n                InputConstants.emergencyNameArray,\n                lowerCaseName\n            )\n        ) {\n            if (\n                this.checkRegexPattern(charCode, InputStringEnum.EMERGENCY_NAME)\n            )\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (\n            this.checkNameArray([InputStringEnum.EMERGENCY_NAME], lowerCaseName)\n        ) {\n            if (\n                this.checkRegexPattern(charCode, InputStringEnum.EMERGENCY_NAME)\n            ) {\n                this.disableConsecutivelySpaces(event);\n                this.enableOneSpaceOnly(event);\n                return true;\n            }\n            event.preventDefault();\n            return false;\n        }\n\n        if (\n            this.checkNameArray(\n                [InputStringEnum.FULL_CONTACT_NAME],\n                lowerCaseName\n            )\n        ) {\n            if (\n                this.checkRegexPattern(\n                    charCode,\n                    InputStringEnum.FULL_CONTACT_NAME\n                )\n            )\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.FUEL_STORE], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.FUEL_STORE))\n                return true;\n\n            event.preventDefault();\n            return false;\n        }\n\n        if (this.checkNameArray([InputStringEnum.HOS], lowerCaseName)) {\n            if (\n                !this.inputSelection &&\n                this.checkRegexPattern(charCode, InputStringEnum.HOS)\n            ) {\n                return (\n                    this.superControl.control?.value * 10 +\n                        event.charCode -\n                        48 <=\n                    this._inputConfig.max!\n                );\n            } else {\n                if (this.inputSelection) {\n                    this.superControl.control?.patchValue(charCode);\n                    this.inputSelection = false;\n                }\n\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (\n            this.checkNameArray(InputConstants.parkingSlotArray, lowerCaseName)\n        ) {\n            if (\n                this.checkRegexPattern(\n                    charCode,\n                    InputStringEnum.FULL_PARKING_SLOT\n                )\n            )\n                return true;\n            else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (this.checkNameArray([InputStringEnum.CDL_NUMBER], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.CDL_NUMBER)) {\n                this.enableOneSpaceOnly(event);\n                this.disableConsecutivelySpaces(event);\n                return true;\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        // All Simbols\n        if (this.checkNameArray(InputConstants.usernameArray, lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.USERNAME))\n                return true;\n            else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (this.checkNameArray([InputStringEnum.FULL_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.FULL_NAME)) {\n                this.enableOneSpaceOnly(event);\n                this.disableMultiplePoints(event);\n                this.disableConsecutivelySpaces(event);\n                return true;\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (\n            this.checkNameArray(\n                [InputStringEnum.TOLL_VALIDATION],\n                lowerCaseName\n            )\n        ) {\n            if (\n                this.checkRegexPattern(\n                    charCode,\n                    InputStringEnum.TOLL_VALIDATION\n                )\n            )\n                return true;\n            else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        // Just characters and numbers\n        if (this.checkNameArray(InputConstants.prefixArray, lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.PREFIX))\n                return true;\n            else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (this.checkNameArray([InputStringEnum.FULL_NAME], lowerCaseName)) {\n            if (this.checkRegexPattern(charCode, InputStringEnum.FULL_NAME)) {\n                event.preventDefault();\n                return false;\n            } else {\n                this.disableConsecutivelySpaces(event);\n                return true;\n            }\n        }\n\n        if (\n            this.checkNameArray(InputConstants.producerNameArray, lowerCaseName)\n        ) {\n            if (\n                this.checkRegexPattern(charCode, InputStringEnum.PRODUCER_NAME)\n            ) {\n                this.disableMultiplePoints(event);\n                return true;\n            } else {\n                event.preventDefault();\n                return false;\n            }\n        }\n\n        if (\n            this.checkNameArray(\n                [InputStringEnum.INPUT_DROPDOWN_LABEL],\n                lowerCaseName\n            )\n        ) {\n            this.disableConsecutivelySpaces(event);\n            this.disableConsecutivelyPoints(event);\n        }\n\n        this.input.nativeElement.value.trim();\n    }\n\n    // #region onFocus\n    public onFocus(event?: FocusEvent) {\n        this.focusInputEvent.emit(event);\n        // DropDown Label\n        if (this._inputConfig.dropdownLabel) {\n            this._inputConfig.placeholderIcon =\n                InputSvgRoutes.dynamicFocusLabelSvg;\n        }\n\n        // Dropdown\n        if (this._inputConfig.isDropdown) {\n            this.isDropdownToggler = true;\n            this.setShowHideDropdown.next(this.isDropdownToggler);\n        }\n\n        // Commands\n        if (this._inputConfig.commands && !this._inputConfig.isDisabled) {\n            if (this._inputConfig.commands.type === InputCommandsType.MONTHS) {\n                if (!this._inputConfig.blueInput)\n                    this._inputConfig.blackInput = true;\n                this._inputConfig.commands.active = true;\n                this.isVisibleCommands = true;\n            }\n\n            if (\n                this._inputConfig.commands.type ===\n                    InputCommandsType.PM_INCREMENT_DECREMENT ||\n                this._inputConfig.commands.type ===\n                    InputCommandsType.INCREMENT_DECREMENT\n            ) {\n                this._inputConfig.blackInput = false;\n                this._inputConfig.commands.active = true;\n                this.isVisibleCommands = true;\n            }\n        }\n\n        this.isFocusInput = true;\n    }\n    // #endregion\n\n    // #region onKeyDown\n    public onKeydown(event: KeyboardEvent) {\n        if (event) this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n\n        if (this._inputConfig.priceSeparator) {\n            const valueToString = String(this.superControl.control?.value);\n\n            this.isDotDeleted = valueToString?.includes('.');\n        }\n\n        // Disable for phone field first character to be 0\n        if (this._inputConfig.name.toLowerCase() === InputStringEnum.PHONE) {\n            if (\n                (event.target as HTMLInputElement).selectionStart === 0 &&\n                event.key === '0'\n            ) {\n                event.preventDefault();\n            }\n        }\n\n        if (event.keyCode === 9) {\n            this.setDropDownKeyNavigation.next({\n                keyCode: event.keyCode,\n                data: null,\n            });\n        }\n    }\n    // #endregion\n\n    // #region onKeyUp\n    public onKeyup(event: KeyboardEvent): void {\n        if (event) {\n            this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n        }\n        // Reset function property for disabling multiple dots\n        const valueToString = String(this.superControl.control?.value);\n\n        if (this.isDotDeleted && !valueToString?.includes('.'))\n            this.numberOfPoints = 0;\n\n        if (\n            event.keyCode == 8 &&\n            !(this._inputConfig.isDropdown || this._inputConfig.dropdownLabel)\n        ) {\n            // Reset Multiple Consecutively Spaces\n            this.numberOfConsecutivelySpaces = 0;\n\n            // Reset One Space Only\n            if (\n                this.superControl.control?.value &&\n                !this.superControl.control?.value?.includes(' ')\n            ) {\n                this.oneSpaceOnlyCounter = 0;\n            }\n        }\n\n        if (\n            this._inputConfig.isDropdown ||\n            this._inputConfig.dropdownLabel ||\n            this._inputConfig.name === InputConfigNameStringEnum.ADDRESS\n        ) {\n            if (event.keyCode === 40 || event.keyCode === 38) {\n                this.setDropDownKeyNavigation.next({\n                    keyCode: event.keyCode,\n                    data: null,\n                });\n            }\n            if (event.keyCode === 13) {\n                this.setDropDownKeyNavigation.next({\n                    keyCode: event.keyCode,\n                    data: this._inputConfig,\n                });\n\n                if (\n                    this._inputConfig.name === InputConfigNameStringEnum.ADDRESS\n                ) {\n                    this.input.nativeElement.blur();\n                }\n            }\n            if (event.keyCode === 27) {\n                this.isVisibleCommands = false;\n                this.onBlurBase();\n                this.blurOnDropDownArrow();\n                this.input.nativeElement.blur();\n                this.setDropDownKeyNavigation.next({\n                    keyCode: event.keyCode,\n                    data: null,\n                });\n            }\n            if (event.keyCode === 9) {\n                this.onFocus();\n                this.input.nativeElement.focus();\n                this.setDropDownKeyNavigation.next({\n                    keyCode: event.keyCode,\n                    data: null,\n                });\n            }\n        }\n    }\n\n    private handleConfirmCancel(action: string): void {\n        switch (action) {\n            case InputCommandsAction.CONFIRM:\n                this.confirmCommand();\n                break;\n            case InputCommandsAction.CANCEL:\n                this.cancelCommand();\n                break;\n            default:\n                break;\n        }\n\n        this.superControl.control?.setErrors(null);\n        this._inputConfig.dropdownLabelNew = false;\n        this._inputConfig.commands!.active = false;\n        this._inputConfig.blackInput = false;\n        this.isEditInput = false;\n        this.isVisibleCommands = false;\n        this.isFocusInput = false;\n    }\n\n    private cancelCommand(): void {\n        this.setCommandEvent.next({ action: InputCommandsAction.CANCEL });\n    }\n\n    private confirmCommand(): void {\n        this.setCommandEvent.next({\n            data: this.superControl.control?.value,\n            action: InputCommandsAction.CONFIRM,\n            mode:\n                !this._inputConfig.dropdownLabelNew &&\n                this._inputConfig.name !== 'Input Dropdown Bank Name'\n                    ? 'edit'\n                    : 'new',\n        });\n    }\n    // #endregion\n\n    // #region ClearInput\n    public clearInput(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n        // Clear whole input\n        if (this._inputConfig.removeInput) {\n            this.setClearInputEvent.next(true);\n            return;\n        }\n        // Incorrect Input\n        if (this._inputConfig.incorrectInput) {\n            this.incorrectValue = !this.incorrectValue;\n            this.setIncorrectInput.next(this.incorrectValue);\n        }\n        // Native clear\n        else {\n            this.input.nativeElement.value = null;\n            this.superControl.control?.setValue(null, {\n                emitEvent: false,\n            });\n            this.numberOfConsecutivelySpaces = 0;\n            this.numberOfConsecutivelyPoints = 0;\n            this.numberOfPoints = 0;\n            this.oneSpaceOnlyCounter = 0;\n            this._inputConfig.dropdownImageInput = undefined;\n            this.isTouchedInput = true;\n            this.isFocusInput = false;\n\n            this.setClearInputEvent.next(true);\n        }\n    }\n    // #endregion\n\n    // #region OnCommands\n    public onCommands(e: any): void {\n        const { event, type, action } = e;\n        event.stopPropagation();\n        event.preventDefault();\n\n        switch (type) {\n            case InputCommandsType.PM_INCREMENT_DECREMENT:\n                this.handlePmIncrementDecrement(action);\n                break;\n            case InputCommandsType.INCREMENT_DECREMENT:\n                this.handleIncrementDecrement(action);\n                break;\n            case InputCommandsType.CONFIRM_CANCEL:\n                this.handleConfirmCancel(action);\n                break;\n            case InputCommandsType.MONTHS:\n                this.handleMonths(action);\n                break;\n            default:\n                break;\n        }\n    }\n    // #endregion\n\n    // #region onEditInput\n    public onEditInput(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n\n        this.isEditInput = true;\n        this._inputConfig.dropdownLabelNew = false;\n        if (!this._inputConfig.blueInput) this._inputConfig.blackInput = true;\n        this._inputConfig.commands!.active = true;\n        this.isVisibleCommands = true;\n        this.isFocusInput = true;\n\n        this.setInputCursorAtTheEnd(this.input.nativeElement);\n        this.superControl.control?.setErrors({ required: true });\n\n        this.setCommandEvent.next({\n            data: this.superControl.control?.value,\n            action: 'Edit Input',\n        });\n    }\n    // #endregion\n\n    // #region ToggleDropdownOptions\n    public toggleDropdownOptions(): void {\n        this.handleToggleDropdownOptions.emit();\n        if (this._inputConfig.isDisabled) {\n            return;\n        }\n\n        this.isDropdownToggler = !this.isDropdownToggler;\n\n        this.setShowHideDropdown.next(this.isDropdownToggler);\n\n        if (this.isDropdownToggler) {\n            this.input.nativeElement.focus();\n            this.isFocusInput = true;\n        }\n    }\n    // #endregion\n\n    // #region onPlaceholderIconevent\n    public onPlaceholderIconEvent(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n        if (this.isEditInput) {\n            this.setCommandEvent.next({\n                data: this.superControl.control?.value,\n                action: 'Toggle Dropdown',\n            });\n        } else {\n            this.setCommandEvent.next({\n                data: this.superControl.control?.value,\n                action: 'Placeholder Icon Event',\n            });\n        }\n    }\n    // #endregion\n\n    // #region SelectionChange\n    public selectionChange(event: Event): void {\n        if (event) this.inputSelection = true;\n    }\n    // #endregion setSelection\n\n    // #region AutoFocusFirstInput\n\n    public autoFocusFirstInput(): void {\n        if (this._inputConfig.autoFocus && !this.superControl.control?.value) {\n            this.timeoutCleaner = setTimeout(() => {\n                this.input.nativeElement.focus();\n                this.isFocusInput = true;\n                this._inputConfig.autoFocus = false;\n            }, 30);\n        }\n    }\n    // #endregion\n\n    public onPopoverShown(): void {\n        if (!this._inputConfig.dropdownLabel) {\n            this.isFocusInput = true;\n        }\n    }\n\n    public onPopoverHidden(): void {\n        if (!this._inputConfig.dropdownLabel) {\n            this.isFocusInput = false;\n        }\n    }\n\n    public onInputConfigChange(): void {\n        // Price Separator\n        if (this._inputConfig.priceSeparator) {\n            this.originPriceSeparatorLimit =\n                this._inputConfig.priceSeparatorLimitation;\n        }\n\n        // Custom Range\n        if (this._inputConfig.isUsingCustomPeriodRange) {\n            if (this._inputConfig.isDisplayingCustomPeriodRange)\n                this.isFocusInput = true;\n            else this.isFocusInput = false;\n        }\n\n        // When add mode in dropdown\n        if (\n            this._inputConfig.commands?.active &&\n            !this._inputConfig.isDisabled\n        ) {\n            if (this._inputConfig.commands.type === 'confirm-cancel') {\n                if (!this._inputConfig.blueInput)\n                    this._inputConfig.blackInput = true;\n                this.isVisibleCommands = true;\n                this.isFocusInput = true;\n                this.input.nativeElement.focus();\n            }\n        }\n    }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { EventEmitter } from '@angular/core';\n\nexport class EventInputManager<T> {\n  private stateSubject: BehaviorSubject<T | null>;\n  state$: Observable<T | null>;\n\n  constructor(\n    initialValue: T | null,\n    private eventEmitter: EventEmitter<T>\n  ) {\n    this.stateSubject = new BehaviorSubject<T | null>(initialValue);\n    this.state$ = this.stateSubject.asObservable();\n  }\n\n  /**\n   * Update the value and emit the event.\n   */\n  next(newValue: T): void {\n    this.stateSubject.next(newValue); // Update state\n    if (this.eventEmitter) {\n      this.eventEmitter.emit(newValue); // Emit event\n    }\n  }\n\n  /**\n   * Get the current value.\n   */\n  get value(): T | null {\n    return this.stateSubject.value;\n  }\n}\n","import { Subject, takeUntil } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport {\n  AbstractControl,\n  UntypedFormArray,\n  UntypedFormGroup,\n  Validators,\n} from '@angular/forms';\nimport validator from 'validator';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CaInputValidationService {\n  constructor() {}\n\n  /**\n   * @param formGroup FormGroup - The form group to touch\n   */\n  public markInvalid(formGroup: UntypedFormGroup): boolean | void {\n    if (formGroup?.invalid) {\n      Object.keys(formGroup.controls).forEach((key: any) => {\n        formGroup.get(key)?.markAsTouched();\n        formGroup.get(key)?.updateValueAndValidity();\n\n        if ((<UntypedFormArray>formGroup.get(key)).controls?.length) {\n          for (const nestedFormGroup of (<UntypedFormArray>formGroup.get(key))\n            .controls) {\n            this.markInvalid(<UntypedFormGroup>nestedFormGroup);\n          }\n        }\n      });\n\n      return false;\n    }\n  }\n\n  /**\n   *\n   * @param inputName - which return valid pattern, look inputConfig\n   * @returns\n   */\n  public getInputRegexPattern(inputName: string): RegExp | undefined | void {\n    if (['business name', 'shop name', 'fuel stop'].includes(inputName)) {\n      return /^[A-Za-z0-9!#'$&%()*+,./[:;=<>?çéâêîôûàèìòùëïü\\s-]*$/g;\n    } else if ('price-separator' === inputName) {\n      return /^[0-9.]*$/;\n    } else if (\n      [\n        'ein',\n        'mc/ff',\n        'phone',\n        'phone-extension',\n        'account-bank',\n        'routing-bank',\n        'ssn',\n        'fuel-card',\n        'empty-weight',\n        'credit limit',\n        'po box',\n        'price',\n        'trailer-volume',\n        'repair-odometer',\n        'usdot',\n        'irp',\n        'starting',\n        'customer pay term',\n        'customer credit',\n        'default base',\n        'each occurrence',\n        'damage',\n        'personal-adver-inj',\n        'medical expenses',\n        'bodily injury',\n        'general aggregate',\n        'products-comp-op-agg',\n        'combined-single-limit',\n        'single-conveyance',\n        'deductable',\n        'compreh-collision',\n        'trailer-value-insurance-policy',\n        'rent',\n        'salary',\n        'mileage',\n        'months',\n        'empty weight',\n        'qty',\n        'purchase price',\n      ].includes(inputName)\n    ) {\n      return /^[0-9]*$/g;\n    } else if ('email' === inputName) {\n      return /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~@.-]*$/g;\n    } else if ('invoice' === inputName) {\n      return /^[A-Za-z0-9/-]*$/g;\n    } else if (\n      ['address-unit', 'department', 'vehicle-unit'].includes(inputName)\n    ) {\n      return /^[A-Za-z0-9]*$/;\n    } else if ('first name' === inputName) {\n      return /^[A-Za-z',\\s.-]*$/;\n    } else if ('last name' === inputName) {\n      return /^[A-Za-z',\\s.-]*$/;\n    } else if ('bank name' === inputName) {\n      return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?-^[]*$/;\n    } else if (['vin-number', 'insurance-policy', 'ifta'].includes(inputName)) {\n      return /^[A-Za-z0-9-]*$/;\n    } else if ('truck-trailer-model' === inputName) {\n      return /^[A-Za-z0-9\\s-]*$/;\n    } else if ('year' === inputName) {\n      return /^[0-9]$/;\n    } else if ('license plate' === inputName) {\n      return /^[A-Za-z0-9\\s]*$/;\n    } else if ('description' === inputName) {\n      return /^[A-Za-z0-9-.,/\\s]*$/;\n    } else if ('dba name' === inputName) {\n      return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?^[-]*$/;\n    } else if ('per mile' === inputName) {\n      return /^[0-9.]*$/;\n    } else if ('per stop' === inputName) {\n      return /^[0-9]*$/;\n    } else if (['emergency name', 'relationship', 'scac'].includes(inputName)) {\n      return /^[A-Za-z',\\s.-]*$/;\n    } else if ('fuel store' === inputName) {\n      return /^[A-Za-z0-9-]*$/;\n    } else if ('hos' === inputName) {\n      return /^[0-9]*$/;\n    } else if (['full parking slot', 'parking slot'].includes(inputName)) {\n      return /^[0-9,-]*$/;\n    } else if ('cdl-number' === inputName) {\n      return /^[A-Za-z0-9\\s*-]*$/;\n    } else if (\n      ['username', 'nickname', 'terminal name', 'password'].includes(inputName)\n    ) {\n      return /^[A-Za-z0-9.,_!#^~[?/<`@$%*+=}{|:\";>&'()-]*$/;\n    } else if ('full name' === inputName) {\n      return /^[A-Za-z0-9.,/!@#$%^&*()_+={}\"':>?<;\\s-]*$/;\n    } else if ('tollvalidation' === inputName) {\n      return /^[0-9-]*$/;\n    } else if (['prefix', 'suffix', 'parking name'].includes(inputName)) {\n      return /^[A-Za-z0-9]*$/;\n    } else if ('file name' === inputName) {\n      return /^[:*?\"<>|/]*$/;\n    } else if (\n      ['producer name', 'insurer name', 'office name'].includes(inputName)\n    ) {\n      return /^[A-Za-z0-9!#'$&%()*+,./;:=<>?[^-]*$/;\n    } else if (['full contact name'].includes(inputName)) {\n      return /^[A-Za-z\\s]+$/;\n    }\n  }\n\n  /**\n   * @param formControl\n   * @param hasValidation\n   * @param validators\n   */\n  public changeValidators(\n    formControl: AbstractControl,\n    hasValidation: boolean = true,\n    validators: any[] = [],\n    reset: boolean = true\n  ): void {\n    // Set validation\n    if (hasValidation) {\n      const validation = [Validators.required, ...validators];\n      formControl.setValidators(validation);\n    }\n    // Reset validation\n    else {\n      if (formControl && formControl.hasValidator(Validators.required)) {\n        formControl.clearValidators();\n      }\n\n      if (reset && formControl) {\n        formControl.reset();\n      }\n    }\n\n    // Update Validity\n    if (formControl) {\n      formControl.updateValueAndValidity();\n    }\n  }\n\n  /**\n   *\n   * @param formControl\n   * @param hasValidation\n   */\n  public changeValidatorsCheck(\n    formControl: AbstractControl,\n    hasValidation: boolean = true\n  ) {\n    if (hasValidation) {\n      formControl.setValidators(Validators.requiredTrue);\n    } else {\n      formControl.clearValidators();\n    }\n\n    if (formControl) {\n      formControl.updateValueAndValidity();\n    }\n  }\n\n  /**\n   *\n   * @param formControl\n   * @param type\n   * @param destroy$\n   * @returns\n   */\n  public customInputValidator(\n    formControl: AbstractControl,\n    type: string,\n    destroy$: Subject<void>\n  ) {\n    return formControl.valueChanges\n      .pipe(takeUntil(destroy$))\n      .subscribe((value) => {\n        if (value) {\n          switch (type) {\n            case 'email': {\n              if (!validator.isEmail(value)) {\n                formControl.setErrors({ invalid: true });\n              } else {\n                formControl.setErrors(null);\n              }\n              break;\n            }\n            case 'url': {\n              if (!validator.isURL(value)) {\n                formControl.setErrors({ invalid: true });\n              } else {\n                formControl.setErrors(null);\n              }\n              break;\n            }\n            default: {\n              break;\n            }\n          }\n        }\n      });\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    AfterViewInit,\n    CUSTOM_ELEMENTS_SCHEMA,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Self,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    ControlValueAccessor,\n    FormsModule,\n    NgControl,\n    ReactiveFormsModule,\n} from '@angular/forms';\nimport { combineLatest, Subject, takeUntil } from 'rxjs';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { ICaInput } from './config';\nimport { LabelColor, CommandsEvent } from './models';\n\n// pipes\nimport {\n    InputErrorPipe,\n    InputContainerClassPipe,\n    InputClassPipe,\n    LabelClassPipe,\n    ShowClearPipe,\n    ShowInvalidDangerMarkPipe,\n    ShowValidCheckPipe,\n    InputTypePipe,\n    InputDropdownArrowClassPipe,\n    ShowDropdownArrowPipe,\n    InputPlaceholderIconRightClassPipe,\n    InputPlaceholderTextClassPipe,\n    ShowPlaceholderTextPipe,\n} from './pipes';\nimport { CaSvgPipe } from '../../pipes/ca-svg.pipe';\nimport { LoadStatusColorPipe } from '../../pipes/load-status-color.pipe';\nimport { ThousandSeparatorPipe } from '../../pipes/thousand-separator.pipe';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputClearComponent } from './components/ca-input-clear/ca-input-clear.component';\nimport { CaInputCommandsComponent } from './components/ca-input-commands/ca-input-commands.component';\nimport { CaInputPasswordComponent } from './components/ca-input-password/ca-input-password.component';\nimport { CaInputPlaceholderIconComponent } from './components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';\nimport { CaProfileImageComponent } from '../ca-profile-image/ca-profile-image.component';\nimport { CaLoadModalProgressBarComponent } from '../ca-load-modal-progress-bar/ca-load-modal-progress-bar.component';\n\n// services\nimport { CaInputValidationService } from './services';\nimport { CalendarDateTimePickerService } from '../ca-custom-datetime-pickers/services/calendar-datetime-picker.service';\n\n// helpers\nimport { InputChangeValue, InputSvgRoutes } from './utils';\n\n// modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxMaskModule } from 'ngx-mask';\n\n// directives\nimport { MinMaxValueDirective } from './directives';\n\n// enums\nimport { InputCommandsType, InputStringEnum } from './enums';\nimport { DropdownTemplateTypeEnum } from '../ca-input-dropdown/enums';\nimport { CaInputBaseComponent } from './base-classes/ca-input-base';\nimport { EventInputManager } from './base-classes/ca-input-event-manager';\n\n@Component({\n    selector: 'app-ca-input',\n    templateUrl: './ca-input.component.html',\n    styleUrls: ['./ca-input.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        NgbModule,\n        NgxMaskModule,\n        // Pipe\n        InputErrorPipe,\n        InputContainerClassPipe,\n        InputClassPipe,\n        LabelClassPipe,\n        ShowClearPipe,\n        ShowInvalidDangerMarkPipe,\n        ShowValidCheckPipe,\n        InputTypePipe,\n        InputDropdownArrowClassPipe,\n        ShowDropdownArrowPipe,\n        CaSvgPipe,\n        LoadStatusColorPipe,\n        InputPlaceholderIconRightClassPipe,\n        InputPlaceholderTextClassPipe,\n        ShowPlaceholderTextPipe,\n        // Components\n        CaInputClearComponent,\n        CaAppTooltipV2Component,\n        CaInputPasswordComponent,\n        CaInputPlaceholderIconComponent,\n        CaInputCommandsComponent,\n        CaProfileImageComponent,\n        CaLoadModalProgressBarComponent,\n        // Directives\n        MinMaxValueDirective,\n    ],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA],\n    providers: [CalendarDateTimePickerService]\n})\nexport class CaInputComponent\n    extends CaInputBaseComponent\n    implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor\n{\n    @ViewChild('input', { static: true }) public input!: ElementRef;\n    @ViewChild(NgbPopover) ngbMainPopover!: NgbPopover;\n    @ViewChild(CaInputPlaceholderIconComponent)\n    caInputPlaceholderIconComponent!: CaInputPlaceholderIconComponent;\n\n    public _inputConfig!: ICaInput;\n    @Input() set inputConfig(config: ICaInput) {\n        this._inputConfig = config;\n\n        this.onInputConfigChange();\n    }\n    @Input() dateTimePopover!: TemplateRef<any>;\n\n    @Input() incorrectValue!: boolean;\n    @Input() selectedDropdownLabelColor!: LabelColor | null;\n    @Input() template!: string;\n\n    @Output('handleToggleDropdownOptions')\n    handleToggleDropdownOptions: EventEmitter<void> = new EventEmitter<void>();\n\n    @Output('incorrectEvent') incorrectInput: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    @Output('blurInput') blurInput: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('focusInput') focusInputEvent: EventEmitter<FocusEvent> =\n        new EventEmitter<FocusEvent>();\n    @Output('change') changeInput: EventEmitter<InputChangeValue> =\n        new EventEmitter<InputChangeValue>();\n    @Output('commandEvent') commandEvent: EventEmitter<CommandsEvent> =\n        new EventEmitter<CommandsEvent>();\n    @Output('clear') clearInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    // Dropdown\n    @Output('showHideDropdown') showHideDropdownEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('dropDownKeyNavigation') dropDownKeyNavigationEvent: EventEmitter<{\n        keyCode: number;\n        data: ICaInput | null;\n    }> = new EventEmitter<{\n        keyCode: number;\n        data: ICaInput | null;\n    }>();\n\n    // variables\n    public isFocusInput = false;\n    public isTouchedInput = false;\n    public isVisibleCommands = false;\n\n    public isDropdownToggler = false;\n    public isCapsLockOn = false;\n    public isEditInput = false;\n\n    // events\n    public setCommandEvent = new EventInputManager<CommandsEvent>(\n        null,\n        this.commandEvent\n    );\n    public setClearInputEvent = new EventInputManager<boolean>(\n        false,\n        this.clearInputEvent\n    );\n\n    public setIncorrectInput = new EventInputManager<boolean>(\n        false,\n        this.incorrectInput\n    );\n\n    public setBlurInput = new EventInputManager<boolean>(false, this.blurInput);\n\n    public setChangeInput = new EventInputManager<InputChangeValue>(\n        null,\n        this.changeInput\n    );\n\n    public setShowHideDropdown = new EventInputManager<boolean>(\n        null,\n        this.showHideDropdownEvent\n    );\n\n    public setDropDownKeyNavigation = new EventInputManager<{\n        keyCode: number;\n        data: ICaInput | null;\n    }>(null, this.dropDownKeyNavigationEvent);\n\n    // Password\n    public isTogglePassword: boolean = false;\n\n    // Date\n    public newInputChanged: boolean = false;\n\n    // Destroy\n    private destroy$: Subject<void> = new Subject<void>();\n\n    public inputSvgRoutes = InputSvgRoutes;\n\n    public priceSeperatorWithFilledValue = true;\n\n    public inputCommandsType = InputCommandsType;\n    public inputStringEnum = InputStringEnum;\n    public dropdownTemplateTypeEnum = DropdownTemplateTypeEnum;\n\n    constructor(\n        @Self() public superControl: NgControl,\n        public cdRefd: ChangeDetectorRef,\n        public thsep: ThousandSeparatorPipe,\n        public caInputValidationService: CaInputValidationService\n    ) {\n        super(cdRefd, thsep);\n        this.superControl.valueAccessor = this;\n    }\n\n    get getSuperControl() {\n        return this.superControl.control;\n    }\n\n    ngOnInit(): void {\n        this.initChangesListener();\n    }\n\n    ngAfterViewInit(): void {\n        this.autoFocusFirstInput();\n        this.superControl?.valueChanges\n            ?.pipe(takeUntil(this.destroy$))\n            .subscribe((value) => {\n                this.transformText(value);\n            });\n    }\n\n    public initStateService(): void {}\n\n    public outputListeners(): void {}\n\n    public initChangesListener(): void {\n        const combinedChanges = combineLatest([\n            this.getSuperControl?.valueChanges,\n            this.getSuperControl?.statusChanges,\n        ]);\n\n        combinedChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            this.cdRef.detectChanges();\n        });\n    }\n\n    public writeValue(obj: InputChangeValue): void {\n        if (this._inputConfig.priceSeparator) {\n            if (obj && this.priceSeperatorWithFilledValue)\n                this.input.nativeElement.value =\n                    this.thousandSeparatorPipe.transform(obj);\n            else this.input.nativeElement.value = obj;\n\n            this.priceSeperatorWithFilledValue = false;\n        }\n\n        this.writeValueBase(obj);\n    }\n\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    public onChange(_: any): void {}\n\n    public registerOnTouched(): void {}\n\n    public onBlur(event?: FocusEvent): void {\n        this.blurInput.emit(true);\n        this.onBlurBase(event);\n    }\n\n    public onTogglePassword(event: Event): void {\n        event.preventDefault();\n        this.isTogglePassword = !this.isTogglePassword;\n    }\n\n    public trackIdentity = (index: number): number => index;\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"input-custom-group {{ _inputConfig.customClass }}\"\n    [ngClass]=\"\n        getSuperControl\n            | inputContainerClass\n                : isFocusInput\n                : isTouchedInput\n                : _inputConfig\n                : getSuperControl?.value\n    \"\n    ngbTooltip\n    [mainCaTooltip]=\"getSuperControl?.errors | inputError: _inputConfig.name\"\n    [tooltipBackground]=\"'#DF3C3C'\"\n    [disableTooltip]=\"!_inputConfig.requiredLabel || !!superControl.valid\"\n    position=\"bottom\"\n    triggers=\"hover\"\n>\n    <!-- Input Commands -->\n    @if (_inputConfig.commands?.active && isVisibleCommands) {\n        <app-ca-input-commands\n            [inputConfig]=\"_inputConfig\"\n            [isFocusInput]=\"isFocusInput\"\n            [isVisibleCommands]=\"isVisibleCommands\"\n            (onCommandsClick)=\"onCommands($event)\"\n        >\n        </app-ca-input-commands>\n    }\n\n    <!-- Input Label -->\n    @if (!_inputConfig.multiSelectDropdownActive) {\n        <label\n            [for]=\"_inputConfig.name\"\n            class=\"input-label {{ _inputConfig.customClass }} {{\n                _inputConfig.multipleLabel?.customClass\n            }}\"\n            [ngClass]=\"\n                getSuperControl?.value\n                    | labelClass\n                        : isFocusInput\n                        : _inputConfig\n                        : isTouchedInput\n                        : getSuperControl?.invalid\n                        : getSuperControl?.touched\n            \"\n        >\n            @if (_inputConfig.label) {\n                <span>{{ _inputConfig.label }} </span>\n            }\n            @if (_inputConfig.multipleLabel?.labels?.length) {\n                <div\n                    [class]=\"_inputConfig.multipleLabel?.customClass!\"\n                    [ngClass]=\"{\n                        'multiple-labels-position-on-focus':\n                            isFocusInput ||\n                            _inputConfig.multipleInputValues?.options?.length,\n                        required:\n                            _inputConfig.isRequired && !_inputConfig.isDisabled,\n                    }\"\n                >\n                    @for (\n                        label of _inputConfig.multipleLabel?.labels;\n                        let indx = $index;\n                        track indx\n                    ) {\n                        <span>{{ label }}</span>\n                    }\n                </div>\n            }\n        </label>\n    }\n\n    <!-- Input Clear -->\n    @if (_inputConfig | showClear) {\n        <app-ca-input-clear\n            [inputConfig]=\"_inputConfig\"\n            [getSuperControl]=\"getSuperControl\"\n            [isFocusInput]=\"isFocusInput\"\n            [incorrectValue]=\"incorrectValue\"\n            [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n            [template]=\"template\"\n            (clearInputClick)=\"clearInput($event)\"\n        >\n        </app-ca-input-clear>\n    }\n\n    <!-- Input Clear for dispatch dropdown -->\n    @if (template === 'svgtext-dispatch-template') {\n        <div\n            class=\"input-clear-dispatch\"\n            position=\"top\"\n            (click)=\"clearInput($event)\"\n        >\n            <svg-icon\n                [src]=\"inputSvgRoutes.xClearCommonSvg\"\n                class=\"input-clear-dispatch-icon\"\n            ></svg-icon>\n        </div>\n    }\n\n    <!-- Input Pen -->\n    @if (\n        selectedDropdownLabelColor &&\n        !isEditInput &&\n        !isFocusInput &&\n        getSuperControl?.value\n    ) {\n        <div\n            class=\"input-pen-container\"\n            ngbTooltip\n            [mainCaTooltip]=\"'Edit'\"\n            [tooltipBackground]=\"'#2F2F2F'\"\n            position=\"top\"\n            (click)=\"onEditInput($event)\"\n        >\n            <svg-icon\n                [src]=\"inputSvgRoutes.inputPenSvg\"\n                class=\"input-pen\"\n            ></svg-icon>\n        </div>\n    }\n\n    <!-- Input Invalid Danger Mark -->\n    @if (\n        _inputConfig\n            | showInvalidDangerMark\n                : getSuperControl\n                : isFocusInput\n                : isTouchedInput\n                : getSuperControl?.value\n    ) {\n        <svg-icon\n            class=\"input-invalid-danger-mark {{ _inputConfig.customClass }}\"\n            [src]=\"inputSvgRoutes.dangerSvg\"\n        ></svg-icon>\n    }\n\n    <!-- Input Valid Check -->\n    @if (\n        getSuperControl\n            | showValidCheck\n                : isFocusInput\n                : _inputConfig\n                : getSuperControl?.value\n    ) {\n        <svg-icon\n            class=\"input-required-check {{ _inputConfig.customClass }}\"\n            [src]=\"inputSvgRoutes.confirmSvg\"\n        ></svg-icon>\n    }\n\n    <!-- Input Password Caps Lock And Eye -->\n    @if (_inputConfig.type === 'password') {\n        <app-ca-input-password\n            [inputConfig]=\"_inputConfig\"\n            [getSuperControl]=\"getSuperControl\"\n            [isFocusInput]=\"isFocusInput\"\n            [isTouchedInput]=\"isTouchedInput\"\n            [isCapsLockOn]=\"isCapsLockOn\"\n            [isTogglePassword]=\"isTogglePassword\"\n            (onTogglePasswordClick)=\"onTogglePassword($event)\"\n        >\n        </app-ca-input-password>\n    }\n\n    <!-- Input Dropdown Arrow -->\n    @if (_inputConfig | showDropdownArrow) {\n        <svg-icon\n            class=\"input-dropdown-arrow {{ _inputConfig.customClass }}\"\n            [ngClass]=\"\n                getSuperControl\n                    | inputDropdownArrowClass\n                        : isFocusInput\n                        : _inputConfig\n                        : isTouchedInput\n                        : getSuperControl?.value\n            \"\n            [src]=\"inputSvgRoutes.inputDropdownArrowSvg\"\n            (click)=\"toggleDropdownOptions()\"\n        ></svg-icon>\n    }\n\n    <!-- Input Placeholder Icon -->\n    @if (\n        _inputConfig.placeholderIcon ||\n        _inputConfig.name === 'datepicker' ||\n        _inputConfig.name === 'timepicker'\n    ) {\n        <app-ca-input-placeholder-icon\n            [inputConfig]=\"_inputConfig\"\n            [getSuperControl]=\"getSuperControl\"\n            [isFocusInput]=\"isFocusInput\"\n            [isTouchedInput]=\"isTouchedInput\"\n            [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n            [isEditInput]=\"isEditInput\"\n            [dateTimePopover]=\"dateTimePopover\"\n            (onPlaceholderIconEventEmitter)=\"onPlaceholderIconEvent($event)\"\n            (onPopoverShownEmitter)=\"onPopoverShown()\"\n            (onPopoverHiddenEmitter)=\"onPopoverHidden()\"\n        >\n        </app-ca-input-placeholder-icon>\n    }\n\n    <!-- Input Placeholder Text -->\n    @if (\n        _inputConfig\n            | showPlaceholderText\n                : getSuperControl\n                : isVisibleCommands\n                : getSuperControl?.value\n    ) {\n        <span\n            class=\"ca-placeholder-text {{ _inputConfig.customClass }}\"\n            [ngClass]=\"\n                isFocusInput\n                    | inputPlaceholderTextClass\n                        : isTouchedInput\n                        : getSuperControl\n                        : _inputConfig\n                        : isVisibleCommands\n                        : getSuperControl?.value\n            \"\n            [style.left]=\"\n                _inputConfig.placeholderText?.toLowerCase() ===\n                    inputStringEnum.PERSONS ||\n                _inputConfig.placeholderText?.toLowerCase() ===\n                    inputStringEnum.VEHICLES\n                    ? 30 +\n                      (getSuperControl?.value?.toString()?.length + 1) * 9 +\n                      'px'\n                    : isFocusInput &&\n                        _inputConfig.placeholderText?.toLowerCase() !==\n                            inputCommandsType.MONTHS\n                      ? 'auto'\n                      : (getSuperControl?.value?.toString()?.length + 1) * 8 +\n                        'px'\n            \"\n            [style.right]=\"\n                isFocusInput &&\n                _inputConfig.placeholderText?.toLowerCase() !==\n                    inputCommandsType.MONTHS\n                    ? '28px'\n                    : 'auto'\n            \"\n        >\n            {{ _inputConfig.placeholderText }}\n        </span>\n    }\n\n    <!-- Input Label Counter -->\n    @if (\n        selectedDropdownLabelColor &&\n        getSuperControl?.value &&\n        !isFocusInput &&\n        !_inputConfig.isDisabled &&\n        _inputConfig.showCount\n    ) {\n        <p\n            [style.top]=\"'4px'\"\n            [style.left]=\"\n                (getSuperControl?.value?.toString()?.length + 6.5) * 8 + 'px'\n            \"\n            class=\"input-label-counter\"\n        >\n            {{ selectedDropdownLabelColor.count }}\n        </p>\n    }\n\n    <!-- Special Dropdown Selected SVG with or Without Text -->\n    @if (\n        _inputConfig?.dropdownImageInput?.svg &&\n        !_inputConfig?.hideAllItemsInInputDropdown &&\n        !(!_inputConfig.dropdownImageInput?.withText && isFocusInput) &&\n        !(\n            ['truck', 'trailer'].includes(\n                _inputConfig.dropdownImageInput?.template!\n            ) &&\n            isFocusInput &&\n            _inputConfig.dropdownImageInput?.remove\n        ) &&\n        !_inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl\n    ) {\n        <svg-icon\n            [src]=\"_inputConfig.dropdownImageInput?.url!\"\n            class=\"dropdown-selected-image {{\n                _inputConfig.dropdownImageInput?.class\n            }}\"\n            [ngClass]=\"{\n                'unset-color':\n                    isFocusInput && _inputConfig.dropdownImageInput?.class,\n            }\"\n            [svgStyle]=\"{\n                fill:\n                    _inputConfig.dropdownImageInput?.color && !isFocusInput\n                        ? _inputConfig.dropdownImageInput?.color\n                        : '#ffffff',\n            }\"\n        >\n        </svg-icon>\n    }\n\n    <!-- Special Dropdown Selected Image With Text With Initials name -->\n    @if (\n        _inputConfig?.dropdownImageInput?.image &&\n        !_inputConfig?.hideAllItemsInInputDropdown &&\n        _inputConfig?.dropdownImageInput?.url &&\n        !_inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl\n    ) {\n        <img\n            class=\"dropdown-selected-image name-initials-instead-url\"\n            [src]=\"_inputConfig.dropdownImageInput?.url\"\n            [alt]=\"'Input Image'\"\n        />\n    }\n    @if (\n        _inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl &&\n        !_inputConfig?.hideAllItemsInInputDropdown &&\n        !(!_inputConfig.dropdownImageInput?.withText && isFocusInput)\n    ) {\n        <div\n            class=\"no-profile-image dropdown-selected-image name-initials-instead-url\"\n        >\n            <app-ca-profile-image\n                [indx]=\"0\"\n                [size]=\"'small'\"\n                [type]=\"'user'\"\n                [name]=\"\n                    _inputConfig.dropdownImageInput?.nameInitialsInsteadUrl!\n                \"\n            >\n            </app-ca-profile-image>\n        </div>\n    }\n\n    <!-- Multiple Input Values -->\n    @if (_inputConfig?.multipleInputValues?.options?.length && !isFocusInput) {\n        <div\n            class=\"input-control {{\n                _inputConfig.multipleInputValues?.customClass\n            }}\"\n            (click)=\"toggleDropdownOptions()\"\n        >\n            @for (\n                item of _inputConfig.multipleInputValues?.options;\n                let indx = $index;\n                track indx\n            ) {\n                <span style=\"display: flex; gap: 6px; align-items: center\">\n                    @if (item?.logoName && item?.isImg) {\n                        <span>\n                            @if (item?.logoName !== 'no-url') {\n                                <img\n                                    [ngStyle]=\"{\n                                        width: '18px',\n                                        'aspect-ratio': 1,\n                                        'border-radis': '2px',\n                                    }\"\n                                    [src]=\"item.logoName\"\n                                    [alt]=\"item.value\"\n                                />\n                            }\n                            @if (item.logoName === 'no-url') {\n                                <div class=\"no-profile-image\">\n                                    <app-ca-profile-image\n                                        [indx]=\"0\"\n                                        [size]=\"'small'\"\n                                        [name]=\"item.value\"\n                                    >\n                                    </app-ca-profile-image>\n                                </div>\n                            }\n                            @if (item?.isOwner) {\n                                <div class=\"load-dispatches-ttd-owner\">\n                                    <svg-icon\n                                        [src]=\"inputSvgRoutes.ownerBadgeBlueSvg\"\n                                    ></svg-icon>\n                                </div>\n                            }\n                        </span>\n                    }\n                    @if (item?.logoName && item?.isSvg) {\n                        <svg-icon\n                            [ngClass]=\"{\n                                'payroll-deduction-truck-svg':\n                                    template ===\n                                    dropdownTemplateTypeEnum.PAYROLL_TRUCKS,\n                            }\"\n                            class=\"{{ item?.subFolder }} {{\n                                item?.logoType\n                                    ?.trim()\n                                    ?.replace(' ', '')\n                                    ?.toLowerCase()\n                            }}\"\n                            [src]=\"item?.logoName!\"\n                        >\n                        </svg-icon>\n                    }\n                    @if (!item?.isProgressBar) {\n                        <span\n                            class=\"multiple-input-text\"\n                            [ngStyle]=\"{ color: '#2F2F2F' }\"\n                            [ngClass]=\"{\n                                counter: item?.isCounter,\n                                'counter-one': item?.value === 1,\n                            }\"\n                        >\n                            {{ item.value }}\n                            @if (item?.second_value) {\n                                <span [ngStyle]=\"{ color: '#919191' }\">{{\n                                    item.second_value\n                                }}</span>\n                            }\n                        </span>\n                    }\n                    @if (item?.isProgressBar) {\n                        <ca-load-modal-progress-bar\n                            [totalAmount]=\"item.second_value!\"\n                            [availableCredit]=\"item.value ? item.value : 0\"\n                        >\n                        </ca-load-modal-progress-bar>\n                    }\n                </span>\n            }\n        </div>\n    }\n\n    <!-- Multiple Input Placeholder -->\n    @if (\n        _inputConfig?.multipleInputValues?.options?.length &&\n        isFocusInput &&\n        !getSuperControl?.value\n    ) {\n        <div\n            class=\"input-control multiple-input-placeholder {{\n                _inputConfig.multipleInputValues?.customClass\n            }}\"\n            [ngClass]=\"{\n                focus: isFocusInput,\n                'payroll-deduction-truck':\n                    template === dropdownTemplateTypeEnum.PAYROLL_TRUCKS,\n            }\"\n        >\n            @for (\n                item of _inputConfig.multipleInputValues?.options;\n                let indx = $index;\n                track indx\n            ) {\n                <span style=\"display: flex; gap: 6px; align-items: center\">\n                    @if (item?.logoName && item?.isImg) {\n                        <span [ngClass]=\"{ 'focusable-image': isFocusInput }\">\n                            @if (item?.logoName !== 'no-url') {\n                                <img\n                                    [ngStyle]=\"{\n                                        width: '18px',\n                                        'aspect-ratio': 1,\n                                        'border-radis': '2px',\n                                    }\"\n                                    [src]=\"item.logoName\"\n                                    [alt]=\"item.value\"\n                                />\n                            }\n                            @if (item.logoName === 'no-url') {\n                                <div class=\"no-profile-image\">\n                                    <app-ca-profile-image\n                                        [indx]=\"0\"\n                                        [size]=\"'small'\"\n                                        [name]=\"item.value!\"\n                                    >\n                                    </app-ca-profile-image>\n                                </div>\n                            }\n                        </span>\n                    }\n                    @if (item?.logoName && item?.isSvg) {\n                        <svg-icon\n                            [ngClass]=\"{\n                                'focusable-svg': isFocusInput,\n                                'payroll-deduction-truck-svg':\n                                    template ===\n                                    dropdownTemplateTypeEnum.PAYROLL_TRUCKS,\n                            }\"\n                            class=\"{{ item?.subFolder }} {{\n                                item?.logoType\n                                    ?.trim()\n                                    ?.replace(' ', '')\n                                    ?.toLowerCase()\n                            }}\"\n                            [src]=\"item?.logoName!\"\n                        >\n                        </svg-icon>\n                    }\n                    @if (!item?.isProgressBar) {\n                        <span\n                            class=\"multiple-input-text\"\n                            [ngClass]=\"{\n                                'focusable-text': isFocusInput,\n                                counter: item?.isCounter,\n                                'counter-focus':\n                                    item?.isCounter && isFocusInput,\n                                'counter-one': item?.value === 1,\n                                'ca-add-dot':\n                                    template ===\n                                    dropdownTemplateTypeEnum.LOAD_DISPATCHER,\n                            }\"\n                            [ngStyle]=\"{ color: '#6F9EE0' }\"\n                        >\n                            {{ item.value }}\n                            @if (item?.second_value) {\n                                <span>{{ item.second_value }}</span>\n                            }\n                        </span>\n                    }\n                    @if (item?.isProgressBar) {\n                        <ca-load-modal-progress-bar\n                            [totalAmount]=\"item.second_value!\"\n                            [availableCredit]=\"item.value ? item.value : 0\"\n                            [inputFocus]=\"isFocusInput\"\n                        >\n                        </ca-load-modal-progress-bar>\n                    }\n                </span>\n            }\n        </div>\n    }\n\n    <input\n        #input\n        [type]=\"_inputConfig.type | inputType: isTogglePassword\"\n        [id]=\"_inputConfig.id ? _inputConfig.id : _inputConfig.name\"\n        [name]=\"_inputConfig.name\"\n        [disabled]=\"_inputConfig.isDisabled!\"\n        [autocomplete]=\"\n            _inputConfig.autocomplete ? _inputConfig.autocomplete : 'off'\n        \"\n        [placeholder]=\"\n            (_inputConfig.placeholderInsteadOfLabel &&\n            _inputConfig.placeholder &&\n            isFocusInput\n                ? _inputConfig.placeholder\n                : '') ||\n            (_inputConfig.placeholder && _inputConfig.placeholderWithLabel\n                ? _inputConfig.placeholder\n                : _inputConfig.placeholder && isFocusInput\n                  ? _inputConfig.placeholder\n                  : '')\n        \"\n        [minLength]=\"_inputConfig.minLength ? _inputConfig.minLength : 0\"\n        [maxLength]=\"_inputConfig.maxLength ? _inputConfig.maxLength : 999\"\n        [mask]=\"_inputConfig.mask\"\n        [min]=\"_inputConfig.min ? _inputConfig.min : 0\"\n        [max]=\"_inputConfig.max\"\n        [step]=\"_inputConfig.step ? _inputConfig.step : null\"\n        [readOnly]=\"_inputConfig.readOnly\"\n        appMinMaxValue\n        [minValue]=\"_inputConfig.min!\"\n        [maxValue]=\"_inputConfig.max!\"\n        inputformat=\"dd-mm-yy\"\n        class=\"input-control {{ _inputConfig.textTransform }} {{\n            _inputConfig.textAlign\n        }} {{ _inputConfig.customClass }}\"\n        [ngClass]=\"\n            getSuperControl\n                | inputClass\n                    : isFocusInput\n                    : isTouchedInput\n                    : _inputConfig\n                    : input\n                    : isVisibleCommands\n                    : getSuperControl?.value\n                    : getSuperControl?.invalid\n                    : getSuperControl?.touched\n                    : isDropdownToggler\n                    : isEditInput\n                    : template\n        \"\n        (keypress)=\"onKeypress($event)\"\n        (keydown)=\"onKeydown($event)\"\n        (keyup)=\"onKeyup($event)\"\n        (blur)=\"onBlur($event)\"\n        (focus)=\"onFocus($event)\"\n        (select)=\"selectionChange($event)\"\n        (input)=\"onChange($any($event.target).value)\"\n        [(ngModel)]=\"input.value\"\n        [ngStyle]=\"\n            _inputConfig.statusStyle ? (input.value | loadStatusColor) : ''\n        \"\n    />\n\n    <!-- Placeholder Icon on Right Side -->\n    @if (_inputConfig.placeholderIconRightSide) {\n        <svg-icon\n            class=\"placeholder-icon-right-side {{\n                _inputConfig.placeholderIconColor\n            }}\"\n            [ngClass]=\"\n                isFocusInput\n                    | inputPlaceholderIconRightClass\n                        : getSuperControl\n                        : _inputConfig\n                        : isTouchedInput\n                        : getSuperControl?.value\n            \"\n            [src]=\"\n                _inputConfig.placeholderIconRightSide.toLowerCase()\n                    | caSvg: 'common'\n            \"\n        >\n        </svg-icon>\n    }\n\n    <!-- Input Error Message -->\n    @if (\n        !(!getSuperControl?.value && isFocusInput) &&\n        (isTouchedInput ||\n            getSuperControl?.touched ||\n            getSuperControl?.value) &&\n        getSuperControl?.invalid &&\n        !_inputConfig.isInvalidSearchInDropdown &&\n        !_inputConfig.isDisabled\n    ) {\n        @if (\n            !(_inputConfig.hideErrorMessage || _inputConfig.errorInsideInput)\n        ) {\n            <span class=\"input-error {{ _inputConfig.customClass }}\">\n                {{ getSuperControl?.errors | inputError: _inputConfig.name }}\n            </span>\n        }\n        @if (_inputConfig.errorInsideInput) {\n            <span class=\"error-inside-input {{ _inputConfig.customClass }}\">\n                {{ getSuperControl?.errors | inputError: _inputConfig.name }}\n            </span>\n        }\n    }\n\n    <!-- Input Fixed Placeholder -->\n    @if (_inputConfig.fixedPlacholder && input.value) {\n        <span class=\"input-fixed-placehoder-label\">\n            {{ _inputConfig.fixedPlacholder }}\n        </span>\n    }\n</div>\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaDispatcherFilterConfig {\n  static getDispatcherSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Dispatcher',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaDriverFilterConfig {\n  static getDriverSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Driver',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaFuelStopFilterConfig {\n  static getFuelStopSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Stop',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaBrokerFilterConfig {\n  static getBrokerSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Broker',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import {\n    Component,\n    Input,\n    OnInit,\n    OnDestroy,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// enums\nimport { eLoadStatus, eGeneralActions } from '../../../../enums';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaDispatcherFilterConfig } from './config/ca-dispatcher-filter.config';\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { CaDriverFilterConfig } from './config/ca-driver-filter.config';\nimport { CaFuelStopFilterConfig } from './config/ca-fuel-stop-filter.config';\nimport { CaBrokerFilterConfig } from './config/ca-broker-filter.config';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes';\n\n@Component({\n    selector: 'app-ca-dispatcher-filter',\n    templateUrl: './ca-dispatcher-filter.component.html',\n    styleUrls: ['./ca-dispatcher-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // modules\n        CommonModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        // components\n        CaInputComponent,\n        CaProfileImageComponent,\n        // pipes\n        CaSvgPipe,\n    ],\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n    ]\n})\nexport class CaDispatcherFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() filterTitle!: string;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() toDoSubType!: string;\n    @Input() unselectedUser!: ArrayStatus[];\n    @Input() isSearchExpanded: boolean = false;\n\n    private destroy$ = new Subject<void>();\n\n    public eLoadStatus = eLoadStatus;\n    public searchForm!: UntypedFormGroup;\n    public searchInputValue!: string;\n\n    public unselectedVisibleCount: number = 0;\n    public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n    public selectedUser: userSelected[] = [];\n    public filterActiveArray: ArrayStatus[] = [];\n    public isAscendingSortOrder: boolean = true;\n    public isButtonAvailable: boolean = false;\n    public totalFiltersNum: number = 0;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n\n        this.watchSearchFormValueChanges();\n    }\n\n    get dispatcherSearch(): ICaInput {\n        switch (this.type) {\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n                return CaDispatcherFilterConfig.getDispatcherSearch();\n\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n                return CaDriverFilterConfig.getDriverSearch();\n\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n                return CaFuelStopFilterConfig.getFuelStopSearch();\n\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                return CaBrokerFilterConfig.getBrokerSearch();\n\n            default:\n                throw new Error('Unknown filter type');\n        }\n    }\n\n    public getInitials(name: string | undefined): string {\n        return FilterHelper.getInitials(name);\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleFilterClose(\n            this.unselectedUser,\n            this.selectedUser,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public setFilterValue(\n        $event: Event\n    ): filterOutput | filterOutputWithParams | undefined {\n        this.filterActiveArray = [...this.selectedUser];\n        this.totalFiltersNum = this.filterActiveArray.length;\n        let subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        const mainArray: ArrayStatus[] = this.unselectedUser?.map(\n            (item: ArrayStatus) => {\n                return {\n                    ...item,\n                    currentSet: item.isSelected,\n                };\n            }\n        );\n\n        const selectedUsersIdArray: number[] = this.filterActiveArray.map(\n            (data: ArrayStatus) => data.id!\n        );\n\n        if (!selectedUsersIdArray.length) {\n            this.clearAll($event);\n            return;\n        }\n\n        const queryParams = selectedUsersIdArray || {};\n        subType =\n            this.toDoSubType ??\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedUser = [];\n        this.filterActiveArray = [];\n        this.totalFiltersNum = 0;\n\n        this.unselectedUser?.map((item: ArrayStatus) => {\n            return {\n                ...item,\n                isSelected: false,\n                currentSet: false,\n            };\n        });\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n    }\n\n    public addToSelectedUser(item: userSelected, indx: number) {\n        const mainArray = this.unselectedUser;\n\n        mainArray[indx].isSelected = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (dispatcher) => !dispatcher.isSelected\n        )?.length;\n\n        this.selectedUser = [...this.selectedUser, item];\n\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(item: userSelected, indx: number): void {\n        this.selectedUser.splice(indx, 1);\n        const id = item.id;\n        const mainArray = this.unselectedUser?.map(\n            (dispatcher: ArrayStatus) => {\n                return {\n                    ...dispatcher,\n                    isSelected: dispatcher.id === id,\n                };\n            }\n        );\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (dispatcher) => !dispatcher.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkFilterActiveValue(\n            this.selectedUser,\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                if (changes.search) {\n                    const inputValue = changes.search.toLowerCase();\n                    this.searchInputValue = inputValue;\n\n                    this.unselectedUser = this.unselectedUser?.map(\n                        (item: ArrayStatus) => {\n                            return {\n                                ...item,\n                                hidden: !item\n                                    .name!.toLowerCase()\n                                    .includes(inputValue),\n                            };\n                        }\n                    );\n                } else\n                    this.unselectedUser = this.unselectedUser?.map(\n                        (item: ArrayStatus) => {\n                            return {\n                                ...item,\n                                hidden: false,\n                            };\n                        }\n                    );\n            });\n    }\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortItemsCount(\n            this.unselectedUser,\n            this.selectedUser,\n            this.isAscendingSortOrder\n        );\n\n        this.unselectedUser = sortResult.sortedFilterArray;\n        this.selectedUser = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (\n    type === 'dispatcherFilter' ||\n    type === 'driverFilter' ||\n    type === 'fuelStopFilter' ||\n    type === 'brokerFilter'\n) {\n    @let isDispatcherOrDriverFilter =\n        type === 'dispatcherFilter' || type === 'driverFilter';\n    <div\n        class=\"search-input-header\"\n        [class.activeSearch]=\"isSearchExpanded\"\n        [class.inactiveSearch]=\"!isSearchExpanded\"\n        [formGroup]=\"searchForm\"\n    >\n        <app-ca-input\n            class=\"input-form-holder\"\n            formControlName=\"search\"\n            [inputConfig]=\"dispatcherSearch\"\n        ></app-ca-input>\n    </div>\n    <div\n        class=\"selected-dispatcher-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (item of selectedUser; let indx = $index; track indx) {\n            <div\n                class=\"dispatcher-main-holder d-flex align-items-center justify-content-center\"\n                [@inOutAnimation]=\"'in'\"\n                [@showAnimation]=\"!!isFilterActive\"\n                (click)=\"removeFromSelectedUser(item, indx)\"\n            >\n                @if (isDispatcherOrDriverFilter) {\n                    <div\n                        class=\"dispatcher-profile-img d-flex align-items-center\"\n                    >\n                        @if (item.avatar) {\n                            <div\n                                class=\"dispatcher_avatar\"\n                                style.background-image=\"url('{{\n                                    item.avatar\n                                }}')\"\n                            ></div>\n                        } @else {\n                            <app-ca-profile-image\n                                [indx]=\"indx\"\n                                [textShortName]=\"item.name\"\n                                [size]=\"'small'\"\n                            ></app-ca-profile-image>\n                        }\n                    </div>\n                }\n\n                <div\n                    class=\"selected-dispatcher-frame d-flex align-items-center justify-content-between\"\n                    [class.dispatcher-frame-no-icon]=\"\n                        type !== 'dispatcherFilter' && type !== 'driverFilter'\n                    \"\n                >\n                    <div class=\"selected-name-text d-flex align-items-center\">\n                        <span> {{ item.name }}</span>\n                    </div>\n                    @if (item.count) {\n                        <span\n                            class=\"count-holder d-inline-flex justify-content-center align-items-center activeCount\"\n                        >\n                            {{ item.count }}\n                        </span>\n                    } @else {\n                        // TODO Somebody should look at this, what is the\n                        purpose of this if\n                        <ng-container *ngIf=\"!item.count; else noCounter\">\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </ng-container>\n                        <ng-template #noCounter>\n                            <div class=\"counter-holder activeCounter\">2</div>\n                        </ng-template>\n                    }\n\n                    <div\n                        class=\"icon-delete d-flex justify-content-center align-items-center\"\n                        (click)=\"removeFromSelectedUser(item, indx)\"\n                        [class.counterMargin]=\"item.count\"\n                    >\n                        <div class=\"icon-delete-hold\"></div>\n                        <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        }\n        @if (selectedUser.length) {\n            <div class=\"border-filter border-thrird-margin\"></div>\n        }\n    </div>\n    <div\n        class=\"filter-dispatcher-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (item of unselectedUser; let indx = $index; track indx) {\n            <div class=\"dispatcher-frame-holder d-flex align-items-center\">\n                @if (!item.hidden && !item.isSelected) {\n                    <div\n                        [@inOutAnimation]=\"'in'\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"addToSelectedUser(item, indx)\"\n                        class=\"dispatcher-main-holder d-flex align-items-center justify-content-center\"\n                    >\n                        @if (isDispatcherOrDriverFilter) {\n                            <div\n                                class=\"dispatcher-profile-img d-flex align-items-center\"\n                            >\n                                @if (item.avatar) {\n                                    <div\n                                        class=\"dispatcher_avatar\"\n                                        style.background-image=\"url('{{\n                                            item.avatar\n                                        }}')\"\n                                    ></div>\n                                } @else {\n                                    <app-ca-profile-image\n                                        [indx]=\"indx\"\n                                        [textShortName]=\"item.name\"\n                                        [size]=\"'small'\"\n                                    >\n                                    </app-ca-profile-image>\n                                }\n                            </div>\n                        }\n\n                        <div\n                            class=\"dispatcher-frame d-flex align-items-center\"\n                            [class.dispatcher-frame-no-icon]=\"\n                                type !== 'dispatcherFilter' &&\n                                type !== 'driverFilter'\n                            \"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.name }} </span>\n                            </div>\n                            @if (item?.count) {\n                                <span\n                                    class=\"count-holder d-inline-flex justify-content-center align-items-center\"\n                                >\n                                    {{ item.count }}\n                                </span>\n                            }\n                        </div>\n                    </div>\n                }\n            </div>\n        }\n    </div>\n\n    @if (unselectedUser?.length !== selectedUser?.length) {\n        <div class=\"border-filter\"></div>\n    }\n}\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n    keyframes,\n} from '@angular/animations';\n\nexport const stateHeader = (type: string) =>\n    trigger(type, [\n        state('in', style({ opacity: 1, height: '*' })),\n        transition(':enter', [\n            animate(\n                150,\n                keyframes([\n                    style({ opacity: 0, offset: 0, height: '0px' }),\n                    style({ opacity: 1, offset: 1, height: '*' }),\n                ])\n            ),\n        ]),\n        transition(':leave', [\n            animate(\n                150,\n                keyframes([\n                    style({ opacity: 1, offset: 0 }),\n                    style({ opacity: 0, offset: 1, height: '0px' }),\n                ])\n            ),\n        ]),\n    ]);\n","// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { AddressList } from '../../../ca-input-address-dropdown/models/address-list.model';\nimport { UserGroup } from '../../components/ca-user-filter/models/ca-user-group.model';\n\nexport class DirectiveConstants {\n  static UNSELECTED_USER: ArrayStatus[] = [\n    {\n      name: 'Aleksandar Djordjevic',\n      id: 1,\n      avatar:\n        'https://www.gradprijepolje.com/wp-content/uploads/2021/09/Divac.jpg',\n      count: 3,\n    },\n    {\n      name: 'Denis Rodman',\n      id: 2,\n      count: 8,\n    },\n    {\n      name: 'Eric Halpert',\n      id: 3,\n      count: 7,\n    },\n    {\n      name: 'Jacob Forman',\n      id: 4,\n      count: 2,\n    },\n    {\n      name: 'James Robertson',\n      id: 5,\n      count: 5,\n    },\n    {\n      name: 'Kevin Malone',\n      id: 6,\n      count: 9,\n    },\n    {\n      name: 'Michael Tollbert',\n      id: 7,\n      count: 1,\n    },\n    {\n      name: 'Michael Rodman',\n      id: 8,\n      count: 4,\n    },\n    {\n      name: 'James Halpert',\n      id: 9,\n      count: 6,\n    },\n    {\n      name: 'Anna Beasley',\n      id: 10,\n      count: 3,\n    },\n    {\n      name: 'Denis Halpert',\n      id: 11,\n      count: 7,\n    },\n    {\n      name: 'Eric James',\n      id: 12,\n      count: 2,\n    },\n    {\n      name: 'Michael Forman',\n      id: 13,\n      count: 5,\n    },\n    {\n      name: 'James Lopez',\n      id: 14,\n      count: 8,\n    },\n  ];\n\n  static DRIVER_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Angelo Trotter',\n      image: '',\n    },\n    {\n      id: 2,\n      name: 'Aleksandra Djordjevic',\n      image: '',\n    },\n    {\n      id: 3,\n      name: 'Alex Midleman',\n      image: '',\n    },\n    {\n      id: 4,\n      name: 'Ben Dover',\n      image: '',\n    },\n    {\n      id: 5,\n      name: 'Carlos Huanito',\n      image: '',\n    },\n    {\n      id: 6,\n      name: 'Chirs Griffin',\n      image: '',\n    },\n    {\n      id: 7,\n      name: 'Erica Forman',\n      image: '',\n    },\n    {\n      id: 8,\n      name: 'Glan Danzig',\n      image: '',\n    },\n  ];\n\n  static FUEL_STOP_ARRAY: ArrayStatus[] = [\n    {\n      name: '7-11 STORE',\n      id: 1,\n      count: 7,\n    },\n    {\n      name: 'PILOT TRAVEL STOP',\n      id: 2,\n      count: 2,\n    },\n    {\n      name: 'RR HICKORY HILLS',\n      id: 3,\n      count: 3,\n    },\n    {\n      name: 'SHEETZ',\n      id: 4,\n      count: 9,\n    },\n    {\n      name: 'QUIK TRIP',\n      id: 5,\n      count: 3,\n    },\n    {\n      name: 'CORNER STORE GAS',\n      id: 6,\n      count: 11,\n    },\n    {\n      name: 'FUEL PROPOSITION',\n      id: 7,\n      count: 2,\n    },\n    {\n      name: 'BEHEMOTH GAS STATION',\n      id: 8,\n      count: 4,\n    },\n  ];\n\n  static BROKER_ARRAY: ArrayStatus[] = [\n    {\n      name: 'R2 LOGISTICS',\n      id: 1,\n      count: 20,\n    },\n    {\n      name: 'WEBIZ CONFERENCE',\n      id: 1,\n      count: 18,\n    },\n    {\n      name: 'ANTHYM LOGISTICS, LLC',\n      id: 1,\n      count: 16,\n    },\n    {\n      name: 'LOGY SUPPLY CHAIN',\n      id: 1,\n      count: 7,\n    },\n    {\n      name: 'EVERYONE ON TIME SAFELY',\n      id: 1,\n      count: 2,\n    },\n    {\n      name: 'R2 LOGISTICS',\n      id: 1,\n      count: 1,\n    },\n  ];\n\n  static USA_STATES: ArrayStatus[] = [\n    {\n      id: 1,\n      stateName: 'Alabama',\n      stateShortName: 'AL',\n    },\n    {\n      id: 2,\n      stateName: 'Alaska',\n      stateShortName: 'AK',\n    },\n    {\n      id: 3,\n      stateName: 'American Samoa',\n      stateShortName: 'AS',\n    },\n    {\n      id: 4,\n      stateName: 'Arizona',\n      stateShortName: 'AZ',\n    },\n    {\n      id: 5,\n      stateName: 'Arkansas',\n      stateShortName: 'AR',\n    },\n    {\n      id: 6,\n      stateName: 'California',\n      stateShortName: 'CA',\n    },\n    {\n      id: 7,\n      stateName: 'Colorado',\n      stateShortName: 'CO',\n    },\n    {\n      id: 8,\n      stateName: 'Connecticut',\n      stateShortName: 'CT',\n    },\n    {\n      id: 9,\n      stateName: 'Delaware',\n      stateShortName: 'DE',\n    },\n    {\n      id: 10,\n      stateName: 'District Of Columbia',\n      stateShortName: 'DC',\n    },\n    {\n      id: 11,\n      stateName: 'Florida',\n      stateShortName: 'FL',\n    },\n    {\n      id: 12,\n      stateName: 'Georgia',\n      stateShortName: 'GA',\n    },\n    {\n      id: 13,\n      stateName: 'Guam',\n      stateShortName: 'GU',\n    },\n    {\n      id: 14,\n      stateName: 'Hawaii',\n      stateShortName: 'HI',\n    },\n    {\n      id: 15,\n      stateName: 'Idaho',\n      stateShortName: 'ID',\n    },\n    {\n      id: 16,\n      stateName: 'Illinois',\n      stateShortName: 'IL',\n    },\n    {\n      id: 17,\n      stateName: 'Indiana',\n      stateShortName: 'IN',\n    },\n    {\n      id: 18,\n      stateName: 'Iowa',\n      stateShortName: 'IA',\n    },\n    {\n      id: 19,\n      stateName: 'Kansas',\n      stateShortName: 'KS',\n    },\n    {\n      id: 20,\n      stateName: 'Kentucky',\n      stateShortName: 'KY',\n    },\n    {\n      id: 21,\n      stateName: 'Louisiana',\n      stateShortName: 'LA',\n    },\n    {\n      id: 22,\n      stateName: 'Maine',\n      stateShortName: 'ME',\n    },\n    {\n      id: 23,\n      stateName: 'Maryland',\n      stateShortName: 'MD',\n    },\n    {\n      id: 24,\n      stateName: 'Massachusetts',\n      stateShortName: 'MA',\n    },\n    {\n      id: 25,\n      stateName: 'Michigan',\n      stateShortName: 'MI',\n    },\n    {\n      id: 26,\n      stateName: 'Minnesota',\n      stateShortName: 'MN',\n    },\n    {\n      id: 27,\n      stateName: 'Mississippi',\n      stateShortName: 'MS',\n    },\n    {\n      id: 28,\n      stateName: 'Missouri',\n      stateShortName: 'MO',\n    },\n    {\n      id: 29,\n      stateName: 'Montana',\n      stateShortName: 'MT',\n    },\n    {\n      id: 30,\n      stateName: 'Nebraska',\n      stateShortName: 'NE',\n    },\n    {\n      id: 31,\n      stateName: 'Nevada',\n      stateShortName: 'NV',\n    },\n    {\n      id: 32,\n      stateName: 'New Hampshire',\n      stateShortName: 'NH',\n    },\n    {\n      id: 33,\n      stateName: 'New Jersey',\n      stateShortName: 'NJ',\n    },\n    {\n      id: 34,\n      stateName: 'New Mexico',\n      stateShortName: 'NM',\n    },\n    {\n      id: 35,\n      stateName: 'New York',\n      stateShortName: 'NY',\n    },\n    {\n      id: 36,\n      stateName: 'North Carolina',\n      stateShortName: 'NC',\n    },\n    {\n      id: 37,\n      stateName: 'North Dakota',\n      stateShortName: 'ND',\n    },\n    {\n      id: 38,\n      stateName: 'Northern Mariana Islands',\n      stateShortName: 'MP',\n    },\n    {\n      id: 39,\n      stateName: 'Ohio',\n      stateShortName: 'OH',\n    },\n    {\n      id: 40,\n      stateName: 'Oklahoma',\n      stateShortName: 'OK',\n    },\n    {\n      id: 41,\n      stateName: 'Oregon',\n      stateShortName: 'OR',\n    },\n    {\n      id: 42,\n      stateName: 'Palau',\n      stateShortName: 'PW',\n    },\n    {\n      id: 43,\n      stateName: 'Pennsylvania',\n      stateShortName: 'PA',\n    },\n    {\n      id: 44,\n      stateName: 'Puerto Rico',\n      stateShortName: 'PR',\n    },\n    {\n      id: 45,\n      stateName: 'Rhode Island',\n      stateShortName: 'RI',\n    },\n    {\n      id: 46,\n      stateName: 'South Carolina',\n      stateShortName: 'SC',\n    },\n    {\n      id: 47,\n      stateName: 'South Dakota',\n      stateShortName: 'SD',\n    },\n    {\n      id: 48,\n      stateName: 'Tennessee',\n      stateShortName: 'TN',\n    },\n    {\n      id: 49,\n      stateName: 'Texas',\n      stateShortName: 'TX',\n    },\n    {\n      id: 50,\n      stateName: 'Utah',\n      stateShortName: 'UT',\n    },\n    {\n      id: 51,\n      stateName: 'Vermont',\n      stateShortName: 'VT',\n    },\n    {\n      id: 52,\n      stateName: 'Virgin Islands',\n      stateShortName: 'VI',\n    },\n    {\n      id: 53,\n      stateName: 'Virginia',\n      stateShortName: 'VA',\n    },\n    {\n      id: 54,\n      stateName: 'Washington',\n      stateShortName: 'WA',\n    },\n    {\n      id: 55,\n      stateName: 'West Virginia',\n      stateShortName: 'WV',\n    },\n    {\n      id: 56,\n      stateName: 'Wisconsin',\n      stateShortName: 'WI',\n    },\n    {\n      id: 57,\n      stateName: 'Wyoming',\n      stateShortName: 'WY',\n    },\n  ];\n\n  static CANADA_STATES: ArrayStatus[] = [\n    {\n      id: 1,\n      stateName: 'Alberta',\n      stateShortName: 'AB',\n    },\n    {\n      id: 2,\n      stateName: 'British Columbia',\n      stateShortName: 'BC',\n    },\n    {\n      id: 3,\n      stateName: 'Manitoba',\n      stateShortName: 'MB',\n    },\n    {\n      id: 4,\n      stateName: 'New Brunswick',\n      stateShortName: 'NB',\n    },\n    {\n      id: 5,\n      stateName: 'Newfoundland and Labrador',\n      stateShortName: 'NL',\n    },\n    {\n      id: 6,\n      stateName: 'Nova Scotia',\n      stateShortName: 'NS',\n    },\n    {\n      id: 7,\n      stateName: 'Ontario',\n      stateShortName: 'ON',\n    },\n    {\n      id: 8,\n      stateName: 'Prince Edward Island',\n      stateShortName: 'PE',\n    },\n    {\n      id: 9,\n      stateName: 'Quebec',\n      stateShortName: 'QC',\n    },\n    {\n      id: 10,\n      stateName: 'Saskatchewan',\n      stateShortName: 'SK',\n    },\n    {\n      id: 11,\n      stateName: 'Northwest Territories',\n      stateShortName: 'NT',\n    },\n    {\n      id: 12,\n      stateName: 'Nunavut',\n      stateShortName: 'NU',\n    },\n    {\n      id: 13,\n      stateName: 'Yukon',\n      stateShortName: 'YT',\n    },\n  ];\n\n  static TRUCK_TYPE_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Semi Truck',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-truck.svg',\n      count: 47,\n    },\n    {\n      id: 2,\n      name: 'Semi Sleeper',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-wSleeper.svg',\n      count: 3,\n    },\n    {\n      id: 3,\n      name: 'Box Truck',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_box-truck.svg',\n      count: 5,\n    },\n    {\n      id: 4,\n      name: 'Cargo Van',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_cargo-van.svg',\n      count: 2,\n    },\n    {\n      id: 5,\n      name: 'Tow Truck',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_tow-truck.svg',\n      count: 7,\n    },\n    {\n      id: 6,\n      name: 'Car Hauler',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_car-hauler.svg',\n      count: 4,\n    },\n    {\n      id: 7,\n      name: 'Spotter',\n      icon: 'assets/ca-components/svg/common/trucks/ic_truck_spotter.svg',\n      count: 1,\n    },\n  ];\n\n  static TRAILER_TYPE_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Reefer',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_reefer.svg',\n      count: 47,\n    },\n    {\n      id: 2,\n      name: 'Dry Van',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dryvan.svg',\n      count: 7,\n    },\n    {\n      id: 3,\n      name: 'Side Kit',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_side-kit.svg',\n      count: 4,\n    },\n    {\n      id: 4,\n      name: 'Conestoga',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_conestoga.svg',\n      count: 12,\n    },\n    {\n      id: 5,\n      name: 'Dumper',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dumper.svg',\n      count: 2,\n    },\n    {\n      id: 6,\n      name: 'Container',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_container.svg',\n      count: 25,\n    },\n    {\n      id: 7,\n      name: 'Tanker',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_tanker.svg',\n      count: 15,\n    },\n    {\n      id: 8,\n      name: 'Car Hauler',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_carhauler.svg',\n      count: 6,\n    },\n    {\n      id: 9,\n      name: 'Flat Bed',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_flatbed.svg',\n      count: 8,\n    },\n    {\n      id: 10,\n      name: 'Low Boy/RGN',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_low-boy.svg',\n      count: 3,\n    },\n    {\n      id: 11,\n      name: 'Chassis',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_chassis.svg',\n      count: 9,\n    },\n    {\n      id: 12,\n      name: 'Step Deck',\n      icon: 'assets/ca-components/svg/common/trailers/ic_trailer_step-deck.svg',\n      count: 5,\n    },\n    {\n      id: 13,\n      name: 'Tanker Pneumatic',\n      icon: 'assets/svg/common/trailers/ic_trailer_tanker-pneumatic.svg',\n    },\n  ];\n\n  static PM_FILTER_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Engine Oil & Filter',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_oil_pump.svg',\n      count: 5,\n    },\n    {\n      id: 2,\n      name: 'Air Filter',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_air_filter.svg',\n      count: 3,\n    },\n    {\n      id: 3,\n      name: 'Belts',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_fuel_pump.svg',\n      count: 2,\n    },\n    {\n      id: 4,\n      name: 'Transmission Fluid',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_air_compressor.svg',\n      count: 4,\n    },\n    {\n      id: 5,\n      name: 'Engine Tune-Up',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_ac_compressor.svg',\n      count: 7,\n    },\n    {\n      id: 6,\n      name: 'Alignment',\n      icon: 'assets/ca-components/svg/common/category/ic_alignment.svg',\n      count: 6,\n    },\n    {\n      id: 7,\n      name: 'Battery',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_battery.svg',\n      count: 1,\n    },\n    {\n      id: 8,\n      name: 'Brake Chamber',\n      icon: 'assets/ca-components/svg/common/repair-pm/ic_brake_filter.svg',\n      count: 2,\n    },\n  ];\n\n  static CATEGORY_REPAIR_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Mobile',\n      icon: 'assets/ca-components/svg/common/repair-services/ic_mobile.svg',\n    },\n    {\n      id: 2,\n      name: 'Shop',\n      icon: 'assets/ca-components/svg/common/repair-services/ic_shop.svg',\n      activeIcon: 'assets/ca-components/svg/common/ic_shop_cart.svg',\n    },\n    {\n      id: 3,\n      name: 'Towing',\n      icon: 'assets/ca-components/svg/common/ic_towing.svg',\n    },\n    {\n      id: 4,\n      name: 'Parts',\n      icon: 'assets/ca-components/svg/common/repair-services/ic_parts.svg',\n    },\n    {\n      id: 5,\n      name: 'Tire',\n      icon: 'assets/ca-components/svg/common/repair-services/ic_tire.svg',\n    },\n    {\n      id: 6,\n      name: 'Dealer',\n      icon: 'assets/ca-components/svg/common/repair-services/ic_dealer.svg',\n    },\n  ];\n\n  static FUEL_ITEM_FILTER_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Diesel',\n      count: 14,\n    },\n    {\n      id: 2,\n      name: 'Reefer',\n      count: 12,\n    },\n    {\n      id: 3,\n      name: 'DEF',\n      count: 10,\n    },\n    {\n      id: 4,\n      name: 'Scale Ticket',\n      count: 9,\n    },\n    {\n      id: 5,\n      name: 'Oil',\n      count: 8,\n    },\n    {\n      id: 6,\n      name: 'Truckwash',\n      count: 5,\n    },\n    {\n      id: 7,\n      name: 'Parking',\n      count: 4,\n    },\n    {\n      id: 8,\n      name: 'Other',\n      count: 2,\n    },\n  ];\n\n  static DEPARTMANT_ARRAY: ArrayStatus[] = [\n    {\n      name: 'Accounting',\n      id: 1,\n      count: 8,\n    },\n    {\n      name: 'Dispatch',\n      id: 2,\n      count: 5,\n    },\n    {\n      name: 'Recruitment',\n      id: 3,\n      count: 2,\n    },\n    {\n      name: 'Repair',\n      id: 4,\n      count: 1,\n    },\n    {\n      name: 'Safety',\n      id: 5,\n      count: 1,\n    },\n    {\n      name: 'Other',\n      id: 6,\n      count: 1,\n    },\n  ];\n\n  static PARKING_ARRAY: ArrayStatus[] = [\n    {\n      name: 'Central Parking',\n      id: 1,\n      count: 20,\n    },\n    {\n      name: 'Grand South Parking 33',\n      id: 2,\n      count: 18,\n    },\n    {\n      name: 'North Parking 1996',\n      id: 3,\n      count: 15,\n    },\n    {\n      name: 'South Central Parking',\n      id: 4,\n      count: 13,\n    },\n  ];\n\n  static TAG_ARRAY: ArrayStatus[] = [\n    {\n      name: 'Article of Incorporation',\n      id: 1,\n      count: 10,\n    },\n    {\n      name: 'IFTA Licence',\n      id: 2,\n      count: 9,\n    },\n    {\n      name: 'EIN',\n      id: 3,\n      count: 8,\n    },\n    {\n      name: 'W9',\n      id: 4,\n      count: 6,\n    },\n    {\n      name: 'Setup Packet',\n      id: 4,\n      count: 5,\n    },\n    {\n      name: 'MC Certificate',\n      id: 4,\n      count: 4,\n    },\n    {\n      name: 'Other',\n      id: 4,\n      count: 3,\n    },\n    {\n      name: 'No Tag',\n      id: 4,\n      count: 2,\n    },\n  ];\n\n  static ACTION_ARRAY: ArrayStatus[] = [\n    {\n      name: 'Add / Create',\n      id: 1,\n      count: 123,\n      icon: 'assets/ca-components/svg/common/actions/action_add.svg',\n    },\n    {\n      name: 'Request',\n      id: 1,\n      count: 36,\n      icon: 'assets/ca-components/svg/common/actions/action_add.svg',\n    },\n    {\n      name: 'Edit / Update',\n      id: 1,\n      count: 10,\n      icon: 'assets/ca-components/svg/common/actions/action_recheck.svg',\n    },\n    {\n      name: 'Connect - Disconnect',\n      id: 1,\n      count: 11,\n      icon: 'assets/ca-components/svg/common/actions/action_recheck.svg',\n    },\n    {\n      name: 'Move to - from',\n      id: 1,\n      count: 7,\n      icon: 'assets/ca-components/svg/common/actions/action_play.svg',\n    },\n    {\n      name: 'Mark - Unmark',\n      id: 1,\n      count: 8,\n      icon: 'assets/ca-components/svg/common/actions/action_check.svg',\n    },\n    {\n      name: 'Review & Rate',\n      id: 1,\n      count: 13,\n      icon: 'assets/ca-components/svg/common/actions/action_write.svg',\n    },\n    {\n      name: 'Archive - Unarchive',\n      id: 1,\n      count: 18,\n      icon: 'assets/ca-components/svg/common/actions/action_stop.svg',\n    },\n    {\n      name: 'Deactivate - Activate',\n      id: 1,\n      count: 19,\n      icon: 'assets/ca-components/svg/common/actions/action_stop.svg',\n    },\n    {\n      name: 'Delete',\n      id: 1,\n      count: 5,\n      icon: 'assets/ca-components/svg/common/actions/action_x.svg',\n    },\n  ];\n\n  static LABEL_ARRAY: ArrayStatus[] = [\n    {\n      id: 1,\n      name: 'Lorem Ipsum',\n      color: '#6692F1',\n      count: 13,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 2,\n      name: 'Dolor Sit Amet',\n      color: '#A08266',\n      count: 9,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 3,\n      name: 'Consectetur Sadipiscing',\n      color: '#DAAD4F',\n      count: 2,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 4,\n      name: 'Elit, Sed do Eiusmod',\n      color: '#56B4AC',\n      count: 7,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 5,\n      name: 'Tempor Incididunt',\n      color: '#5755DF',\n      count: 5,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 6,\n      name: 'Labore et Dolore',\n      color: '#77BF56',\n      count: 1,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 7,\n      name: 'Ut Enim Ad',\n      color: '#FF906D',\n      count: 2,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 8,\n      name: 'Minim Veniam',\n      color: '#E668A0',\n      count: 3,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 9,\n      name: 'Magna',\n      color: '#B370F0',\n      count: 11,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 10,\n      name: 'Dolor Sit',\n      color: '#E66767',\n      count: 3,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 11,\n      name: 'Sadipiscing Elitr',\n      color: '#FAB15C',\n      count: 7,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n    {\n      id: 12,\n      name: 'No Label',\n      count: 21,\n      icon: 'assets/ca-components/svg/common/ic_label.svg',\n    },\n  ];\n\n  static ADDRESS_LIST_ARRAY: AddressList[] = [\n    { id: 1, name: 'Central Park', address: 'New York, NY 10024' },\n    { id: 2, name: 'Golden Gate Park', address: 'San Francisco, CA 94122' },\n    { id: 3, name: 'Millennium Park', address: 'Chicago, IL 60601' },\n    { id: 4, name: 'Hyde Park', address: 'London SW7 1ET, United Kingdom' },\n    { id: 5, name: 'Eiffel Tower', address: 'Champ de Mars, Paris, France' },\n    {\n      id: 6,\n      name: 'Tokyo Tower',\n      address: '4 Chome-2-8 Shibakoen, Minato City, Tokyo, Japan',\n    },\n    {\n      id: 7,\n      name: 'Sydney Opera House',\n      address: 'Bennelong Point, Sydney NSW 2000, Australia',\n    },\n    {\n      id: 8,\n      name: 'Colosseum',\n      address: 'Piazza del Colosseo, 1, Rome, Italy',\n    },\n    { id: 9, name: 'Great Wall of China', address: 'Huairou District, China' },\n    { id: 10, name: 'Statue of Liberty', address: 'New York, NY 10004' },\n  ];\n\n  static USER_GROUP_ARRAY: UserGroup[] = [\n    {\n      label: 'Driver',\n      isOpen: true,\n      items: [\n        {\n          name: 'Angelo Trotter',\n          id: 1,\n          avatar:\n            'https://www.gradprijepolje.com/wp-content/uploads/2021/09/Divac.jpg',\n          count: 3,\n        },\n        {\n          name: 'Aleksandar Djordjevic',\n          id: 2,\n          count: 8,\n        },\n        {\n          name: 'Alex Middleman',\n          id: 3,\n          count: 31,\n        },\n        {\n          name: 'Carlos Huanito',\n          id: 4,\n          count: 7,\n        },\n        {\n          name: 'Tony Montana',\n          id: 5,\n          count: 7,\n        },\n      ],\n    },\n    {\n      label: 'Accounting',\n      isOpen: true,\n      items: [\n        {\n          name: 'Angela Trotter',\n          id: 6,\n          count: 6,\n        },\n        {\n          name: 'Glan Danzig',\n          id: 7,\n          count: 5,\n        },\n      ],\n    },\n    {\n      label: 'Dispatch',\n      isOpen: true,\n      items: [\n        {\n          name: 'Aleksandra Djordjevic',\n          id: 8,\n          count: 3,\n        },\n        {\n          name: 'Ban Dover',\n          id: 9,\n          count: 8,\n        },\n        {\n          name: 'Carlos Huanito',\n          id: 10,\n          count: 9,\n        },\n        {\n          name: 'Hugh Hefner',\n          id: 11,\n          count: 5,\n        },\n      ],\n    },\n    {\n      label: 'Repair',\n      isOpen: true,\n      items: [\n        {\n          name: 'Denis Rodman',\n          id: 12,\n          count: 16,\n        },\n      ],\n    },\n  ];\n\n  static MODULE_GROUP_ARRAY: UserGroup[] = [\n    {\n      label: 'List',\n      isOpen: true,\n      items: [\n        {\n          name: 'Load',\n          id: 1,\n          icon: 'assets/ca-components/svg/common/ic_load.svg',\n          count: 3,\n        },\n        {\n          name: 'Customer',\n          id: 2,\n          icon: 'assets/ca-components/svg/common/ic_customer.svg',\n          count: 8,\n        },\n        {\n          name: 'Owner',\n          id: 3,\n          icon: 'assets/ca-components/svg/common/ic_owner.svg',\n          count: 31,\n        },\n        {\n          name: 'Driver',\n          id: 4,\n          icon: 'assets/ca-components/svg/common/ic_driver.svg',\n          count: 7,\n        },\n        {\n          name: 'Truck',\n          id: 5,\n          icon: 'assets/ca-components/svg/common/ic_truck.svg',\n          count: 9,\n        },\n        {\n          name: 'Trailer',\n          id: 6,\n          icon: 'assets/ca-components/svg/common/ic_trailer.svg',\n          count: 3,\n        },\n        {\n          name: 'Repair',\n          id: 7,\n          icon: 'assets/ca-components/svg/common/ic_key-repair.svg',\n          count: 4,\n        },\n        {\n          name: 'PM',\n          id: 8,\n          icon: 'assets/ca-components/svg/common/ic_default_pm.svg',\n          count: 23,\n        },\n        {\n          name: 'Fuel',\n          id: 9,\n          icon: 'assets/ca-components/svg/common/ic_fuel.svg',\n          count: 25,\n        },\n        {\n          name: 'Account',\n          id: 10,\n          icon: 'assets/ca-components/svg/common/ic_password_key.svg',\n          count: 11,\n        },\n        {\n          name: 'Contact',\n          id: 11,\n          icon: 'assets/ca-components/svg/common/ic_contact.svg',\n          count: 7,\n        },\n      ],\n    },\n    {\n      label: 'Accounting',\n      isOpen: true,\n      items: [\n        {\n          name: 'Payroll',\n          id: 12,\n          icon: 'assets/ca-components/svg/common/ic_debtor.svg',\n          count: 12,\n        },\n        {\n          name: 'IFTA',\n          id: 13,\n          icon: 'assets/ca-components/svg/common/ic_accounting.svg',\n          count: 17,\n        },\n      ],\n    },\n    {\n      label: 'Safety',\n      isOpen: true,\n      items: [\n        {\n          name: 'Roadside Inspection',\n          id: 14,\n          icon: 'assets/ca-components/svg/common/ic_fmcsa.svg',\n          count: 17,\n        },\n        {\n          name: 'Accident',\n          id: 15,\n          icon: 'assets/ca-components/svg/common/ic_unsafe_driving.svg',\n          count: 6,\n        },\n      ],\n    },\n    {\n      label: 'Tools',\n      isOpen: true,\n      items: [\n        {\n          name: 'Telematics',\n          id: 16,\n          icon: 'assets/ca-components/svg/common/ic_telematics.svg',\n          count: 11,\n        },\n        {\n          name: 'Miles',\n          id: 17,\n          icon: 'assets/ca-components/svg/common/ic_miles.svg',\n          count: 42,\n        },\n        {\n          name: 'To-do',\n          id: 18,\n          icon: 'assets/ca-components/svg/common/ic_todo.svg',\n          count: 2,\n        },\n      ],\n    },\n    {\n      label: 'Company',\n      isOpen: true,\n      items: [\n        {\n          name: 'Settings',\n          id: 19,\n          icon: 'assets/ca-components/svg/common/ic_settings.svg',\n          count: 7,\n        },\n        {\n          name: 'Location',\n          id: 20,\n          icon: 'assets/ca-components/svg/common/ic_location_map.svg',\n          count: 27,\n        },\n        {\n          name: 'Document',\n          id: 21,\n          icon: 'assets/ca-components/svg/common/ic_document.svg',\n          count: 23,\n        },\n        {\n          name: 'User',\n          id: 22,\n          icon: 'assets/ca-components/svg/common/ic_user.svg',\n          count: 21,\n        },\n        {\n          name: 'Integration',\n          id: 23,\n          icon: 'assets/ca-components/svg/common/ic_integration.svg',\n          count: 22,\n        },\n      ],\n    },\n  ];\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaStateFilterConfig {\n  static getStateSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search State',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import {\n    Component,\n    Input,\n    OnDestroy,\n    OnInit,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { stateHeader } from '../../../../animations/state-header.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { ICaInput } from '../../../../components/ca-input/config/ca-input.config';\nimport { CaStateFilterConfig } from './config/ca-state-filter.config';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes';\n\n@Component({\n    selector: 'app-ca-state-filter',\n    templateUrl: './ca-state-filter.component.html',\n    styleUrls: ['./ca-state-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        // components\n        CaInputComponent,\n        // pipes\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n        stateHeader('stateHeader'),\n    ]\n})\nexport class CaStateFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() isSearchExpanded: boolean = false;\n    @Input() usaStates: ArrayStatus[] = DirectiveConstants.USA_STATES;\n    @Input() canadaStates: ArrayStatus[] = DirectiveConstants.CANADA_STATES;\n\n    private destroy$ = new Subject<void>();\n    public searchForm!: UntypedFormGroup;\n    public usaSelectedStates: ArrayStatus[] = [];\n    public canadaSelectedStates: ArrayStatus[] = [];\n\n    public searchInputValue: string | null = null;\n    public filterUsaActiveArray: ArrayStatus[] = [];\n    public filterCanadaActiveArray: ArrayStatus[] = [];\n    public isButtonAvailable: boolean = false;\n    public totalFiltersNum: number = 0;\n    public unselectedVisibleCount: number = 0;\n    public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n        this.watchSearchFormValueChanges();\n    }\n\n    get stateSearch(): ICaInput {\n        if (this.type == ToolbarFilterStringEnum.STATE_FILTER)\n            return CaStateFilterConfig.getStateSearch();\n        else throw new Error('Unknown filter type');\n    }\n\n    private createForm(): void {\n        this.type = ToolbarFilterStringEnum.STATE_FILTER;\n        this.searchForm = this.formBuilder.group({\n            search: ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER,\n        });\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                const inputValue = changes.search;\n                this.searchInputValue = inputValue;\n\n                if (changes.search) {\n                    this.usaStates.map((item) => {\n                        item.hidden = true;\n                        if (\n                            item\n                                .stateName!.toLowerCase()\n                                .includes(inputValue.toLowerCase())\n                        )\n                            item.hidden = false;\n                        return item;\n                    });\n\n                    this.canadaStates.map((item) => {\n                        item.hidden = true;\n                        if (\n                            item\n                                .stateName!.toLowerCase()\n                                .includes(inputValue.toLowerCase())\n                        )\n                            item.hidden = false;\n\n                        return item;\n                    });\n                } else {\n                    this.usaStates.forEach((item) => {\n                        item.hidden = false;\n                    });\n\n                    this.canadaStates.forEach((item) => {\n                        item.hidden = false;\n                    });\n                }\n            });\n    }\n\n    public onFilterClose(): void {\n        this.isButtonAvailable = false;\n        this.searchInputValue =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n    }\n\n    public addToSelectedUser(\n        item: {\n            id?: number;\n            stateName?: string;\n            count?: number;\n            hidden?: boolean;\n            isSelected?: boolean;\n        },\n        indx: number,\n        subType?: string\n    ) {\n        let mainArray: ArrayStatus[] = [];\n\n        if (subType === ToolbarFilterStringEnum.CANADA) {\n            mainArray = this.canadaStates;\n        } else {\n            mainArray = this.usaStates;\n        }\n\n        mainArray[indx].isSelected = true;\n        mainArray[indx].currentSet = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (state) => !state.isSelected\n        )?.length;\n\n        if (subType === ToolbarFilterStringEnum.CANADA) {\n            this.canadaSelectedStates.push(item);\n        } else {\n            this.usaSelectedStates.push(item);\n        }\n\n        this.checkFilterActiveValue();\n    }\n\n    public checkFilterActiveValue(): void {\n        let usaArrayChanged = false;\n        let canadaArrayChanged = false;\n\n        const arrayUsaSelected = [...this.usaSelectedStates];\n        const arrayUsaActive = [...this.filterUsaActiveArray];\n        const arrayCanadaSelected = [...this.canadaSelectedStates];\n        const arrayCanadaActive = [...this.filterCanadaActiveArray];\n\n        arrayUsaSelected.sort((a, b) => {\n            return a.id! - b.id!;\n        });\n\n        arrayUsaActive.sort((a, b) => {\n            return a.id! - b.id!;\n        });\n\n        arrayCanadaSelected.sort((a, b) => {\n            return a.id! - b.id!;\n        });\n\n        arrayCanadaActive.sort((a, b) => {\n            return a.id! - b.id!;\n        });\n\n        const usaStringfy = JSON.stringify(arrayUsaSelected);\n        const usaActiveStringify = JSON.stringify(arrayUsaActive);\n        const canadaStringfy = JSON.stringify(arrayCanadaSelected);\n        const canadaActiveStringify = JSON.stringify(arrayCanadaActive);\n\n        if (usaStringfy === usaActiveStringify) {\n            usaArrayChanged = false;\n        } else {\n            usaArrayChanged = true;\n        }\n\n        if (canadaStringfy === canadaActiveStringify) {\n            canadaArrayChanged = false;\n        } else {\n            canadaArrayChanged = true;\n        }\n\n        if (usaArrayChanged || canadaArrayChanged) {\n            this.isButtonAvailable = true;\n        } else {\n            this.isButtonAvailable = false;\n        }\n    }\n\n    public removeFromSelectedUser(\n        item: {\n            id?: number;\n            stateName?: string;\n            count?: number;\n            hidden?: boolean;\n            isSelected?: boolean;\n        },\n        indx: number,\n        subType?: string\n    ): void {\n        if (this.type === ToolbarFilterStringEnum.STATE_FILTER) {\n            if (subType === ToolbarFilterStringEnum.CANADA) {\n                this.canadaSelectedStates.splice(indx, 1);\n            } else {\n                this.usaSelectedStates.splice(indx, 1);\n            }\n        }\n\n        const id = item.id;\n\n        let mainArray: ArrayStatus[] = [];\n\n        if (subType === ToolbarFilterStringEnum.CANADA) {\n            mainArray = this.canadaStates;\n        } else {\n            mainArray = this.usaStates;\n        }\n\n        mainArray.forEach((state) => {\n            if (state.id === id) {\n                state.isSelected = false;\n                state.currentSet = true;\n            }\n        });\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (state) => !state.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public setFilterValue(): filterOutput | filterOutputWithParams {\n        let subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.filterUsaActiveArray = [...this.usaSelectedStates];\n        this.filterCanadaActiveArray = [...this.canadaSelectedStates];\n\n        const totalStatesSelected =\n            this.filterUsaActiveArray.length +\n            this.filterCanadaActiveArray.length;\n        this.totalFiltersNum = totalStatesSelected;\n\n        const queryParams = {\n            usaArray: this.filterUsaActiveArray,\n            canadaArray: this.filterCanadaActiveArray,\n        };\n\n        const data = {\n            action: eGeneralActions.SET,\n            filterType: this.type,\n            queryParams,\n            subType,\n        };\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.usaStates.forEach((state) => {\n            state.hidden = false;\n            state.isSelected = false;\n            state.currentSet = false;\n        });\n\n        this.canadaStates.forEach((state) => {\n            state.hidden = false;\n            state.isSelected = false;\n            state.currentSet = false;\n        });\n\n        this.usaSelectedStates = [];\n        this.canadaSelectedStates = [];\n        this.isButtonAvailable = true;\n        this.totalFiltersNum = 0;\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n        return FilterHelper.getSvgPath(propertyName);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"border-filter border-thrird-margin\"></div>\n<div\n    class=\"search-input-header\"\n    [class.activeSearch]=\"isSearchExpanded\"\n    [class.inactiveSearch]=\"!isSearchExpanded\"\n    [formGroup]=\"searchForm\"\n>\n    <app-ca-input\n        class=\"input-form-holder\"\n        formControlName=\"search\"\n        [inputConfig]=\"stateSearch\"\n    ></app-ca-input>\n</div>\n@if (type === 'stateFilter') {\n    <div\n        class=\"selected-state-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @if (usaSelectedStates.length) {\n            <div\n                class=\"states-selected usa-selected-holder\"\n                [@stateHeader]=\"'in'\"\n            >\n                <div class=\"state-name-holder\">UNITED STATES</div>\n                @for (\n                    item of usaSelectedStates;\n                    let indx = $index;\n                    track indx\n                ) {\n                    <div\n                        class=\"state-main-holder holder-bottom-margin\"\n                        [@inOutAnimation]=\"'in'\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"removeFromSelectedUser(item, indx)\"\n                    >\n                        <div\n                            class=\"state-profile-img d-flex align-items-center active state-border-radius\"\n                        >\n                            <div\n                                class=\"state-short-holder d-flex justify-content-center align-items-center\"\n                            >\n                                {{ item.stateShortName }}\n                            </div>\n                        </div>\n                        <div\n                            class=\"selected-state-frame d-flex align-items-center\"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.stateName }} </span>\n                            </div>\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                            <div\n                                class=\"icon-delete d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'x' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                    </div>\n                }\n            </div>\n        }\n        @if (canadaSelectedStates.length) {\n            <div class=\"states-selected\" [@stateHeader]=\"'in'\">\n                <div class=\"state-name-holder\">CANADA</div>\n                @for (\n                    item of canadaSelectedStates;\n                    let indx = $index;\n                    track indx\n                ) {\n                    <div\n                        class=\"state-main-holder\"\n                        (click)=\"removeFromSelectedUser(item, indx, 'canada')\"\n                    >\n                        <div\n                            class=\"state-profile-img d-flex align-items-center active\"\n                        >\n                            <div\n                                class=\"state-short-holder d-flex justify-content-center align-items-center\"\n                            >\n                                {{ item.stateShortName }}\n                            </div>\n                        </div>\n                        <div\n                            class=\"selected-state-frame d-flex align-items-center\"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.stateName }} </span>\n                            </div>\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                            <div class=\"icon-delete\">\n                                <svg-icon\n                                    [src]=\"'x' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                    </div>\n                }\n            </div>\n        }\n        @if (canadaSelectedStates.length || usaSelectedStates.length) {\n            <div class=\"border-filter border-thrird-margin\"></div>\n        }\n    </div>\n}\n\n<div\n    class=\"filter-state-holder d-flex justify-content-start align-items-start flex-column\"\n>\n    <div class=\"state-name-holder sticky-head-title\">UNITED STATES</div>\n    @for (item of usaStates; let indx = $index; track indx) {\n        <div class=\"state-frame-holder d-flex align-items-center\">\n            @if (!item.hidden && !item.isSelected) {\n                <div\n                    [@inOutAnimation]=\"'in'\"\n                    [@showAnimation]=\"!!isFilterActive\"\n                    (click)=\"addToSelectedUser(item, indx)\"\n                    class=\"state-main-holder state-main-holder\"\n                >\n                    <div class=\"state-profile-img d-flex align-items-center\">\n                        <div\n                            class=\"state-short-holder d-flex justify-content-center align-items-center\"\n                        >\n                            {{ item.stateShortName }}\n                        </div>\n                    </div>\n                    <div class=\"state-frame d-flex align-items-center\">\n                        <div\n                            class=\"selected-name-text d-flex align-items-center\"\n                        >\n                            <span> {{ item.stateName }} </span>\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n    }\n\n    <div class=\"state-name-holder canada-sticky-head-title\">CANADA</div>\n\n    @for (item of canadaStates; let indx = $index; track indx) {\n        <div class=\"state-frame-holder d-flex align-items-center\">\n            @if (!item.hidden && !item.isSelected) {\n                <div\n                    [@inOutAnimation]=\"'in'\"\n                    [@showAnimation]=\"!!isFilterActive\"\n                    (click)=\"addToSelectedUser(item, indx, 'canada')\"\n                    class=\"state-main-holder state-main-holder\"\n                >\n                    <div class=\"state-profile-img d-flex align-items-center\">\n                        <div\n                            class=\"state-short-holder d-flex justify-content-center align-items-center\"\n                        >\n                            {{ item.stateShortName }}\n                        </div>\n                    </div>\n                    <div class=\"state-frame d-flex align-items-center\">\n                        <div\n                            class=\"selected-name-text d-flex align-items-center\"\n                        >\n                            <span> {{ item.stateName }} </span>\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n    }\n</div>\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaTruckTypeFilterConfig {\n  static getTruckTypeSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Truck',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eTruckNameString } from '../../../enums/truck-name.enum';\nimport { eFilterColor } from '../../../enums/filter-color.enum';\n\n@Pipe({\n    standalone: true,\n    name: 'filterTruckColorPipe',\n})\nexport class FilterTruckColorPipe implements PipeTransform {\n    // Map truck names to colors\n    private truckColorMap = {\n        [eTruckNameString.SEMI_TRUCK]: eFilterColor.BLUE,\n        [eTruckNameString.SEMI_SLEEPER]: eFilterColor.BLUE,\n        [eTruckNameString.BOX_TRUCK]: eFilterColor.YELLOW,\n        [eTruckNameString.REEFER_TRUCK]: eFilterColor.YELLOW,\n        [eTruckNameString.CARGO_VAN]: eFilterColor.YELLOW,\n        [eTruckNameString.DUMP_TRUCK]: eFilterColor.RED,\n        [eTruckNameString.CEMENT_TRUCK]: eFilterColor.RED,\n        [eTruckNameString.GARBAGE_TRUCK]: eFilterColor.RED,\n        [eTruckNameString.TOW_TRUCK]: eFilterColor.LIGHT_GREEN,\n        [eTruckNameString.CAR_HAULER]: eFilterColor.LIGHT_GREEN,\n        [eTruckNameString.SPOTTER]: eFilterColor.LIGHT_GREEN,\n    };\n\n    transform(truck: string | undefined): string {\n        // Retrieve and return color based on truck type\n        const color = this.truckColorMap[truck as eTruckNameString];\n        return color ? color : '#919191'; // Default to grey if not found\n    }\n}\n","import {\n    Component,\n    OnDestroy,\n    Input,\n    ViewEncapsulation,\n    OnInit,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaTruckTypeFilterConfig } from './config/ca-truck-type-filter.config';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// pipes\nimport { FilterTruckColorPipe } from '../../pipes/filter-truck-color.pipe';\nimport { CaSvgPipe } from '../../../../../public-api';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\n\n@Component({\n    selector: 'app-ca-truck-type-filter',\n    templateUrl: './ca-truck-type-filter.component.html',\n    styleUrls: ['./ca-truck-type-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        ReactiveFormsModule,\n        // components\n        CaInputComponent,\n        // pipes\n        FilterTruckColorPipe,\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n    ]\n})\nexport class CaTruckTypeFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() truckTypeArray!: ArrayStatus[];\n    @Input() isRepairFilter: boolean = false;\n    @Input() isSearchExpanded: boolean = false;\n\n    private destroy$ = new Subject<void>();\n    public selectedTruckTypeArray: ArrayStatus[] = [];\n    public isButtonAvailable: boolean = false;\n    public isAscendingSortOrder: boolean = true;\n    public filterActiveArray: ArrayStatus[] = [];\n    public unselectedVisibleCount: number = 0;\n    public searchForm!: UntypedFormGroup;\n    public searchInputValue!: string;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n        this.watchSearchFormValueChanges();\n    }\n\n    get truckTypeSearch(): ICaInput {\n        return CaTruckTypeFilterConfig.getTruckTypeSearch();\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                if (changes.search) {\n                    const inputValue = changes.search.toLowerCase();\n                    this.searchInputValue = inputValue;\n\n                    this.truckTypeArray.forEach((item) => {\n                        item.hidden = !item\n                            .name!.toLowerCase()\n                            .includes(inputValue);\n                    });\n                } else\n                    this.truckTypeArray.forEach((item) => {\n                        item.hidden = false;\n                    });\n            });\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleFilterClose(\n            this.truckTypeArray,\n            this.selectedTruckTypeArray,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortItems(\n            this.truckTypeArray,\n            this.selectedTruckTypeArray,\n            this.isAscendingSortOrder\n        );\n\n        this.truckTypeArray = sortResult.sortedFilterArray;\n        this.selectedTruckTypeArray = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    public addToSelectedUser(item: userSelected, indx: number) {\n        const mainArray = this.truckTypeArray;\n\n        mainArray[indx].isSelected = true;\n        mainArray[indx].currentSet = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (truck) => !truck.isSelected\n        )?.length;\n\n        this.selectedTruckTypeArray.push(item);\n\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(item: userSelected, indx: number): void {\n        this.selectedTruckTypeArray.splice(indx, 1);\n        const id = item.id;\n        const mainArray = this.truckTypeArray;\n\n        mainArray.forEach((truck) => {\n            if (truck.id === id) {\n                truck.isSelected = false;\n                truck.currentSet = false;\n            }\n        });\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (truck) => !truck.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public setFilterValue(): filterOutput | filterOutputWithParams | undefined {\n        let queryParams = {};\n        const subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.isButtonAvailable = false;\n\n        queryParams = this.selectedTruckTypeArray.map((item) =>\n            this.isRepairFilter ? item.truckNumber : item.id\n        );\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedTruckTypeArray = [];\n\n        this.truckTypeArray.forEach((item) => {\n            item.isSelected = false;\n            item.currentSet = false;\n        });\n\n        this.isButtonAvailable = true;\n        this.filterActiveArray = [];\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkFilterActiveValue(\n            this.selectedTruckTypeArray,\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (type === 'truckTypeFilter') {\n    <div\n        class=\"search-input-header\"\n        [class.activeSearchTruck]=\"isRepairFilter\"\n        [class.inactiveSearchTruck]=\"!isRepairFilter\"\n        [formGroup]=\"searchForm\"\n    >\n        <app-ca-input\n            class=\"input-form-holder\"\n            formControlName=\"search\"\n            [inputConfig]=\"truckTypeSearch\"\n        ></app-ca-input>\n    </div>\n    <div class=\"border-filter\"></div>\n    <div\n        class=\"selected-truck-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (item of selectedTruckTypeArray; let indx = $index; track indx) {\n            <div\n                class=\"truck-main-holder d-flex align-items-center justify-content-center\"\n                [@inOutAnimation]=\"'in'\"\n                [@showAnimation]=\"!!isFilterActive\"\n                (click)=\"removeFromSelectedUser(item, indx)\"\n            >\n                <div\n                    class=\"selected-truck-frame d-flex align-items-center justify-content-between\"\n                >\n                    <div class=\"selected-name-text d-flex align-items-center\">\n                        <span> {{ item.name }}</span>\n                        @if (item.icon) {\n                            <div\n                                class=\"select-item-logo\"\n                                [ngStyle]=\"{\n                                    '--svg-fill-color':\n                                        item.name | filterTruckColorPipe,\n                                }\"\n                            >\n                                <svg-icon\n                                    [src]=\"item.icon\"\n                                    class=\"truck-logo-icon\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    </div>\n                    @if (item?.count) {\n                        <span\n                            class=\"count-holder d-inline-flex justify-content-center align-items-center activeCount\"\n                        >\n                            {{ item.count }}\n                        </span>\n                    } @else {\n                        <ng-container *ngIf=\"!item.count; else noCounter\">\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </ng-container>\n                        <ng-template #noCounter>\n                            <div class=\"counter-holder activeCounter\">2</div>\n                        </ng-template>\n                    }\n\n                    <div\n                        (click)=\"removeFromSelectedUser(item, indx)\"\n                        class=\"icon-delete d-flex justify-content-center align-items-center\"\n                        [class.counterMargin]=\"item.count\"\n                    >\n                        <div class=\"icon-delete-hold\"></div>\n                        <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        }\n        @if (\n            selectedTruckTypeArray.length &&\n            selectedTruckTypeArray.length < truckTypeArray.length\n        ) {\n            <div class=\"border-filter border-thrird-margin\"></div>\n        }\n    </div>\n    <div class=\"filter-truck-holder\">\n        @for (item of truckTypeArray; let indx = $index; track indx) {\n            <div class=\"truck-frame-holder d-flex align-items-center\">\n                @if (!item.hidden && !item.isSelected) {\n                    <div\n                        [@inOutAnimation]=\"'in'\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"addToSelectedUser(item, indx)\"\n                        class=\"truck-main-holder d-flex align-items-center justify-content-center\"\n                    >\n                        <div\n                            class=\"truck-frame d-flex justify-content-between align-items-center fw-normal\"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.name }} </span>\n                            </div>\n                        </div>\n                        <div\n                            class=\"type-icon d-flex align-items-center\"\n                            [ngStyle]=\"{\n                                '--svg-fill-color':\n                                    item.name | filterTruckColorPipe,\n                            }\"\n                        >\n                            <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n                        </div>\n                        @if (item.count) {\n                            <div\n                                class=\"count-holder d-inline-flex justify-content-center align-items-center ca-font-semi-bold\"\n                            >\n                                {{ item.count }}\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        }\n    </div>\n}\n<div class=\"border-filter\"></div>\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaTruckTypeFilterConfig {\n  static getTrailerTypeSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search Trailer',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eTrailerName } from '../../../enums/trailer-name.enum';\nimport { eFilterColor } from '../../../enums/filter-color.enum';\n\n@Pipe({\n    standalone: true,\n    name: 'filterTrailerColorPipe',\n})\nexport class FilterTrailerColorPipe implements PipeTransform {\n    // Map trailer names to colors\n    private trailerColorMap = {\n        [eTrailerName.FLAT_BED]: eFilterColor.BLUE,\n        [eTrailerName.STEP_DECK]: eFilterColor.BLUE,\n        [eTrailerName.LOW_BOY_RGN]: eFilterColor.BLUE,\n        [eTrailerName.CHASSIS]: eFilterColor.BLUE,\n        [eTrailerName.CONESTOGA]: eFilterColor.BLUE,\n        [eTrailerName.SIDE_KIT]: eFilterColor.BLUE,\n        [eTrailerName.CONTAINER]: eFilterColor.BLUE,\n        [eTrailerName.DRY_VAN]: eFilterColor.YELLOW,\n        [eTrailerName.REEFER]: eFilterColor.YELLOW,\n        [eTrailerName.END_DUMP]: eFilterColor.RED,\n        [eTrailerName.BOTTOM_DUMP]: eFilterColor.RED,\n        [eTrailerName.HOPPER]: eFilterColor.RED,\n        [eTrailerName.TANKER]: eFilterColor.RED,\n        [eTrailerName.PNEUMATIC_TANKER]: eFilterColor.RED,\n        [eTrailerName.CAR_HAULER]: eFilterColor.LIGHT_GREEN,\n        [eTrailerName.CAR_HAULER_STINGER]: eFilterColor.LIGHT_GREEN,\n    };\n\n    transform(trailer: string | undefined): string {\n        // Retrieve and return color based on trailer type\n        const color = this.trailerColorMap[trailer as eTrailerName];\n        return color ? color : '#919191'; // Default to grey if not found\n    }\n}\n","import {\n    Component,\n    OnInit,\n    OnDestroy,\n    Input,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaTruckTypeFilterConfig } from './config';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// pipes\nimport { FilterTrailerColorPipe } from '../../pipes/filter-trailer-color.pipe';\nimport { CaSvgPipe } from '../../../../pipes';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\n\n@Component({\n    selector: 'app-ca-trailer-type-filter',\n    templateUrl: './ca-trailer-type-filter.component.html',\n    styleUrls: ['./ca-trailer-type-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        ReactiveFormsModule,\n        // components\n        CaInputComponent,\n        // pipes\n        FilterTrailerColorPipe,\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n    ]\n})\nexport class CaTrailerTypeFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() trailerTypeArray!: ArrayStatus[];\n    @Input() isSearchExpanded: boolean = false;\n    @Input() isRepairFilter: boolean = false;\n\n    private destroy$ = new Subject<void>();\n    public selectedTrailerTypeArray: ArrayStatus[] = [];\n    public isButtonAvailable: boolean = false;\n    public isAscendingSortOrder: boolean = true;\n    public filterActiveArray: ArrayStatus[] = [];\n    public unselectedVisibleCount: number = 0;\n    public searchForm!: UntypedFormGroup;\n    public searchInputValue!: string;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n        this.watchSearchFormValueChanges();\n    }\n\n    get trailerTypeSearch(): ICaInput {\n        return CaTruckTypeFilterConfig.getTrailerTypeSearch();\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                if (changes.search) {\n                    const inputValue = changes.search.toLowerCase();\n                    this.searchInputValue = inputValue;\n\n                    this.trailerTypeArray.forEach((item) => {\n                        item.hidden = !item\n                            .name!.toLowerCase()\n                            .includes(inputValue);\n                    });\n                } else\n                    this.trailerTypeArray.forEach((item) => {\n                        item.hidden = false;\n                    });\n            });\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleFilterClose(\n            this.trailerTypeArray,\n            this.selectedTrailerTypeArray,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortItems(\n            this.trailerTypeArray,\n            this.selectedTrailerTypeArray,\n            this.isAscendingSortOrder\n        );\n\n        this.trailerTypeArray = sortResult.sortedFilterArray;\n        this.selectedTrailerTypeArray = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    public addToSelectedUser(item: userSelected, indx: number) {\n        const mainArray = this.trailerTypeArray;\n\n        mainArray[indx].isSelected = true;\n        mainArray[indx].currentSet = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (trailer) => !trailer.isSelected\n        )?.length;\n\n        this.selectedTrailerTypeArray.push(item);\n\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(item: userSelected, indx: number): void {\n        this.selectedTrailerTypeArray.splice(indx, 1);\n        const id = item.id;\n        const mainArray = this.trailerTypeArray;\n\n        mainArray.forEach((trailer) => {\n            if (trailer.id === id) {\n                trailer.isSelected = false;\n                trailer.currentSet = false;\n            }\n        });\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (trailer) => !trailer.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public setFilterValue(): filterOutput | filterOutputWithParams {\n        let queryParams = {};\n        const subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.isButtonAvailable = false;\n\n        queryParams = this.selectedTrailerTypeArray.map((item) =>\n            this.isRepairFilter ? item.trailerNumber : item.id\n        );\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedTrailerTypeArray = [];\n\n        this.trailerTypeArray.forEach((item) => {\n            item.isSelected = false;\n            item.currentSet = false;\n        });\n\n        this.isButtonAvailable = true;\n        this.filterActiveArray = [];\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkFilterActiveValue(\n            this.selectedTrailerTypeArray,\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n        return FilterHelper.getSvgPath(propertyName);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (type === 'trailerTypeFilter') {\n    <div\n        class=\"search-input-header\"\n        [class.activeSearchTrailer]=\"isRepairFilter\"\n        [class.d-none]=\"!isRepairFilter\"\n        [formGroup]=\"searchForm\"\n    >\n        <app-ca-input\n            class=\"input-form-holder\"\n            formControlName=\"search\"\n            [inputConfig]=\"trailerTypeSearch\"\n        ></app-ca-input>\n    </div>\n    <div class=\"border-filter\"></div>\n    <div\n        class=\"selected-trailer-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (item of selectedTrailerTypeArray; let indx = $index; track indx) {\n            <div\n                class=\"trailer-main-holder d-flex align-items-center justify-content-center\"\n                [@inOutAnimation]=\"'in'\"\n                [@showAnimation]=\"!!isFilterActive\"\n                (click)=\"removeFromSelectedUser(item, indx)\"\n            >\n                <div\n                    class=\"selected-trailer-frame d-flex align-items-center justify-content-between\"\n                >\n                    <div class=\"selected-name-text d-flex align-items-center\">\n                        <span> {{ item.name }}</span>\n                        @if (item.icon) {\n                            <div\n                                class=\"select-item-logo\"\n                                [ngStyle]=\"{\n                                    '--svg-fill-color':\n                                        item.name | filterTrailerColorPipe,\n                                }\"\n                            >\n                                <svg-icon\n                                    [src]=\"item.icon\"\n                                    class=\"truck-logo-icon\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    </div>\n                    @if (item?.count) {\n                        <span\n                            class=\"count-holder d-inline-flex justify-content-center align-items-center activeCount\"\n                        >\n                            {{ item.count }}\n                        </span>\n                    } @else {\n                        // TODO Here as well\n                        <ng-container *ngIf=\"!item.count; else noCounter\">\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </ng-container>\n                        <ng-template #noCounter>\n                            <div class=\"counter-holder activeCounter\">2</div>\n                        </ng-template>\n                    }\n\n                    <div\n                        (click)=\"removeFromSelectedUser(item, indx)\"\n                        class=\"icon-delete d-flex justify-content-center align-items-center\"\n                        [class.counterMargin]=\"item.count\"\n                    >\n                        <div class=\"icon-delete-hold\"></div>\n                        <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        }\n\n        @if (\n            selectedTrailerTypeArray.length &&\n            selectedTrailerTypeArray.length < trailerTypeArray.length\n        ) {\n            <div class=\"border-filter border-thrird-margin\"></div>\n        }\n    </div>\n    <div class=\"filter-trailer-holder\">\n        @for (item of trailerTypeArray; let indx = $index; track indx) {\n            <div class=\"trailer-frame-holder d-flex align-items-center\">\n                @if (!item.hidden && !item.isSelected) {\n                    <div\n                        [@inOutAnimation]=\"'in'\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"addToSelectedUser(item, indx)\"\n                        class=\"trailer-main-holder d-flex align-items-center justify-content-center\"\n                    >\n                        <div\n                            class=\"trailer-frame d-flex justify-content-between align-items-center fw-normal\"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.name }} </span>\n                            </div>\n                        </div>\n                        <div\n                            class=\"type-icon d-flex align-items-center\"\n                            [ngStyle]=\"{\n                                '--svg-fill-color':\n                                    item.name | filterTrailerColorPipe,\n                            }\"\n                        >\n                            <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n                        </div>\n                        @if (item.count) {\n                            <div\n                                class=\"count-holder d-inline-flex justify-content-center align-items-center ca-font-semi-bold\"\n                            >\n                                {{ item.count }}\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        }\n    </div>\n}\n<div class=\"border-filter\"></div>\n","import { Component, OnDestroy, Input, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes';\n\n@Component({\n    selector: 'app-ca-pm-filter',\n    templateUrl: './ca-pm-filter.component.html',\n    styleUrls: ['./ca-pm-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        // pipes\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n    ]\n})\nexport class CaPmFilterComponent implements OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() pmSubtype!: string;\n    @Input() pmFilterArray!: ArrayStatus[];\n\n    private destroy$ = new Subject<void>();\n    public selectedPmFilterArray: ArrayStatus[] = [];\n    public isButtonAvailable: boolean = false;\n    public isAscendingSortOrder: boolean = true;\n    public filterActiveArray: ArrayStatus[] = [];\n    public unselectedVisibleCount: number = 0;\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortItems(\n            this.pmFilterArray,\n            this.selectedPmFilterArray,\n            this.isAscendingSortOrder\n        );\n\n        this.pmFilterArray = sortResult.sortedFilterArray;\n        this.selectedPmFilterArray = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleFilterClose(\n            this.pmFilterArray,\n            this.selectedPmFilterArray,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public addToSelectedUser(item: userSelected, indx: number) {\n        const mainArray = this.pmFilterArray;\n\n        mainArray[indx].isSelected = true;\n        mainArray[indx].currentSet = true;\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (pm) => !pm.isSelected\n        )?.length;\n\n        this.selectedPmFilterArray.push(item);\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(item: userSelected, indx: number): void {\n        this.selectedPmFilterArray.splice(indx, 1);\n        const mainArray = this.pmFilterArray.map((pm) => {\n            const isItem: boolean = item.id === pm.id;\n            return {\n                ...pm,\n                isSelected: !isItem && pm.isSelected,\n                currentSet: !isItem && pm.currentSet,\n            };\n        });\n\n        this.unselectedVisibleCount = mainArray.filter(\n            (pm) => !pm.isSelected\n        )?.length;\n\n        this.checkFilterActiveValue();\n    }\n\n    public setFilterValue(): filterOutput | filterOutputWithParams {\n        const subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        const queryParams =\n            this.selectedPmFilterArray.map((item) =>\n                this.type === ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER ||\n                this.type === ToolbarFilterStringEnum.PARKING_FILTER\n                    ? item.id\n                    : item.name\n            ) ?? {};\n\n        const action = ToolbarFilterStringEnum.SET;\n        const data = {\n            filterType: this.type,\n            action,\n            queryParams,\n            subType,\n        };\n\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedPmFilterArray = [];\n\n        this.pmFilterArray.forEach((pm) => {\n            pm.isSelected = false;\n            pm.currentSet = false;\n        });\n\n        this.isButtonAvailable = true;\n        this.filterActiveArray = [];\n\n        const data = {\n            action: ToolbarFilterStringEnum.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n\n        return data;\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkFilterActiveValue(\n            this.selectedPmFilterArray,\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@let isCorrectFilter =\n    type === 'pmFilter' ||\n    type === 'categoryRepairFilter' ||\n    type === 'fuelItemFilter' ||\n    type === 'departmentFilter' ||\n    type === 'parkingFilter' ||\n    type === 'tagFilter' ||\n    type === 'actionFilter' ||\n    type === 'labelFilter';\n@if (isCorrectFilter) {\n    <div class=\"border-filter\"></div>\n    <div\n        class=\"selected-pm-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (item of selectedPmFilterArray; let indx = $index; track indx) {\n            <div\n                class=\"pm-main-holder d-flex align-items-center justify-content-center\"\n                [@inOutAnimation]=\"'in'\"\n                [@showAnimation]=\"!!isFilterActive\"\n                (click)=\"removeFromSelectedUser(item, indx)\"\n            >\n                <div\n                    class=\"selected-pm-frame d-flex align-items-center justify-content-between\"\n                    [class.pm-frame-no-icon]=\"!item.icon\"\n                >\n                    @if (item.icon) {\n                        <div\n                            class=\"pm-profile-img d-flex align-items-center\"\n                            [ngStyle]=\"{\n                                '--svg-fill-color': item.color,\n                            }\"\n                        >\n                            <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n                        </div>\n                    }\n                    <div class=\"selected-name-text d-flex align-items-center\">\n                        <span> {{ item.name }}</span>\n                    </div>\n                    @if (item?.count) {\n                        <span\n                            class=\"count-holder d-inline-flex justify-content-center align-items-center activeCount\"\n                        >\n                            {{ item.count }}\n                        </span>\n                    } @else {\n                        // TODO Same story here, why cases like these are\n                        needed?\n                        <ng-container *ngIf=\"!item.count; else noCounter\">\n                            <div\n                                class=\"selected-icon d-flex justify-content-center align-items-center\"\n                            >\n                                <svg-icon\n                                    [src]=\"'confirm' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        </ng-container>\n                        <ng-template #noCounter>\n                            <div class=\"counter-holder activeCounter\">2</div>\n                        </ng-template>\n                    }\n\n                    <div\n                        class=\"icon-delete d-flex justify-content-center align-items-center\"\n                        [class.counterMargin]=\"item.count\"\n                        (click)=\"removeFromSelectedUser(item, indx)\"\n                    >\n                        <div class=\"icon-delete-hold\"></div>\n                        <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        }\n        @if (selectedPmFilterArray.length) {\n            <div class=\"border-filter border-thrird-margin\"></div>\n        }\n    </div>\n    <div class=\"filter-pm-holder\">\n        @for (item of pmFilterArray; let indx = $index; track indx) {\n            @let notHiddenAndSelected = !item.hidden && !item.isSelected;\n            @if (notHiddenAndSelected) {\n                <div class=\"pm-frame-holder d-flex align-items-center\">\n                    <div\n                        [@inOutAnimation]=\"'in'\"\n                        [@showAnimation]=\"!!isFilterActive\"\n                        (click)=\"addToSelectedUser(item, indx)\"\n                        class=\"pm-main-holder d-flex align-items-center justify-content-center\"\n                    >\n                        @if (item.icon) {\n                            <div\n                                class=\"pm-profile-img d-flex align-items-center\"\n                                [ngStyle]=\"{\n                                    '--svg-fill-color': item.color,\n                                }\"\n                            >\n                                <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n                            </div>\n                        }\n\n                        <div\n                            class=\"pm-frame d-flex justify-content-between align-items-center fw-normal\"\n                            [class.pm-frame-no-icon]=\"!item.icon\"\n                        >\n                            <div\n                                class=\"selected-name-text d-flex align-items-center\"\n                            >\n                                <span> {{ item.name }} </span>\n                            </div>\n                        </div>\n                        @if (item.count) {\n                            <div\n                                class=\"count-holder d-inline-flex justify-content-center align-items-center ca-font-semi-bold\"\n                            >\n                                {{ item.count }}\n                            </div>\n                        }\n                    </div>\n                </div>\n            }\n        }\n    </div>\n}\n@let selectedPmFilterCount = selectedPmFilterArray?.length || 0;\n@let pmFilterCount = pmFilterArray?.length || 0;\n@if (selectedPmFilterCount < pmFilterCount) {\n    <div class=\"border-filter\"></div>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { UserData } from '../models/ca-user-data.model';\n\n@Pipe({\n  standalone: true,\n  name: 'filterSelectedItems',\n  pure: false,\n})\nexport class FilterSelectedItemsPipe implements PipeTransform {\n  transform(items: UserData[]): string {\n    const selectedCount = items.filter((item) => item.isSelected).length;\n    const totalCount = items.length;\n    return selectedCount ? `${selectedCount}/${totalCount}` : `${totalCount}`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { UserGroup } from '../models/ca-user-group.model';\n\n@Pipe({\n  standalone: true,\n  name: 'groupSelectionState',\n  pure: false,\n})\nexport class GroupSelectionStatePipe implements PipeTransform {\n  transform(group: UserGroup): { allSelected: boolean; someSelected: boolean } {\n    const totalItems = group.items.length;\n    const selectedItems = group.items.filter((item) => item.isSelected).length;\n\n    return {\n      allSelected: selectedItems === totalItems,\n      someSelected: selectedItems > 0 && selectedItems < totalItems,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { UserData } from '../models/ca-user-data.model';\n\n@Pipe({\n  standalone: true,\n  name: 'selectedUser',\n  pure: false,\n})\nexport class SelectedUsersPipe implements PipeTransform {\n  transform(userData: UserData[], onlySelected?: boolean): UserData[] {\n    const includeUsers = onlySelected ? [true] : [false, undefined];\n    return [...userData].filter(\n      (item) => !includeUsers.includes(item.isSelected)\n    );\n  }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaUserFilterConfig {\n  static getUserSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Find User or Driver',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      blackInput: true,\n      isDisabled: false,\n    };\n  }\n}\n","import {\n    Component,\n    Input,\n    OnInit,\n    OnDestroy,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// enums\nimport { eLoadStatus, eGeneralActions } from '../../../../enums';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { UserData } from './models/ca-user-data.model';\nimport { UserGroup } from './models/ca-user-group.model';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// pipes\nimport { FilterSelectedItemsPipe } from './pipes/filter-selected-items.pipe';\nimport { GroupSelectionStatePipe } from './pipes/group-selection-state.pipe';\nimport { SelectedUsersPipe } from './pipes/selected-users.pipe';\nimport { CaSvgPipe } from '../../../../pipes';\n\n// animations\nimport { closeForm } from '../../../../animations/close-form.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaUserFilterConfig } from './config/ca-user-filter.config';\n\n@Component({\n    selector: 'app-ca-user-filter',\n    encapsulation: ViewEncapsulation.None,\n    templateUrl: './ca-user-filter.component.html',\n    styleUrls: ['./ca-user-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        NgbTooltipModule,\n        // components\n        CaInputComponent,\n        CaProfileImageComponent,\n        CaAppTooltipV2Component,\n        // pipes\n        FilterSelectedItemsPipe,\n        GroupSelectionStatePipe,\n        SelectedUsersPipe,\n        CaSvgPipe,\n    ],\n    animations: [\n        inOutAnimation('inOutAnimation'),\n        showAnimation('showAnimation'),\n        closeForm('closeForm'),\n    ]\n})\nexport class CaUserFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() filterTitle!: string;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() toDoSubType!: string;\n    @Input() userGroup!: UserGroup[];\n    @Input() isSearchExpanded: boolean = false;\n\n    private destroy$ = new Subject<void>();\n\n    public eLoadStatus = eLoadStatus;\n    public searchForm!: UntypedFormGroup;\n    public searchInputValue!: string;\n\n    public unselectedVisibleCount: number = 0;\n    public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n    public selectedUserGroup: UserGroup[] = [];\n    public filterActiveArray: UserGroup[] = [];\n    public isAscendingSortOrder: boolean = true;\n    public isButtonAvailable: boolean = false;\n    public hasSelectedUsers: boolean = false;\n    public totalFiltersNum: number = 0;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n\n        this.watchSearchFormValueChanges();\n    }\n\n    get userSearch(): ICaInput {\n        switch (this.type) {\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                return CaUserFilterConfig.getUserSearch();\n\n            default:\n                throw new Error('Unknown filter type');\n        }\n    }\n\n    public getInitials(name: string | undefined): string {\n        return FilterHelper.getInitials(name);\n    }\n\n    public onGroupSwitchState(group: UserGroup): void {\n        group.isOpen = !group.isOpen;\n    }\n\n    public onCheckboxSelect(event: Event, group: UserGroup): void {\n        if (event) event.stopPropagation();\n\n        const totalItems = group.items.length;\n        const selectedItems = group.items.filter(\n            (item) => item.isSelected\n        ).length;\n\n        group.items.forEach((item) => {\n            if (selectedItems === totalItems) item.isSelected = false;\n            else item.isSelected = true;\n        });\n\n        this.hasSelectedUsers = selectedItems !== totalItems;\n    }\n\n    public onFilterClose(): void {\n        FilterHelper.handleGroupFilterClose(\n            this.userGroup,\n            this.selectedUserGroup,\n            this.removeFromSelectedUser.bind(this),\n            this.addToSelectedUser.bind(this)\n        );\n    }\n\n    public setFilterValue(\n        event: Event\n    ): filterOutput | filterOutputWithParams | undefined {\n        this.filterActiveArray = [...this.userGroup];\n        const selectedUsersIdArray: number[] = [];\n        this.totalFiltersNum = this.filterActiveArray.length;\n\n        const mainArray = this.userGroup;\n        let queryParams = {};\n        let subType: string = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n        mainArray.forEach((data: UserGroup) => {\n            data.items.forEach((item: UserData) => {\n                if (item.isSelected) selectedUsersIdArray.push(item.id!);\n            });\n        });\n\n        if (!selectedUsersIdArray.length) {\n            this.clearAll(event);\n            return;\n        }\n\n        queryParams = selectedUsersIdArray;\n        subType =\n            this.toDoSubType ??\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n\n        return data;\n    }\n\n    public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n        if (event) event.stopPropagation();\n\n        this.selectedUserGroup = [];\n        this.filterActiveArray = [];\n        this.totalFiltersNum = 0;\n        this.hasSelectedUsers = false;\n\n        this.userGroup.forEach((group) => {\n            group.items.forEach((item: UserData) => {\n                item.isSelected = false;\n                item.currentSet = false;\n            });\n        });\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n    }\n\n    public handleSelectedUsers(item: UserData, indx: number, indx2: number) {\n        if (item.isSelected) this.removeFromSelectedUser(item, indx, indx2);\n        else this.addToSelectedUser(item, indx, indx2);\n    }\n\n    public addToSelectedUser(item: UserData, indx: number, indx2: number) {\n        const { hasSelectedUsers, unselectedVisibleCount, groupArray } =\n            FilterHelper.addOrRemoveFromGroup(\n                'add',\n                this.userGroup,\n                item,\n                indx,\n                indx2\n            );\n\n        this.hasSelectedUsers = hasSelectedUsers;\n        this.unselectedVisibleCount = unselectedVisibleCount;\n        this.userGroup = [...groupArray];\n\n        this.checkFilterActiveValue();\n    }\n\n    public removeFromSelectedUser(\n        item: UserData,\n        indx: number,\n        indx2: number\n    ): void {\n        const { hasSelectedUsers, unselectedVisibleCount, groupArray } =\n            FilterHelper.addOrRemoveFromGroup(\n                'remove',\n                this.userGroup,\n                item,\n                indx,\n                indx2\n            );\n\n        this.hasSelectedUsers = hasSelectedUsers;\n        this.unselectedVisibleCount = unselectedVisibleCount;\n        this.userGroup = groupArray;\n\n        this.checkFilterActiveValue();\n    }\n\n    public checkFilterActiveValue(): void {\n        const filterCheck = FilterHelper.checkGroupFilterActiveValue(\n            this.filterActiveArray,\n            this.isButtonAvailable\n        );\n\n        this.isButtonAvailable = filterCheck.isButtonAvailable;\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                const inputValue = changes.search?.toLowerCase() || '';\n\n                this.userGroup.forEach((group) => ({\n                    ...group,\n                    items: group.items.map((item) => ({\n                        ...item,\n                        hidden:\n                            (this.type ===\n                                ToolbarFilterStringEnum.USER_FILTER ||\n                                this.type ===\n                                    ToolbarFilterStringEnum.MODULE_FILTER) &&\n                            inputValue &&\n                            !item.name!.toLowerCase().includes(inputValue),\n                    })),\n                }));\n\n                this.searchInputValue =\n                    inputValue ||\n                    ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n            });\n    }\n\n    public sortItems(): void {\n        const sortResult = FilterHelper.sortGroupItemsCount(\n            this.userGroup,\n            this.selectedUserGroup,\n            this.isAscendingSortOrder\n        );\n\n        this.userGroup = sortResult.sortedFilterArray;\n        this.selectedUserGroup = sortResult.sortedSelectedFilterArray;\n        this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (type === 'userFilter' || type === 'moduleFilter') {\n    <div class=\"border-filter\"></div>\n    @if (type === 'userFilter') {\n        <div\n            class=\"search-input-header\"\n            [class.activeSearch]=\"isSearchExpanded\"\n            [class.inactiveSearch]=\"!isSearchExpanded\"\n            [formGroup]=\"searchForm\"\n        >\n            <app-ca-input\n                class=\"input-form-holder\"\n                formControlName=\"search\"\n                [inputConfig]=\"userSearch\"\n            ></app-ca-input>\n        </div>\n    }\n\n    <div\n        class=\"filter-user-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (group of userGroup; let indx = $index; track indx) {\n            @let someSelected = (group | groupSelectionState)?.someSelected;\n            <div\n                class=\"user-items-holder d-flex align-items-center\"\n                (click)=\"onGroupSwitchState(group)\"\n            >\n                <div class=\"checkbox-holder d-flex align-items-center\">\n                    <span\n                        class=\"checkbox-tooltip\"\n                        type=\"button\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"\n                            someSelected ? 'Clear selected' : 'Clear group'\n                        \"\n                        tooltipBackground=\"#CCCCCC\"\n                        tooltipColor=\"#2F2F2F\"\n                        position=\"bottom\"\n                        customClass=\"m-t-4\"\n                    >\n                        <input\n                            class=\"table-checkbox\"\n                            type=\"checkbox\"\n                            id=\"checkbox{{ indx }}\"\n                            [checked]=\"\n                                (group | groupSelectionState).allSelected\n                            \"\n                            [indeterminate]=\"someSelected\"\n                            (click)=\"onCheckboxSelect($event, group)\"\n                        />\n                        <label\n                            class=\"table-checkbox-label br-2\"\n                            for=\"checkbox{{ indx }}\"\n                        ></label>\n                    </span>\n                    <div\n                        class=\"hide-user-group\"\n                        [ngClass]=\"{\n                            svg_rotate: !group.isOpen,\n                            rotate_back: group.isOpen,\n                        }\"\n                    >\n                        <svg-icon\n                            [src]=\"'arrow_filter' | caSvg: 'common'\"\n                        ></svg-icon>\n                    </div>\n                </div>\n                <div\n                    class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold\"\n                >\n                    {{ group.label.toUpperCase() }}\n                </div>\n                <div\n                    class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n                >\n                    {{ group.items | filterSelectedItems }}\n                </div>\n            </div>\n            <div\n                class=\"user-group-holder\"\n                [class.user-group-reduced-holder]=\"type === 'userFilter'\"\n                [@closeForm]=\"group.isOpen\"\n            >\n                @let filteredItems = group?.items ?? [] | selectedUser;\n                @for (item of filteredItems; let indx2 = $index; track indx2) {\n                    <div [@inOutAnimation]=\"'in'\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                userTemplate;\n                                context: {\n                                    item: item,\n                                    indx: indx,\n                                    indx2: indx2,\n                                }\n                            \"\n                        ></ng-container>\n                    </div>\n                }\n\n                @if (someSelected) {\n                    <div class=\"border-filter border-thrird-margin\"></div>\n                }\n\n                @for (\n                    item of group.items | selectedUser: true;\n                    let indx2 = $index;\n                    track indx2\n                ) {\n                    <div [@inOutAnimation]=\"'in'\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                userTemplate;\n                                context: {\n                                    item: item,\n                                    indx: indx,\n                                    indx2: indx2,\n                                }\n                            \"\n                        ></ng-container>\n                    </div>\n                }\n            </div>\n        }\n    </div>\n\n    @if (userGroup?.length !== selectedUserGroup?.length) {\n        <div class=\"border-filter\"></div>\n    }\n}\n\n<ng-template #userTemplate let-item=\"item\" let-indx=\"indx\" let-indx2=\"indx2\">\n    <div\n        class=\"d-flex\"\n        [ngClass]=\"\n            item.isSelected\n                ? 'selected-user-holder justify-content-start align-items-start flex-column'\n                : 'user-frame-holder align-items-center'\n        \"\n    >\n        @if (!item.hidden) {\n            <div\n                (click)=\"handleSelectedUsers(item, indx, indx2)\"\n                class=\"user-main-holder user-frame-holder d-flex align-items-center justify-content-center\"\n                [class.user_svg_icon_holder]=\"type !== 'userFilter'\"\n            >\n                @if (type === 'userFilter') {\n                    <div class=\"user-profile-img d-flex align-items-center\">\n                        @if (item.avatar) {\n                            <div\n                                class=\"user_avatar\"\n                                style.background-image=\"url('{{\n                                    item.avatar\n                                }}')\"\n                            ></div>\n                        } @else {\n                            <app-ca-profile-image\n                                [indx]=\"indx2\"\n                                [textShortName]=\"getInitials(item.name)\"\n                                [size]=\"'small'\"\n                            >\n                            </app-ca-profile-image>\n                        }\n                    </div>\n                } @else {\n                    <div class=\"type-icon d-flex align-items-center\">\n                        <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n                    </div>\n                }\n\n                <div\n                    class=\"d-flex align-items-center\"\n                    [ngClass]=\"\n                        item.isSelected ? 'selected-user-frame' : 'user-frame'\n                    \"\n                    [class.user-frame-no-icon]=\"type !== 'userFilter'\"\n                >\n                    <div class=\"selected-name-text d-flex align-items-center\">\n                        <span> {{ item.name }} </span>\n                    </div>\n                    @if (item?.count) {\n                        <span\n                            class=\"count-holder d-inline-flex justify-content-center align-items-center justify-content-center\"\n                            [class.activeCount]=\"item.isSelected\"\n                        >\n                            {{ item.count }}\n                        </span>\n                    } @else {\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                noCountTemplate;\n                                context: { item: item }\n                            \"\n                        ></ng-container>\n                    }\n                    @if (item.isSelected) {\n                        <div\n                            (click)=\"removeFromSelectedUser(item, indx, indx2)\"\n                            class=\"icon-delete d-flex justify-content-center align-items-center\"\n                            [class.counterMargin]=\"item.count\"\n                        >\n                            <div class=\"icon-delete-hold\"></div>\n                            <svg-icon [src]=\"'x' | caSvg: 'common'\"></svg-icon>\n                        </div>\n                    }\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n<!-- if no count found -->\n<ng-template #noCountTemplate let-item=\"item\">\n    @if (item.count) {\n        <div class=\"counter-holder activeCounter\">0</div>\n    } @else {\n        <div\n            class=\"selected-icon d-flex justify-content-center align-items-center\"\n        >\n            <svg-icon [src]=\"'confirm' | caSvg: 'common'\"></svg-icon>\n        </div>\n    }\n</ng-template>\n","export enum AutoCloseStringEnum {\n  BOTTOM_RIGHT_PLACEMENT = 'bottom-right',\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n// enums\nimport { AutoCloseStringEnum } from './enums/autoclose-string.enum';\n\n@Component({\n    selector: '[app-ca-autoclose-popover]',\n    templateUrl: './ca-autoclose-popover.component.html',\n    styleUrls: ['./ca-autoclose-popover.component.scss'],\n    imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule],\n    encapsulation: ViewEncapsulation.Emulated\n})\nexport class CaAutoclosePopoverComponent implements OnInit {\n  @Input() isDisabled!: boolean;\n  @Input() customClass!: string;\n  @Input() autoClose: string | boolean = 'outside';\n  @Input() placement: string = AutoCloseStringEnum.BOTTOM_RIGHT_PLACEMENT;\n  @Output() closeFilter = new EventEmitter<void>();\n  @Output() openFilter = new EventEmitter<void>();\n\n  public tooltip: NgbPopover | null = null;\n\n  constructor(private eRef: ElementRef) {}\n\n  ngOnInit(): void {}\n\n  public switchTab(event: Event, t2: NgbPopover): void {\n    if (this.tooltip?.isOpen()) this.tooltip.close();\n\n    this.tooltip = t2;\n    this.tooltip.open();\n  }\n\n  public onFilterClose(): void {\n    if (this.closeFilter) this.closeFilter.emit();\n  }\n\n  public onFilterShown(): void {\n    if (this.openFilter) this.openFilter.emit();\n  }\n\n  public closeCustomPopover(): void {\n    if (this.tooltip) this.tooltip.close();\n  }\n}\n","<div\n  #t2=\"ngbPopover\"\n  [ngbPopover]=\"customPopover\"\n  [placement]=\"placement\"\n  [popoverClass]=\"customClass\"\n  triggers=\"'manual'\"\n  [autoClose]=\"autoClose\"\n  (click)=\"switchTab($event, t2)\"\n  [disablePopover]=\"isDisabled\"\n  (hidden)=\"onFilterClose()\"\n  (shown)=\"onFilterShown()\"\n  [container]=\"'body'\"\n>\n  <ng-content select=\"[mainContent]\"></ng-content>\n</div>\n<ng-template #customPopover let-data=\"data\">\n  <ng-content select=\"[popoverContent]\"></ng-content>\n</ng-template>\n","export enum SliderTemplateEnum {\n    RANGE_SLIDER = 'range-slider',\n    COMMISSION = 'commission',\n    LOGO_CHANGE = 'logo-change',\n    HOS_CHANGE = 'hos-change',\n}\n","import {\n  ChangeContext,\n  NgxSliderModule,\n  Options,\n} from '@angular-slider/ngx-slider';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\n\n// Modules\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n// Enums\nimport { SliderTemplateEnum } from './enums/slider-template.enum';\n\n@Component({\n    selector: 'app-ca-ngx-slider',\n    templateUrl: './ca-ngx-slider.component.html',\n    styleUrls: ['./ca-ngx-slider.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        // modules\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        NgxSliderModule,\n    ]\n})\nexport class CaNgxSliderComponent implements AfterViewInit {\n  @Input() sliderTemplate: string = SliderTemplateEnum.COMMISSION;\n  @Input() sliderName!: string;\n  @Input() sliderOptions!: Options;\n  @Input() startedValue: number = 50;\n  @Input() customClass!: string;\n  @Input() minValue: number = 0;\n  @Input() maxValue: number = 5000;\n  @Input() isDisabled: boolean = false;\n\n  @Output() onUserValueChange: EventEmitter<ChangeContext | number> =\n    new EventEmitter<ChangeContext | number>();\n  @Output() onUserHighValueChange: EventEmitter<ChangeContext | number> =\n    new EventEmitter<ChangeContext | number>();\n\n  @ViewChild('slider') slider: any; //leave any for now\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.refreshSlider();\n    }, 500);\n  }\n\n  public userChangeEnd(changes: ChangeContext): void {\n    if (changes) {\n      if (this.sliderTemplate === SliderTemplateEnum.RANGE_SLIDER)\n        this.onUserValueChange.emit(changes);\n      else this.onUserValueChange.emit(changes.value);\n    }\n  }\n\n  public valueChange(event: number): void {\n    if (event) this.onUserValueChange.emit(event);\n  }\n\n  public minValueChange(event: number): void {\n    this.onUserValueChange.emit(event);\n  }\n\n  public highValueChange(event: number): void {\n    if (event) this.onUserHighValueChange.emit(event);\n  }\n\n  public refreshSlider(): void {\n    if (this.slider) this.slider.onResize();\n  }\n}\n","@switch (sliderTemplate) {\n    @case ('commission') {\n        <div\n            class=\"ta-ngx-slider custom-slider-commission {{ customClass }}\"\n            [ngClass]=\"{ disabled: isDisabled }\"\n        >\n            <p class=\"custom-slider-text\">{{ sliderName }}</p>\n            <ngx-slider\n                #slider\n                [options]=\"sliderOptions\"\n                [(value)]=\"startedValue\"\n                (userChangeEnd)=\"userChangeEnd($event)\"\n            >\n            </ngx-slider>\n        </div>\n    }\n    @case ('logo-change') {\n        <div class=\"ta-ngx-slider custom-slider-logo-change {{ customClass }}\">\n            <ngx-slider\n                #slider\n                [options]=\"sliderOptions\"\n                [(value)]=\"startedValue\"\n                (valueChange)=\"valueChange($event)\"\n            >\n            </ngx-slider>\n        </div>\n    }\n    @case ('hos-change') {\n        <ngx-slider\n            #slider\n            [options]=\"sliderOptions\"\n            [(value)]=\"startedValue\"\n            (userChangeEnd)=\"userChangeEnd($event)\"\n        >\n        </ngx-slider>\n    }\n    @case ('range-slider') {\n        <div class=\"range-slider-holder\">\n            <div\n                class=\"ta-ngx-slider custom-slider-commission {{ customClass }}\"\n            >\n                <ngx-slider\n                    #slider\n                    [(value)]=\"minValue\"\n                    [(highValue)]=\"maxValue\"\n                    [options]=\"sliderOptions\"\n                    (valueChange)=\"minValueChange($event)\"\n                    (highValueChange)=\"highValueChange($event)\"\n                >\n                </ngx-slider>\n            </div>\n        </div>\n    }\n}\n","import { Options } from '@angular-slider/ngx-slider';\n\nexport class FilterConfigConstants {\n  static LOCATION_SLIDER_DATA: Options = {\n    floor: 25,\n    ceil: 500,\n    step: 5,\n    showSelectionBar: true,\n    hideLimitLabels: true,\n  };\n\n  static MONEY_SLIDER_DATA: Options = {\n    floor: 0,\n    ceil: 20000,\n    step: 1,\n    showSelectionBar: true,\n    hideLimitLabels: true,\n    noSwitching: true,\n    pushRange: true,\n    minRange: 2000,\n  };\n\n  static MILES_SLIDER_DATA: Options = {\n    floor: 0,\n    ceil: 5000,\n    step: 1,\n    showSelectionBar: true,\n    hideLimitLabels: true,\n    noSwitching: true,\n    pushRange: true,\n    minRange: 10,\n  };\n\n  static VIOLATION_SLIDER_DATA: Options = {\n    floor: 0,\n    ceil: 5,\n    step: 1,\n    showSelectionBar: true,\n    hideLimitLabels: false,\n    noSwitching: true,\n    pushRange: true,\n    minRange: 1,\n  };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n// Custom validator to check if 'to' is greater than 'from'\nexport function rangeValidator(): ValidatorFn {\n  return (group: AbstractControl): ValidationErrors | null => {\n    // Convert null values to empty strings to ensure consistency\n    let from = group.get('from')?.value ?? '';\n    let to = group.get('to')?.value ?? '';\n\n    // Remove non-numeric characters and parse to numbers\n    from = from ? parseFloat(from.replace(/,/g, '')) : null;\n    to = to ? parseFloat(to.replace(/,/g, '')) : null;\n\n    // Skip validation if either 'from' or 'to' is null or NaN after parsing\n    if (!from || !to || isNaN(from) || isNaN(to)) return null;\n\n    const isInvalid = to <= from;\n    if (isInvalid) group.get('to')?.setErrors({ invalid: true });\n    else group.get('to')?.setErrors(null); // Clear previous errors\n\n    return isInvalid ? { invalid: true } : null;\n  };\n}\n","import { Subject } from 'rxjs';\nimport {\n    Component,\n    Input,\n    OnInit,\n    ViewEncapsulation,\n    OnDestroy,\n} from '@angular/core';\nimport {\n    FormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n    ReactiveFormsModule,\n    Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ChangeContext, Options } from '@angular-slider/ngx-slider';\n\n// modules\nimport { AngularSvgIconModule as SvgIconModule } from 'angular-svg-icon';\nimport { NgbDropdownConfig, NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { ThousandSeparatorPipe as ThousandSeparator } from '../../../../pipes/thousand-separator.pipe';\nimport { CaSvgPipe as CaSvg } from '../../../../pipes/ca-svg.pipe';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { closeForm } from '../../../../animations/close-form.animation';\n\n// svg routes\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// enums\nimport { ToolbarFilterStringEnum as ToolbarFilterString } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// components\nimport { CaNgxSliderComponent } from '../../../ca-ngx-slider/ca-ngx-slider.component';\n\n// constants\nimport { FilterConfigConstants } from '../../utils/constants/filter-config.constants';\n\n// validators\nimport { rangeValidator } from '../../validators/range.validator';\n\n@Component({\n    selector: 'app-ca-violation-filter',\n    imports: [\n        // modules\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        NgbModule,\n        HttpClientModule,\n        SvgIconModule,\n        // components\n        CaNgxSliderComponent,\n    ],\n    templateUrl: './ca-violation-filter.component.html',\n    styleUrls: ['./ca-violation-filter.component.scss'],\n    providers: [NgbDropdownConfig, ThousandSeparator, CaSvg],\n    encapsulation: ViewEncapsulation.None,\n    animations: [showAnimation('showAnimation'), closeForm('closeForm')]\n})\nexport class CaViolationFilterComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() toDoSubType!: string;\n\n    private destroy$ = new Subject<void>();\n    public violationFilterForm!: UntypedFormGroup;\n\n    public minValueRange: string = ToolbarFilterString.MIN_VALUE;\n    public maxValueRange: string = ToolbarFilterString.VIOLATION_MAX_VALUE;\n\n    public minValueSet: string = ToolbarFilterString.MIN_VALUE;\n    public maxValueSet: string = ToolbarFilterString.VIOLATION_MAX_VALUE;\n\n    public minValueDragged: number = 0;\n    public maxValueDragged: number = 5;\n\n    public rangeValue: number = 0;\n    public rangeDiffNum: number = 0;\n\n    public violationSliderData: Options =\n        FilterConfigConstants.VIOLATION_SLIDER_DATA;\n\n    constructor(\n        private formBuilder: UntypedFormBuilder,\n\n        // pipes\n        private thousandSeparator: ThousandSeparator\n    ) {}\n\n    ngOnInit(): void {\n        this.createForm();\n    }\n\n    public setMinValueRange(mod: number | ChangeContext): void {\n        const fromValue = this.thousandSeparator.transform(mod);\n        this.violationFilterForm?.get('from')?.setValue(fromValue);\n        this.violationFilterForm?.get('from')?.markAsDirty();\n    }\n\n    public setMaxValueRange(mod: number | ChangeContext): void {\n        const toValue = this.thousandSeparator.transform(mod);\n        this.violationFilterForm?.get('to')?.setValue(toValue);\n        this.violationFilterForm?.get('to')?.markAsDirty();\n    }\n\n    public onFilterClose(): void {\n        this.violationFilterForm.reset();\n        this.rangeValue = 0;\n        this.minValueDragged = 0;\n    }\n\n    private createForm(): void {\n        this.maxValueRange = ToolbarFilterString.VIOLATION_MAX_VALUE;\n        this.maxValueSet = ToolbarFilterString.VIOLATION_MAX_VALUE;\n\n        this.violationFilterForm = this.formBuilder.group(\n            {\n                from: [null, Validators.required],\n                to: null,\n            },\n            { validators: rangeValidator() }\n        );\n    }\n\n    public clearAll(\n        event?: Event\n    ): filterOutput | filterOutputWithParams | undefined {\n        if (event) event.stopPropagation();\n\n        this.rangeValue = 0;\n        this.minValueDragged = 0;\n        this.violationFilterForm.reset();\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n        return data;\n    }\n\n    public setFilterValue(\n        event: Event | undefined\n    ): filterOutput | filterOutputWithParams | undefined {\n        const queryParams = this.violationFilterForm.getRawValue();\n        const subType =\n            this.toDoSubType ??\n            ToolbarFilterString.EMPTY_STRING_PLACEHOLDER.toString();\n\n        const data = {\n            filterType: this.type,\n            action: eGeneralActions.SET,\n            queryParams,\n            subType,\n        };\n        return data;\n    }\n\n    public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n        return FilterHelper.getSvgPath(propertyName);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (type === 'violationFilter') {\n    <div class=\"border-filter money-top-border-magin\"></div>\n    <div class=\"single-form-holder\" [formGroup]=\"violationFilterForm\">\n        <div\n            class=\"filter-middle-holder slider-two-holder\"\n            [@showAnimation]=\"!!isFilterActive\"\n            [class.closePointers]=\"rangeDiffNum < 670 || rangeDiffNum < 2600\"\n        >\n            <app-ca-ngx-slider\n                [sliderOptions]=\"violationSliderData\"\n                [startedValue]=\"rangeValue\"\n                [customClass]=\"'custom-slider-filter'\"\n                (onUserValueChange)=\"setMinValueRange($event)\"\n                (onUserHighValueChange)=\"setMaxValueRange($event)\"\n                [sliderTemplate]=\"'range-slider'\"\n                [minValue]=\"minValueDragged\"\n                [maxValue]=\"maxValueDragged\"\n            ></app-ca-ngx-slider>\n        </div>\n    </div>\n    <div class=\"border-filter money-bottom-border-magin form-border\"></div>\n}\n","export enum GoogleMapEnum {\n  STROKE_OPACITY = 0.4,\n  STROKE_COLOR = 'blue',\n  STROKE_WEIGHT = 4,\n  DARK_MAP = 'dark_map',\n}\n","export enum eMapMarkerString {\n    // Routing marker types\n    PICKUP = 'pickup',\n    DELIVERY = 'delivery',\n    DEADHEAD = 'deadhead',\n    REPAIR = 'repair',\n    FUEL = 'fuel',\n    TOWING = 'towing',\n    PARKING = 'parking',\n    REDIRECT_LOCATION = 'redirectlocation',\n    REDIRECTED_DELIVERY = 'redirecteddelivery',\n    REDIRECTED_PICKUP = 'redirectedpickup',\n    SPLIT_LOCATION = 'splitlocation',\n\n    CURRENT_LOCATION = 'Current Location',\n\n    DARK = 'dark',\n    LIGHT = 'light',\n    WHITE = 'white',\n\n    SELECTED = 'selected',\n    CANCELLED = 'cancelled',\n    CANCELLED_PICKUP = 'cancelledpickup',\n    CANCELLED_DELIVERY = 'cancelleddelivery',\n\n    SPLIT_MARKER_TEXT = 'S',\n}\n","export enum eMapMarkerStopType {\n    // Stop Type Ids\n    DEADHEAD_STOP = 0,\n    PICKUP_STOP = 1,\n    DELIVERY_STOP = 2,\n    SPLIT_LOCATION_STOP = 3,\n    CANCELLED_PICKUP_STOP = 4,\n    REDIRECTED_PICKUP_STOP = 5,\n    CANCELLED_DELIVERY_STOP = 6,\n    REDIRECTED_DELIVERY_STOP = 7,\n    REDIRECT_LOCATION_STOP = 8,\n    CURRENT_LOCATION_STOP = 999,\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\n// models\nimport { ArrayStatus } from '../../models/array-status.model';\nimport { userSelected } from '../../models/user-selected.model';\nimport { filterOutput } from '../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../models/filter-output-params.model';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../ca-map/enums';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n@Component({\n    selector: 'app-ca-collapsible-filter',\n    templateUrl: './ca-collapsible-filter.component.html',\n    styleUrls: ['./ca-collapsible-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        NgbTooltipModule,\n        // components\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaCollapsibleFilterComponent {\n  @Input() isExpanded: boolean = true;\n  @Input() filterArray!: ArrayStatus[];\n  @Input() type!: string;\n  @Output() onTagEmit = new EventEmitter<Event>();\n\n  public selectedFilterArray: ArrayStatus[] = [];\n\n\n  public addToSelectedUser(item: userSelected, event: Event): void {\n    const alreadySelected = this.selectedFilterArray.some(\n      (selected) => selected.id === item.id\n    );\n\n    if (!alreadySelected) {\n      this.selectedFilterArray.push(item);\n      this.onTagClick(event, item);\n    }\n  }\n\n  public removeFromSelectedUser(item: userSelected, event: Event): void {\n    this.selectedFilterArray = this.selectedFilterArray.filter(\n      (selected) => selected.id !== item.id\n    );\n    this.onTagClick(event, item);\n  }\n\n  public onTagClick(event: Event, item: ArrayStatus): void {\n    item.isSelected = !item.isSelected;\n    item.currentSet = !item.currentSet;\n\n    this.onTagEmit.emit(event);\n  }\n\n  public setFilterValue(): filterOutput {\n    const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n    const queryParams = this.selectedFilterArray.map((item) => item.id);\n\n    const action = ToolbarFilterStringEnum.SET;\n    const data = {\n      filterType: this.type,\n      action,\n      queryParams,\n      subType,\n    };\n\n    return data;\n  }\n\n  public toggleExpand(): void {\n    this.isExpanded = !this.isExpanded;\n  }\n}\n","<div class=\"collapsible-filter\">\n    <div\n        class=\"cf-filter-header d-flex justify-content-between align-items-center\"\n    >\n        <div\n            class=\"cf-filter-content\"\n            [class.open]=\"isExpanded\"\n            [class.closed]=\"!isExpanded\"\n        >\n            <div class=\"cf-filter-tags d-flex flex-wrap\">\n                @for (item of filterArray; let indx = $index; track indx) {\n                    <span\n                        class=\"checkbox-tooltip\"\n                        type=\"button\"\n                        ngbTooltip\n                        tooltipBackground=\"#424242\"\n                        tooltipColor=\"#FFFFFF\"\n                        position=\"bottom\"\n                        customClass=\"m-t-4\"\n                        [mainCaTooltip]=\"item.isSelected ? 'Remove' : 'Select'\"\n                    >\n                        <div\n                            class=\"cf-filter-tag ca-font-bold\"\n                            [class.selected]=\"item.isSelected\"\n                            (click)=\"\n                                item.isSelected\n                                    ? removeFromSelectedUser(item, $event)\n                                    : addToSelectedUser(item, $event)\n                            \"\n                        >\n                            <div class=\"cf-tag-text\">{{ item.name }}</div>\n                        </div>\n                    </span>\n                }\n            </div>\n        </div>\n        <span class=\"cf-filter-toggle\" (click)=\"toggleExpand()\">\n            {{ isExpanded ? '▲' : '▼' }}\n        </span>\n    </div>\n</div>\n","export enum eFilterDropdownEnum {\n    DISPATCHER = 'Dispatcher',\n    STATUS = 'Status',\n    PARKING = 'Parking',\n    TRAILER_TYPE = 'TrailerType',\n    TRUCK_TYPE = 'TruckType',\n    TRAILER = 'Trailer',\n    TRUCK = 'Truck',\n    PM = 'Pm',\n    FUEL_ITEM = 'FuelItem',\n    FUEL_STOP = 'FuelStop',\n    TIME_FILTER = 'TimeFilter',\n    SERVICE = 'Service',\n    STATE = 'State',\n    DEPARTMENT = 'Department',\n    LABEL = 'Label',\n    LOAD_TYPE = 'LoadType',\n}\n","export enum eFilterTime {\n    DAY = 'day',\n    DAYS = 'days',\n    WEEK = 'week',\n    WEEKS = 'weeks',\n    MONTH = 'month',\n    MONTHS = 'months',\n    QUARTER = 'quarter',\n    QUARTERS = 'quarters',\n    YEAR = 'year',\n    YEARS = 'years',\n    TODAY = 'today',\n    YESTERDAY = 'yesterday',\n    THIS_WEEK = 'wtd',\n    NEXT_WEEK = 'next week',\n    LAST_WEEK = 'last week',\n    ONE_WEEK = '1 week',\n    ONE_WEEK_FUTURE = 'week_future',\n    THIS_MONTH = 'mtd',\n    NEXT_MONTH = 'next month',\n    LAST_MONTH = 'last month',\n    ONE_MONTH = '1 month',\n    ONE_MONTH_FUTURE = '1 month future',\n    THREE_MONTHS = '3 months',\n    THREE_MONTHS_FUTURE = '3 months future',\n    THIS_QUARTER = 'qtd',\n    NEXT_QUARTER = 'next quarter',\n    LAST_QUARTER = 'last quarter',\n    THIS_YEAR = 'ytd',\n    ONE_YEAR = '1 year',\n    ONE_YEAR_FUTURE = '1 year future',\n    LAST_YEAR = 'last year',\n    YEAR_BEFORE_LAST = 'year before last',\n    MOMENT_DATE_FORMAT = 'MM/DD/YY'\n}","export enum eFilterSortingKey {\n    NAME = 'name',\n    COUNT = 'count'\n}","import moment from 'moment';\nimport { eFilterTime } from '../../enums';\n\nexport class TimeFilterHelper {\n    static convertTimeToDate(\n        period: string,\n        year?: number\n    ): { fromDate: string; toDate: string } {\n        let today: moment.Moment;\n        if (year) {\n            today = moment().year(year).startOf(eFilterTime.DAY);\n        } else {\n            today = moment().startOf(eFilterTime.DAY);\n        }\n\n        let fromDate: moment.Moment = moment(),\n            toDate: moment.Moment = moment();\n\n        switch (period.toLowerCase()) {\n            case eFilterTime.TODAY:\n                fromDate = moment(today);\n                toDate = moment(today);\n                break;\n            case eFilterTime.YESTERDAY:\n                fromDate = moment(today).subtract(1, eFilterTime.DAYS);\n                toDate = moment(today).subtract(1, eFilterTime.DAYS);\n                break;\n            case eFilterTime.THIS_WEEK:\n                fromDate = moment(today).startOf(eFilterTime.WEEK);\n                toDate = moment(today).endOf(eFilterTime.WEEK);\n                break;\n            case eFilterTime.LAST_WEEK:\n                fromDate = moment(today)\n                    .subtract(1, eFilterTime.WEEKS)\n                    .startOf(eFilterTime.WEEK);\n                toDate = moment(today)\n                    .subtract(1, eFilterTime.WEEKS)\n                    .endOf(eFilterTime.WEEK);\n                break;\n            case eFilterTime.NEXT_WEEK:\n                fromDate = moment(today)\n                    .add(1, eFilterTime.WEEKS)\n                    .startOf(eFilterTime.WEEK);\n                toDate = moment(today)\n                    .add(1, eFilterTime.WEEKS)\n                    .endOf(eFilterTime.WEEK);\n                break;\n            case eFilterTime.ONE_WEEK:\n                fromDate = moment(today).subtract(1, eFilterTime.WEEKS);\n                toDate = moment(today);\n                break;\n            case eFilterTime.ONE_WEEK_FUTURE:\n                fromDate = moment(today);\n                toDate = moment(today).add(1, eFilterTime.WEEKS);\n                break;\n            case eFilterTime.THIS_MONTH:\n                fromDate = moment(today).startOf(eFilterTime.MONTH);\n                toDate = moment(today).endOf(eFilterTime.MONTH);\n                break;\n            case eFilterTime.LAST_MONTH:\n                fromDate = moment(today)\n                    .subtract(1, eFilterTime.MONTHS)\n                    .startOf(eFilterTime.MONTH);\n                toDate = moment(today)\n                    .subtract(1, eFilterTime.MONTHS)\n                    .endOf(eFilterTime.MONTH);\n                break;\n            case eFilterTime.ONE_MONTH_FUTURE:\n                fromDate = moment(today);\n                toDate = moment(today).add(1, eFilterTime.MONTHS);\n                break;\n            case eFilterTime.ONE_MONTH:\n                fromDate = moment(today).subtract(1, eFilterTime.MONTHS);\n                toDate = moment(today);\n                break;\n            case eFilterTime.NEXT_MONTH:\n                fromDate = moment(today)\n                    .add(1, eFilterTime.MONTHS)\n                    .startOf(eFilterTime.MONTH);\n                toDate = moment(today)\n                    .add(1, eFilterTime.MONTHS)\n                    .endOf(eFilterTime.MONTH);\n                break;\n            case eFilterTime.THREE_MONTHS:\n                fromDate = moment(today).subtract(3, eFilterTime.MONTHS);\n                toDate = moment(today);\n                break;\n            case eFilterTime.THREE_MONTHS_FUTURE:\n                fromDate = moment(today);\n                toDate = moment(today)\n                    .add(3, eFilterTime.MONTHS)\n                    .endOf(eFilterTime.MONTH);\n                break;\n            case eFilterTime.THIS_QUARTER:\n                fromDate = moment(today).startOf(eFilterTime.QUARTER);\n                toDate = moment(today).endOf(eFilterTime.QUARTER);\n                break;\n            case eFilterTime.LAST_QUARTER:\n                fromDate = moment(today)\n                    .subtract(1, eFilterTime.QUARTERS)\n                    .startOf(eFilterTime.QUARTER);\n                toDate = moment(today)\n                    .subtract(1, eFilterTime.QUARTERS)\n                    .endOf(eFilterTime.QUARTER);\n                break;\n            case eFilterTime.NEXT_QUARTER:\n                fromDate = moment(today)\n                    .add(1, eFilterTime.QUARTERS)\n                    .startOf(eFilterTime.QUARTER);\n                toDate = moment(today)\n                    .add(1, eFilterTime.QUARTERS)\n                    .endOf(eFilterTime.QUARTER);\n                break;\n            case eFilterTime.THIS_YEAR:\n                fromDate = moment(today).startOf(eFilterTime.YEAR);\n                toDate = moment(today).endOf(eFilterTime.YEAR);\n                break;\n            case eFilterTime.ONE_YEAR_FUTURE:\n                fromDate = moment(today);\n                toDate = moment(today).add(1, eFilterTime.YEARS);\n                break;\n            case eFilterTime.ONE_YEAR:\n                fromDate = moment(today).subtract(1, eFilterTime.YEARS);\n                toDate = moment(today);\n                break;\n            case eFilterTime.LAST_YEAR:\n            case eFilterTime.YEAR_BEFORE_LAST:\n                fromDate = moment(today).startOf(eFilterTime.YEAR);\n                toDate = moment(today).endOf(eFilterTime.YEAR);\n                break;\n            default:\n                break;\n        }\n\n        const fromDateFormatted = fromDate.format(\n            eFilterTime.MOMENT_DATE_FORMAT\n        );\n        const toDateFormatted = toDate.format(eFilterTime.MOMENT_DATE_FORMAT);\n\n        return { fromDate: fromDateFormatted, toDate: toDateFormatted };\n    }\n}\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { eGeneralActions } from '../../../../enums';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { TimeFilterOptions } from '../../../../models/time-filter.model';\n\n// constants\nimport { TimeFilterConstants } from '../../utils/helpers/time-filter.helper';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes';\nimport { TimeFilterHelper } from '../../../ca-new-filter/utils/helpers';\nimport { ITimeOptions } from '../../../ca-new-filter/interface';\n\n@Component({\n    imports: [\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        // pipes\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    selector: 'app-ca-time-filter-dropdown',\n    templateUrl: './ca-time-filter-dropdown.component.html',\n    styleUrls: ['./ca-time-filter-dropdown.component.scss'],\n    animations: [showAnimation('showAnimation')],\n})\nexport class CaTimeFilterDropdownComponent implements OnInit, OnDestroy {\n    @Input() type!: string;\n    @Input() timeSubType!: string;\n    @Input() isFilterActive: boolean = false;\n    @Input() selectedTimeValue!: string;\n\n    @Output() itemSelected: EventEmitter<Event> = new EventEmitter();\n\n    private destroy$ = new Subject<void>();\n\n    public selectedTimeYear: number | null = null;\n    public filterActiveTime!: string;\n\n    public isButtonAvailable: boolean = false;\n    public lastYear: number | null = null;\n    public last2Years: number | null = null;\n    public timeOptionsArray: ITimeOptions[] = [];\n\n    ngOnInit(): void {\n        this.timeFilterInit();\n        this.timeOptionsInit();\n    }\n\n    private timeFilterInit(): void {\n        this.type = ToolbarFilterStringEnum.TIME_FILTER;\n\n        const date = new Date();\n        const pastYear = date.getFullYear() - 1;\n        const past2Year = date.getFullYear() - 2;\n\n        this.lastYear = pastYear;\n        this.last2Years = past2Year;\n    }\n\n    private timeOptionsInit(): void {\n        if (this.timeSubType === ToolbarFilterStringEnum.PAST)\n            this.timeOptionsArray = TimeFilterConstants.getTimePastOptions(\n                this.lastYear!.toString(),\n                this.last2Years!.toString()\n            );\n        else if (this.timeSubType === ToolbarFilterStringEnum.FUTURE)\n            this.timeOptionsArray = TimeFilterConstants.getTimeFutureOptions();\n        else this.timeOptionsArray = TimeFilterConstants.getTimeShortOptions();\n    }\n\n    public setTimeValue(mod: string, year?: number): void {\n        if (this.selectedTimeValue === mod) {\n            this.selectedTimeValue =\n                ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n        } else {\n            this.selectedTimeValue = mod;\n        }\n\n        if (year) {\n            if (this.selectedTimeYear === year) this.selectedTimeYear = null;\n            else this.selectedTimeYear = year;\n        } else {\n            this.selectedTimeYear = null;\n        }\n\n        if (this.filterActiveTime === mod) {\n            this.isButtonAvailable = false;\n        } else {\n            this.isButtonAvailable = true;\n        }\n\n        this.itemSelected.emit();\n    }\n\n    public onFilterClose(): void {\n        this.selectedTimeValue = this.filterActiveTime;\n    }\n\n    public setFilterValue(\n        $event: Event\n    ): filterOutput | filterOutputWithParams | undefined {\n        let queryParams = {};\n        let subType =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n        this.filterActiveTime = this.selectedTimeValue;\n        const setActionType: string = 'Set';\n\n        if (!this.selectedTimeValue) {\n            this.clearAll($event);\n            return;\n        }\n\n        if (this.selectedTimeYear) {\n            queryParams = {\n                timeSelected: this.filterActiveTime,\n                year: this.selectedTimeYear,\n            };\n        } else {\n            queryParams = {\n                timeSelected: this.filterActiveTime,\n            };\n        }\n\n        const timeLabel = this.timeOptionsArray\n            .flatMap((option) => option.items)\n            .find((item) => item.value === this.selectedTimeValue);\n\n        const { fromDate, toDate } = this.convertTimeToDate(\n            timeLabel?.value as string,\n            timeLabel?.year as number\n        );\n\n        queryParams = { ...queryParams, dateFrom: fromDate, dateTo: toDate };\n\n        const data = {\n            filterType: 'TimeFilter',\n            action: setActionType,\n            queryParams,\n            subType,\n        };\n        return data;\n    }\n\n    private convertTimeToDate(\n        period: string,\n        year?: number\n    ): { fromDate: string; toDate: string } {\n        return TimeFilterHelper.convertTimeToDate(period, year);\n    }\n\n    public clearAll(event?: Event) {\n        this.selectedTimeValue =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n        this.filterActiveTime =\n            ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n        this.isButtonAvailable = true;\n\n        const data = {\n            action: eGeneralActions.CLEAR,\n            type: this.type,\n            filterType: this.type,\n        };\n\n        return data;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"time-filter-holder\">\n    <div\n        class=\"time-items-holder d-flex justify-content-start align-items-start flex-column\"\n    >\n        @for (timeOption of timeOptionsArray; let indx = $index; let isLast = $last; track indx) {\n            @for (item of timeOption.items; let ind = $index; track ind) {\n                <div\n                    class=\"time-items d-flex align-items-center fw-normal\"\n                    [class.active]=\"selectedTimeValue === item.label\"\n                    [@showAnimation]=\"!!isFilterActive\"\n                    (click)=\"\n                        selectedTimeValue !== item.label\n                            ? setTimeValue(item.label)\n                            : null\n                    \"\n                >\n                    {{ item.label }}\n                    <div\n                        class=\"selected-icon d-flex justify-content-center align-items-center\"\n                    >\n                        <svg-icon\n                            [src]=\"'confirm' | caSvg: 'common'\"\n                        ></svg-icon>\n                    </div>\n                </div>\n            }\n\n            @if (!isLast) {\n                <div class=\"background-black br-2 h-1 w-100 m-b-4\"></div>\n            }\n        }\n    </div>\n</div>\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    ViewChild,\n    Renderer2,\n    ViewEncapsulation,\n    QueryList,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// animations\nimport { showAnimation } from '../../animations/show.animation';\nimport { closeForm } from '../../animations/close-form.animation';\n\n// pipes\nimport { FilterConditionsSetPipe } from './pipes/filter-conditions-set.pipe';\nimport { FilterConditionsClearPipe } from './pipes/filter-conditions-clear.pipe';\nimport { FilterPopoverConditionsPipe } from './pipes/filter-popover-conditions.pipe';\nimport { FilterConditionsUserBoxPipe } from './pipes/filter-conditions-user-box.pipe';\nimport { CaSvgPipe } from '../../pipes/ca-svg.pipe';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../ca-map/enums/toolbar-filter-string.enum';\nimport { FilterActionsStringEnum } from './enums/filter-actions-string.enum';\n\n// models\nimport { ArrayStatus } from '../../models/array-status.model';\nimport { filterOutput } from '../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../models/filter-output-params.model';\nimport { UserGroup } from './components/ca-user-filter/models/ca-user-group.model';\n\n// components\nimport { CaStatusFilterComponent } from './components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from './components/ca-time-filter/ca-time-filter.component';\nimport { CaDispatcherFilterComponent } from './components/ca-dispatcher-filter/ca-dispatcher-filter.component';\nimport { CaStateFilterComponent } from './components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from './components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from './components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from './components/ca-pm-filter/ca-pm-filter.component';\nimport { CaUserFilterComponent } from './components/ca-user-filter/ca-user-filter.component';\nimport { CaAutoclosePopoverComponent } from '../ca-autoclose-popover/ca-autoclose-popover.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaViolationFilterComponent } from './components/ca-violation-filter/ca-violation-filter.component';\nimport { CaCollapsibleFilterComponent } from '../ca-collapsible-filter/ca-collapsible-filter.component';\nimport { CaTimeFilterDropdownComponent } from './components/ca-time-filter-dropdown/ca-time-filter-dropdown.component';\n\n@Component({\n    selector: 'app-ca-filter',\n    templateUrl: './ca-filter.component.html',\n    styleUrls: ['./ca-filter.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaStatusFilterComponent,\n        CaTimeFilterComponent,\n        CaDispatcherFilterComponent,\n        CaStateFilterComponent,\n        CaTruckTypeFilterComponent,\n        CaTrailerTypeFilterComponent,\n        CaPmFilterComponent,\n        CaUserFilterComponent,\n        CaViolationFilterComponent,\n        CaAutoclosePopoverComponent,\n        CaAppTooltipV2Component,\n        CaCollapsibleFilterComponent,\n        CaTimeFilterDropdownComponent,\n        // pipes\n        FilterConditionsSetPipe,\n        FilterConditionsClearPipe,\n        FilterConditionsUserBoxPipe,\n        FilterPopoverConditionsPipe,\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.Emulated,\n    animations: [showAnimation('showAnimation'), closeForm('closeForm')],\n})\nexport class CaFilterComponent implements OnDestroy {\n    @ViewChild('t2') t2!: NgbPopover;\n    @ViewChild(CaAutoclosePopoverComponent)\n    public autoClose!: CaAutoclosePopoverComponent;\n\n    @ViewChild(CaStatusFilterComponent)\n    public caStatusFilter!: CaStatusFilterComponent;\n\n    @ViewChild(CaTimeFilterComponent)\n    public caTimeFilter!: CaTimeFilterComponent;\n\n    @ViewChild(CaTimeFilterDropdownComponent)\n    public caTimeFilterDropdown!: CaTimeFilterDropdownComponent;\n\n    @ViewChild(CaDispatcherFilterComponent)\n    public caDispatcherFilter!: CaDispatcherFilterComponent;\n\n    @ViewChild(CaStateFilterComponent)\n    public caStateFilter!: CaStateFilterComponent;\n\n    @ViewChild(CaTruckTypeFilterComponent)\n    public caTruckTypeFilter!: CaTruckTypeFilterComponent;\n\n    @ViewChild(CaTrailerTypeFilterComponent)\n    public caTrailerTypeFilter!: CaTrailerTypeFilterComponent;\n\n    @ViewChild(CaPmFilterComponent)\n    public caPmFilter!: CaPmFilterComponent;\n\n    @ViewChild(CaCollapsibleFilterComponent)\n    public caCollapsibleFilter!: CaCollapsibleFilterComponent;\n\n    @ViewChild(CaUserFilterComponent)\n    public caUserFilter!: CaUserFilterComponent;\n\n    @ViewChild(CaViolationFilterComponent)\n    public caViolationFilter!: CaViolationFilterComponent;\n\n    @Input() type!: string;\n    @Input() isDisabled!: boolean;\n    @Input() timeSubType: string = ToolbarFilterStringEnum.PAST;\n    @Input() subType: string = ToolbarFilterStringEnum.PENDING_STATUS;\n    @Input() unselectedUser!: ArrayStatus[];\n    @Input() userGroup!: UserGroup[];\n    @Input() loadStatusOptionsArray!: ArrayStatus[];\n    @Input() truckTypeArray!: ArrayStatus[];\n    @Input() trailerTypeArray!: ArrayStatus[];\n    @Input() pmFilterArray!: ArrayStatus[];\n    @Input() selectedTimeValue!: string;\n\n    @Input() isRepairFilter: boolean = false;\n    @Input() hasNoLeftIcon: boolean = false;\n    @Input() hasLeftSideIcon: boolean = false;\n    @Input() hasLargeLeftIcon: boolean = false;\n\n    @Input() isMoneyFilter: boolean = true;\n    @Input() isMilesFilter: boolean = false;\n    @Input() isButtonFilter: boolean = false;\n    @Input() isFuelType: boolean = false;\n    @Input() isLoadType: boolean = true;\n    @Input() isCollapsibleFilter: boolean = false;\n    @Input() filterTitle!: string;\n    @Input() icon!: string;\n\n    @Input() usaStates!: ArrayStatus[];\n    @Input() canadaStates!: ArrayStatus[];\n\n    @Output() setFilter = new EventEmitter<\n        filterOutput | filterOutputWithParams\n    >();\n\n    @Output() clearAll = new EventEmitter<\n        filterOutput | filterOutputWithParams\n    >();\n\n    private destroy$ = new Subject<void>();\n    public isSearchExpanded!: boolean;\n    public isFilterActive: boolean = false;\n    public selectedUser: ArrayStatus[] = [];\n    public isAscendingSortOrder: boolean = true;\n    public autoCloseComponent!: QueryList<CaAutoclosePopoverComponent>;\n    public isHoverClosed: boolean = false;\n    public isFilterHoveredOver: boolean = false;\n    public isAnimated: boolean = false;\n    public isFilterActiveColor: boolean = false;\n    public filterCount: number = 0;\n    public hasFilterCount: boolean = false;\n\n    constructor(private renderer: Renderer2) {}\n\n    public ngOnInit(): void {\n        this.filterCount = this.getFilterCount();\n        this.hasFilterCount = !this.isNotDropdown() && !!this.filterCount;\n    }\n\n    public getComponentInstance(): CaFilterComponent {\n        return this;\n    }\n\n    public isNotDropdown(): boolean {\n        return (\n            this.type === ToolbarFilterStringEnum.MONEY_FILTER ||\n            this.type === ToolbarFilterStringEnum.TIME_FILTER ||\n            this.type === ToolbarFilterStringEnum.MILES_FILTER ||\n            this.type === ToolbarFilterStringEnum.VIOLATION_FILTER\n        );\n    }\n\n    public getFilterCount(): number {\n        return (\n            this.caPmFilter?.selectedPmFilterArray.length ||\n            this.caStatusFilter?.selectedUser.length ||\n            this.caTrailerTypeFilter?.selectedTrailerTypeArray.length ||\n            this.caTruckTypeFilter?.selectedTruckTypeArray.length ||\n            this.caDispatcherFilter?.selectedUser.length ||\n            this.caStateFilter?.usaSelectedStates.length ||\n            this.caStateFilter?.canadaSelectedStates.length\n        );\n    }\n\n    public onFilterClose(): boolean {\n        if (!this.isFilterActive) return false;\n        this.isFilterActive = false;\n\n        let mainElementHolder;\n\n        if (!this.isButtonFilter) {\n            if (this.type === ToolbarFilterStringEnum.TIME_FILTER)\n                mainElementHolder = this.renderer.selectRootElement(\n                    '.time-filter-holder',\n                    true\n                );\n            else\n                mainElementHolder = this.renderer.selectRootElement(\n                    '.filter-holder',\n                    true\n                );\n        }\n\n        switch (this.type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                if (this.caStatusFilter) this.caStatusFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.TIME_FILTER:\n                if (this.caTimeFilter) this.caTimeFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                if (this.caDispatcherFilter)\n                    this.caDispatcherFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.STATE_FILTER:\n                if (this.caStateFilter) this.caStateFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                if (this.caTruckTypeFilter)\n                    this.caTruckTypeFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                if (this.caTrailerTypeFilter)\n                    this.caTrailerTypeFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                if (this.caPmFilter) this.caPmFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                if (this.caUserFilter) this.caUserFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.VIOLATION_FILTER:\n                if (this.caViolationFilter)\n                    this.caViolationFilter.onFilterClose();\n                break;\n\n            case ToolbarFilterStringEnum.VACATION_FILTER:\n                this.clearAll.emit({\n                    action: ToolbarFilterStringEnum.CLEAR,\n                    filterType: ToolbarFilterStringEnum.VACATION_FILTER,\n                    vacation: false,\n                });\n                break;\n\n            default:\n                break;\n        }\n\n        return true;\n    }\n\n    public onFilterShown(): void {\n        this.isFilterActive = true;\n        this.isAnimated = true;\n\n        if (this.type === ToolbarFilterStringEnum.VACATION_FILTER) {\n            this.setFilter.emit({\n                action: ToolbarFilterStringEnum.SET,\n                filterType: ToolbarFilterStringEnum.VACATION_FILTER,\n                vacation: true,\n            });\n        }\n    }\n\n    public sortItems(): void {\n        switch (this.type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                if (this.caStatusFilter) {\n                    this.caStatusFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caStatusFilter.isAscendingSortOrder;\n                }\n                break;\n\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                if (this.caDispatcherFilter) {\n                    this.caDispatcherFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caDispatcherFilter.isAscendingSortOrder;\n                }\n                break;\n\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                if (this.caTruckTypeFilter) {\n                    this.caTruckTypeFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caTruckTypeFilter.isAscendingSortOrder;\n                }\n                break;\n\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                if (this.caTrailerTypeFilter) {\n                    this.caTrailerTypeFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caTrailerTypeFilter.isAscendingSortOrder;\n                }\n                break;\n\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                if (this.caPmFilter) {\n                    this.caPmFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caPmFilter.isAscendingSortOrder;\n                }\n                break;\n\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                if (this.caUserFilter) {\n                    this.caUserFilter.sortItems();\n                    this.isAscendingSortOrder =\n                        this.caUserFilter.isAscendingSortOrder;\n                }\n                break;\n\n            default:\n                this.isAscendingSortOrder = true;\n                break;\n        }\n    }\n\n    public showSearch(mod?: string): void {\n        this.isSearchExpanded = !mod;\n    }\n\n    public setFilterValue(event: Event): void {\n        let filterResult: filterOutput | filterOutputWithParams | any;\n        this.isFilterActiveColor = true;\n\n        if (this.isCollapsibleFilter && this.caCollapsibleFilter) {\n            filterResult = this.caCollapsibleFilter.setFilterValue();\n            this.setFilterEmit(filterResult);\n            return;\n        }\n\n        switch (this.type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                if (this.caStatusFilter)\n                    filterResult = this.caStatusFilter.setFilterValue();\n                break;\n\n            case ToolbarFilterStringEnum.TIME_FILTER:\n                if (this.caTimeFilter)\n                    filterResult = this.caTimeFilter.setFilterValue(event);\n\n                this.selectedTimeValue =\n                    filterResult?.queryParams?.timeSelected;\n                break;\n\n            case ToolbarFilterStringEnum.TIME_FILTER_DROPDOWN:\n                if (this.caTimeFilterDropdown)\n                    filterResult =\n                        this.caTimeFilterDropdown.setFilterValue(event);\n\n                this.selectedTimeValue =\n                    filterResult?.queryParams?.timeSelected;\n                break;\n\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                if (this.caDispatcherFilter)\n                    filterResult =\n                        this.caDispatcherFilter.setFilterValue(event);\n                break;\n\n            case ToolbarFilterStringEnum.STATE_FILTER:\n                if (this.caStateFilter)\n                    filterResult = this.caStateFilter.setFilterValue();\n                break;\n\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                if (this.caTruckTypeFilter)\n                    filterResult = this.caTruckTypeFilter.setFilterValue();\n                break;\n\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                if (this.caTrailerTypeFilter)\n                    filterResult = this.caTrailerTypeFilter.setFilterValue();\n                break;\n\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                if (this.caPmFilter)\n                    filterResult = this.caPmFilter.setFilterValue();\n                break;\n\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                if (this.caUserFilter)\n                    filterResult = this.caUserFilter.setFilterValue(event);\n                break;\n\n            case ToolbarFilterStringEnum.VIOLATION_FILTER:\n                if (this.caViolationFilter)\n                    filterResult = this.caViolationFilter.setFilterValue(event);\n                break;\n\n            default:\n                const action = FilterActionsStringEnum.ACTION_CLEAR;\n                const type = FilterActionsStringEnum.TYPE_UNKNOWN;\n                const filterType = FilterActionsStringEnum.TYPE_UNKNOWN;\n                const data = {\n                    action,\n                    type,\n                    filterType,\n                };\n                filterResult = data;\n                break;\n        }\n\n        if (filterResult) this.autoClose.closeCustomPopover();\n        this.setFilterEmit(filterResult);\n    }\n\n    public setFilterEmit(\n        data: filterOutput | filterOutputWithParams | undefined\n    ): void {\n        if (this.setFilter) this.setFilter.emit(data);\n    }\n\n    public clearAllValues(event?: Event): void {\n        let filterResult: filterOutput | filterOutputWithParams | undefined;\n        this.isFilterActiveColor = false;\n        this.isHoverClosed = false;\n\n        switch (this.type) {\n            case ToolbarFilterStringEnum.STATUS_FILTER:\n                if (this.caStatusFilter)\n                    filterResult = this.caStatusFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.TIME_FILTER:\n                if (this.caTimeFilter)\n                    filterResult = this.caTimeFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.DISPATCHER_FILTER:\n            case ToolbarFilterStringEnum.DRIVER_FILTER:\n            case ToolbarFilterStringEnum.FUEL_STOP_FILTER:\n            case ToolbarFilterStringEnum.BROKER_FILTER:\n                if (this.caDispatcherFilter)\n                    filterResult = this.caDispatcherFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.STATE_FILTER:\n                if (this.caStateFilter)\n                    filterResult = this.caStateFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n                if (this.caTruckTypeFilter)\n                    filterResult = this.caTruckTypeFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n                if (this.caTrailerTypeFilter)\n                    filterResult = this.caTrailerTypeFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.PM_FILTER:\n            case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER:\n            case ToolbarFilterStringEnum.FUEL_ITEM_FILTER:\n            case ToolbarFilterStringEnum.DEPARTMENT_FILTER:\n            case ToolbarFilterStringEnum.PARKING_FILTER:\n            case ToolbarFilterStringEnum.TAG_FILTER:\n            case ToolbarFilterStringEnum.ACTION_FILTER:\n            case ToolbarFilterStringEnum.LABEL_FILTER:\n                if (this.caPmFilter)\n                    filterResult = this.caPmFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.USER_FILTER:\n            case ToolbarFilterStringEnum.MODULE_FILTER:\n                if (this.caUserFilter)\n                    filterResult = this.caUserFilter.clearAll(event);\n                break;\n\n            case ToolbarFilterStringEnum.VIOLATION_FILTER:\n                if (this.caViolationFilter)\n                    filterResult = this.caViolationFilter.clearAll(event);\n                break;\n\n            default:\n                const action = FilterActionsStringEnum.ACTION_CLEAR;\n                const type = FilterActionsStringEnum.TYPE_UNKNOWN;\n                const filterType = FilterActionsStringEnum.TYPE_UNKNOWN;\n                const data = {\n                    action,\n                    type,\n                    filterType,\n                };\n                filterResult = data;\n                break;\n        }\n\n        if (filterResult) this.autoClose.closeCustomPopover();\n        this.clearAllValuesEmit(filterResult);\n    }\n\n    public clearAllValuesEmit(\n        data: filterOutput | filterOutputWithParams | undefined\n    ): void {\n        if (this.clearAll) this.clearAll.emit(data);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"user-icon d-flex justify-content-center align-items-center\"\n    app-ca-autoclose-popover\n    [customClass]=\"'filterpopovermain'\"\n    [placement]=\"isCollapsibleFilter ? 'right' : 'bottom-left'\"\n    autoClose=\"outside\"\n    (closeFilter)=\"onFilterClose()\"\n    (openFilter)=\"onFilterShown()\"\n    [ngClass]=\"{\n        'active-options': isFilterActive && type !== 'timeFilterDropdown',\n        'clear-colors': isHoverClosed,\n        'filter-active-colors':\n            isFilterActiveColor && type !== 'timeFilterDropdown',\n        'active-collapsible':\n            isCollapsibleFilter && type !== 'timeFilterDropdown',\n        'c-pointer': !isDisabled,\n        'default-filter-state':\n            !isDisabled &&\n            !isFilterActive &&\n            !isHoverClosed &&\n            !isFilterActiveColor,\n        'w-126': type === 'timeFilterDropdown',\n        'time-filter background-bw2 background-hover-bw-9':\n            type === 'timeFilterDropdown' && !isFilterActive,\n        'background-black-2': type === 'timeFilterDropdown' && isFilterActive,\n    }\"\n    [isDisabled]=\"isDisabled\"\n    (mouseenter)=\"isFilterHoveredOver = true\"\n    (mouseleave)=\"isFilterHoveredOver = false\"\n>\n    <div\n        mainContent\n        ngbTooltip\n        mainCaTooltip=\"{{\n            'mainTooltip'\n                | filterPopoverConditionsPipe\n                    : getComponentInstance()\n                    : caStatusFilter\n                    : caDispatcherFilter\n                    : caStateFilter\n                    : caTruckTypeFilter\n                    : caTrailerTypeFilter\n                    : caPmFilter\n        }}\"\n        position=\"bottom\"\n        tooltipBackground=\"{{ isFilterActive ? '#CCCCCC' : '#2F2F2F' }}\"\n        tooltipColor=\"{{ isFilterActive ? '#2F2F2F' : '#FFFFFF' }}\"\n        tooltipTextAlign=\"center\"\n        class=\"main-icon-holder d-flex justify-content-center align-items-center\"\n        [class]=\"{\n            'svg-fill-muted svg-hover-black': !isDisabled,\n        }\"\n    >\n        <div\n            [ngClass]=\"{\n                'd-flex align-items-center w-126 p-x-6':\n                    type === 'timeFilterDropdown',\n            }\"\n        >\n            @if (type !== 'timeFilterDropdown') {\n                <svg-icon\n                    class=\"d-flex svg-size-14\"\n                    [class.svg-fill-light-grey-6]=\"isDisabled\"\n                    [src]=\"icon | caSvg: 'common'\"\n                ></svg-icon>\n            } @else {\n                <div\n                    class=\"flex-1 time-filter-title text-size-14 ca-font-extra-bold\"\n                    [ngClass]=\"{\n                        'text-color-white': isFilterActive,\n                        'text-color-bw6-2': !isFilterActive,\n                    }\"\n                >\n                    {{ selectedTimeValue ?? 'Time Filter' }}\n                </div>\n                <svg-icon\n                    class=\"time-filter-arrow ms-1 svg-size-14\"\n                    [class.rotate-arrow]=\"isFilterActive\"\n                    [src]=\"'ic_arrow_input' | caSvg: 'common'\"\n                ></svg-icon>\n            }\n        </div>\n        @if (isFilterActiveColor && type !== 'timeFilterDropdown') {\n            @if (isFilterHoveredOver) {\n                <div\n                    class=\"filters-selected-value-holder svg-size-14 text-size-11 d-flex justify-content-center align-items-center\"\n                    (mouseenter)=\"isHoverClosed = true\"\n                    (mouseleave)=\"isHoverClosed = false\"\n                    (click)=\"clearAllValues($event)\"\n                >\n                    <svg-icon\n                        class=\"d-flex svg-size-14\"\n                        [src]=\"'cancelViolation' | caSvg: 'common' : 'calendar'\"\n                    ></svg-icon>\n                </div>\n            } @else {\n                @if (hasFilterCount) {\n                    <div\n                        class=\"filters-selected-value-holder svg-size-14 text-size-11 d-flex justify-content-center align-items-center ca-font-extra-bold\"\n                    >\n                        {{ filterCount }}\n                    </div>\n                } @else {\n                    <div\n                        class=\"filters-selected-value-holder svg-size-14 text-size-11 d-flex justify-content-center align-items-center\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14\"\n                            [src]=\"'confirm' | caSvg: 'input'\"\n                        ></svg-icon>\n                    </div>\n                }\n            }\n        }\n    </div>\n\n    <div popoverContent class=\"main-popover-body\">\n        @if (isCollapsibleFilter) {\n            <app-ca-collapsible-filter\n                (onTagEmit)=\"setFilterValue($event)\"\n                [filterArray]=\"pmFilterArray\"\n                [type]=\"type\"\n            ></app-ca-collapsible-filter>\n        }\n        @if (!isButtonFilter && !isCollapsibleFilter) {\n            <div\n                [@showAnimation]=\"!!isFilterActive\"\n                class=\"filter-holder d-flex justify-content-start align-items-start\"\n                [class.state-filter]=\"type === 'stateFilter'\"\n                [class.department-filter]=\"hasNoLeftIcon\"\n                [class.status-filter]=\"type === 'statusFilter'\"\n                [class.pm-filter]=\"hasLeftSideIcon\"\n                [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n                [class.money-filter]=\"\n                    type === 'moneyFilter' || type === 'milesFilter'\n                \"\n                [class.location-filter]=\"type === 'locationFilter'\"\n                [class.w-126]=\"type === 'timeFilterDropdown'\"\n            >\n                @if (type !== 'timeFilterDropdown') {\n                    <div\n                        class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n                        [class.activeHeader]=\"!isSearchExpanded\"\n                        [class.inactiveHeader]=\"isSearchExpanded\"\n                    >\n                        <div\n                            class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold text-size-11\"\n                        >\n                            {{ filterTitle | uppercase }}\n                            @if (\n                                (type === 'dispatcherFilter' ||\n                                    type === 'driverFilter' ||\n                                    type === 'fuelStopFilter' ||\n                                    type === 'brokerFilter') &&\n                                caDispatcherFilter?.selectedUser?.length\n                            ) {\n                                <div\n                                    class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1 text-size-11\"\n                                >\n                                    {{\n                                        caDispatcherFilter?.selectedUser?.length\n                                    }}\n                                </div>\n                            }\n\n                            @if (\n                                'userBox'\n                                    | filterPopoverConditionsPipe\n                                        : getComponentInstance()\n                                        : caStatusFilter\n                                        : caDispatcherFilter\n                                        : caStateFilter\n                                        : caTruckTypeFilter\n                                        : caTrailerTypeFilter\n                                        : caPmFilter\n                            ) {\n                                @let filterResult =\n                                    type\n                                        | filterConditionsUserBox\n                                            : caTruckTypeFilter\n                                            : caTrailerTypeFilter\n                                            : caStatusFilter\n                                            : caPmFilter;\n                                @if (filterResult) {\n                                    <div\n                                        class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1 text-size-11\"\n                                    >\n                                        {{ filterResult }}\n                                    </div>\n                                }\n                            }\n                        </div>\n                        @if (\n                            'sortItems'\n                                | filterPopoverConditionsPipe\n                                    : getComponentInstance()\n                                    : caStatusFilter\n                                    : caDispatcherFilter\n                                    : caStateFilter\n                                    : caTruckTypeFilter\n                                    : caTrailerTypeFilter\n                                    : caPmFilter\n                        ) {\n                            <div\n                                (click)=\"sortItems()\"\n                                class=\"user-title-text text-size-11 sort-text ca-font-medium d-flex align-items-center justify-content-end\"\n                            >\n                                {{\n                                    type === 'statusFilter' ||\n                                    type === 'dispatcherFilter' ||\n                                    type === 'driverFilter' ||\n                                    type === 'fuelStopFilter' ||\n                                    type === 'brokerFilter'\n                                        ? 'Count'\n                                        : 'Name'\n                                }}\n                                <svg-icon\n                                    class=\"sort-arrow ms-1 svg-size-18\"\n                                    [class.rotate]=\"!isAscendingSortOrder\"\n                                    [src]=\"'arrow_filter' | caSvg: 'common'\"\n                                ></svg-icon>\n                            </div>\n                        } @else {\n                            @if (\n                                (type === 'truckFilter' ||\n                                    type === 'truckTypeFilter' ||\n                                    type === 'trailerFilter') &&\n                                isRepairFilter\n                            ) {\n                                <div\n                                    (click)=\"sortItems()\"\n                                    class=\"user-title-text text-size-11 sort-text d-flex align-items-center justify-content-end\"\n                                >\n                                    Count\n                                    <svg-icon\n                                        class=\"d-flex svg-size-14\"\n                                        [src]=\"'arrow_filter' | caSvg: 'common'\"\n                                    ></svg-icon>\n                                </div>\n                            } @else {\n                                @if (type === 'stateFilter') {\n                                    <div\n                                        class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1 text-size-11\"\n                                    >\n                                        {{\n                                            (caStateFilter\n                                                ?.canadaSelectedStates)!\n                                                .length +\n                                                (caStateFilter\n                                                    ?.usaSelectedStates)!.length\n                                        }}\n                                    </div>\n                                } @else {\n                                    <ng-template #searchState>\n                                        @if (!searchState) {\n                                            <div\n                                                class=\"search-icon-holder svg-fill-light-grey-2 svg-hover-bw6-2 svg-size-17 d-flex justify-content-center align-items-center\"\n                                                (click)=\"showSearch()\"\n                                            >\n                                                <svg-icon\n                                                    class=\"d-flex svg-size-14\"\n                                                    [src]=\"\n                                                        'search'\n                                                            | caSvg: 'input'\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        }\n                                    </ng-template>\n                                }\n                            }\n                        }\n                    </div>\n                }\n                <div class=\"filter-body-holder\">\n                    @switch (type) {}\n\n                    @switch (type) {\n                        @case ('statusFilter') {\n                            <app-ca-status-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [loadStatusOptionsArray]=\"\n                                    loadStatusOptionsArray\n                                \"\n                            >\n                            </app-ca-status-filter>\n                        }\n                        @case ('timeFilter') {\n                            <app-ca-time-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [timeSubType]=\"timeSubType\"\n                            >\n                            </app-ca-time-filter>\n                        }\n                        @case ('timeFilterDropdown') {\n                            <app-ca-time-filter-dropdown\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [timeSubType]=\"timeSubType\"\n                                [selectedTimeValue]=\"selectedTimeValue\"\n                                (itemSelected)=\"setFilterValue($event)\"\n                            >\n                            </app-ca-time-filter-dropdown>\n                        }\n                        @case ('dispatcherFilter') {\n                            <app-ca-dispatcher-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [unselectedUser]=\"unselectedUser\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-dispatcher-filter>\n                        }\n                        @case ('driverFilter') {\n                            <app-ca-dispatcher-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [unselectedUser]=\"unselectedUser\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-dispatcher-filter>\n                        }\n                        @case ('fuelStopFilter') {\n                            <app-ca-dispatcher-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [unselectedUser]=\"unselectedUser\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-dispatcher-filter>\n                        }\n                        @case ('brokerFilter') {\n                            <app-ca-dispatcher-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [unselectedUser]=\"unselectedUser\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-dispatcher-filter>\n                        }\n                        @case ('stateFilter') {\n                            <app-ca-state-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                                [usaStates]=\"usaStates\"\n                                [canadaStates]=\"canadaStates\"\n                            >\n                            </app-ca-state-filter>\n                        }\n                        @case ('truckTypeFilter') {\n                            <app-ca-truck-type-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [isRepairFilter]=\"isRepairFilter\"\n                                [truckTypeArray]=\"truckTypeArray\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-truck-type-filter>\n                        }\n                        @case ('trailerTypeFilter') {\n                            <app-ca-trailer-type-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [trailerTypeArray]=\"trailerTypeArray\"\n                                [isRepairFilter]=\"isRepairFilter\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-trailer-type-filter>\n                        }\n                        @case ('pmFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('categoryRepairFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('fuelItemFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('departmentFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('parkingFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('tagFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('actionFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('labelFilter') {\n                            <app-ca-pm-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [pmFilterArray]=\"pmFilterArray\"\n                            >\n                            </app-ca-pm-filter>\n                        }\n                        @case ('userFilter') {\n                            <app-ca-user-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [userGroup]=\"userGroup\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-user-filter>\n                        }\n                        @case ('moduleFilter') {\n                            <app-ca-user-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                                [userGroup]=\"userGroup\"\n                                [isSearchExpanded]=\"isSearchExpanded\"\n                            >\n                            </app-ca-user-filter>\n                        }\n\n                        @case ('violationFilter') {\n                            <app-ca-violation-filter\n                                (setFilter)=\"setFilterValue($event)\"\n                                (clearAll)=\"clearAllValues($event)\"\n                                [type]=\"type\"\n                                [isFilterActive]=\"isFilterActive\"\n                            >\n                            </app-ca-violation-filter>\n                        }\n                    }\n                </div>\n\n                @if (type !== 'timeFilterDropdown') {\n                    <div\n                        class=\"buttons-holder d-flex justify-content-between align-items-center\"\n                        [class.buttons-long]=\"type === 'locationFilter'\"\n                    >\n                        <div\n                            (click)=\"clearAllValues($event)\"\n                            class=\"button-clear text-size-11 d-flex justify-content-center align-items-center ca-font-bold\"\n                            [class.active]=\"\n                                type\n                                    | filterConditionsClear\n                                        : caStatusFilter\n                                        : caTimeFilter\n                                        : caDispatcherFilter\n                                        : caStateFilter\n                                        : caTruckTypeFilter\n                                        : caTrailerTypeFilter\n                                        : caPmFilter\n                                        : caUserFilter\n                                        : caViolationFilter\n                            \"\n                        >\n                            Clear All\n                        </div>\n                        <div\n                            (click)=\"setFilterValue($event)\"\n                            class=\"button-set text-size-11 d-flex justify-content-center align-items-center ca-font-bold\"\n                            [class.active]=\"\n                                type\n                                    | filterConditionsSet\n                                        : caStatusFilter\n                                        : caTimeFilter\n                                        : caDispatcherFilter\n                                        : caStateFilter\n                                        : caTruckTypeFilter\n                                        : caTrailerTypeFilter\n                                        : caPmFilter\n                                        : caUserFilter\n                                        : caViolationFilter\n                                        : caTimeFilterDropdown\n                            \"\n                        >\n                            Set\n                        </div>\n                    </div>\n                }\n            </div>\n        }\n    </div>\n</div>\n","import {\n  CdkVirtualScrollViewport,\n  VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport { Inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n// services\nimport { CalendarDateTimePickerService } from '../services/calendar-datetime-picker.service';\n\nexport const STARTING_YEAR = new Date().getFullYear() - 90;\n\nexport const RANGE = 100 * 12;\n\nconst BUFFER = 500;\n\n@Injectable()\nexport class CalendarStrategy implements VirtualScrollStrategy {\n  constructor(\n    private calendarService: CalendarDateTimePickerService,\n    @Inject(String) private startedHeight: number,\n    @Inject(String) private FULL_SIZE: number,\n    @Inject(String) private SCROLL_TYPE: string\n  ) {}\n\n  private index$ = new Subject<any>();\n  scrolledIndexChange = this.index$.pipe(distinctUntilChanged());\n  private viewport?: CdkVirtualScrollViewport;\n\n  public attach(viewport: CdkVirtualScrollViewport): void {\n    this.viewport = viewport;\n    this.viewport.setTotalContentSize(this.startedHeight);\n    this.updateRenderedRange(this.viewport);\n  }\n\n  public updateScrollHeights(height: number): void {\n    this.viewport?.setTotalContentSize(height);\n    this.updateRenderedRange(this.viewport);\n  }\n\n  public detach(): void {\n    this.index$.complete();\n    this.viewport = undefined;\n  }\n\n  public onContentScrolled(): void {\n    if (this.viewport) this.updateRenderedRange(this.viewport);\n  }\n\n  /** These do not matter for this case */\n  public onDataLengthChanged(): void {}\n\n  public onContentRendered(): void {}\n\n  public onRenderedOffsetChanged(): void {}\n\n  public scrollToIndex(index: number, behavior: ScrollBehavior): void {\n    if (this.viewport)\n      this.viewport.scrollToOffset(this.getOffsetForIndex(index), behavior);\n  }\n\n  public scrollToOffset(offset: number, behavior: ScrollBehavior): void {\n    if (this.viewport) this.viewport.scrollToOffset(offset, behavior);\n  }\n\n  public getOffsetForIndex(index: number): number {\n    return this.FULL_SIZE * index;\n  }\n\n  private getIndexForOffset(offset: number): number {\n    return Math.round(offset / this.FULL_SIZE);\n  }\n  private updateRenderedRange(viewport?: CdkVirtualScrollViewport): void {\n    if (!viewport) return;\n\n    const offset = viewport.measureScrollOffset();\n\n    const { start, end } = viewport.getRenderedRange();\n    const viewportSize = 230;\n\n    const dataLength = viewport.getDataLength();\n\n    const newRange = { start, end };\n    const firstVisibleIndex = this.getIndexForOffset(offset);\n\n    const startOffsetIndex = this.FULL_SIZE * start;\n\n    const startBuffer = offset - startOffsetIndex;\n    if (startBuffer < BUFFER && start !== 0) {\n      newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n      newRange.end = Math.min(\n        dataLength,\n        this.getIndexForOffset(offset + viewportSize + BUFFER)\n      );\n    } else {\n      const endBuffer = this.FULL_SIZE * end - offset - viewportSize;\n\n      if (endBuffer < BUFFER && end !== dataLength) {\n        newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n        newRange.end = Math.min(\n          dataLength,\n          this.getIndexForOffset(offset + viewportSize + BUFFER * 2)\n        );\n      }\n    }\n\n    viewport.setRenderedRange(newRange);\n    viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n\n    // Used for update of 2nd scroll that is listening\n    if (this.calendarService.selectedScroll === this.SCROLL_TYPE)\n      this.index$.next({\n        indx: firstVisibleIndex,\n        scrollOffset: offset,\n        cycleSize: this.FULL_SIZE,\n        type: this.SCROLL_TYPE,\n      });\n  }\n}\n","export class CustomDatetimePickersConstants {\n  public static readonly timeMinutes = ['00', '15', '30', '45'];\n  public static readonly timeMinutesGapFive = [\n    '00',\n    '05',\n    '10',\n    '15',\n    '20',\n    '25',\n    '30',\n    '35',\n    '40',\n    '45',\n    '50',\n    '55',\n  ];\n  public static readonly monthNames = [\n    'January',\n    'February',\n    'March',\n    'April',\n    'May',\n    'June',\n    'July',\n    'August',\n    'September',\n    'October',\n    'November',\n    'December',\n  ];\n  public static readonly hourTimes = [\n    12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,\n    11,\n  ];\n  public static readonly defaultScrollTypes = {\n    pmAmScroll: 0,\n    minutesScroll: 0,\n    hourScroll: 8,\n    monthScroll: 0,\n    dayScroll: 0,\n    yearScroll: 0,\n  };\n  public static readonly timeOfDay = ['AM', 'PM'];\n  public static readonly defaultSelectedTime = '12:00 AM';\n  public static readonly defaultOutputTypeTime = ['hh', ':', 'mm', ' ', 'AM'];\n  public static readonly defaultOutputTypeDate = ['MM', '/', 'DD', '/', 'YY'];\n  public static readonly dayOfWeekLetters = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n    selector: 'app-ca-custom-datetime-picker-calendar-days',\n    templateUrl: './ca-custom-datetime-pickers-calendar-days.component.html',\n    styleUrls: ['./ca-custom-datetime-pickers-calendar-days.component.scss'],\n    imports: [CommonModule, FormsModule]\n})\nexport class CaCustomDateTimePickersCalendarDaysComponent implements OnInit {\n    @Input() dateTime!: Date;\n    @Input() year!: number;\n    @Input() selectedMonth!: number;\n    @Input() index!: number;\n    @Input() activeMonth!: boolean;\n    @Output() selectDay = new EventEmitter();\n    public currentYear: number = new Date().getFullYear();\n    public currentMonth: number = new Date().getMonth();\n    public currentDay: number = new Date().getDate();\n    public selectedMonthFromInput!: number;\n    public selectedYearFromInput!: number;\n    public days: ReadonlyArray<string | number> = [];\n    public selectedDay: number = -1;\n    public selMonth: number = -1;\n    public selectedYear: number = -1;\n\n    @Input()\n    set month(month: Date) {\n        this.selectedMonthFromInput = parseInt(\n            ('0' + month.getMonth() + 1).slice(-2)\n        );\n        this.selectedYearFromInput = month.getFullYear();\n        const fillerCount = month.getDay();\n        const lastDay = new Date(month.getFullYear(), month.getMonth() + 1, 0);\n        const daysCount = lastDay.getDate();\n\n        this.days = [\n            ...Array.from({ length: fillerCount }).map(() => ''),\n            ...Array.from({ length: daysCount }).map((_, i) => i + 1),\n        ];\n    }\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.setSelectedDate();\n    }\n\n    public chooseDay(day: number | string): void {\n        this.selectDay.emit({ index: this.index, day });\n    }\n\n    private setSelectedDate(): void {\n        this.selectedDay = parseInt(('0' + this.dateTime.getDate()).slice(-2));\n        this.selMonth = parseInt(\n            ('0' + this.dateTime.getMonth() + 1).slice(-2)\n        );\n        this.selectedYear = this.dateTime.getFullYear();\n    }\n}\n","<div class=\"calendar_days\">\n    @for (day of days; let indx = $index; track indx) {\n        <div\n            (click)=\"day && chooseDay(day)\"\n            [ngClass]=\"{\n                'selected_day ca-font-bold':\n                    day === selectedDay &&\n                    selectedMonthFromInput === selMonth &&\n                    selectedYearFromInput === selectedYear,\n            }\"\n            [class.empty_day]=\"!day\"\n            [class.day_in_current_month]=\"activeMonth\"\n            [class.current_day]=\"\n                day === currentDay &&\n                year === currentYear &&\n                selectedMonth === currentMonth\n            \"\n            class=\"calendar_day ca-font-medium\"\n        >\n            <span>{{ day }}</span>\n        </div>\n    }\n</div>\n","export enum CalendarMainStringEnum {\n    FULL_SIZE = 182,\n    CYCLE_HEIGHT = 100 * (12 * FULL_SIZE) + 50,\n    CYCLE_HEIGHT_BY_MONTHS = 100 * FULL_SIZE + 65,\n}\n","export enum CalendarStringEnum {\n  AUTO = 'auto',\n  LEFT = 'left',\n  LIST_PREVIEW = 'listPreview',\n  MAIN = 'main'\n}\n","export enum CalendarListPreviewStringEnum {\n  FULL_LIST = 'full_list',\n  MONTH_LIST = 'month_list',\n}","import {\n    Component,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    OnDestroy,\n    forwardRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport {\n    ScrollingModule,\n    VIRTUAL_SCROLL_STRATEGY,\n} from '@angular/cdk/scrolling';\n\n// moment\nimport moment from 'moment';\n\n// services\nimport { CalendarDateTimePickerService } from '../../services/calendar-datetime-picker.service';\n\n// components\nimport { CaCustomDateTimePickersCalendarDaysComponent } from '../ca-custom-datetime-pickers-calendar-days/ca-custom-datetime-pickers-calendar-days.component';\n\n// strategy\nimport {\n    CalendarStrategy,\n    STARTING_YEAR,\n} from '../../strategy/calendar-strategy';\n\n// enums\nimport { CalendarMainStringEnum } from '../../enums/calendar-main-string.enum';\nimport { CalendarStringEnum } from '../../enums/calendar-string.enum';\nimport { CalendarListPreviewStringEnum } from '../../enums/calendar-list-preview-string.enum';\nimport { CustomDatetimePickersConstants } from '../../utils/constants/custom-datetime-pickers.constants';\n\nfunction factory(dir: CaCustomDateTimePickerCalendarDatesMainComponent) {\n    return dir.scrollStrategy;\n}\n\n@Component({\n    selector: 'app-ca-custom-datetime-pickers--calendar-dates-main',\n    templateUrl: './ca-custom-datetime-pickers-calendar-dates-main.component.html',\n    styleUrls: [\n        './ca-custom-datetime-pickers-calendar-dates-main.component.scss',\n    ],\n    imports: [\n        CommonModule,\n        FormsModule,\n        ScrollingModule,\n        CaCustomDateTimePickersCalendarDaysComponent,\n    ],\n    providers: [\n        {\n            provide: VIRTUAL_SCROLL_STRATEGY,\n            useFactory: factory,\n            deps: [\n                forwardRef(() => CaCustomDateTimePickerCalendarDatesMainComponent),\n            ],\n        },\n    ]\n})\nexport class CaCustomDateTimePickerCalendarDatesMainComponent\n    implements OnInit, OnDestroy\n{\n    @Input() months!: Date[];\n    @Input() dateTime!: Date;\n    @Input() currentIndex!: number;\n    @Input() currentYearIndex!: number;\n    @Input() activeIndex!: number;\n    @Input() monthYearsIndx!: string[];\n\n    public _listPreview!: string;\n    @Input() set listPreview(value: string) {\n        this._listPreview = value;\n        this.scrollStrategy.updateScrollHeights(\n            value === CalendarListPreviewStringEnum.MONTH_LIST\n                ? CalendarMainStringEnum.CYCLE_HEIGHT_BY_MONTHS\n                : CalendarMainStringEnum.CYCLE_HEIGHT\n        );\n    }\n    @Input() isMonthAndYearOnly!: boolean;\n    @Output() setListPreviewToFull: EventEmitter<number> = new EventEmitter();\n    @Output() setAutoIndex: EventEmitter<number> = new EventEmitter();\n\n    public scrollStrategy: CalendarStrategy = new CalendarStrategy(\n        this.calendarService,\n        CalendarMainStringEnum.CYCLE_HEIGHT,\n        CalendarMainStringEnum.FULL_SIZE,\n        CalendarStringEnum.MAIN\n    );\n\n    private destroy$ = new Subject<void>();\n\n    public monthNames = CustomDatetimePickersConstants.monthNames;\n\n    public selectedYear!: number;\n    public selectedYearFromInput!: number;\n    public selMonth!: number;\n    public selectedMonth!: string;\n    private activeMonth = 0;\n\n    constructor(private calendarService: CalendarDateTimePickerService) {}\n\n    ngOnInit(): void {\n        this.initScrollListeners();\n    }\n\n    public initScrollListeners(): void {\n        this.selMonth = this.dateTime.getMonth();\n        this.selectedYearFromInput = this.dateTime.getFullYear();\n        //this.selectedYearFromInput = this.months.getFullYear();\n\n        this.calendarService.scrollToAutoIndex\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((indx) => {\n                setTimeout(() => {\n                    this.scrollStrategy.scrollToIndex(\n                        indx,\n                        CalendarStringEnum.AUTO\n                    );\n                });\n            });\n\n        this.calendarService.scrolledIndexChange\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res) => {\n                if (\n                    res.type !== CalendarStringEnum.MAIN &&\n                    this.calendarService.selectedScroll !==\n                        CalendarStringEnum.MAIN\n                ) {\n                    const sizeTimes =\n                        CalendarMainStringEnum.FULL_SIZE / res.cycleSize;\n                    const newScrollSize = Math.ceil(\n                        sizeTimes * res.scrollOffset\n                    );\n                    this.scrollStrategy.scrollToOffset(\n                        newScrollSize,\n                        CalendarStringEnum.AUTO\n                    );\n                }\n            });\n\n        this.calendarService.scrollToDate\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res) => {\n                setTimeout(() => {\n                    if (res) {\n                        const indx = this.findIndexInMonth(res);\n                        this.scrollStrategy.scrollToIndex(\n                            indx,\n                            CalendarStringEnum.AUTO\n                        );\n                    } else {\n                        this.scrollStrategy.scrollToIndex(\n                            this.currentIndex,\n                            CalendarStringEnum.AUTO\n                        );\n                    }\n                }, 200);\n            });\n\n        if (this.isMonthAndYearOnly) {\n            setTimeout(() => {\n                this.scrollStrategy.updateScrollHeights(\n                    CalendarMainStringEnum.CYCLE_HEIGHT_BY_MONTHS\n                );\n\n                setTimeout(() => {\n                    this.scrollStrategy.scrollToIndex(\n                        this.currentYearIndex,\n                        CalendarStringEnum.AUTO\n                    );\n                }, 200);\n            }, 200);\n        }\n    }\n\n    public findIndexInMonth(date: string): number {\n        const selectedDate = new Date(date);\n        const indexMonth = (selectedDate.getFullYear() - STARTING_YEAR) * 12;\n        const indx = indexMonth + selectedDate.getMonth();\n        return indx;\n    }\n\n    public onMonthChange(data: any): void {\n        if (this.months[data.indx]) {\n            this.selectedYear = this.months[data.indx].getFullYear();\n            this.selectedMonth =\n                this.monthNames[this.months[data.indx].getMonth()];\n            this.activeMonth = data.indx;\n            this.calendarService.index$.next(data);\n        }\n    }\n\n    public getMonth(index: number): string {\n        return CustomDatetimePickersConstants.monthNames[index];\n    }\n\n    public mouseOverSetItem() {\n        this.calendarService.scrolledScrollItem = CalendarStringEnum.MAIN;\n    }\n\n    public setCalendarListPreview(num: number, index: number): void {\n        this.selMonth = num;\n\n        if (this.isMonthAndYearOnly) {\n            this.setAutoIndex.emit(num);\n\n            const selectedMonth = this.months[index];\n            const new_date = moment(\n                new Date(selectedMonth.getFullYear(), num + 1, 0)\n            ).format();\n            this.calendarService.dateChanged.next(new_date);\n        } else {\n            this.setListPreviewToFull.emit(num);\n        }\n    }\n\n    public selectDay(data: { day: number; index: number }): void {\n        const selectedMonth = this.months[data.index];\n        const new_date = moment(\n            new Date(\n                selectedMonth.getFullYear(),\n                selectedMonth.getMonth(),\n                data.day\n            )\n        ).format();\n        this.calendarService.dateChanged.next(new_date);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div (mouseover)=\"mouseOverSetItem()\">\n    <cdk-virtual-scroll-viewport\n        #monthsScrollRef\n        (scrolledIndexChange)=\"onMonthChange($event)\"\n        style=\"height: 200px; width: 100%; margin: 0\"\n    >\n        <ng-container\n            *cdkVirtualFor=\"\n                let month of months;\n                let indx = index;\n                templateCacheSize: 10\n            \"\n        >\n            <div\n                class=\"calendar_indicator ca-font-bold\"\n                [class.full_calendar]=\"_listPreview === 'full_list'\"\n                [class.current_year]=\"\n                    isMonthAndYearOnly\n                        ? selectedYearFromInput === month.getFullYear()\n                        : selectedYearFromInput === month.getFullYear() &&\n                          selMonth === month.getMonth()\n                \"\n            >\n                @if (_listPreview === 'full_list') {\n                    <span>{{ getMonth(month.getMonth()) }} </span>\n                }\n                {{ month.getFullYear() }}\n            </div>\n            @if (_listPreview === 'full_list') {\n                <div>\n                    <app-ca-custom-datetime-picker-calendar-days\n                        (selectDay)=\"selectDay($event)\"\n                        [index]=\"indx\"\n                        [month]=\"month\"\n                        [selectedMonth]=\"month.getMonth()\"\n                        [year]=\"selectedYear\"\n                        [dateTime]=\"dateTime\"\n                        [activeMonth]=\"\n                            selectedYearFromInput === month.getFullYear() &&\n                            selMonth === month.getMonth()\n                        \"\n                    ></app-ca-custom-datetime-picker-calendar-days>\n                </div>\n            }\n            @if (_listPreview === 'month_list') {\n                <div>\n                    <div\n                        class=\"month_list\"\n                        [class.current_year]=\"\n                            selectedYearFromInput === month.getFullYear()\n                        \"\n                    >\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(0, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 0 === selMonth,\n                            }\"\n                        >\n                            JAN\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(1, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 1 === selMonth,\n                            }\"\n                        >\n                            FEB\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(2, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 2 === selMonth,\n                            }\"\n                        >\n                            MAR\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(3, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 3 === selMonth,\n                            }\"\n                        >\n                            APR\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(4, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 4 === selMonth,\n                            }\"\n                        >\n                            MAY\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(5, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 5 === selMonth,\n                            }\"\n                        >\n                            JUN\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(6, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 6 === selMonth,\n                            }\"\n                        >\n                            JUL\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(7, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 7 === selMonth,\n                            }\"\n                        >\n                            AUG\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(8, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 8 === selMonth,\n                            }\"\n                        >\n                            SEP\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(9, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 9 === selMonth,\n                            }\"\n                        >\n                            OCT\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(10, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 10 === selMonth,\n                            }\"\n                        >\n                            NOV\n                        </div>\n                        <div\n                            class=\"month_list_item ca-font-medium\"\n                            (click)=\"setCalendarListPreview(11, indx)\"\n                            [ngClass]=\"{\n                                'current_month ca-font-bold':\n                                    selectedYearFromInput ===\n                                        month.getFullYear() && 11 === selMonth,\n                            }\"\n                        >\n                            DEC\n                        </div>\n                    </div>\n                </div>\n            }\n        </ng-container>\n    </cdk-virtual-scroll-viewport>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CustomDatetimePickersConstants } from '../utils/constants/custom-datetime-pickers.constants';\nimport { CalendarListPreviewStringEnum } from '../enums/calendar-list-preview-string.enum';\n\n@Pipe({\n    name: 'calendarmonths',\n    standalone: true,\n})\nexport class CalendarMonthsPipe implements PipeTransform {\n    private MONTHS = CustomDatetimePickersConstants.monthNames;\n\n    constructor() {}\n\n    transform(index: Date, listPreview: string): string {\n        if (\n            this.MONTHS[index.getMonth()] === 'January' ||\n            listPreview === CalendarListPreviewStringEnum.MONTH_LIST\n        )\n            return `<span class=\"left-year-show\">${index.getFullYear()}</span>`;\n\n        return this.MONTHS[index.getMonth()].slice(0, 3);\n    }\n}","export enum CalendarLeftStringEnum {\n    FULL_SIZE = 22,\n    CYCLE_HEIGHT = 100 * (12 * FULL_SIZE) + 265,\n    CYCLE_HEIGHT_BY_MONTHS = 100 * FULL_SIZE + 265,\n}\n","import { Component, forwardRef, Input, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { Subject, takeUntil } from 'rxjs';\n\n// services\nimport { CalendarDateTimePickerService } from '../../services/calendar-datetime-picker.service';\n\n// modules\nimport {\n    ScrollingModule,\n    VIRTUAL_SCROLL_STRATEGY,\n} from '@angular/cdk/scrolling';\n\n// pipes\nimport { CalendarMonthsPipe } from '../../pipes/calendar-months.pipe';\n\n// strategy\nimport {\n    CalendarStrategy,\n    STARTING_YEAR,\n} from '../../strategy/calendar-strategy';\n\n// enums\nimport { CalendarLeftStringEnum } from '../../enums/calendar-left-string.enum';\nimport { CalendarListPreviewStringEnum } from '../../enums/calendar-list-preview-string.enum';\nimport { CalendarStringEnum } from '../../enums/calendar-string.enum';\n\nfunction factory(dir: CaCustomDateTimePickersCalendarLeftComponent) {\n    return dir.scrollStrategy;\n}\n\n@Component({\n    selector: 'app-ca-custom-datetime-pickers-calendar-left',\n    templateUrl: './ca-custom-datetime-pickers-calendar-left.component.html',\n    styleUrls: ['./ca-custom-datetime-pickers-calendar-left.component.scss'],\n    imports: [CommonModule, FormsModule, ScrollingModule, CalendarMonthsPipe],\n    providers: [\n        {\n            provide: VIRTUAL_SCROLL_STRATEGY,\n            useFactory: factory,\n            deps: [\n                forwardRef(() => CaCustomDateTimePickersCalendarLeftComponent),\n            ],\n        },\n    ]\n})\nexport class CaCustomDateTimePickersCalendarLeftComponent\n    implements OnInit, OnDestroy\n{\n    @Input() months!: Date[];\n    @Input() currentIndex!: number;\n    @Input() isMonthAndYearOnly: boolean = false;\n\n    public _listPreview!: string;\n    @Input() set listPreview(value: string) {\n        this._listPreview = value;\n        this.scrollStrategy.updateScrollHeights(\n            value === CalendarListPreviewStringEnum.MONTH_LIST\n                ? CalendarLeftStringEnum.CYCLE_HEIGHT_BY_MONTHS\n                : CalendarLeftStringEnum.CYCLE_HEIGHT\n        );\n    }\n\n    public _currentYearIndex: number = 0;\n    @Input() set currentYearIndex(value: number) {\n        this._currentYearIndex = value;\n        if (this.isMonthAndYearOnly && this._currentYearIndex)\n            setTimeout(() => {\n                this.scrollStrategy.scrollToIndex(\n                    this._currentYearIndex,\n                    CalendarStringEnum.AUTO\n                );\n            }, 200);\n    }\n\n    public _activeIndex: number = 0;\n    @Input() set activeIndex(value: number) {\n        this._activeIndex = value;\n        if (!this.isMonthAndYearOnly && this._activeIndex)\n            setTimeout(() => {\n                this.scrollStrategy.scrollToIndex(\n                    this._activeIndex,\n                    CalendarStringEnum.AUTO\n                );\n            }, 200);\n    }\n    public isHovered!: boolean;\n    private isFirstCall: boolean = true;\n\n    private destroy$ = new Subject<void>();\n\n    constructor(private calendarService: CalendarDateTimePickerService) {}\n\n    scrollStrategy: CalendarStrategy = new CalendarStrategy(\n        this.calendarService,\n        CalendarLeftStringEnum.CYCLE_HEIGHT,\n        CalendarLeftStringEnum.FULL_SIZE,\n        CalendarStringEnum.LEFT\n    );\n\n    ngOnInit(): void {\n        this.initScrollListeners();\n    }\n\n    public initScrollListeners(): void {\n        this.calendarService.scrollToAutoIndex\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((indx) => {\n                this.scrollStrategy.scrollToIndex(\n                    indx,\n                    CalendarStringEnum.AUTO\n                );\n            });\n\n        this.calendarService.scrolledIndexChange\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res) => {\n                if (\n                    res.type != CalendarStringEnum.LEFT &&\n                    this.calendarService.selectedScroll !=\n                        CalendarStringEnum.LEFT\n                ) {\n                    const sizeTimes =\n                        CalendarLeftStringEnum.FULL_SIZE / res.cycleSize;\n                    const newScrollSize = sizeTimes * res.scrollOffset;\n                    this.scrollStrategy.scrollToOffset(\n                        newScrollSize,\n                        CalendarStringEnum.AUTO\n                    );\n                }\n            });\n\n        this.calendarService.scrollToDate\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res) => {\n                setTimeout(() => {\n                    if (res) {\n                        const indx = this.findIndexInMonth(res);\n                        this.scrollStrategy.scrollToIndex(\n                            indx,\n                            CalendarStringEnum.AUTO\n                        );\n                    } else\n                        this.scrollStrategy.scrollToIndex(\n                            this.currentIndex,\n                            CalendarStringEnum.AUTO\n                        );\n                });\n            });\n\n        if (this.isMonthAndYearOnly) {\n            setTimeout(() => {\n                if (this.isFirstCall) {\n                    this.scrollStrategy.updateScrollHeights(\n                        CalendarLeftStringEnum.CYCLE_HEIGHT_BY_MONTHS\n                    );\n\n                    this.scrollStrategy.scrollToIndex(\n                        this._currentYearIndex,\n                        CalendarStringEnum.AUTO\n                    );\n\n                    this.isFirstCall = false;\n                }\n            }, 200);\n        }\n    }\n\n    public findIndexInMonth(date: string): number {\n        const selectedDate = new Date(date);\n        const indexMonth = (selectedDate.getFullYear() - STARTING_YEAR) * 12;\n        const indx = indexMonth + selectedDate.getMonth();\n        return indx;\n    }\n\n    public onScrollChanged(data: any): void {\n        this.calendarService.index$.next(data);\n    }\n\n    public selectMonth(indx: number): void {\n        this.scrollStrategy.scrollToIndex(indx, CalendarStringEnum.AUTO);\n    }\n\n    public mouseOverSetItem(): void {\n        this.calendarService.scrolledScrollItem = CalendarStringEnum.LEFT;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}","<div (mouseover)=\"mouseOverSetItem()\">\n    <cdk-virtual-scroll-viewport\n        #leftSideRef\n        (scrolledIndexChange)=\"onScrollChanged($event)\"\n        style=\"height: 290px; width: 100%; margin: 0\"\n    >\n        <ng-container\n            *cdkVirtualFor=\"\n                let month of months;\n                let indx = index;\n                templateCacheSize: 10\n            \"\n        >\n            <div\n                (click)=\"selectMonth(indx)\"\n                class=\"month-year-item ca-font-medium\"\n                [ngClass]=\"{\n                    'current_month_year ca-font-bold': isMonthAndYearOnly\n                        ? indx === _currentYearIndex\n                        : indx === _activeIndex,\n                }\"\n                [innerHTML]=\"month | calendarmonths: _listPreview\"\n            ></div>\n        </ng-container>\n    </cdk-virtual-scroll-viewport>\n</div>\n","import {\n    Component,\n    Input,\n    OnInit,\n    Output,\n    EventEmitter,\n    OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { Subject, Subscription, takeUntil } from 'rxjs';\n\n// moment\nimport moment from 'moment';\n\n// services\nimport { CalendarDateTimePickerService } from '../../services/calendar-datetime-picker.service';\n\n// constants\nimport { RANGE, STARTING_YEAR } from '../../strategy/calendar-strategy';\nimport { CustomDatetimePickersConstants } from '../../utils/constants/custom-datetime-pickers.constants';\n\n// components\nimport { CaCustomDateTimePickerCalendarDatesMainComponent } from '../ca-custom-datetime-pickers-calendar-dates-main/ca-custom-datetime-pickers-calendar-dates-main.component';\nimport { CaCustomDateTimePickersCalendarLeftComponent } from '../ca-custom-datetime-pickers-calendar-left/ca-custom-datetime-pickers-calendar-left.component';\n\n// enums\nimport { CalendarListPreviewStringEnum } from '../../enums/calendar-list-preview-string.enum';\n\n@Component({\n    selector: 'app-ca-custom-datetime-pickers-date-calendars',\n    templateUrl: './ca-custom-datetime-pickers-date-calendars.component.html',\n    styleUrls: ['./ca-custom-datetime-pickers-date-calendars.component.scss'],\n    imports: [\n        CommonModule,\n        FormsModule,\n        CaCustomDateTimePickerCalendarDatesMainComponent,\n        CaCustomDateTimePickersCalendarLeftComponent,\n    ]\n})\nexport class CaCustomDateTimePickersDateCalendarsComponent\n    implements OnInit, OnDestroy\n{\n    @Input() listPreview!: string;\n    @Input() dateTime!: Date;\n    @Input() isMonthAndYearOnly: boolean = false;\n    @Output() setListPreviewValue = new EventEmitter();\n\n    private currentYear: number = new Date().getFullYear();\n    private currentMonth: number = new Date().getMonth();\n    private activeMonth: number = 0;\n    private subscription?: Subscription;\n    private destroy$ = new Subject<void>();\n    private monthNames: string[] = CustomDatetimePickersConstants.monthNames;\n    public dayOfWeekLetters: string[] =\n        CustomDatetimePickersConstants.dayOfWeekLetters;\n\n    public activeIndex: number = 0;\n    public currentIndex!: number;\n    public currentYearIndex!: number;\n    public monthYearsIndx: string[] = [];\n    public months: Date[] = Array.from({ length: RANGE }, (_, i) => {\n        const year = STARTING_YEAR + Math.floor(i / 12);\n        const month = i % 12;\n        if (year === this.currentYear && month === this.currentMonth) {\n            this.currentIndex = i;\n            this.activeIndex = i;\n        }\n        const sendDate = new Date(year, month, 1);\n        this.monthYearsIndx.push(moment(sendDate).format('MM/DD/YY'));\n        return sendDate;\n    });\n\n    public justYears: Date[] = Array.from({ length: 100 }, (_, i) => {\n        const year = STARTING_YEAR + i;\n        if (year === this.currentYear) this.currentYearIndex = i;\n\n        return new Date(STARTING_YEAR + i, 1, 1);\n    });\n\n    public selectedYear!: number;\n    public selectedMonth!: string;\n\n    constructor(private calendarService: CalendarDateTimePickerService) {}\n\n    ngOnInit(): void {\n        this.initInitalState();\n        this.initScrollListener();\n    }\n\n    public initScrollListener(): void {\n        this.calendarService.scrolledIndexChange\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((res: { indx: number }) => {\n                this.activeIndex = res.indx;\n                this.onMonthChange(res.indx);\n            });\n    }\n\n    public initInitalState(): void {\n        this.selectedMonth = this.monthNames[this.dateTime.getMonth()];\n        this.selectedYear = this.dateTime.getFullYear();\n\n        if (this.calendarService.selectedIndex)\n            this.activeIndex = this.calendarService.selectedIndex;\n\n        if (this.isMonthAndYearOnly)\n            this.currentYearIndex = this.justYears.findIndex(\n                (year) => year.getFullYear() === this.selectedYear\n            );\n    }\n\n    public onMonthChange(month: number): void {\n        this.listPreview === CalendarListPreviewStringEnum.FULL_LIST\n            ? (this.selectedYear = this.months[month].getFullYear())\n            : (this.selectedYear = this.justYears[month].getFullYear());\n\n        this.selectedMonth = this.monthNames[this.months[month].getMonth()];\n        this.activeMonth = month;\n    }\n\n    public getMonth(index: number): string {\n        return CustomDatetimePickersConstants.monthNames[index];\n    }\n\n    public setListPreview(): void {\n        if (this.listPreview === CalendarListPreviewStringEnum.FULL_LIST) {\n            this.setListPreviewValue.emit(\n                CalendarListPreviewStringEnum.MONTH_LIST\n            );\n            this.calendarService.setAutoIndex = Math.floor(\n                this.activeIndex / 12\n            );\n        }\n    }\n\n    public setListPreviewToFull(num: number): void {\n        this.setListPreviewValue.emit(CalendarListPreviewStringEnum.FULL_LIST);\n        this.setAutoIndex(num);\n    }\n\n    public setAutoIndex(num: number): void {\n        this.calendarService.setAutoIndex = this.activeIndex * 12 + num;\n    }\n\n    public selectCurrentDay(): void {\n        const new_date = moment(new Date()).format();\n        this.calendarService.dateChanged.next(new_date);\n        this.setListPreviewValue.emit(CalendarListPreviewStringEnum.FULL_LIST);\n    }\n\n    ngOnDestroy() {\n        if (this.subscription) this.subscription.unsubscribe();\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"d-flex\">\n    <div class=\"month-years-size\">\n        <div class=\"calendar_border\"></div>\n        <app-ca-custom-datetime-pickers-calendar-left\n            [currentIndex]=\"currentIndex\"\n            [currentYearIndex]=\"currentYearIndex\"\n            [activeIndex]=\"activeIndex\"\n            [months]=\"listPreview === 'full_list' ? months : justYears\"\n            [listPreview]=\"listPreview\"\n            [isMonthAndYearOnly]=\"isMonthAndYearOnly\"\n        >\n        </app-ca-custom-datetime-pickers-calendar-left>\n    </div>\n    <div class=\"full-calendars-list\">\n        <div class=\"full_list\">\n            <div class=\"calendar_view\">\n                <div class=\"calendar_view_head\">\n                    <div class=\"month_name ca-font-bold\">\n                        <span (click)=\"setListPreview()\" class=\"year_hold\">\n                            @if (listPreview === 'full_list') {\n                                <span>{{ selectedMonth }}</span>\n                            }\n                            {{ selectedYear }}\n                        </span>\n                    </div>\n                    <div\n                        class=\"today ca-font-bold\"\n                        (click)=\"selectCurrentDay()\"\n                    >\n                        Today\n                    </div>\n                </div>\n                <div class=\"calendars_list_view\">\n                    <div\n                        class=\"calendar_month_days\"\n                        [class.hideVisibility]=\"listPreview != 'full_list'\"\n                    >\n                        @for (\n                            dayLetter of dayOfWeekLetters;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <div class=\"cal_day ca-font-bold\">\n                                {{ dayLetter }}\n                            </div>\n                        }\n                    </div>\n                    <app-ca-custom-datetime-pickers--calendar-dates-main\n                        [currentIndex]=\"currentIndex\"\n                        [currentYearIndex]=\"currentYearIndex\"\n                        [activeIndex]=\"activeIndex\"\n                        [monthYearsIndx]=\"monthYearsIndx\"\n                        [months]=\"\n                            listPreview === 'full_list' ? months : justYears\n                        \"\n                        [listPreview]=\"listPreview\"\n                        [dateTime]=\"dateTime\"\n                        [isMonthAndYearOnly]=\"isMonthAndYearOnly\"\n                        (setListPreviewToFull)=\"setListPreviewToFull($event)\"\n                        (setAutoIndex)=\"setAutoIndex($event)\"\n                    ></app-ca-custom-datetime-pickers--calendar-dates-main>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n","export enum CalendarTypeStringEnum {\n  TIME = 'time',\n}\n","export enum CalendarScrollTypeStringEnum {\n  HOURS_SCROLL = 'hourScroll',\n  PM_AM_SCROLL = 'pmAmScroll',\n}","import {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    ViewChild,\n    ViewContainerRef,\n    OnDestroy,\n    AfterViewInit,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n// moment\nimport moment from 'moment';\n\n// services\nimport { CalendarDateTimePickerService } from './services/calendar-datetime-picker.service';\n\n// components\nimport { CaCustomDateTimePickersDateCalendarsComponent } from './components/ca-custom-datetime-pickers-date-calendars/ca-custom-datetime-pickers-date-calendars.component';\n\n// constants\nimport { CustomDatetimePickersConstants } from './utils/constants/custom-datetime-pickers.constants';\n\n// models\nimport { ICaInput } from '../ca-input/config/ca-input.config';\nimport { ScrollType } from './models/scroll-type.model';\n\n// enums\nimport { InputConfigNameStringEnum } from '../ca-input/enums/input-config-name-string.enum';\nimport { CalendarTypeStringEnum } from './enums/calendar-type-string.enum';\nimport { CalendarListPreviewStringEnum } from './enums/calendar-list-preview-string.enum';\nimport { CalendarScrollTypeStringEnum } from './enums/calendar-scroll-type-string.enum';\n\n@Component({\n    selector: 'ca-custom-datetime-pickers',\n    templateUrl: './ca-custom-datetime-pickers.component.html',\n    styleUrls: ['./ca-custom-datetime-pickers.component.scss'],\n    imports: [\n        CommonModule,\n        FormsModule,\n        CaCustomDateTimePickersDateCalendarsComponent,\n    ]\n})\nexport class CaCustomDatetimePickersComponent\n    implements OnInit, OnDestroy, AfterViewInit\n{\n    @Input() dateTime!: Date;\n    @ViewChild('ref', { read: ViewContainerRef }) ref!: ViewContainerRef;\n    public _inputConfig!: ICaInput;\n    @Input() set inputConfig(config: ICaInput) {\n        this._inputConfig = config;\n        if (\n            this._inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n        )\n            this.listPreview = CalendarListPreviewStringEnum.MONTH_LIST;\n\n        if (this._inputConfig.minutesGapFive)\n            this.timeMinutes =\n                CustomDatetimePickersConstants.timeMinutesGapFive;\n        else this.timeMinutes = CustomDatetimePickersConstants.timeMinutes;\n    }\n\n    @Output() closePopover: EventEmitter<void> = new EventEmitter();\n\n    @ViewChild(CaCustomDateTimePickersDateCalendarsComponent)\n    dateCalendar!: CaCustomDateTimePickersDateCalendarsComponent;\n    @ViewChild('pmAmScroll') pmAmScroll!: ElementRef;\n    @ViewChild('minutesScroll') minutesScroll!: ElementRef;\n    @ViewChild('hourScroll') hourScroll!: ElementRef;\n\n    public selectedDateTime!: string;\n    public calendarMainType!: string;\n    public outputType!: (string | number)[];\n    public currentYear: number = new Date().getFullYear();\n    public currentMonth: number = new Date().getMonth();\n    public currentDay: number = new Date().getDate();\n    public listPreview: string = CalendarListPreviewStringEnum.FULL_LIST;\n    public timeMinutes!: string[];\n    public monthArray: number[] = new Array(12)\n        .fill(0)\n        .map((_, indx) => indx + 1);\n    public monthDayList: number[] = new Array(31)\n        .fill(0)\n        .map((_, indx) => indx + 1);\n    public yearsList: (string | number)[] = new Array(100)\n        .fill(0)\n        .map((_, idx) => (idx < 10 ? '0' + idx : idx));\n    public scrollTimer!: ReturnType<typeof setTimeout> | number;\n    public hoveredItem!: string | null;\n    public isInputFocus!: boolean;\n    public monthNames: string[] = CustomDatetimePickersConstants.monthNames;\n    public hourTimes: number[] = CustomDatetimePickersConstants.hourTimes;\n    public scrollTypes: ScrollType =\n        CustomDatetimePickersConstants.defaultScrollTypes;\n    public selectedTime: string =\n        CustomDatetimePickersConstants.defaultSelectedTime;\n    public timeOfDay: string[] = CustomDatetimePickersConstants.timeOfDay;\n\n    public previousRangeSide!: boolean;\n\n    constructor(private calendarService: CalendarDateTimePickerService) {}\n\n    @Input()\n    set calendarType(calendarType: string) {\n        this.calendarMainType = calendarType;\n        if (calendarType === CalendarTypeStringEnum.TIME)\n            this.outputType =\n                CustomDatetimePickersConstants.defaultOutputTypeTime;\n        else\n            this.outputType =\n                CustomDatetimePickersConstants.defaultOutputTypeDate;\n    }\n\n    @Input()\n    set placeholder(placeholder: string) {\n        this.selectedDateTime = placeholder;\n    }\n\n    ngOnInit(): void {\n        this.initDateChangedListener();\n    }\n\n    ngAfterViewInit(): void {\n        this.setTimeValue();\n        this.changeOpened();\n    }\n\n    public initDateChangedListener(): void {\n        this.calendarService.dateChanged.subscribe((date) => {\n            if (this.calendarMainType !== CalendarTypeStringEnum.TIME) {\n                this.outputType[0] = date[0];\n                this.outputType[2] = date[1];\n                this.outputType[4] = date[2];\n                this.selectedDateTime = this.createStringFromOutput();\n            }\n        });\n    }\n\n    public setTimeValue() {\n        const dateInputArray = moment(this.dateTime)\n            .format('H/mm/A')\n            .split('/');\n        setTimeout(() => {\n            this.scrollTypes.hourScroll = this.hourTimes.indexOf(\n                parseInt(dateInputArray[0])\n            );\n            this.scrollTypes.minutesScroll = this.timeMinutes.indexOf(\n                dateInputArray[1]\n            );\n\n            this.scrollTypes.pmAmScroll = dateInputArray[2] === 'AM' ? 0 : 1;\n        });\n    }\n\n    public setListPreview(value: string): void {\n        this.listPreview = value;\n    }\n\n    public inputInFocus(): void {\n        this.isInputFocus = true;\n    }\n\n    public inputBlur(): void {\n        this.isInputFocus = false;\n    }\n\n    public changeOpened(): void {\n        // this.isInputFocus = e;\n        // if (e) {\n        if (this.calendarMainType === CalendarTypeStringEnum.TIME) {\n            setTimeout(() => {\n                this.hourScroll.nativeElement.scrollTop =\n                    this.scrollTypes.hourScroll * 22;\n                this.minutesScroll.nativeElement.scrollTop =\n                    this.scrollTypes.minutesScroll * 22;\n                this.pmAmScroll.nativeElement.scrollTop =\n                    this.scrollTypes.pmAmScroll * 22;\n            });\n        } else {\n            let test = `${\n                this.dateTime.getMonth() + 1\n            }/${this.dateTime.getDate()}/${this.dateTime.getFullYear()}`;\n\n            this.calendarService.scrollToDate.next(\n                `${\n                    this.dateTime.getMonth() + 1\n                }/${this.dateTime.getDate()}/${this.dateTime.getFullYear()}`\n            );\n        }\n    }\n\n    public setTime(): void {\n        this.outputType[0] = this.hourTimes[this.scrollTypes.hourScroll];\n        this.outputType[2] = this.timeMinutes[this.scrollTypes.minutesScroll];\n        this.outputType[4] = this.timeOfDay[this.scrollTypes.pmAmScroll];\n\n        this.selectedDateTime = this.createStringFromOutput();\n\n        let currentDate = moment().format('MM/DD/YYYY');\n\n        this.calendarService.dateChanged.next(\n            new Date(currentDate + ' ' + this.selectedDateTime)\n        );\n\n        this.closePopover.emit();\n    }\n\n    public setDefaultTime(): void {\n        let currentDate = moment().format('MM/DD/YYYY');\n        this.calendarService.dateChanged.next(new Date(currentDate + ' 08:00'));\n\n        this.closePopover.emit();\n    }\n\n    public closePopup(): void {\n        this.closePopover.emit();\n    }\n\n    public createStringFromOutput(): string {\n        return this.outputType.join('');\n    }\n\n    public onScroll(\n        event: Event,\n        type: keyof ScrollType,\n        index: number | null = null\n    ): void {\n        const scrolFromTop = Math.floor(\n            (event.target as HTMLElement).scrollTop\n        );\n        const scrollIndex =\n            index === null ? Math.floor(scrolFromTop / 22) : index;\n        const scrollRemaining = scrolFromTop % 22;\n        clearInterval(this.scrollTimer);\n        this.scrollTimer = setTimeout(() => {\n            if (scrollRemaining < 11 && index === null) {\n                (event.target as HTMLElement).scrollTop = scrollIndex * 22;\n                this.scrollTypes[type] = scrollIndex;\n            } else if (index !== null) {\n                (<HTMLElement>(\n                    (<HTMLElement>event.target).parentNode\n                )).scrollTop = scrollIndex * 22;\n                this.scrollTypes[type] = scrollIndex;\n            } else {\n                (event.target as HTMLElement).scrollTop =\n                    (scrollIndex + 1) * 22;\n                this.scrollTypes[type] = scrollIndex + 1;\n            }\n\n            this.checkForScrolledType(type);\n        }, 200);\n    }\n\n    public checkForScrolledType(type: string): void {\n        if (type === CalendarScrollTypeStringEnum.HOURS_SCROLL) {\n            if (this.scrollTypes[type] >= 12) {\n                this.pmAmScroll.nativeElement.scrollTop = 22;\n                this.scrollTypes.pmAmScroll = 1;\n            } else {\n                this.pmAmScroll.nativeElement.scrollTop = 0;\n                this.scrollTypes.pmAmScroll = 0;\n            }\n        }\n\n        if (type === CalendarScrollTypeStringEnum.PM_AM_SCROLL) {\n            if (this.scrollTypes[type] === 0) {\n                if (this.scrollTypes.hourScroll >= 12) {\n                    this.hourScroll.nativeElement.scrollTop =\n                        (this.scrollTypes.hourScroll - 12) * 22;\n                    this.scrollTypes.hourScroll = Math.floor(\n                        this.scrollTypes.hourScroll - 12\n                    );\n                }\n            } else {\n                if (this.scrollTypes.hourScroll < 12) {\n                    this.hourScroll.nativeElement.scrollTop =\n                        (this.scrollTypes.hourScroll + 12) * 22;\n                    this.scrollTypes.hourScroll = Math.floor(\n                        this.scrollTypes.hourScroll + 12\n                    );\n                }\n            }\n        }\n\n        this.selectedTime = `${this.hourTimes[this.scrollTypes.hourScroll]}:${\n            this.timeMinutes[this.scrollTypes.minutesScroll]\n        } ${this.timeOfDay[this.scrollTypes.pmAmScroll]}`;\n    }\n\n    ngOnDestroy() {\n        this.listPreview = CalendarListPreviewStringEnum.FULL_LIST;\n    }\n}\n","<div class=\"temp_inp_holder\">\n    <div>\n        <div class=\"pickers_holder dark_picker\">\n            @if (calendarMainType === 'date') {\n                <div class=\"date_picker\">\n                    <app-ca-custom-datetime-pickers-date-calendars\n                        [listPreview]=\"listPreview\"\n                        [dateTime]=\"dateTime\"\n                        [isMonthAndYearOnly]=\"\n                            _inputConfig.name === 'datepickerBankCard'\n                        \"\n                        (setListPreviewValue)=\"setListPreview($event)\"\n                    ></app-ca-custom-datetime-pickers-date-calendars>\n                </div>\n            }\n            @if (calendarMainType === 'time') {\n                <div class=\"time_picker\">\n                    <div class=\"time_picker_head d-flex\">\n                        <div class=\"selected_time ca-font-bold\">\n                            {{ selectedTime }}\n                        </div>\n                        <div\n                            class=\"sel_now ca-font-bold\"\n                            (click)=\"setDefaultTime()\"\n                        >\n                            Default\n                        </div>\n                    </div>\n                    <div class=\"time_picker_body\">\n                        <div class=\"picker_body_head\">\n                            <div\n                                class=\"ca-font-bold\"\n                                [class.active]=\"hoveredItem === 'hours'\"\n                            >\n                                Hour\n                            </div>\n                            <div\n                                class=\"ca-font-bold\"\n                                [class.active]=\"hoveredItem === 'minutes'\"\n                            >\n                                Minute\n                            </div>\n                            <div\n                                class=\"ca-font-bold\"\n                                [class.active]=\"hoveredItem === 'times'\"\n                            >\n                                AM/PM\n                            </div>\n                        </div>\n                        <div class=\"picker_body\">\n                            <div\n                                #hourScroll\n                                (mouseout)=\"hoveredItem = null\"\n                                (mouseover)=\"hoveredItem = 'hours'\"\n                                (scroll)=\"onScroll($event, 'hourScroll')\"\n                                class=\"scroll_pickers\"\n                            >\n                                @for (\n                                    hour of hourTimes;\n                                    let indx = $index;\n                                    track indx\n                                ) {\n                                    <div\n                                        class=\"scroll_item ca-font-medium\"\n                                        [ngClass]=\"{\n                                            'active_item ca-font-bold':\n                                                scrollTypes.hourScroll === indx,\n                                        }\"\n                                        (click)=\"\n                                            onScroll($event, 'hourScroll', indx)\n                                        \"\n                                    >\n                                        {{ hour }}\n                                    </div>\n                                }\n                            </div>\n                            <div\n                                #minutesScroll\n                                (mouseout)=\"hoveredItem = null\"\n                                (mouseover)=\"hoveredItem = 'minutes'\"\n                                (scroll)=\"onScroll($event, 'minutesScroll')\"\n                                class=\"scroll_pickers\"\n                            >\n                                @for (\n                                    minutes of timeMinutes;\n                                    let indx = $index;\n                                    track indx\n                                ) {\n                                    <div\n                                        class=\"scroll_item ca-font-medium\"\n                                        [ngClass]=\"{\n                                            'active_item ca-font-bold':\n                                                scrollTypes.minutesScroll ===\n                                                indx,\n                                        }\"\n                                        (click)=\"\n                                            onScroll(\n                                                $event,\n                                                'minutesScroll',\n                                                indx\n                                            )\n                                        \"\n                                    >\n                                        {{ minutes }}\n                                    </div>\n                                }\n                            </div>\n                            <div\n                                #pmAmScroll\n                                (mouseout)=\"hoveredItem = null\"\n                                (mouseover)=\"hoveredItem = 'times'\"\n                                (scroll)=\"onScroll($event, 'pmAmScroll')\"\n                                class=\"scroll_pickers\"\n                            >\n                                @for (\n                                    when of timeOfDay;\n                                    let indx = $index;\n                                    track indx\n                                ) {\n                                    <div\n                                        class=\"scroll_item ca-font-medium\"\n                                        [ngClass]=\"{\n                                            'active_item ca-font-bold':\n                                                scrollTypes.pmAmScroll === indx,\n                                        }\"\n                                        (click)=\"\n                                            onScroll($event, 'pmAmScroll', indx)\n                                        \"\n                                    >\n                                        {{ when }}\n                                    </div>\n                                }\n                            </div>\n                            <div class=\"picker_line\">\n                                <span class=\"border_line\"></span>\n                                <span class=\"border_line line_2\"></span>\n                            </div>\n                        </div>\n                        <div class=\"picker_buttons\">\n                            <div\n                                (click)=\"closePopup()\"\n                                class=\"pick_button ca-font-bold\"\n                            >\n                                Cancel\n                            </div>\n                            <div\n                                (click)=\"setTime()\"\n                                class=\"pick_button set_button ca-font-bold\"\n                            >\n                                Set\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n    </div>\n</div>\n","export class InputSvgRoutes {\n  static removeInputSvg: string =\n    'assets/ca-components/svg/input/ic_remove_input.svg';\n  static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n  static xClearCommonSvg: string = 'assets/ca-components/svg/common/ic_x.svg';\n  static confirmSvg: string = 'assets/ca-components/svg/input/ic_confirm.svg';\n  static dangerSvg: string = 'assets/ca-components/svg/input/ic_danger.svg';\n  static eyeVisibleSvg: string =\n    'assets/ca-components/svg/input/ic_eye-visible.svg';\n  static eyeHiddenSvg: string =\n    'assets/ca-components/svg/input/ic_eye-hidden.svg';\n  static decrementSvg: string =\n    'assets/ca-components/svg/input/ic_pm_decrement.svg';\n  static incrementSvg: string =\n    'assets/ca-components/svg/input/ic_pm_increment.svg';\n  static inputPenSvg: string =\n    'assets/ca-components/svg/input/ic_spec_input_pen.svg';\n  static inputDropdownArrowSvg: string =\n    'assets/ca-components/svg/input/ic_arrow_input.svg';\n  static dynamicLabelSvg: string =\n    'assets/ca-components/svg/input/ic_dynamic_label.svg';\n  static dynamicFocusLabelSvg: string =\n    'assets/ca-components/svg/input/ic_dynamic_focus_label.svg';\n  static ownerBadgeBlueSvg: string =\n    'assets/ca-components/svg/common/owner-badge-blue.svg';\n}\n","export enum InputCommandsAction {\n  DECREMENT = 'decrement',\n  INCREMENT = 'increment',\n  RESET = 'reset',\n  CONFIRM = 'confirm',\n  CANCEL = 'cancel',\n  MINUS = 'minus',\n  PLUS = 'plus',\n}\n","export enum InputCommandsType {\n  PM_INCREMENT_DECREMENT = 'pm-increment-decrement',\n  INCREMENT_DECREMENT = 'increment-decrement',\n  CONFIRM_CANCEL = 'confirm-cancel',\n  MONTHS = 'months',\n\n}\n","export enum InputConfigNameStringEnum {\n  DATE_PICKER = 'datepicker',\n  TIME_PICKER = 'timepicker',\n  DATE_PICKER_BANK_CARD = 'datepickerBankCard',\n  INPUT_DROPDOWN_BANK_NAME = 'Input Dropdown Bank Name',\n  ADDRESS = 'Address'\n}\n","export enum InputStringEnum {\n  PHONE = 'phone',\n  CAPITALIZE = 'capitalize',\n  UPPERCASE = 'uppercase',\n  CAPITALIZED_CASE = 'capitalizedcase',\n  YEAR = 'year',\n  MONTHS = 'months',\n  AXLES = 'axles',\n  FULL_NAME = 'full name',\n  EMAIL = 'email',\n  INVOICE = 'invoice',\n  ADDRESS = 'address',\n  PERSONS = 'persons',\n  VEHICLES = 'vehicles',\n\n  PRICE_SEPARATOR = 'price-separator',\n  BUSINESS_NAME = 'business name',\n  SHOP_NAME = 'shop name',\n  FUEL_STOP = 'fuel stop',\n  PRODUCER_NAME = 'producer name',\n  TERMINAL_NAME = 'terminal name',\n\n  EIN = 'ein',\n  MC_FF = 'mc/ff',\n  PHONE_EXTENSION = 'phone-extension',\n  ACCOUNT_BANK = 'account-bank',\n  ROUTING_BANK = 'routing-bank',\n  SSN = 'ssn',\n  FUEL_CARD = 'fuel-card',\n  EMPTY_WEIGHT = 'empty-weight',\n  CREDIT_LIMIT = 'credit limit',\n  PO_BOX = 'po box',\n  PRICE = 'price',\n  TRAILER_VOLUME = 'trailer-volume',\n  REPAIR_ODOMETER = 'repair-odometer',\n  USDOT = 'usdot',\n  IRP = 'irp',\n  STARTING = 'starting',\n  CUSTOMER_PAY_TERM = 'customer pay term',\n  CUSTOMER_CREDIT = 'customer credit',\n  DEFAULT_BASE = 'default base',\n  EACH_OCCURRENCE = 'each occurrence',\n  DAMAGE = 'damage',\n  PERSONAL_ADVER_INJ = 'personal-adver-inj',\n  MEDICAL_EXPENSES = 'medical expenses',\n  BODILY_INJURY = 'bodily injury',\n  GENERAL_AGGREGATE = 'general aggregate',\n  PRODUCTS_COMP_OP_AGG = 'products-comp-op-agg',\n  COMBINED_SINGLE_LIMIT = 'combined-single-limit',\n  SINGLE_CONVEYANCE = 'single-conveyance',\n  DEDUCTABLE = 'deductable',\n  COMPREH_COLLISION = 'compreh-collision',\n  TRAILER_VALUE_INSURANCE_POLICY = 'trailer-value-insurance-policy',\n  RENT = 'rent',\n  SALARY = 'salary',\n  MILEAGE = 'mileage',\n  EMPTY_WEIGHT_SPACE = 'empty weight',\n  QTY = 'qty',\n  PURCHASE_PRICE = 'purchase price',\n  FUEL_TANK_SIZE = 'fuel tank size',\n  DEVICE_NO = 'device no',\n  WEIGHT = 'weight',\n  FUEL_PER_MILES = 'fuel per miles',\n  FUEL_PRICE_MAP = 'fuel price map',\n  AMOUNT = 'amount',\n  BOL_NO = 'bol no.',\n  SEAL_NO = 'seal no.',\n  PICKUP_NO = 'pickup no.',\n  CODE = 'code',\n  MULTI_FROM_FIRST_FROM = 'multifromfirstfrom',\n  MULTI_FROM_FIRST_TO = 'multifromfirstto',\n  MULTI_FORM_SECOND_FROM = 'multiformsecondfrom',\n  MULTI_FORM_SECOND_TO = 'multiformsecondto',\n  MULTI_FORM_THIRD_FROM = 'multiformthirdfrom',\n  MULTI_FORM_THIRD_TO = 'multiformthirdto',\n\n  ADDRESS_UNIT = 'address-unit',\n  DEPARTMENT = 'department',\n  VEHICLE_UNIT = 'vehicle-unit',\n  FIRST_NAME = 'first name',\n  LAST_NAME = 'last name',\n  BANK_NAME = 'bank name',\n  VIN_NUMBER = 'vin-number',\n  INSURANCE_POLICY = 'insurance-policy',\n  IFTA = 'ifta',\n  TRUCK_TRAILER_MODEL = 'truck-trailer-model',\n  LICENSE_PLATE = 'license plate',\n  DESCRIPTION = 'description',\n  ALLOW_ALL = 'allow all',\n  DBA_NAME = 'dba name',\n  PER_MILE = 'per mile',\n  PER_STOP = 'per stop',\n  FLAT_RATE = 'flat rate',\n  PER_LOAD = 'per load',\n  RELATIONSHIP = 'relationship',\n  SCAC = 'scac',\n  EMERGENCY_NAME = 'emergency name',\n  FULL_CONTACT_NAME = 'full contact name',\n  FUEL_STORE = 'fuel-store',\n  HOS = 'hos',\n  FULL_PARKING_SLOT = 'full parking slot',\n  PARKING_SLOT = 'parking slot',\n  CDL_NUMBER = 'cdl-number',\n  USERNAME = 'username',\n  NICKNAME = 'nickname',\n  PASSWORD = 'password',\n  TOLL_VALIDATION = 'tollvalidation',\n  PREFIX = 'prefix',\n  SUFFIX = 'suffix',\n  PARKING_NAME = 'parking name',\n  FILE_NAME = 'file name',\n  INSURER_NAME = 'insurer name',\n  OFFICE_NAME = 'office name',\n  INPUT_DROPDOWN_LABEL = 'input dropdown label'\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n  name: \"colorFinder\",\n  standalone: true,\n})\nexport class ColorFinderPipe implements PipeTransform {\n  transform(id: number, type: string, isTooltip?: boolean): string {\n    if (type === \"truck\") {\n      switch (id) {\n        case 1:\n        case 6:\n          if (isTooltip) return \"#3B73ED\";\n\n          return \"blue\";\n        case 2:\n        case 5:\n          if (isTooltip) return \"#F89B2E\";\n\n          return \"yellow\";\n        default:\n          if (isTooltip) return \"#259F94\";\n\n          return \"green\";\n      }\n    } else {\n      switch (id) {\n        case 3:\n        case 4:\n        case 6:\n        case 9:\n        case 10:\n        case 11:\n        case 12:\n          if (isTooltip) return \"#3B73ED\";\n\n          return \"blue\";\n        case 1:\n        case 2:\n          if (isTooltip) return \"#F89B2E\";\n\n          return \"yellow\";\n        case 7:\n        case 13:\n          if (isTooltip) return \"#DF3C3C \";\n\n          return \"red\";\n        default:\n          if (isTooltip) return \"#259F94\";\n\n          return \"green\";\n      }\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\n\n@Pipe({\n    name: 'formControl',\n    standalone: true\n})\nexport class FormControlPipe implements PipeTransform {\n    transform(value: AbstractControl): UntypedFormControl {\n        return value as UntypedFormControl;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\nimport { DropdownTemplateTypeEnum } from '../../ca-input-dropdown/enums';\n\n@Pipe({\n    name: 'inputClass',\n    standalone: true,\n})\nexport class InputClassPipe implements PipeTransform {\n    transform(\n        getSuperControl: AbstractControl<any, any> | null,\n        isFocusInput: boolean,\n        isTouchedInput: boolean,\n        inputConfig: ICaInput,\n        input: { value: string },\n        isVisibleCommands: boolean,\n        value: string | number,\n        superControlInvalid: boolean | undefined,\n        superControlTouched: boolean | undefined,\n        isDropdownToggler: boolean,\n        isEditInput: boolean,\n        template: string,\n        isDisabledInput?: boolean\n    ): { [key: string]: boolean | undefined | number | null | string } {\n        const isDisabled = isDisabledInput ?? inputConfig.isDisabled;\n        return {\n            'input-fixed-placehoder-input':\n                inputConfig.fixedPlacholder && input.value && !isFocusInput,\n            focus: isFocusInput && !inputConfig.isInvalidSearchInDropdown,\n            'inactive-empty': !value && isDisabled,\n            'inactive-filled': value && isDisabled,\n            'valid-focus-in':\n                ((value || inputConfig.placeholder) &&\n                    getSuperControl?.valid &&\n                    isFocusInput &&\n                    !isVisibleCommands &&\n                    !inputConfig?.dropdownImageInput?.url &&\n                    !inputConfig.blackInput &&\n                    !inputConfig.isInvalidSearchInDropdown &&\n                    !inputConfig.mergeDropdownBodyWithInput &&\n                    !isDisabled &&\n                    !inputConfig.dropdownLabel) ||\n                (inputConfig.multipleInputValues?.options?.length &&\n                    isFocusInput &&\n                    !inputConfig.isInvalidSearchInDropdown &&\n                    !inputConfig.blackInput &&\n                    !inputConfig.mergeDropdownBodyWithInput &&\n                    !isDisabled &&\n                    !inputConfig.dropdownLabel),\n            'valid-focus-out-filled':\n                ((((value || value === 0) &&\n                    getSuperControl?.valid &&\n                    !isFocusInput &&\n                    !isDisabled &&\n                    !isVisibleCommands &&\n                    !inputConfig.blackInput) ||\n                    (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n                    !inputConfig.blackInput) ||\n                (inputConfig.multipleInputValues?.options?.length &&\n                    !isFocusInput &&\n                    !inputConfig.blackInput),\n            'invalid-focus-in':\n                getSuperControl?.invalid &&\n                value &&\n                isFocusInput &&\n                !inputConfig.blackInput &&\n                !inputConfig.mergeDropdownBodyWithInput &&\n                !isDisabled &&\n                !inputConfig.dropdownLabel &&\n                !(\n                    inputConfig.dropdownImageInput?.url ||\n                    inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n                ),\n            'invalid-focus-out-filled':\n                ((value &&\n                    getSuperControl?.invalid &&\n                    !isFocusInput &&\n                    !isDisabled &&\n                    !inputConfig.blackInput) ||\n                    (!inputConfig.dropdownImageInput?.url &&\n                        (isTouchedInput || getSuperControl?.touched) &&\n                        getSuperControl?.invalid &&\n                        !isDisabled &&\n                        !isFocusInput)) &&\n                !inputConfig.blackInput &&\n                !inputConfig.requiredLabel,\n            'invalid-focus-out-empty':\n                !isFocusInput &&\n                !value &&\n                superControlInvalid &&\n                (isTouchedInput || superControlTouched) &&\n                !isDisabled &&\n                !inputConfig.requiredLabel,\n            'invalid-focus-out-empty-table':\n                !isFocusInput &&\n                !getSuperControl?.value &&\n                getSuperControl?.invalid &&\n                (isTouchedInput || getSuperControl.touched) &&\n                !isDisabled &&\n                inputConfig.requiredLabel,\n            'invalid-search-in-dropdown-focus-in':\n                isFocusInput &&\n                value &&\n                inputConfig.isInvalidSearchInDropdown &&\n                inputConfig.isDropdown &&\n                !inputConfig.blackInput &&\n                !inputConfig.mergeDropdownBodyWithInput &&\n                !isDisabled,\n            'has-placeholderIcon': !!inputConfig.placeholderIcon,\n            'dropdown-placeholder-active':\n                inputConfig.isDropdown &&\n                inputConfig.placeholder &&\n                isDropdownToggler &&\n                isFocusInput &&\n                !inputConfig.blackInput &&\n                !isDisabled &&\n                !inputConfig.isInvalidSearchInDropdown,\n            'multiSelect-dropdown-active':\n                inputConfig.multiSelectDropdownActive &&\n                isFocusInput &&\n                !isDisabled,\n            'dropdown-label-active':\n                inputConfig.dropdownLabel &&\n                isVisibleCommands &&\n                isEditInput &&\n                !isDisabled,\n            'input-commands': inputConfig.commands?.active && isVisibleCommands,\n            'blue-commands':\n                inputConfig.commands?.blueCommands &&\n                inputConfig.commands?.active &&\n                isVisibleCommands,\n            'dropdown-input-image-truck':\n                inputConfig?.dropdownImageInput?.withText &&\n                inputConfig?.dropdownImageInput?.url &&\n                inputConfig?.dropdownImageInput?.template === 'truck' &&\n                !inputConfig?.dropdownImageInput?.remove &&\n                !isFocusInput,\n            'dropdown-input-image-truck-focus':\n                inputConfig?.dropdownImageInput?.withText &&\n                inputConfig?.dropdownImageInput?.url &&\n                inputConfig?.dropdownImageInput?.template === 'truck' &&\n                !inputConfig?.dropdownImageInput?.remove &&\n                isFocusInput,\n            'dropdown-input-image-trailer':\n                inputConfig?.dropdownImageInput?.withText &&\n                inputConfig?.dropdownImageInput?.url &&\n                inputConfig?.dropdownImageInput?.template === 'trailer' &&\n                !inputConfig?.dropdownImageInput?.remove &&\n                !isFocusInput,\n            'dropdown-input-image-trailer-focus':\n                inputConfig?.dropdownImageInput?.withText &&\n                inputConfig?.dropdownImageInput?.url &&\n                inputConfig?.dropdownImageInput?.template === 'trailer' &&\n                !inputConfig?.dropdownImageInput?.remove &&\n                isFocusInput,\n            'dropdown-input-image-color':\n                inputConfig?.dropdownImageInput?.withText &&\n                (inputConfig?.dropdownImageInput?.url ||\n                    inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl) &&\n                inputConfig?.dropdownImageInput?.template === 'color',\n            'dropdown-input-image-pm':\n                inputConfig?.dropdownImageInput?.withText &&\n                !inputConfig?.hideAllItemsInInputDropdown &&\n                inputConfig?.dropdownImageInput?.template === 'pm' &&\n                (inputConfig.selectedDropdown ||\n                    (inputConfig.placeholder && isFocusInput) ||\n                    getSuperControl?.value),\n            'dropdown-input-image-without-text-transparent':\n                inputConfig?.dropdownImageInput &&\n                !inputConfig?.dropdownImageInput?.withText &&\n                !isFocusInput,\n            'multiple-input-values':\n                inputConfig?.multipleInputValues?.options?.length &&\n                !isFocusInput,\n            'disable-select-on-focus-out': !isFocusInput,\n            'hide-placeholder-in-multiple-placeholder-input':\n                inputConfig?.multipleInputValues?.options?.length &&\n                isFocusInput,\n            'cursor-on-right-side': inputConfig?.inputCursorOnRightSide,\n            'merge-dropdown-body-with-input':\n                inputConfig.mergeDropdownBodyWithInput,\n            'dispatch-dropdown':\n                template === DropdownTemplateTypeEnum.SVGTEXT_DISPATCH_TEMPLATE,\n            'ca-font-bold text-uppercase': inputConfig.statusStyle,\n            'blue-dropdown':\n                inputConfig.isBlueDropdown &&\n                getSuperControl?.valid &&\n                (inputConfig.isItemSelected ||\n                    inputConfig.isDisplayingCustomPeriodRange),\n            'hide-input-value':\n                template === DropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD,\n        };\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// confis\nimport { ICaInput } from '../config/ca-input.config';\n\n// enums\nimport { DropdownTemplateTypeEnum } from '../../ca-input-dropdown/enums';\n\n@Pipe({\n  name: 'inputClearClass',\n  standalone: true,\n})\nexport class InputClearClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    incorrectValue: boolean,\n    selectedDropdownLabelColor: boolean,\n    template: string,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      focus:\n        isFocusInput &&\n        getSuperControl?.value &&\n        !(inputConfig.blackInput && inputConfig.isDropdown),\n      'valid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !inputConfig.customClass?.includes('repair-shop-open-hour') &&\n          !inputConfig.blackInput &&\n          !inputConfig.dropdownImageInput?.url &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.multipleInputValues?.options.length &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.dropdownLabel &&\n          template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS),\n      'valid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.customClass?.includes('repair-shop-open-hour') &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDisabled,\n      'invalid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.invalid &&\n          isFocusInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.isInvalidSearchInDropdown &&\n          inputConfig.isDropdown &&\n          isFocusInput &&\n          getSuperControl?.value &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-out':\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !inputConfig.isDropdown &&\n        !inputConfig.blackInput &&\n        !(\n          !inputConfig.dropdownImageInput?.withText &&\n          inputConfig.dropdownImageInput?.url\n        ) &&\n        !inputConfig.isDisabled,\n      'incorrect-input': inputConfig.incorrectInput && getSuperControl?.value,\n      'incorrect-input-on':\n        inputConfig.incorrectInput && getSuperControl?.value && incorrectValue,\n      hidden:\n        getSuperControl?.value && isFocusInput && inputConfig.dropdownLabel,\n      'dropdown-on':\n        (getSuperControl?.value &&\n          inputConfig.isDropdown &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput &&\n          !inputConfig.multiSelectDropdownActive &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        (inputConfig.dropdownImageInput?.url &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput &&\n          !inputConfig.multiSelectDropdownActive &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        (!inputConfig.blackInput && selectedDropdownLabelColor) ||\n        (inputConfig.dropdownImageInput?.url &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput) ||\n        template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS,\n      'trash-can-svg': inputConfig.removeInput,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n    name: 'inputContainerClass',\n    standalone: true,\n})\nexport class InputContainerClassPipe implements PipeTransform {\n    transform(\n        getSuperControl: AbstractControl<any, any> | null,\n        isFocusInput: boolean,\n        isTouchedInput: boolean,\n        inputConfig: ICaInput,\n        controlValue: string,\n        controlDisabled?: boolean\n    ): { [key: string]: boolean | undefined | null | string } {\n        const isDisabled = controlDisabled || inputConfig.isDisabled;\n        return {\n            'custom-empty-hover': !isFocusInput,\n            'custom-filled-hover':\n                controlValue && !isFocusInput && !inputConfig.dropdownLabel,\n            'invalid-filled-focus-out':\n                controlValue &&\n                getSuperControl?.invalid &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'invalid-empty-focus-out':\n                !controlValue &&\n                getSuperControl?.invalid &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled &&\n                !inputConfig.dropdownLabel,\n            'invalid-focus-in':\n                controlValue &&\n                getSuperControl?.invalid &&\n                isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'valid-focus-in':\n                controlValue &&\n                getSuperControl?.valid &&\n                isFocusInput &&\n                !inputConfig.hideClear &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'valid-focus-out':\n                controlValue &&\n                getSuperControl?.valid &&\n                !isFocusInput &&\n                !inputConfig.blackInput &&\n                !isDisabled,\n            'inactive-empty': isDisabled && !controlValue,\n            'inactive-filled': isDisabled && controlValue,\n            'input-remove-trash-can': inputConfig.removeInput,\n            'input-remove-background': inputConfig.isInputBackgroundRemoved,\n            'input-blue-text': inputConfig.isBlueText,\n            'required-label-table': inputConfig.requiredLabel,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n  name: 'inputDatetimePickerClass',\n  standalone: true,\n})\nexport class InputDatetimePickerClassPipe implements PipeTransform {\n  transform(\n    isFocusInput: boolean | undefined,\n    isVisibleCommands: boolean,\n    getSuperControl: AbstractControl<any, any> | null,\n    inputConfig: Partial<ICaInput>,\n    isTouchedInput: boolean | undefined,\n    value: string\n  ): { [key: string]: boolean | undefined | number } {\n\n    return {\n      focus: isFocusInput,\n      'valid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !isVisibleCommands &&\n          !inputConfig.dropdownImageInput?.url &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.multipleInputValues?.options?.length &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.isDisabled),\n      'valid-focus-out-filled':\n        (((getSuperControl?.value &&\n          getSuperControl?.valid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled &&\n          !isVisibleCommands &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled) ||\n          (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n          !inputConfig.blackInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.dropdownLabel &&\n          getSuperControl?.value &&\n          getSuperControl?.valid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled) ||\n        (inputConfig.multipleInputValues?.options?.length && !isFocusInput),\n      'invalid-focus-in':\n        getSuperControl?.invalid &&\n        getSuperControl?.value &&\n        isFocusInput &&\n        !inputConfig.blackInput &&\n        !(\n          inputConfig.dropdownImageInput?.url ||\n          inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n        ) &&\n        !inputConfig.isDisabled,\n      'invalid-focus-out-filled':\n        ((getSuperControl?.value &&\n          getSuperControl?.invalid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.blackInput) ||\n          (!inputConfig.dropdownImageInput?.url &&\n            (isTouchedInput || getSuperControl?.touched) &&\n            getSuperControl?.invalid &&\n            !isFocusInput &&\n            !inputConfig.isDisabled)) &&\n        !inputConfig.blackInput,\n      'invalid-focus-out-empty':\n        !isFocusInput &&\n        !getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        inputConfig.multipleLabel?.labels?.length &&\n        !inputConfig.multipleInputValues?.options?.length &&\n        !inputConfig.isDisabled,\n      dark: inputConfig.customClass === 'datetimeclass dark',\n      'time-picker-opacity': inputConfig.customClass === 'time-picker-opacity',\n      'dispatch-history-default-color': \n          inputConfig.customClass === 'time-picker-opacity' && \n          inputConfig.hideDropdownArrow && !isFocusInput,\n      'dispatch-history-row-hover': \n          inputConfig.customClass === 'time-picker-opacity' && \n          inputConfig.isHoverRow && inputConfig.hideDropdownArrow && !isFocusInput,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n  name: 'inputDropdownArrowClass',\n  standalone: true,\n})\nexport class InputDropdownArrowClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    isTouchedInput: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      focus: isFocusInput,\n      'valid-focus-in':\n        (!inputConfig.dropdownLabel &&\n          (getSuperControl?.value || inputConfig.placeholder) &&\n          getSuperControl?.valid &&\n          isFocusInput &&\n          !inputConfig.isDisabled &&\n          !inputConfig.isInvalidSearchInDropdown) ||\n        ((inputConfig.dropdownImageInput?.url ||\n          inputConfig.dropdownImageInput?.nameInitialsInsteadUrl ||\n          inputConfig.placeholder) &&\n          isFocusInput &&\n          !inputConfig.isInvalidSearchInDropdown &&\n          !inputConfig.isDisabled),\n      'valid-focus-out':\n        (getSuperControl?.value &&\n          getSuperControl?.valid &&\n          !isFocusInput &&\n          !inputConfig.isDisabled) ||\n        (!inputConfig.dropdownImageInput?.withText &&\n          inputConfig.dropdownImageInput?.url &&\n          !isFocusInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-in':\n        (getSuperControl?.value &&\n          getSuperControl?.invalid &&\n          isFocusInput &&\n          !inputConfig.isDisabled) ||\n        (isFocusInput &&\n          getSuperControl?.value &&\n          inputConfig.isInvalidSearchInDropdown &&\n          inputConfig.isDropdown &&\n          !inputConfig.blackInput &&\n          !inputConfig.mergeDropdownBodyWithInput &&\n          !inputConfig.isDisabled),\n      'invalid-focus-out':\n        !getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      'invalid-search-in-dropdown-focus-in':\n        inputConfig.isInvalidSearchInDropdown &&\n        inputConfig.isDropdown &&\n        isFocusInput &&\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !inputConfig.isDisabled,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'inputError',\n    standalone: true,\n})\nexport class InputErrorPipe implements PipeTransform {\n    transform(value: any, inputName?: string): string {\n        let errorMessageValue: string = '';\n\n        if (value !== null) {\n            if (value['required']) {\n                errorMessageValue = 'Required';\n            } else if (value['invalid']) {\n                errorMessageValue = 'Invalid';\n            } else if (value['minlength']) {\n                errorMessageValue = `${value['minlength'].requiredLength} Characters Min`;\n            } else if (value['maxlength']) {\n                errorMessageValue = `${value['maxlength'].requiredLength} Characters Max`;\n            } else if (value['min']) {\n                errorMessageValue = `${value['min']} Is Minimum Value`;\n            } else if (value['max']) {\n                errorMessageValue = `${value['max']} Is Maximum Value`;\n            } else if (value['passwordDontMatch']) {\n                errorMessageValue = \"Passwords don't match.\";\n            } else if (value['fuelStore']) {\n                errorMessageValue = 'Store already added.';\n            } else if (value['fuelStoreCommonMessage']) {\n                errorMessageValue = 'Already in use by other fuel stop.';\n            } else if (value['pattern']?.requiredPattern) {\n                switch (inputName?.toLowerCase()) {\n                    case 'phone': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    case 'ssn': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    case 'ein': {\n                        errorMessageValue = 'Invalid';\n                        break;\n                    }\n                    default: {\n                        errorMessageValue = `Invalid`;\n                        break;\n                    }\n                }\n            } else if (value['userDoesntExist']) {\n                errorMessageValue = \"This user doesn't exist\";\n            } else if (value['userAlreadyRegistered']) {\n                errorMessageValue = 'This user is already registered';\n            } else if (value['wrongPassword']) {\n                errorMessageValue = 'Wrong password, try again';\n            } else if (\n                value['einAlreadyExist'] ||\n                value['phoneAlreadyExist'] ||\n                value['emailAlreadyExist'] ||\n                value['ssnAlreadyExist']\n            ) {\n                errorMessageValue = 'Already in use';\n            } else if (value['incorrectVinNumber']) {\n                errorMessageValue = '13 or 17 characters';\n            } else if (value['customError']) {\n                errorMessageValue = value['customError'];\n            } else {\n                errorMessageValue = `Invalid`;\n            }\n        }\n        return errorMessageValue;\n    }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"inputPasswordEyeClass\",\n  standalone: true,\n})\nexport class InputPasswordEyeClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    isTouchedInput: boolean,\n    value: string\n  ): { [key: string]: boolean } {\n    return {\n      visible: getSuperControl?.value,\n      inactive: inputConfig.isDisabled!,\n      \"valid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled,\n      \"valid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !inputConfig.isDisabled &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !isFocusInput,\n      \"invalid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !inputConfig.isDisabled,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\nimport { LabelColor } from \"../models/label-color.model\";\n\n@Pipe({\n  name: \"inputPlaceholderIconClass\",\n  standalone: true,\n})\nexport class InputPlaceholderIconClassPipe implements PipeTransform {\n  transform(\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    inputConfig: ICaInput,\n    selectedDropdownLabelColor: LabelColor | null,\n    isTouchedInput: boolean,\n    isEditInput: boolean,\n    value: string\n  ): { [key: string]: boolean | undefined } {\n    return {\n      \"inactive-empty\": !getSuperControl?.value && inputConfig.isDisabled,\n      \"inactive-filled\": getSuperControl?.value && inputConfig.isDisabled,\n      \"default-svg-color\":\n        !(inputConfig.dropdownLabel && isFocusInput) &&\n        !(inputConfig.dropdownLabel && selectedDropdownLabelColor),\n      focus: isFocusInput && !inputConfig.dropdownLabel,\n      \"valid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.blackInput &&\n        !inputConfig.commands?.active &&\n        !inputConfig.isDisabled,\n      \"valid-focus-out\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.isDisabled,\n      \"valid-focus-out-dropdown-label\":\n        getSuperControl?.value &&\n        getSuperControl?.valid &&\n        !isFocusInput &&\n        selectedDropdownLabelColor &&\n        inputConfig.dropdownLabel &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-in\":\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDisabled,\n      \"invalid-focus-out\":\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !selectedDropdownLabelColor &&\n        !inputConfig.dropdownLabel &&\n        (isTouchedInput || getSuperControl?.touched) &&\n        !inputConfig.isDisabled,\n      hidden: inputConfig.type === \"password\" && getSuperControl?.value,\n      'cursor-pointer': isEditInput\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'inputType',\n    standalone: true\n})\nexport class InputTypePipe implements PipeTransform {\n    transform(type: string, value: boolean): any {\n        if (type === 'password') {\n            if (value) {\n                return 'text';\n            } else {\n                return 'password';\n            }\n        }\n        return type;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\nimport { AbstractControl, Validators } from '@angular/forms';\n\n@Pipe({\n    name: 'labelClass',\n    standalone: true,\n})\nexport class LabelClassPipe implements PipeTransform {\n    transform(\n        value: string | number,\n        isFocusInput: boolean,\n        inputConfig: ICaInput,\n        isTouchedInput: boolean,\n        superControlInvalid?: boolean,\n        superControlTouched?: boolean,\n        control?: AbstractControl<any, any> | null,\n        isDisabledInput?: boolean\n    ): { [key: string]: boolean | null | undefined | string | number } {\n        const isFormControlRequired =\n            control?.hasValidator(Validators.required) ||\n            inputConfig.isRequired;\n\n        const isDisabled = isDisabledInput || inputConfig.isDisabled;\n\n        return {\n            required: isFormControlRequired && !isDisabled,\n            'inactive-empty': !value && isDisabled,\n            'up-label':\n                value ||\n                value === 0 ||\n                isFocusInput ||\n                inputConfig?.multipleInputValues?.options?.length ||\n                (!inputConfig.dropdownImageInput?.withText &&\n                    inputConfig.dropdownImageInput?.url &&\n                    !inputConfig.labelInInput),\n            'input-placeholderIcon-on': inputConfig.placeholderIcon,\n            hidden:\n                inputConfig.placeholderInsteadOfLabel &&\n                (isFocusInput || value),\n            'multiple-labels':\n                inputConfig?.multipleInputValues?.options?.length,\n            'in-label-focus': isFocusInput && inputConfig.labelInInput,\n            'in-label': inputConfig.labelInInput,\n            'required-label':\n                !isFocusInput &&\n                !value &&\n                superControlInvalid &&\n                (isTouchedInput || superControlTouched) &&\n                !isDisabled &&\n                inputConfig.requiredLabel,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"showClear\",\n  standalone: true\n})\nexport class ShowClearPipe implements PipeTransform {\n  transform(inputConfig: ICaInput, disabled?: boolean): boolean | undefined {\n    const isDisabled = disabled || inputConfig.isDisabled;\n    return (\n      (!inputConfig.hideClear &&\n        (!isDisabled || inputConfig.removeInput) &&\n        !inputConfig.customClass?.includes(\"details-pages\") &&\n        !inputConfig.commands?.active &&\n        !inputConfig?.loadingSpinner?.isLoading) ||\n      inputConfig.incorrectInput\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n    name: 'showDropdownArrow',\n    standalone: true,\n})\nexport class ShowDropdownArrowPipe implements PipeTransform {\n    transform(inputConfig: ICaInput, disabled?: boolean): boolean {\n        const isDisabled = disabled || inputConfig.isDisabled;\n        return (\n            (!inputConfig.hideDropdownArrow &&\n                (inputConfig.isDropdown || inputConfig.dropdownLabel) &&\n                !inputConfig.multiSelectDropdownActive &&\n                !isDisabled) ||\n            ((inputConfig.name === 'datepicker' ||\n                inputConfig.name === 'timepicker' ||\n                inputConfig.name == 'datepickerBankCard') &&\n                !inputConfig.incorrectInput &&\n                !isDisabled &&\n                !inputConfig.hideDropdownArrow)\n        );\n    }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n  name: \"showInvalidDangerMark\",\n  standalone: true,\n})\nexport class ShowInvalidDangerMarkPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    getSuperControl: AbstractControl<any, any> | null,\n    isFocusInput: boolean,\n    isTouchedInput: boolean,\n    value: string\n  ): boolean | undefined {\n    return (\n      ((isTouchedInput || getSuperControl?.touched) &&\n        getSuperControl?.value &&\n        getSuperControl?.invalid &&\n        !isFocusInput &&\n        !inputConfig.isDisabled &&\n        !inputConfig.incorrectInput &&\n        !inputConfig.blackInput &&\n        !inputConfig.isDropdown &&\n        !inputConfig.dropdownLabel &&\n        !inputConfig.hideDangerMark) ||\n      inputConfig.dangerMark\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n    name: 'showValidCheck',\n    standalone: true,\n})\nexport class ShowValidCheckPipe implements PipeTransform {\n    transform(\n        getSuperControl: AbstractControl<any, any> | null,\n        isFocusInput: boolean,\n        inputConfig: ICaInput,\n        control: AbstractControl<any, any> | null\n    ): boolean {\n        const isDisabled = control?.disabled || inputConfig.isDisabled;\n        return (\n            (getSuperControl?.value || getSuperControl?.value === 0) &&\n            getSuperControl?.valid &&\n            !isFocusInput &&\n            !isDisabled &&\n            !inputConfig.placeholderIcon &&\n            !inputConfig.isDropdown &&\n            !inputConfig.blackInput &&\n            !inputConfig.hideRequiredCheck &&\n            !inputConfig.incorrectInput &&\n            !inputConfig?.loadingSpinner?.isLoading &&\n            !inputConfig.dropdownLabel\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n    name: 'inputPlaceholderIconRightClass',\n    standalone: true,\n})\nexport class InputPlaceholderIconRightClassPipe implements PipeTransform {\n    transform(\n        isFocusInput: boolean,\n        getSuperControl: AbstractControl<any, any> | null,\n        inputConfig: ICaInput,\n        isTouchedInput: boolean,\n        isDisabledInput?: boolean\n    ): { [key: string]: boolean | undefined } {\n        const isDisabled = isDisabledInput || inputConfig.isDisabled;\n        return {\n            hide: isFocusInput && getSuperControl?.value,\n            focus: isFocusInput,\n            'valid-focus-out':\n                getSuperControl?.value &&\n                getSuperControl?.valid &&\n                !isFocusInput &&\n                !isDisabled,\n            'valid-focus-in':\n                getSuperControl?.value &&\n                getSuperControl?.valid &&\n                isFocusInput &&\n                !isDisabled,\n            'invalid-focus-out':\n                getSuperControl?.invalid &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !isDisabled,\n            'invalid-focus-in':\n                getSuperControl?.value &&\n                getSuperControl?.invalid &&\n                isFocusInput &&\n                !isDisabled,\n            red:\n                inputConfig.isPlaceHolderIconRightSideDynamicColor &&\n                getSuperControl?.invalid &&\n                !isDisabled &&\n                (((isTouchedInput || getSuperControl?.touched) &&\n                    !isFocusInput) ||\n                    (getSuperControl?.value && isFocusInput)),\n            blue:\n                inputConfig.isPlaceHolderIconRightSideDynamicColor &&\n                getSuperControl?.value &&\n                getSuperControl?.valid &&\n                !isFocusInput &&\n                !isDisabled,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n    name: 'inputPlaceholderTextClass',\n    standalone: true,\n})\nexport class InputPlaceholderTextClassPipe implements PipeTransform {\n    transform(\n        isFocusInput: boolean,\n        isTouchedInput: boolean,\n        getSuperControl: AbstractControl<any, any> | null,\n        inputConfig: ICaInput,\n        isVisibleCommands: boolean,\n        value: string\n    ): { [key: string]: boolean | undefined } {\n        const isDisabled = getSuperControl?.disabled || inputConfig.isDisabled;\n        return {\n            focus: isFocusInput,\n            'inactive-filled': getSuperControl?.value && isDisabled,\n            'valid-focus-in':\n                getSuperControl?.value &&\n                getSuperControl?.valid &&\n                isFocusInput &&\n                !inputConfig.blackInput &&\n                !inputConfig.commands?.active &&\n                !isVisibleCommands &&\n                !isDisabled,\n            'valid-focus-out':\n                getSuperControl?.value &&\n                getSuperControl?.valid &&\n                !isFocusInput &&\n                !inputConfig.commands?.active &&\n                !isVisibleCommands &&\n                !isDisabled,\n            'invalid-focus-in':\n                getSuperControl?.value &&\n                getSuperControl?.invalid &&\n                isFocusInput &&\n                !inputConfig.blackInput &&\n                !inputConfig.commands?.active &&\n                !isVisibleCommands &&\n                !isDisabled,\n            'invalid-focus-out':\n                getSuperControl?.value &&\n                getSuperControl?.invalid &&\n                (isTouchedInput || getSuperControl?.touched) &&\n                !isFocusInput &&\n                !isDisabled,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\nimport { AbstractControl } from '@angular/forms';\nimport { InputCommandsType } from '../enums';\n\n@Pipe({\n  name: 'showPlaceholderText',\n  standalone: true,\n})\nexport class ShowPlaceholderTextPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    getSuperControl: AbstractControl<any, any> | null,\n    isVisibleCommands: boolean,\n    value: string\n  ): boolean {\n    return (\n      (inputConfig.placeholderText &&\n        (getSuperControl?.value || getSuperControl?.value === 0) &&\n        !isVisibleCommands &&\n        inputConfig?.commands?.type === InputCommandsType.INCREMENT_DECREMENT) ||\n      (inputConfig.placeholderText &&\n        (getSuperControl?.value || getSuperControl?.value === 0) &&\n        inputConfig?.commands?.type !== InputCommandsType.INCREMENT_DECREMENT)\n    );\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AbstractControl } from \"@angular/forms\";\n\n// helpers\nimport { InputSvgRoutes } from \"../../utils\";\n\n// models\nimport { ICaInput } from \"../../config\";\n\n// modules\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// pipes\nimport { InputPasswordEyeClassPipe } from \"../../pipes\";\n\n@Component({\n    selector: \"app-ca-input-password\",\n    templateUrl: \"./ca-input-password.component.html\",\n    styleUrls: [\"./ca-input-password.component.scss\"],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        InputPasswordEyeClassPipe,\n    ]\n})\nexport class CaInputPasswordComponent implements OnInit {\n  @Input() inputConfig!: ICaInput;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() isFocusInput!: boolean;\n  @Input() isTouchedInput!: boolean;\n  @Input() isCapsLockOn!: boolean;\n  @Input() isTogglePassword!: boolean;\n\n  @Output() onTogglePasswordClick: EventEmitter<Event> =\n    new EventEmitter<Event>();\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  public onTogglePassword(event: Event): void {\n    this.onTogglePasswordClick.emit(event);\n  }\n\n  public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n    return InputSvgRoutes[propertyName] as string;\n  }\n}\n","<!-- Input Password Caps Lock -->\n@if (\n    isCapsLockOn &&\n    inputConfig.type === 'password' &&\n    isFocusInput &&\n    !inputConfig.isDisabled\n) {\n    <p class=\"password-capslock\">Caps Lock is ON</p>\n}\n<!-- Input Password Eye -->\n@if (inputConfig.type === 'password' && getSuperControl?.value) {\n    <div\n        class=\"input-password-eye {{ inputConfig.customClass }}\"\n        [ngClass]=\"\n            getSuperControl\n                | inputPasswordEyeClass\n                    : isFocusInput\n                    : inputConfig\n                    : isTouchedInput\n                    : getSuperControl?.value\n        \"\n        ngbTooltip\n        mainCaTooltip=\"{{\n            !isTogglePassword ? 'Show Password' : 'Hide Password'\n        }}\"\n        tooltipBackground=\"#2f2f2f\"\n        position=\"top\"\n        (click)=\"onTogglePassword($event)\"\n    >\n        <svg-icon\n            src=\"{{\n                !isTogglePassword\n                    ? getSvgPath('eyeVisibleSvg')\n                    : getSvgPath('eyeHiddenSvg')\n            }}\"\n        ></svg-icon>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { InputPlaceholderIconClassPipe } from '../../pipes';\n\n// directive\nimport { HoverSvgDirective } from '../../../../directives/hover-svg-directives';\n\n@Component({\n    selector: 'app-ca-input-placeholder-icon',\n    templateUrl: './ca-input-placeholder-icon.component.html',\n    styleUrls: ['./ca-input-placeholder-icon.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        InputPlaceholderIconClassPipe,\n        CaSvgPipe,\n        // directive\n        HoverSvgDirective,\n    ]\n})\nexport class CaInputPlaceholderIconComponent {\n  @Input() inputConfig!: ICaInput;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() isFocusInput!: boolean;\n  @Input() isTouchedInput!: boolean;\n  @Input() selectedDropdownLabelColor!: LabelColor | null;\n  @Input() isEditInput!: boolean;\n  @Input() dateTimePopover!: TemplateRef<any>;\n\n  @Output() onPopoverShownEmitter = new EventEmitter<boolean>();\n  @Output() onPopoverHiddenEmitter = new EventEmitter<boolean>();\n  @Output() onPlaceholderIconEventEmitter = new EventEmitter<Event>();\n\n  @ViewChild('t2') t2!: NgbPopover;\n  @ViewChild(NgbPopover) ngbMainPopover!: NgbPopover;\n\n  constructor() {}\n\n  public onPopoverShown(): void {\n    this.onPopoverShownEmitter.emit(true);\n  }\n\n  public onPopoverHidden(): void {\n    this.onPopoverHiddenEmitter.emit(true);\n  }\n\n  public onPlaceholderIconEvent(event: Event): void {\n    this.onPlaceholderIconEventEmitter.emit(event);\n  }\n}\n","<div\n    #t2=\"ngbPopover\"\n    [ngbPopover]=\"dateTimePopover\"\n    [disablePopover]=\"\n        (inputConfig.name !== 'datepicker' &&\n            inputConfig.name !== 'timepicker' &&\n            inputConfig.name !== 'datepickerBankCard') ||\n        inputConfig.isDisabled! ||\n        getSuperControl?.disabled!\n    \"\n    [placement]=\"['bottom-start', 'top-start']\"\n    [popoverClass]=\"'datetimepopovermain'\"\n    autoClose=\"outside\"\n    [container]=\"'body'\"\n    class=\"input-icon {{ inputConfig.customClass }}\"\n    [ngClass]=\"\n        getSuperControl\n            | inputPlaceholderIconClass\n                : isFocusInput\n                : inputConfig\n                : selectedDropdownLabelColor\n                : isTouchedInput\n                : isEditInput\n                : getSuperControl?.value\n    \"\n    ngbTooltip\n    [mainCaTooltip]=\"'Change Color'\"\n    [tooltipBackground]=\"'#424242'\"\n    [disableTooltip]=\"!isEditInput\"\n    position=\"bottom\"\n    (shown)=\"onPopoverShown()\"\n    (hidden)=\"onPopoverHidden()\"\n    (click)=\"onPlaceholderIconEvent($event)\"\n    [ngStyle]=\"{ opacity: inputConfig.isIconHidden ? '0' : {} }\"\n>\n    @if (inputConfig.placeholderIcon) {\n        <svg-icon\n            appHoverSvg\n            [stretch]=\"true\"\n            [fill]=\"\n                inputConfig.dropdownLabel || selectedDropdownLabelColor\n                    ? selectedDropdownLabelColor?.code || '#b7b7b7'\n                    : null\n            \"\n            [fillHover]=\"\n                (inputConfig.dropdownLabel || selectedDropdownLabelColor) &&\n                isEditInput\n                    ? selectedDropdownLabelColor?.hoverCode || null\n                    : null\n            \"\n            [src]=\"(inputConfig.placeholderIcon! | caSvg: 'input') ?? ''\"\n        ></svg-icon>\n    } @else {\n        <div style=\"height: 26px\"></div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    AbstractControl,\n    FormsModule,\n    ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config';\nimport { LabelColor } from '../../models';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { InputClearClassPipe } from '../../pipes';\n\n// helpers\nimport { InputSvgRoutes } from '../../utils';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// enums\nimport { eGeneralActions } from '../../../../enums';\n\n@Component({\n    selector: 'app-ca-input-clear',\n    templateUrl: './ca-input-clear.component.html',\n    styleUrls: ['./ca-input-clear.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // Module\n        CommonModule,\n        AngularSvgIconModule,\n        FormsModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // Pipes\n        InputClearClassPipe,\n        // Components\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaInputClearComponent {\n    @Input() inputConfig!: ICaInput;\n    @Input() getSuperControl!: AbstractControl<any, any> | null;\n    @Input() isFocusInput!: boolean;\n    @Input() incorrectValue!: boolean;\n    @Input() selectedDropdownLabelColor!: LabelColor | null;\n    @Input() template!: string;\n\n    @Output() clearInputClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n    public eGeneralActions = eGeneralActions;\n\n    constructor() {}\n\n    public clearInput(event: Event): void {\n        this.clearInputClick.emit(event);\n    }\n\n    public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n        return InputSvgRoutes[propertyName] as string;\n    }\n}\n","<div\n    class=\"input-clear {{ inputConfig.customClass }}\"\n    [ngClass]=\"\n        getSuperControl\n            | inputClearClass\n                : isFocusInput\n                : inputConfig\n                : incorrectValue\n                : !!selectedDropdownLabelColor\n                : template\n                : getSuperControl?.value\n    \"\n    ngbTooltip\n    [mainCaTooltip]=\"\n        inputConfig.incorrectInput\n            ? 'Mark Incorrect'\n            : inputConfig.removeInput\n              ? eGeneralActions.REMOVE\n              : eGeneralActions.CLEAR\n    \"\n    [tooltipBackground]=\"inputConfig.incorrectInput ? '#ef5350' : '#2F2F2F'\"\n    position=\"top\"\n    (click)=\"clearInput($event)\"\n>\n    <svg-icon\n        [src]=\"\n            inputConfig.removeInput\n                ? getSvgPath('removeInputSvg')\n                : getSvgPath('xClearSvg')\n        \"\n        class=\"input-clear-x\"\n    ></svg-icon>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n// modules\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\n\n// models\nimport { ICaInput } from \"../../config\";\nimport { CommandClick } from \"../../models\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// enums\nimport { InputCommandsType } from \"../../enums\";\n\n\n@Component({\n    selector: \"app-ca-input-commands\",\n    templateUrl: \"./ca-input-commands.component.html\",\n    styleUrls: [\"./ca-input-commands.component.scss\"],\n    imports: [\n        // Module\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // Components\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaInputCommandsComponent {\n  @Input() inputConfig!: ICaInput;\n  @Input() isFocusInput!: boolean;\n  @Input() isVisibleCommands!: boolean;\n\n  @Output() onCommandsClick: EventEmitter<CommandClick> = new EventEmitter();\n\n  public inputCommandsType = InputCommandsType;\n\n  constructor() {}\n\n  public onCommands(event: Event, type: string, action: string): void {\n    this.onCommandsClick.emit({ event, type, action });\n  }\n}\n","<div\n    class=\"ta-input-commands\"\n    [ngClass]=\"{\n        'blue-commands': inputConfig.commands?.blueCommands,\n        'blue-commands-focus':\n            isFocusInput &&\n            inputConfig.commands?.blueCommands &&\n            inputConfig.commands?.active &&\n            isVisibleCommands,\n    }\"\n    [attr.data-before-content]=\"\n        inputConfig.commands?.type === inputCommandsType.INCREMENT_DECREMENT\n            ? inputConfig.placeholderText\n            : ''\n    \"\n>\n    <div\n        class=\"ta-input-command-first\"\n        ngbTooltip\n        [mainCaTooltip]=\"inputConfig.commands?.firstCommand?.popup?.name\"\n        [tooltipBackground]=\"\n            inputConfig.commands?.firstCommand?.popup?.backgroundColor\n        \"\n        [disableTooltip]=\"!inputConfig.commands?.firstCommand?.popup\"\n        position=\"top\"\n    >\n        <svg-icon\n            class=\"ta-input-command-svg-first\"\n            [src]=\"inputConfig.commands?.firstCommand?.svg!\"\n            (mousedown)=\"\n                onCommands(\n                    $event,\n                    inputConfig.commands?.type!,\n                    inputConfig.commands?.firstCommand?.name!\n                )\n            \"\n        ></svg-icon>\n    </div>\n    <div\n        class=\"ta-input-command-second\"\n        ngbTooltip\n        [mainCaTooltip]=\"inputConfig.commands?.secondCommand?.popup?.name\"\n        [tooltipBackground]=\"\n            inputConfig.commands?.secondCommand?.popup?.backgroundColor\n        \"\n        [disableTooltip]=\"!inputConfig.commands?.secondCommand?.popup\"\n        position=\"top\"\n    >\n        <svg-icon\n            class=\"ta-input-command-svg-second\"\n            [src]=\"inputConfig.commands?.secondCommand?.svg!\"\n            (mousedown)=\"\n                onCommands(\n                    $event,\n                    inputConfig.commands?.type!,\n                    inputConfig.commands?.secondCommand?.name!\n                )\n            \"\n        ></svg-icon>\n    </div>\n    @if (inputConfig.commands?.thirdCommand) {\n        <div\n            class=\"ta-input-command-third\"\n            ngbTooltip\n            [mainCaTooltip]=\"inputConfig.commands?.thirdCommand?.popup?.name\"\n            [tooltipBackground]=\"\n                inputConfig.commands?.thirdCommand?.popup?.backgroundColor\n            \"\n            [disableTooltip]=\"!inputConfig.commands?.thirdCommand?.popup\"\n            position=\"top\"\n        >\n            <svg-icon\n                class=\"ta-input-command-svg-third\"\n                [src]=\"inputConfig.commands?.thirdCommand?.svg!\"\n                (mousedown)=\"\n                    onCommands(\n                        $event,\n                        inputConfig.commands?.type!,\n                        inputConfig.commands?.thirdCommand?.name!\n                    )\n                \"\n            ></svg-icon>\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Input,\n    OnChanges,\n    SimpleChanges,\n} from '@angular/core';\nimport {\n    AnimationLoader,\n    LottieComponent,\n    provideLottieOptions,\n} from 'ngx-lottie';\nimport player from 'lottie-web';\n\n@Component({\n    selector: \"app-ca-spinner\",\n    templateUrl: \"./ca-spinner.component.html\",\n    styleUrls: [\"./ca-spinner.component.scss\"],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        // Module\n        CommonModule,\n        // Components\n        LottieComponent,\n    ],\n    providers: [\n        provideLottieOptions({\n            player: () => player,\n        }),\n        AnimationLoader\n    ]\n})\nexport class CaSpinnerComponent implements OnChanges {\n    @Input() size?: string; // small, big\n    @Input() color?: string; // black, gray, white, blueLight, blueDark\n    @Input() isBarSpinner?: boolean = false;\n\n    public lottieSpinner!: { path: string };\n\n    constructor() {}\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.getLottieSpinner(changes);\n    }\n\n    public getLottieSpinner(changes: SimpleChanges): void {\n        if (changes['size'] || changes['color']) {\n            const sizePx =\n                this.size === 'extra-small'\n                    ? '12px'\n                    : this.size === 'small'\n                      ? '18px'\n                      : '32px';\n\n            this.lottieSpinner = {\n                path: `/assets/lottie/ta-lottie-spinner/${sizePx}/${this.color}.json`,\n            };\n        }\n    }\n}\n","<div\n    class=\"d-flex align-items-center justify-content-left spinner-container\"\n    [ngStyle]=\"{\n        width: isBarSpinner ? '100px' : 'unset',\n        'margin-right': isBarSpinner ? '30px' : 0,\n    }\"\n>\n    @if (isBarSpinner) {\n        <span class=\"bar-spinner\"></span>\n    } @else {\n        <ng-lottie [options]=\"lottieSpinner\"></ng-lottie>\n    }\n</div>\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { ThousandSeparatorPipe } from '../../../pipes/thousand-separator.pipe';\n\n@Directive({\n  selector: '[appMinMaxValue]',\n  standalone: true,\n})\nexport class MinMaxValueDirective {\n  @Input() minValue!: number;\n  @Input() maxValue!: number;\n\n  constructor(\n    private el: ElementRef,\n    private thousandSeparatorPipe: ThousandSeparatorPipe\n  ) {}\n\n  @HostListener('document:keypress', ['$event'])\n  onKeyPress(event: KeyboardEvent) {\n    const oldValue = this.el.nativeElement.value as string;\n    const newKey = event.key;\n    const currentPosition = this.el.nativeElement.selectionStart;\n\n    const newValue =\n      oldValue.slice(0, currentPosition) +\n      newKey +\n      oldValue.slice(currentPosition);\n    const currentValue = parseFloat(newValue.replace(',', ''));\n\n    if (currentValue < this.minValue) event.preventDefault();\n    if (currentValue > this.maxValue) {\n      event.preventDefault();\n      this.el.nativeElement.value = this.thousandSeparatorPipe.transform(\n        this.maxValue\n      );\n    }\n  }\n}\n","import {\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Output,\n} from '@angular/core';\n\n@Directive({\n    selector: '[appCapsLock]',\n    standalone: true,\n})\nexport class CapsLockDirective {\n    @Output() capsLockStatus = new EventEmitter<boolean>(); // ✅ Emit true/false\n\n    private capsLockDetected = false;\n\n    constructor(private el: ElementRef) {}\n\n    @HostListener('keydown', ['$event'])\n    onKeyDown(event: KeyboardEvent) {\n        const capsLockOn = event.getModifierState?.('CapsLock');\n        this.capsLockStatus.emit(capsLockOn); // Emit true when Caps Lock is ON\n        this.capsLockDetected = capsLockOn;\n    }\n\n    @HostListener('keyup', ['$event'])\n    onKeyUP(event: KeyboardEvent) {\n        const capsLockOn = event.getModifierState?.('CapsLock');\n        this.capsLockStatus.emit(capsLockOn); // Emit true when Caps Lock is ON\n        this.capsLockDetected = capsLockOn;\n    }\n\n    @HostListener('focus')\n    onFocus() {\n        // Simulate a key press to check if Caps Lock is on\n        this.capsLockStatus.emit(this.capsLockDetected);\n    }\n\n    @HostListener('blur')\n    onBlur() {\n        this.capsLockStatus.emit(false); // Hide message when input loses focus\n    }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n    selector: '[appMaxValue]',\n    standalone: true,\n})\nexport class MaxValueDirective {\n    @Input() appMaxValue?: number; // Max allowed value\n\n    constructor(private el: ElementRef) {}\n\n    @HostListener('applyMaxValueDirective', ['$event'])\n    onInput(event: Event): void {\n        if (!this.appMaxValue) return;\n\n        const input = event.target as HTMLInputElement;\n        let value = input.value;\n\n        // Remove thousands separators (`,`) before parsing\n        let numericValue = parseFloat(value.replace(/,/g, ''));\n\n        //If value exceeds the max, revert to max value\n        if (!isNaN(numericValue) && numericValue > this.appMaxValue!) {\n            input.value = this.formatNumber(this.appMaxValue!);\n            event.preventDefault();\n        }\n    }\n\n    @HostListener('blur', ['$event'])\n    onBlur(event: Event): void {\n        const input = event.target as HTMLInputElement;\n        let numericValue = parseFloat(input.value.replace(/,/g, ''));\n\n        const dotIndex = input.value.indexOf('.');\n\n        if (!isNaN(numericValue) && dotIndex > 0) {\n            input.value = this.formatNumber(numericValue); // Format correctly on blur\n        }\n    }\n\n    // Helper function to format number with thousands separator\n    private formatNumber(value: number): string {\n        return value.toLocaleString('en-US', {\n            minimumFractionDigits: 2,\n            maximumFractionDigits: 2,\n        });\n    }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n    selector: '[priceFormat]',\n    standalone: true,\n})\nexport class PriceFormatDirective {\n    constructor(private el: ElementRef) {}\n    @Input() priceSeparator?: boolean = false; // Default is false\n\n    @HostListener('input', ['$event'])\n    onInput(event: Event): void {\n        if (!this.priceSeparator) return; // Skip if disabled\n\n        let input = this.el.nativeElement;\n        let value = input.value;\n\n        // Allow only numbers and one dot (.)\n        value = value.replace(/[^0-9.]/g, '');\n\n        const [integerPart, decimalPart] = value.split('.');\n\n        // Ensure decimal part is limited to two places\n        if (decimalPart && decimalPart.length > 2) {\n            value = integerPart + '.' + decimalPart.substring(0, 2);\n        }\n\n        // Apply thousands separator formatting\n        input.value = this.formatWithCommas(value);\n    }\n\n    private formatWithCommas(value: string): string {\n        return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // Format whole number\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config';\n\n@Pipe({\n    name: 'inputPattern',\n    standalone: true,\n})\nexport class InputPatternPipe implements PipeTransform {\n    transform(inputName: string, inputConfig: ICaInput) {\n        if (inputConfig.priceSeparator) {\n            return {\n                regex: /^[0-9.]*$/,\n                restrictMultipeDots: true,\n                isDecimalAndDotOnly: true,\n            };\n        } else if (inputConfig.thousandSeparator) {\n            return {\n                regex: /^[0-9]*$/,\n                isDecimalAndDotOnly: true,\n            };\n        } else if (\n            ['business name', 'shop name', 'fuel stop'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./[:;=<>?çéâêîôûàèìòùëïü\\s-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n        } else if (['phone', 'fax'].includes(inputName)) {\n            return {\n                regex: /^[0-9() -]*$/g,\n            };\n        } else if (\n            [\n                'mc/ff',\n                'phone-extension',\n                'account-bank',\n                'routing-bank',\n                'fuel-card',\n                'empty-weight',\n                'credit limit',\n                'po box',\n                'price',\n                'trailer-volume',\n                'repair-odometer',\n                'usdot',\n                'irp',\n                'starting',\n                'customer pay term',\n                'customer credit',\n                'default base',\n                'each occurrence',\n                'damage',\n                'personal-adver-inj',\n                'medical expenses',\n                'bodily injury',\n                'general aggregate',\n                'products-comp-op-agg',\n                'combined-single-limit',\n                'single-conveyance',\n                'deductable',\n                'compreh-collision',\n                'trailer-value-insurance-policy',\n                'rent',\n                'salary',\n                'mileage',\n                'months',\n                'empty weight',\n                'qty',\n                'purchase price',\n            ].includes(inputName)\n        ) {\n            return {\n                regex: /^[0-9]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/g;\n        } else if ('email' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~@.-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: true,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~@.-]*$/g;\n        } else if ('invoice' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9/-]*$/g,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9/-]*$/g;\n        } else if (\n            ['address-unit', 'department', 'vehicle-unit'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9]*$/;\n        } else if ('first name' === inputName) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('last name' === inputName) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('bank name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./:;=<>?-^[]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?-^[]*$/;\n        } else if (\n            ['vin-number', 'insurance-policy', 'ifta'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-]*$/;\n        } else if ('truck-trailer-model' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s-]*$/;\n        } else if ('year' === inputName) {\n            return {\n                regex: /^(|0|[1-9]\\d*)$/,\n            };\n            //return /^[0-9]$/;\n        } else if ('license plate' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s]*$/;\n        } else if ('description' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9-.,/\\s]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-.,/\\s]*$/;\n        } else if ('dba name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./:;=<>?^[-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./:;=<>?^[-]*$/;\n        } else if ('per mile' === inputName) {\n            return {\n                regex: /^[0-9.]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9.]*$/;\n        } else if ('per stop' === inputName) {\n            return {\n                regex: /^[0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/;\n        } else if (\n            ['emergency name', 'relationship', 'scac'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z',\\s.-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z',\\s.-]*$/;\n        } else if ('fuel store' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9-]*$/;\n        } else if ('hos' === inputName) {\n            return {\n                regex: /^[0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9]*$/;\n        } else if (['full parking slot', 'parking slot'].includes(inputName)) {\n            return {\n                regex: /^[0-9,-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9,-]*$/;\n        } else if ('cdl-number' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9\\s*-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9\\s*-]*$/;\n        } else if (\n            ['username', 'nickname', 'terminal name', 'password'].includes(\n                inputName\n            )\n        ) {\n            return {\n                regex: /^[A-Za-z0-9.,_!#^~[?/<`@$%*+=}{|:\";>&'()-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9.,_!#^~[?/<`@$%*+=}{|:\";>&'()-]*$/;\n        } else if ('full name' === inputName) {\n            return {\n                regex: /^[A-Za-z0-9.,/!@#$%^&*()_+={}\"':>?<;\\s-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9.,/!@#$%^&*()_+={}\"':>?<;\\s-]*$/;\n        } else if ('tollvalidation' === inputName) {\n            return {\n                regex: /^[0-9-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[0-9-]*$/;\n        } else if (['prefix', 'suffix', 'parking name'].includes(inputName)) {\n            return {\n                regex: /^[A-Za-z0-9]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9]*$/;\n        } else if ('file name' === inputName) {\n            return {\n                regex: /^[:*?\"<>|/]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[:*?\"<>|/]*$/;\n        } else if (\n            ['producer name', 'insurer name', 'office name'].includes(inputName)\n        ) {\n            return {\n                regex: /^[A-Za-z0-9!#'$&%()*+,./;:=<>?[^-]*$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z0-9!#'$&%()*+,./;:=<>?[^-]*$/;\n        } else if (['full contact name'].includes(inputName)) {\n            return {\n                regex: /^[A-Za-z\\s]+$/,\n                restrictConsecutiveSpaces: false,\n                restrictConsecutiveDots: false,\n                restrictMultipeDots: false,\n            };\n            //return /^[A-Za-z\\s]+$/;\n        }\n\n        return {\n            regex: /.*/,\n            restrictConsecutiveSpaces: false,\n            restrictConsecutiveDots: false,\n            restrictMultipeDots: false,\n            isDecimalAndDotOnly: false,\n        };\n    }\n}\n","export enum InputTransformStringEnum {\n    CAPITALIZE = 'capitalize',\n    UPPERCASE = 'uppercase',\n    CAPITALIZED_CASE = 'capitalizedcase',\n    LOWERCASE = 'lowercase'\n};","import { Constructor } from '../../../models/mixin.model';\nimport { ICaInput } from '../config/ca-input.config';\nimport { InputTransformStringEnum } from '../enums/input-text-transform.enum';\n\nexport function RestrictionPipeMixin<\n    T extends Constructor<{ restrictInput: ICaInput }>,\n>(Base: T) {\n    return class extends Base {\n        public checkRangeRegex(value: string): boolean {\n            if (\n                (!this.restrictInput.minValue &&\n                    !this.restrictInput.maxValue) ||\n                !value\n            ) {\n                return true; // ✅ No limits, always valid\n            }\n\n            const min = this.restrictInput.minValue ?? -Infinity;\n            const max = this.restrictInput.maxValue ?? Infinity;\n\n            // ✅ Ensure the value is a valid number\n\n            const tempValue = value.replace(/[^0-9]/g, '');\n\n            const numericValue = Number(tempValue);\n\n            // ✅ Check if value is within the valid range\n            return numericValue >= min && numericValue <= max;\n        }\n\n        public getTextTransformation(\n            value: string,\n            textTransform: InputTransformStringEnum | undefined\n        ): string | undefined {\n            switch (textTransform) {\n                case InputTransformStringEnum.CAPITALIZE:\n                    return (\n                        value.charAt(0).toUpperCase() +\n                        value.substring(1).toLowerCase()\n                    );\n                case InputTransformStringEnum.UPPERCASE:\n                    return value.toLocaleUpperCase('en-US');\n                case InputTransformStringEnum.CAPITALIZED_CASE:\n                    const capitalizedCaseWords = value.replace(\n                        /(^\\w{1})|(\\s+\\w{1})/g,\n                        (letter: string) => letter.toUpperCase()\n                    );\n                    return capitalizedCaseWords;\n                default:\n                    return value;\n            }\n        }\n    };\n}\n","import {\n    Directive,\n    ElementRef,\n    HostListener,\n    Injector,\n    Input,\n} from '@angular/core';\nimport { InputPatternPipe } from '../pipes/input-pattern.pipe';\nimport { ICaInput } from '../config';\nimport { InputTransformStringEnum } from '../enums/input-text-transform.enum';\nimport { RestrictionPipeMixin } from '../mixins/restriction-pipe.mixin';\n\n@Directive({\n    selector: '[restrictInput]',\n    standalone: true,\n    providers: [InputPatternPipe], // Provide the pipe so it can be injected\n})\nexport class RestrictInputDirective extends RestrictionPipeMixin(\n    class {\n        restrictInput!: ICaInput;\n    }\n) {\n    @Input() override restrictInput!: ICaInput;\n    private inputPatternPipe!: InputPatternPipe;\n\n    private lastValidInputValue: string = '';\n\n    constructor(\n        private el: ElementRef,\n        private injector: Injector\n    ) {\n        super();\n        this.inputPatternPipe = this.injector.get(InputPatternPipe); // Inject pipe manually\n    }\n\n    @HostListener('input', ['$event'])\n    onInput(event: InputEvent): void {\n        let inputValue = this.el.nativeElement.value;\n\n        const maxLength = this.restrictInput.maxLength;\n        const configName = this.restrictInput.name.toLowerCase();\n        const {\n            regex,\n            restrictConsecutiveDots,\n            restrictMultipeDots,\n            restrictConsecutiveSpaces,\n            isDecimalAndDotOnly,\n        } = this.inputPatternPipe.transform(configName, this.restrictInput);\n\n        // Prevent first space character\n        if (inputValue.startsWith(' ')) {\n            inputValue = inputValue.trimStart(); // Remove leading space\n        }\n\n        // With event.data length we ensure that this value comes from paste in to input\n        if (event.data) {\n            // Remove end space when paste is occured\n            if (event.data.length > 2 && event.data.endsWith(' ')) {\n                inputValue = inputValue.trimEnd(); // Remove end space\n            }\n        }\n\n        // Allow dots but dont allow on first place...\n        const dotIndex = inputValue.indexOf('.');\n        if (dotIndex == 0) {\n            if (this.restrictInput.priceSeparator) {\n                inputValue = `0${inputValue}`;\n            } else inputValue = '';\n        }\n\n        const inputValueToTestWithRegex = isDecimalAndDotOnly\n            ? inputValue.replace(/[^0-9.]/g, '')\n            : inputValue;\n\n        if (regex.test(inputValueToTestWithRegex)) {\n            if (maxLength) {\n                // Allow only numbers and one dot (.)\n                const tempLengthValue = isDecimalAndDotOnly\n                    ? inputValue.replace(/[^0-9.]/g, '')\n                    : inputValue;\n\n                const [integerPart, decimalPart] = tempLengthValue.split('.');\n\n                // Ensure integer part respects maxLength (excluding thousand separators)\n                if (integerPart.length > maxLength!) {\n                    inputValue =\n                        integerPart.substring(0, maxLength) +\n                        (decimalPart ? '.' + decimalPart : '');\n                }\n            }\n\n            if (restrictConsecutiveSpaces) {\n                inputValue = inputValue.replace(/\\s{2,}/g, ' '); // Replace consecutive spaces with a single space\n            }\n\n            if (restrictConsecutiveDots) {\n                inputValue = inputValue.replace(/\\.{2,}/g, '.'); // Replace consecutive dots with a single dot\n            }\n\n            if (restrictMultipeDots) {\n                inputValue = inputValue.replace(\n                    /^([^.]*)\\.(.*)$/,\n                    (m: any, p1: any, p2: any) =>\n                        p1 + '.' + p2.replace(/\\./g, '')\n                );\n            }\n\n            this.el.nativeElement.value = inputValue;\n\n            // 🔥 Manually trigger max Directive because current one needs to be done first\n            this.el.nativeElement.dispatchEvent(\n                new Event('applyMaxValueDirective')\n            );\n\n            const transformText = this.getTextTransformation(\n                inputValue,\n                this.restrictInput?.textTransform as InputTransformStringEnum\n            );\n\n            if (transformText) this.el.nativeElement.value = transformText;\n\n            if (!this.checkRangeRegex(this.el.nativeElement.value)) {\n                // If entered is not passing regEx then the input value will be last saved...\n                this.el.nativeElement.value = this.lastValidInputValue;\n            } else {\n                // Save last valid value\n                this.lastValidInputValue = inputValue;\n            }\n        } else {\n            // If entered is not passing regEx then the input value will be last saved...\n            this.el.nativeElement.value = this.lastValidInputValue;\n        }\n    }\n}\n","import {\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    Output,\n} from '@angular/core';\nimport { ICaInput } from '../config';\n\n@Directive({\n    selector: '[commandVisible]',\n    standalone: true,\n})\nexport class CommandVisibleDirective {\n    @Output() commandVisible = new EventEmitter<boolean>(); // ✅ Emit true/false\n    @Input() restrictInput!: ICaInput;\n\n    constructor(private el: ElementRef) {}\n\n    @HostListener('keydown', ['$event'])\n    onKeyDown(event: KeyboardEvent) {\n        if ((event.key === 'Tab' && event.shiftKey) || event.key === 'Tab') {\n            this.emitCommandVisible(false);\n        }\n    }\n\n    @HostListener('blur')\n    onWindowBlur() {\n        this.emitCommandVisible(false);\n    }\n\n    @HostListener('focus')\n    onFocus() {\n        // Show commands on focus\n        this.emitCommandVisible(true);\n    }\n\n    private emitCommandVisible(status: boolean) {\n        if (this.restrictInput.commands) {\n            this.commandVisible.emit(status);\n        }\n    }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { EventEmitter } from '@angular/core';\n\nexport class EventInputManager<T> {\n  private stateSubject: BehaviorSubject<T | null>;\n  state$: Observable<T | null>;\n\n  constructor(\n    initialValue: T | null,\n    private eventEmitter: EventEmitter<T>\n  ) {\n    this.stateSubject = new BehaviorSubject<T | null>(initialValue);\n    this.state$ = this.stateSubject.asObservable();\n  }\n\n  /**\n   * Update the value and emit the event.\n   */\n  next(newValue: T): void {\n    this.stateSubject.next(newValue); // Update state\n    if (this.eventEmitter) {\n      this.eventEmitter.emit(newValue); // Emit event\n    }\n  }\n\n  /**\n   * Get the current value.\n   */\n  get value(): T | null {\n    return this.stateSubject.value;\n  }\n}\n","import { Constructor } from '../../../models/mixin.model';\nimport { InputCommandsAction, InputCommandsType } from '../enums';\nimport { InputBase } from '../models/base.model';\n\nexport function InputCommandMixin<T extends Constructor<InputBase>>(Base: T) {\n    return class extends Base {\n        // #region OnCommands\n        public onCommands(e: any): void {\n            const { event, type, action } = e;\n            event.stopPropagation();\n            event.preventDefault();\n\n            switch (type) {\n                case InputCommandsType.PM_INCREMENT_DECREMENT:\n                    this.handlePmIncrementDecrement(action);\n                    break;\n                case InputCommandsType.CONFIRM_CANCEL:\n                    this.handleConfirmCancel(action);\n                    break;\n                case InputCommandsType.MONTHS:\n                    this.handleMonths(action);\n                    break;\n                default:\n                    break;\n            }\n        }\n\n        // #region\n\n        public handleMonths(action: string): void {\n            //clearTimeout(this.inputCommandsTimeout);\n\n            const newValue = this.inputElement.nativeElement.value.replace(\n                /[^0-9]/g,\n                ''\n            );\n\n            switch (action) {\n                case InputCommandsAction.MINUS:\n                    this.handleChangeInputAndUpdateControl(\n                        (newValue ? +newValue : 0) - 1\n                    );\n                    break;\n                case InputCommandsAction.PLUS:\n                    this.handleChangeInputAndUpdateControl(\n                        (newValue ? +newValue : 0) + 1\n                    );\n                    break;\n                default:\n                    break;\n            }\n        }\n        // #endregion\n\n        public handleConfirmCancel(action: string): void {\n            switch (action) {\n                case InputCommandsAction.CONFIRM:\n                    this.confirmCommand();\n                    break;\n                case InputCommandsAction.CANCEL:\n                    this.cancelCommand();\n                    break;\n                default:\n                    break;\n            }\n\n            // this.superControl.control?.setErrors(null);\n            // this._inputConfig.dropdownLabelNew = false;\n            // this._inputConfig.commands!.active = false;\n            // this._inputConfig.blackInput = false;\n            // this.isEditInput = false;\n            // this.isVisibleCommands = false\n            // this.isFocusInput = false;\n        }\n\n        public cancelCommand(): void {\n            //this.setCommandEvent.next({ action: InputCommandsAction.CANCEL });\n        }\n\n        public confirmCommand(): void {\n            // this.setCommandEvent.next({\n            //     data: this.superControl.control?.value,\n            //     action: InputCommandsAction.CONFIRM,\n            //     mode:\n            //         !this._inputConfig.dropdownLabelNew &&\n            //         this._inputConfig.name !== 'Input Dropdown Bank Name'\n            //             ? 'edit'\n            //             : 'new',\n            // });\n        }\n\n        // #region HandlePmIncrementDecrement\n        public handlePmIncrementDecrement(action: string): void {\n            const numericValue = this.inputElement.nativeElement.value;\n\n            // Remove thousands separators (`,`) before parsing\n            let value = parseFloat(numericValue.replace(/,/g, ''));\n\n            switch (action) {\n                case InputCommandsAction.DECREMENT:\n                case InputCommandsAction.INCREMENT:\n                    const incdecValue = this.decrementIncrementDecrementPmValue(\n                        value,\n                        action\n                    );\n                    this.handleChangeInputAndUpdateControl(\n                        action === InputCommandsAction.INCREMENT\n                            ? value + incdecValue\n                            : value - incdecValue\n                    );\n                    break;\n                case InputCommandsAction.RESET:\n                    this.resetPmValue();\n                    break;\n                default:\n                    break;\n            }\n        }\n\n        // #region DecrementPmValue\n        public decrementIncrementDecrementPmValue(\n            value: number,\n            action: InputCommandsAction\n        ): number {\n            if (value >= 10000 && value < 20000) {\n                return 1000;\n            } else if (value >= 20000 && value < 50000) {\n                return 5000;\n            } else if (value >= 50000 && value < 100000) {\n                return 10000;\n            } else if (\n                value >= 500000 &&\n                action === InputCommandsAction.INCREMENT\n            ) {\n                return 0;\n            } else if (value >= 100000) {\n                return 20000;\n            } else if (\n                value <= 5000 &&\n                action === InputCommandsAction.DECREMENT\n            ) {\n                return 0;\n            }\n\n            return 500;\n        }\n        // #endregion\n\n        // #region ResetPmValue\n        public resetPmValue(): void {\n            if (this._inputConfig?.defaultValue)\n                this.handleChangeInputAndUpdateControl(\n                    this._inputConfig?.defaultValue!\n                );\n        }\n\n        // #endregion\n    };\n}\n","import { Constructor } from '../../../models/mixin.model';\nimport { ICaInput } from '../config';\nimport { InputChangeValue } from '../utils';\nimport { InputBase } from '../models/base.model';\n\nexport function InputHelperMixin<T extends Constructor<InputBase>>(Base: T) {\n    return class extends Base {\n        // Transform value after we get update from Angular\n        public transformValue(inputConfig: ICaInput, value: InputChangeValue) {\n            if (value) {\n                if (inputConfig.mask)\n                    return this.maskApplier.applyMask(\n                        value as string,\n                        inputConfig.mask\n                    );\n                else if (inputConfig.priceSeparator)\n                    return this.thousandSeparatorPipe.transform(value);\n            } else if (inputConfig.defaultValue) {\n                return inputConfig.defaultValue;\n            }\n\n            return value;\n        }\n\n        // #region ToggleDropdownOptions\n        public toggleDropdownOptions(): void {\n            this.handleToggleDropdownOptions.emit();\n            if (this._inputConfig.isDisabled) {\n                return;\n            }\n\n            this.isDropdownToggler = !this.isDropdownToggler;\n\n            // this.setShowHideDropdown.next(this.isDropdownToggler);\n\n            if (this.isDropdownToggler) {\n                this.inputElement.nativeElement.focus();\n                this.isFocusInput = true;\n            }\n        }\n        // #endregion\n\n        // #region onPlaceholderIconevent\n        public onPlaceholderIconEvent(event: Event): void {\n            event.preventDefault();\n            event.stopPropagation();\n            if (this.isEditInput) {\n                this.setCommandEvent.next({\n                    data: this.inputElement.nativeElement?.value,\n                    action: 'Toggle Dropdown',\n                });\n            } else {\n                this.setCommandEvent.next({\n                    data: this.inputElement.nativeElement?.value,\n                    action: 'Placeholder Icon Event',\n                });\n            }\n        }\n        // #endregion\n    };\n}\n","import {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Optional,\n    Output,\n    Self,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n    AbstractControl,\n    ControlValueAccessor,\n    NgControl,\n    Validators,\n} from '@angular/forms';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { Subject, takeUntil } from 'rxjs';\n\n// models\nimport { ICaInput } from './config';\nimport { InputChangeValue, InputSvgRoutes } from './utils';\nimport { CommandsEvent, LabelColor } from './models';\n\n// emums\nimport { InputCommandsType, InputStringEnum } from './enums';\nimport { DropdownTemplateTypeEnum } from '../ca-input-dropdown/enums';\n\n// pipes\nimport {\n    InputClassPipe,\n    InputContainerClassPipe,\n    InputDropdownArrowClassPipe,\n    InputErrorPipe,\n    InputPlaceholderIconRightClassPipe,\n    InputPlaceholderTextClassPipe,\n    InputTypePipe,\n    LabelClassPipe,\n    ShowClearPipe,\n    ShowDropdownArrowPipe,\n    ShowPlaceholderTextPipe,\n    ShowValidCheckPipe,\n} from './pipes';\nimport {\n    CaSvgPipe,\n    LoadStatusColorPipe,\n    ThousandSeparatorPipe,\n} from '../../pipes';\n\n// mask\nimport { NgxMaskModule } from 'ngx-mask';\nimport { NgxMaskService } from 'ngx-mask';\n\n// components\nimport { CaInputPasswordComponent } from './components/ca-input-password/ca-input-password.component';\nimport { CaInputPlaceholderIconComponent } from './components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';\nimport { CaInputClearComponent } from './components/ca-input-clear/ca-input-clear.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputCommandsComponent } from './components/ca-input-commands/ca-input-commands.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n// directives\nimport { CapsLockDirective } from './directives';\nimport { MaxValueDirective } from './directives';\nimport { RestrictInputDirective } from './directives';\nimport { PriceFormatDirective } from './directives';\nimport { CommandVisibleDirective } from './directives/command-visible.directive';\n\n// class\nimport { EventInputManager } from './base-classes/ca-input-event-manager';\n\n// mixins\nimport { InputCommandMixin } from './mixins/input-command.mixin';\nimport { InputHelperMixin } from './mixins/input-helper.mixin';\nimport { OptionModel } from '../ca-input-dropdown/models';\n\nclass InputBase {\n    public inputElement!: ElementRef;\n    public _inputConfig!: ICaInput;\n    public isVisibleCommands: boolean = false;\n    public maskApplier!: NgxMaskService;\n    public thousandSeparatorPipe!: ThousandSeparatorPipe;\n    public isFocusInput: boolean = false;\n    public isEditInput: boolean = false;\n    public isDropdownToggler: boolean = false;\n    public isTouchedInput: boolean = false;\n    public setCommandEvent!: EventInputManager<CommandsEvent>;\n\n    public handleToggleDropdownOptions!: EventEmitter<void>;\n\n    public onTouched = () => {};\n    public onChange(_: any): void {}\n    public handleChangeInputAndUpdateControl(_: InputChangeValue): void {}\n}\n\n@Component({\n    selector: 'ca-input-test',\n    imports: [\n        // Modules\n        CommonModule,\n        NgbModule,\n        AngularSvgIconModule,\n        NgxMaskModule,\n        // Pipes\n        InputErrorPipe,\n        InputContainerClassPipe,\n        InputClassPipe,\n        InputPlaceholderTextClassPipe,\n        ShowPlaceholderTextPipe,\n        LabelClassPipe,\n        CaSvgPipe,\n        LoadStatusColorPipe,\n        InputPlaceholderIconRightClassPipe,\n        MaxValueDirective,\n        InputTypePipe,\n        ShowValidCheckPipe,\n        ShowDropdownArrowPipe,\n        InputDropdownArrowClassPipe,\n        // Directives\n        RestrictInputDirective,\n        PriceFormatDirective,\n        ShowClearPipe,\n        CapsLockDirective,\n        CommandVisibleDirective,\n        // Components\n        CaInputClearComponent,\n        CaAppTooltipV2Component,\n        CaInputPlaceholderIconComponent,\n        CaInputPasswordComponent,\n        CaInputCommandsComponent,\n        CaSpinnerComponent,\n    ],\n    templateUrl: './input-test.component.html',\n    styleUrl: './input-test.component.scss',\n    encapsulation: ViewEncapsulation.None\n})\nexport class InputTestComponent\n    extends InputCommandMixin(InputHelperMixin(InputBase))\n    implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n    public inputValue: InputChangeValue = '';\n    public override _inputConfig!: ICaInput;\n    private destroy$ = new Subject<void>();\n\n    public inputSvgRoutes = InputSvgRoutes;\n    @Input() dateTimePopover!: TemplateRef<any>;\n\n    @ViewChild('input', { static: true }) override inputElement!: ElementRef;\n    @ViewChild(CaInputPlaceholderIconComponent)\n    caInputPlaceholderIconComponent!: CaInputPlaceholderIconComponent;\n\n    @Input() parentControl!: AbstractControl<any, any> | null;\n    @Input() selectedDropdownLabelColor!: LabelColor | null;\n    @Input() template!: string;\n    @Input() incorrectValue!: boolean;\n    @Input() set inputConfig(config: ICaInput) {\n        this._inputConfig = config;\n    }\n\n    @Input() activeItem!: OptionModel | null;\n\n    @Output('handleToggleDropdownOptions')\n    override handleToggleDropdownOptions: EventEmitter<void> =\n        new EventEmitter<void>();\n\n    @Output('incorrectEvent') incorrectInput: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    @Output('blurInput') blurInput: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('focusInput') focusInputEvent: EventEmitter<FocusEvent> =\n        new EventEmitter<FocusEvent>();\n    @Output('change') changeInput: EventEmitter<InputChangeValue> =\n        new EventEmitter<InputChangeValue>();\n    @Output('commandEvent') commandEvent: EventEmitter<CommandsEvent> =\n        new EventEmitter<CommandsEvent>();\n    @Output('clear') clearInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    // Dropdown\n    @Output('showHideDropdown') showHideDropdownEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('dropDownKeyNavigation') dropDownKeyNavigationEvent: EventEmitter<{\n        keyCode: number;\n        data: ICaInput | null;\n    }> = new EventEmitter<{\n        keyCode: number;\n        data: ICaInput | null;\n    }>();\n\n    // events\n    public override setCommandEvent = new EventInputManager<CommandsEvent>(\n        null,\n        this.commandEvent\n    );\n\n    public isCapsLockOn = false;\n\n    public inputCommandsType = InputCommandsType;\n    public inputStringEnum = InputStringEnum;\n    public dropdownTemplateTypeEnum = DropdownTemplateTypeEnum;\n\n    // Password\n    public isTogglePassword: boolean = false;\n\n    public get inputConfig() {\n        return this._inputConfig;\n    }\n\n    constructor(\n        @Optional() @Self() public ngControl: NgControl,\n        public chdet: ChangeDetectorRef,\n        public override maskApplier: NgxMaskService,\n        public override thousandSeparatorPipe: ThousandSeparatorPipe\n    ) {\n        super();\n        if (this.ngControl) {\n            this.ngControl.valueAccessor = this;\n        }\n    }\n\n    ngAfterViewInit(): void {\n        Promise.resolve().then(() => {\n            this.handleChangeInputAndUpdateControl(this.inputValue);\n\n            if (this._inputConfig.autoFocus)\n                this.inputElement.nativeElement.focus();\n\n            if (this.parentControl) {\n                this.parentControl.statusChanges\n                    .pipe(takeUntil(this.destroy$))\n                    .subscribe(() => {\n                        if (\n                            this.parentControl?.hasValidator(\n                                Validators.required\n                            )\n                        ) {\n                            this.control?.addValidators(Validators.required);\n                            this.control?.updateValueAndValidity();\n                        } else {\n                            this.control?.removeValidators(Validators.required);\n                            this.control?.updateValueAndValidity();\n                        }\n\n                        setTimeout(() => {\n                            if (this.parentControl?.disabled) {\n                                this.control?.disable();\n                                this.control?.updateValueAndValidity({\n                                    emitEvent: true,\n                                });\n                            } else {\n                                this.control?.enable();\n                                this.control?.updateValueAndValidity({\n                                    emitEvent: true,\n                                });\n                            }\n                        }, 0);\n                    });\n                this.control?.setValidators(this.parentControl.validator);\n                if (this.parentControl?.hasValidator(Validators.required)) {\n                    this.control?.addValidators(Validators.required);\n                    this.control?.updateValueAndValidity();\n                }\n\n                if (this.parentControl?.disabled) {\n                    this.control?.disable();\n                    this.control?.updateValueAndValidity({\n                        emitEvent: true,\n                    });\n                } else {\n                    this.control?.enable();\n                    this.control?.updateValueAndValidity({\n                        emitEvent: true,\n                    });\n                }\n            }\n        });\n    }\n\n    get control() {\n        return this.ngControl?.control;\n    }\n\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: () => void): void {\n        this.onTouched = fn;\n    }\n\n    public writeValue(obj: InputChangeValue): void {\n        const value = this.transformValue(this._inputConfig, obj); // ✅ Apply mask\n\n        this.inputValue = value;\n\n        if (this._inputConfig.priceParseFormat && value) {\n            this.onChange(value.replace(/[^\\d]/g, '')); // Notify Angular form about the change\n        } else {\n            this.onChange(value); // Notify Angular form about the change\n        }\n\n        if (value && this._inputConfig.updateAsTouchedOnEdit) this.onTouched(); // Mark as touched\n\n        if (!this._inputConfig.isDropdown && !this._inputConfig.isAddress)\n            this.inputElement.nativeElement.value = value;\n\n        this.chdet.detectChanges();\n    }\n\n    handleInput(event: Event): void {\n        const value = (event.target as HTMLInputElement).value;\n        if (this._inputConfig.priceParseFormat && value) {\n            this.onChange(value.replace(/[^\\d]/g, '')); // Notify Angular form about the change\n        } else {\n            this.onChange(value); // Notify Angular form about the change\n        }\n        if (value) this.onTouched(); // Mark as touched\n\n        if (this.inputValue === value) {\n            this.control?.markAsUntouched();\n        }\n    }\n\n    public clearInput(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.handleChangeInputAndUpdateControl('');\n        this.clearInputEvent.emit(true);\n    }\n\n    public override handleChangeInputAndUpdateControl(value: InputChangeValue) {\n        this.onChange(value);\n        if (!this._inputConfig.isDropdown && !this._inputConfig.isAddress) {\n            this.inputElement.nativeElement.value = value;\n            // Trigger all inputs directives that listen for input Event\n            const event = new Event('input', { bubbles: true });\n            this.inputElement.nativeElement.dispatchEvent(event);\n        }\n    }\n\n    public handleInputFocus(event: FocusEvent) {\n        this.focusInputEvent.emit(event);\n        this.isFocusInput = true;\n    }\n\n    public handleInputBlur(event: FocusEvent) {\n        this.blurInput.emit(true);\n        this.isFocusInput = false;\n    }\n\n    public onPopoverShown(): void {\n        if (!this._inputConfig.dropdownLabel) {\n            this.isFocusInput = true;\n        }\n    }\n\n    public onPopoverHidden(): void {\n        this.blurInput.emit(true);\n        if (!this._inputConfig.dropdownLabel) {\n            this.isFocusInput = false;\n        }\n    }\n\n    public onTogglePassword(event: Event): void {\n        event.preventDefault();\n        this.isTogglePassword = !this.isTogglePassword;\n    }\n\n    public handleCapsLock(status: boolean) {\n        this.isCapsLockOn = status;\n    }\n\n    public handleCommandVisible(status: boolean) {\n        this.isVisibleCommands = status;\n    }\n\n    public identify(index: number): number {\n        return index;\n    }\n\n    public handleKeyDown(event: KeyboardEvent) {\n        this.dropDownKeyNavigationEvent.emit({\n            keyCode: event.keyCode,\n            data: this.inputConfig,\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"input-custom-group {{ _inputConfig.customClass }}\"\n    [ngClass]=\"\n        control\n            | inputContainerClass\n                : isFocusInput\n                : control?.touched!\n                : _inputConfig\n                : control?.value\n                : control?.disabled\n    \"\n    ngbTooltip\n    [mainCaTooltip]=\"control?.errors | inputError: _inputConfig.name\"\n    [tooltipBackground]=\"'#DF3C3C'\"\n    [disableTooltip]=\"!_inputConfig.requiredLabel || !!control?.valid\"\n    position=\"bottom\"\n    triggers=\"hover\"\n>\n    <!-- Input Loading spinner -->\n    @if (\n        _inputConfig?.loadingSpinner?.isLoading &&\n        !_inputConfig.isDisabled &&\n        !control?.disabled\n    ) {\n        <div class=\"input-loading-spinner\">\n            <app-ca-spinner\n                [size]=\"_inputConfig.loadingSpinner?.size\"\n                [color]=\"_inputConfig.loadingSpinner?.color\"\n            ></app-ca-spinner>\n        </div>\n    }\n\n    <!-- Input Commands -->\n    @if (_inputConfig.commands?.active && isVisibleCommands) {\n        <app-ca-input-commands\n            [inputConfig]=\"_inputConfig\"\n            [isFocusInput]=\"isFocusInput\"\n            [isVisibleCommands]=\"isVisibleCommands\"\n            (onCommandsClick)=\"onCommands($event)\"\n        >\n        </app-ca-input-commands>\n    }\n    <!-- Input Valid Check -->\n    @if (control | showValidCheck: isFocusInput : _inputConfig : control) {\n        <svg-icon\n            class=\"input-required-check {{ _inputConfig.customClass }}\"\n            [src]=\"inputSvgRoutes.confirmSvg\"\n        ></svg-icon>\n    }\n    <!-- Input Password Caps Lock And Eye -->\n    @if (_inputConfig.type === 'password') {\n        <app-ca-input-password\n            [inputConfig]=\"_inputConfig\"\n            [getSuperControl]=\"control\"\n            [isFocusInput]=\"isFocusInput\"\n            [isTouchedInput]=\"isTouchedInput\"\n            [isCapsLockOn]=\"isCapsLockOn\"\n            [isTogglePassword]=\"isTogglePassword\"\n            (onTogglePasswordClick)=\"onTogglePassword($event)\"\n        >\n        </app-ca-input-password>\n    }\n    <!-- Input Clear -->\n    @if (_inputConfig | showClear: control?.disabled) {\n        <app-ca-input-clear\n            [inputConfig]=\"_inputConfig\"\n            [getSuperControl]=\"control\"\n            [isFocusInput]=\"isFocusInput\"\n            [incorrectValue]=\"incorrectValue\"\n            [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n            [template]=\"template\"\n            (clearInputClick)=\"clearInput($event)\"\n        >\n        </app-ca-input-clear>\n    }\n\n    <!-- Input Dropdown Arrow -->\n    @if (_inputConfig | showDropdownArrow: control?.disabled) {\n        <svg-icon\n            class=\"input-dropdown-arrow {{ _inputConfig.customClass }}\"\n            [ngClass]=\"\n                control\n                    | inputDropdownArrowClass\n                        : isFocusInput\n                        : _inputConfig\n                        : isTouchedInput\n                        : control?.value\n            \"\n            [src]=\"inputSvgRoutes.inputDropdownArrowSvg\"\n            (click)=\"toggleDropdownOptions()\"\n        ></svg-icon>\n    }\n\n    <!-- Input Placeholder Icon -->\n    <app-ca-input-placeholder-icon\n        [inputConfig]=\"_inputConfig\"\n        [getSuperControl]=\"control\"\n        [isFocusInput]=\"isFocusInput\"\n        [isTouchedInput]=\"control?.touched!\"\n        [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n        [isEditInput]=\"isEditInput\"\n        (onPlaceholderIconEventEmitter)=\"onPlaceholderIconEvent($event)\"\n        (onPopoverShownEmitter)=\"onPopoverShown()\"\n        (onPopoverHiddenEmitter)=\"onPopoverHidden()\"\n        [dateTimePopover]=\"dateTimePopover\"\n    >\n    </app-ca-input-placeholder-icon>\n\n    <!-- Input Placeholder Text -->\n    @if (\n        _inputConfig\n            | showPlaceholderText: control : isVisibleCommands : control?.value\n    ) {\n        <span\n            class=\"ca-placeholder-text {{ _inputConfig.customClass }}\"\n            [ngClass]=\"\n                isFocusInput\n                    | inputPlaceholderTextClass\n                        : control?.touched!\n                        : control\n                        : _inputConfig\n                        : isVisibleCommands\n                        : control?.value\n            \"\n            [style.left]=\"\n                _inputConfig.placeholderText?.toLowerCase() ===\n                    inputStringEnum.PERSONS ||\n                _inputConfig.placeholderText?.toLowerCase() ===\n                    inputStringEnum.VEHICLES\n                    ? 30 + (control?.value?.toString()?.length + 1) * 9 + 'px'\n                    : isFocusInput &&\n                        _inputConfig.placeholderText?.toLowerCase() !==\n                            inputCommandsType.MONTHS\n                      ? 'auto'\n                      : (control?.value?.toString()?.length + 1) * 8 + 'px'\n            \"\n            [style.right]=\"\n                isFocusInput &&\n                _inputConfig.placeholderText?.toLowerCase() !==\n                    inputCommandsType.MONTHS\n                    ? '28px'\n                    : 'auto'\n            \"\n        >\n            {{ _inputConfig.placeholderText }}\n        </span>\n    }\n\n    <!-- Input Label Counter -->\n    @if (\n        selectedDropdownLabelColor &&\n        control?.value &&\n        !isFocusInput &&\n        !_inputConfig.isDisabled &&\n        !control?.disabled &&\n        _inputConfig.showCount\n    ) {\n        <p\n            [style.top]=\"'4px'\"\n            [style.left]=\"(control?.value?.toString()?.length + 6.5) * 8 + 'px'\"\n            class=\"input-label-counter\"\n        >\n            {{ selectedDropdownLabelColor.count }}\n        </p>\n    }\n\n    <!-- Special Dropdown Selected SVG with or Without Text -->\n    @if (\n        _inputConfig?.dropdownImageInput?.iconsPath &&\n        activeItem &&\n        !_inputConfig?.hideAllItemsInInputDropdown &&\n        !(!_inputConfig.dropdownImageInput?.withText && isFocusInput) &&\n        !(\n            ['truck', 'trailer'].includes(\n                _inputConfig.dropdownImageInput?.template!\n            ) &&\n            isFocusInput &&\n            _inputConfig.dropdownImageInput?.remove\n        ) &&\n        !_inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl\n    ) {\n        <svg-icon\n            [src]=\"_inputConfig.dropdownImageInput?.iconsPath!\"\n            class=\"dropdown-selected-image {{\n                _inputConfig.dropdownImageInput?.class\n            }}\"\n            [ngClass]=\"{\n                'unset-color':\n                    isFocusInput && _inputConfig.dropdownImageInput?.class,\n            }\"\n            [svgStyle]=\"{\n                fill:\n                    _inputConfig.dropdownImageInput?.color && !isFocusInput\n                        ? _inputConfig.dropdownImageInput?.color\n                        : '#ffffff',\n            }\"\n        >\n        </svg-icon>\n    }\n\n    <!-- Input Label -->\n    @if (!_inputConfig.multiSelectDropdownActive) {\n        <label\n            [for]=\"_inputConfig.name\"\n            class=\"input-label {{ _inputConfig.customClass }} {{\n                _inputConfig.multipleLabel?.customClass\n            }}\"\n            [ngClass]=\"\n                control?.value\n                    | labelClass\n                        : isFocusInput\n                        : _inputConfig\n                        : isTouchedInput\n                        : control?.invalid\n                        : control?.touched\n                        : control\n                        : control?.disabled\n            \"\n        >\n            @if (_inputConfig.label) {\n                <span>{{ _inputConfig.label }} </span>\n            }\n\n            @if (_inputConfig.multipleLabel?.labels?.length) {\n                <div\n                    [class]=\"_inputConfig.multipleLabel?.customClass!\"\n                    [ngClass]=\"{\n                        'multiple-labels-position-on-focus':\n                            isFocusInput ||\n                            _inputConfig.multipleInputValues?.options?.length,\n                        required:\n                            _inputConfig.isRequired &&\n                            !_inputConfig.isDisabled &&\n                            !control?.disabled,\n                    }\"\n                >\n                    @for (\n                        label of _inputConfig.multipleLabel?.labels;\n                        track $index\n                    ) {\n                        <span>\n                            {{ label }}\n                        </span>\n                    }\n                </div>\n            }\n        </label>\n    }\n    <input\n        #input\n        (input)=\"handleInput($event)\"\n        [restrictInput]=\"inputConfig\"\n        priceFormat\n        [priceSeparator]=\"\n            inputConfig.priceSeparator || inputConfig.thousandSeparator\n        \"\n        (focus)=\"handleInputFocus($event)\"\n        (blur)=\"handleInputBlur($event)\"\n        (keydown)=\"handleKeyDown($event)\"\n        [readOnly]=\"_inputConfig.readOnly\"\n        [type]=\"_inputConfig.type | inputType: isTogglePassword\"\n        class=\"input-control\n            {{ _inputConfig.textTransform }}\n            {{ _inputConfig.textAlign }}\n            {{ _inputConfig.customClass }}\n        \"\n        [appMaxValue]=\"inputConfig.max\"\n        appCapsLock\n        (capsLockStatus)=\"handleCapsLock($event)\"\n        commandVisible\n        (commandVisible)=\"handleCommandVisible($event)\"\n        [placeholder]=\"\n            (_inputConfig.placeholderInsteadOfLabel &&\n            _inputConfig.placeholder &&\n            isFocusInput\n                ? _inputConfig.placeholder\n                : '') ||\n            (_inputConfig.placeholder && isFocusInput\n                ? _inputConfig.placeholder\n                : '')\n        \"\n        [mask]=\"_inputConfig.mask\"\n        [ngClass]=\"\n            control\n                | inputClass\n                    : isFocusInput\n                    : control?.touched!\n                    : _inputConfig\n                    : input\n                    : isVisibleCommands\n                    : control?.value\n                    : control?.invalid\n                    : control?.touched\n                    : isDropdownToggler\n                    : isEditInput\n                    : template\n                    : control?.disabled\n        \"\n    />\n\n    <!-- Placeholder Icon on Right Side -->\n    @if (_inputConfig.placeholderIconRightSide) {\n        <svg-icon\n            class=\"placeholder-icon-right-side {{\n                _inputConfig.placeholderIconColor\n            }}\"\n            [ngClass]=\"\n                isFocusInput\n                    | inputPlaceholderIconRightClass\n                        : control\n                        : _inputConfig\n                        : isTouchedInput\n                        : control?.disabled\n            \"\n            [src]=\"\n                _inputConfig.placeholderIconRightSide.toLowerCase()\n                    | caSvg: 'common'\n            \"\n        ></svg-icon>\n    }\n\n    <!-- Input Error Message -->\n    @if (\n        !(!control?.value && isFocusInput) &&\n        (isTouchedInput || control?.touched || control?.value) &&\n        control?.invalid &&\n        !_inputConfig.isInvalidSearchInDropdown &&\n        !_inputConfig.isDisabled &&\n        !control?.disabled\n    ) {\n        @if (\n            !(_inputConfig.hideErrorMessage || _inputConfig.errorInsideInput)\n        ) {\n            <span class=\"input-error {{ _inputConfig.customClass }}\">\n                {{ control?.errors | inputError: _inputConfig.name }}\n            </span>\n        }\n\n        <!-- Error Message Inside Input -->\n        @if (_inputConfig.errorInsideInput) {\n            <span class=\"error-inside-input {{ _inputConfig.customClass }}\">\n                {{ control?.errors | inputError: _inputConfig.name }}\n            </span>\n        }\n    }\n\n    @if (_inputConfig.fixedPlacholder && input.value) {\n        <span class=\"input-fixed-placehoder-label\">\n            {{ _inputConfig.fixedPlacholder }}\n        </span>\n    }\n</div>\n","import {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnDestroy,\n    Output,\n    Self,\n    ViewChild,\n} from '@angular/core';\nimport {\n    ControlValueAccessor,\n    FormControl,\n    FormsModule,\n    NgControl,\n    ReactiveFormsModule,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// Imports\nimport moment from 'moment';\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { Subject, take, takeUntil } from 'rxjs';\n\n// Models\nimport { ICaInput } from '../ca-input/config';\nimport { InputChangeValue, InputSvgRoutes } from '../ca-input/utils';\n\n// Pipe\nimport {\n    InputContainerClassPipe,\n    InputDatetimePickerClassPipe,\n} from '../ca-input/pipes';\n\n// Components\nimport { CaCustomDatetimePickersComponent } from '../ca-custom-datetime-pickers/ca-custom-datetime-pickers.component';\nimport { CaInputPlaceholderIconComponent } from '../ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';\n\n// Enums\nimport { InputConfigNameStringEnum } from '../ca-input/enums';\n\n// Services\nimport { CalendarDateTimePickerService } from '../ca-custom-datetime-pickers/services/calendar-datetime-picker.service';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { FormControlPipe } from '../ca-input/pipes/form-control.pipe';\nimport { InputTestComponent } from '../ca-input-test/input-test.component';\n@Component({\n    selector: 'ca-input-datetime-picker',\n    templateUrl: './ca-input-datetime-picker.component.html',\n    styleUrls: [\n        './ca-input-datetime-picker.component.scss',\n        '../ca-input/scss//ca-input.datepicker.scss',\n    ],\n    imports: [\n        // modules\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        // components\n        CaCustomDatetimePickersComponent,\n        InputTestComponent,\n        // pipes\n        InputDatetimePickerClassPipe,\n        InputContainerClassPipe,\n        FormControlPipe,\n    ],\n    providers: [CalendarDateTimePickerService],\n})\nexport class CaInputDatetimePickerComponent\n    implements AfterViewInit, ControlValueAccessor, OnDestroy\n{\n    @Input() inputConfig!: ICaInput;\n    @Input() formFormat?: string;\n\n    @Output('clear') clearInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('blurInput') blurInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    @ViewChild(CaInputPlaceholderIconComponent)\n    caInputPlaceholderIconComponent!: CaInputPlaceholderIconComponent;\n\n    @ViewChild('dateTimePopover') dateTimePopover!: NgbPopover;\n    @ViewChild(InputTestComponent, { static: true })\n    caInputComponent!: InputTestComponent;\n\n    public inputFormControl: FormControl = new FormControl(null);\n\n    public showDateInput: boolean = false;\n    public dateTimeInputDate: Date = new Date();\n    public dateTimeIntDate: Date = new Date();\n    public selectionInput: number = -1;\n\n    private dateTimeMainTimer!: ReturnType<typeof setTimeout> | number;\n    private focusBlur!: ReturnType<typeof setTimeout> | number;\n    private timeoutCleaner!: ReturnType<typeof setTimeout> | number;\n\n    public inputSvgRoutes = InputSvgRoutes;\n\n    public isTouchedInput: boolean = false;\n    public preventBlur: boolean = false;\n    // Date\n    public newInputChanged: boolean = false;\n\n    @Output() selectLastOneForSelectionEmitter = new EventEmitter<boolean>();\n    @Output() selectLastOneAfterMouseUpEmitter = new EventEmitter<boolean>();\n    @Output() onDatePasteEmitter = new EventEmitter<ClipboardEvent>();\n    @Output() onFocusEmitter = new EventEmitter<FocusEvent>();\n    @Output() changeSelectionEmmiter = new EventEmitter<{\n        e: KeyboardEvent;\n        noPreventDefault: boolean;\n    }>();\n    @Output() setSelectionEmmiter = new EventEmitter<{\n        preventDefault: () => void;\n        stopPropagation: () => void;\n        target: any;\n    }>();\n\n    @ViewChild('span1', { static: true }) span1!: ElementRef;\n    @ViewChild('span2', { static: true }) span2!: ElementRef;\n    @ViewChild('span3', { static: true }) span3!: ElementRef;\n    @ViewChild('holder1', { static: true }) holder1!: ElementRef;\n\n    private destroy$: Subject<void> = new Subject<void>();\n\n    constructor(\n        @Self() public superControl: NgControl,\n        private calendarService: CalendarDateTimePickerService\n    ) {\n        this.superControl.valueAccessor = this;\n    }\n\n    valueAfterWriteValue!: string;\n\n    ngOnInit(): void {\n        if (this.superControl?.control) {\n            this.superControl.control.valueChanges\n                .pipe(take(1)) // 👈 only listen once\n                .subscribe((_) => {\n                    if (this.valueAfterWriteValue) {\n                        setTimeout(() => {\n                            this.onChange(this.valueAfterWriteValue);\n                        });\n                    }\n                });\n        }\n    }\n\n    ngAfterViewInit(): void {\n        if (this.valueAfterWriteValue) {\n            this.setTimeDateInput(this.valueAfterWriteValue);\n        } else {\n            this.setTimePickerTime();\n        }\n\n        this.calendarService.dateChanged\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((date) => {\n                if (!this.inputConfig.isDisabled) {\n                    this.setTimeDateInput(date);\n                    this.caInputComponent.caInputPlaceholderIconComponent.t2?.close();\n                }\n            });\n    }\n\n    get getSuperControl() {\n        return this.superControl.control;\n    }\n\n    public selectLastOneForSelection(): void {\n        let range, selection;\n\n        this.showDateInput = true;\n        this.selectionInput = -1;\n        this.caInputComponent.isFocusInput = true;\n\n        if (window.getSelection && document.createRange) {\n            selection = window.getSelection();\n            range = document.createRange();\n\n            if (\n                this.inputConfig.name !==\n                InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n            ) {\n                range.setStart(this.span3.nativeElement, 1);\n                range.setEnd(this.span3.nativeElement, 1);\n            } else {\n                range.setStart(this.span2.nativeElement, 1);\n                range.setEnd(this.span2.nativeElement, 1);\n            }\n\n            selection?.removeAllRanges();\n            selection?.addRange(range);\n        }\n\n        this.timeoutCleaner = setTimeout(() => {\n            clearTimeout(this.dateTimeMainTimer);\n            clearTimeout(this.focusBlur);\n        }, 90);\n    }\n\n    public selectLastOneAfterMouseUp(): void {\n        if (\n            this.inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n        ) {\n            this.selectionInput = 1;\n            this.span2.nativeElement.focus();\n            this.setSpanSelection(this.span2.nativeElement);\n        } else {\n            this.selectionInput = 2;\n            this.span3.nativeElement.focus();\n            this.setSpanSelection(this.span3.nativeElement);\n        }\n\n        this.showDateInput = true;\n\n        this.timeoutCleaner = setTimeout(() => {\n            clearTimeout(this.dateTimeMainTimer);\n            clearTimeout(this.focusBlur);\n        }, 90);\n    }\n\n    // 05/05/2025\n    public onDatePaste(event: ClipboardEvent): void {\n        event.preventDefault();\n\n        const pasteText = event.clipboardData?.getData('text') as string;\n        const pastedDate = new Date(pasteText);\n        if (!isNaN(pastedDate.getTime())) {\n            this.setTimeDateInput(pastedDate);\n            this.selectSpanByTabIndex(this.selectionInput);\n        }\n    }\n\n    changeSelection(e: any, noPreventDefault = false): void {\n        const isCtrlV = (e.ctrlKey || e.metaKey) && e.key.toLowerCase() === 'v';\n\n        if (isCtrlV) {\n            // Allow paste\n            return;\n        }\n\n        if (\n            e.keyCode == 37 ||\n            e.keyCode == 38 ||\n            e.keyCode == 39 ||\n            e.keyCode == 40 ||\n            e.keyCode == 8 ||\n            e.keyCode == 9 ||\n            e.keyCode == 46 ||\n            (this.selectionInput == 3 && this.inputConfig.name === 'timepicker')\n        ) {\n            !e.noPrevent && e.preventDefault();\n            if (e.keyCode == 37) {\n                if (this.selectionInput != 0) {\n                    this.selectionInput = this.selectionInput - 1;\n                    this.selectSpanByTabIndex(this.selectionInput, true);\n                }\n            } else if (e.keyCode == 39 || e.keyCode == 9) {\n                if (\n                    ((this.inputConfig.name === 'datepickerBankCard' &&\n                        this.selectionInput != 1) ||\n                        (this.inputConfig.name !== 'datepickerBankCard' &&\n                            this.selectionInput != 2)) &&\n                    !e.shiftKey\n                ) {\n                    this.selectionInput = this.selectionInput + 1;\n                    this.selectSpanByTabIndex(this.selectionInput, true);\n                } else if (e.keyCode == 9 && !e.shiftKey) {\n                    let allInputs = document.querySelectorAll(\n                        'input.input-control'\n                    ) as NodeListOf<HTMLInputElement>;\n                    [...(allInputs as any)].map((item, indx) => {\n                        if (\n                            item ===\n                            this.caInputComponent.inputElement.nativeElement\n                        ) {\n                            if (allInputs[indx + 1]) {\n                                allInputs[indx + 1].focus();\n                            } else {\n                                this.blurOnDateTime();\n                            }\n                            this.selectionInput = -1;\n                            return;\n                        }\n                    });\n                } else if (\n                    e.shiftKey &&\n                    e.keyCode == 9 &&\n                    this.selectionInput != 0\n                ) {\n                    if (this.selectionInput == -1) {\n                        this.selectionInput = 3;\n                    }\n                    this.selectionInput = this.selectionInput - 1;\n                    this.selectSpanByTabIndex(this.selectionInput);\n                } else if (\n                    e.shiftKey &&\n                    e.keyCode == 9 &&\n                    this.selectionInput == 0\n                ) {\n                    let allInputs = document.querySelectorAll('input');\n                    [...(allInputs as any)].map((item, indx) => {\n                        if (\n                            item ===\n                            this.caInputComponent.inputElement.nativeElement\n                        ) {\n                            if (allInputs[indx - 1]) {\n                                allInputs[indx - 1].focus();\n                            }\n                            this.selectionInput = -1;\n                            return;\n                        }\n                    });\n                }\n            } else if (e.keyCode == 38) {\n                this.setDateTimeModel('up');\n            } else if (e.keyCode == 40) {\n                this.setDateTimeModel('down');\n            } else if (e.keyCode == 8 || e.keyCode == 46) {\n                this.handleKeyboardInputs(e, true);\n            }\n        } else if (!this.isNumber(e)) {\n            if (!noPreventDefault) {\n                e.preventDefault();\n            }\n        } else {\n            if (!noPreventDefault) {\n                e.preventDefault();\n            }\n            if (this.selectionInput == -1) {\n                this.selectionInput = 0;\n            }\n\n            this.handleKeyboardInputs(e);\n        }\n    }\n\n    public changeSelectionTwo(\n        event: KeyboardEvent,\n        noPreventDefault = false\n    ): void {\n        if (!noPreventDefault) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n\n        const isNavigationKey = this.isNavigationKey(event);\n        const isSpecialTimePickerKey =\n            this.selectionInput === 3 &&\n            this.inputConfig.name === InputConfigNameStringEnum.TIME_PICKER;\n\n        if (isNavigationKey || isSpecialTimePickerKey) {\n            event.preventDefault();\n            this.handleNavigationKey(event);\n        } else if (!this.isNumber(event)) {\n            if (!noPreventDefault) event.preventDefault();\n            else {\n                if (!noPreventDefault) event.preventDefault();\n\n                if (this.selectionInput === -1) this.selectionInput = 0;\n                this.handleKeyboardInputs(event);\n            }\n        }\n    }\n\n    private isNumber(evt: KeyboardEvent): boolean {\n        evt = evt ? evt : (window.event as KeyboardEvent);\n        let charCode = evt.which ? evt.which : evt.keyCode;\n        return (\n            (charCode >= 48 && charCode <= 57) ||\n            (charCode >= 96 && charCode <= 105)\n        );\n    }\n\n    private isNavigationKey(e: KeyboardEvent): boolean {\n        const navigationKeys = [37, 38, 39, 40, 8, 9, 46]; // Arrow keys, Backspace, Tab, Delete\n        return navigationKeys.includes(e.keyCode);\n    }\n\n    public onFocus(event?: FocusEvent): void {\n        this.onFocusEmitter.emit(event);\n    }\n\n    public closePopover(): void {\n        if (this.caInputComponent.caInputPlaceholderIconComponent.t2)\n            this.caInputComponent.caInputPlaceholderIconComponent.t2.close();\n    }\n\n    public toggleDropdownOptions() {\n        if (this.caInputComponent?.caInputPlaceholderIconComponent?.t2) {\n            if (\n                !this.caInputComponent.caInputPlaceholderIconComponent.t2.isOpen()\n            ) {\n                clearTimeout(this.dateTimeMainTimer);\n                clearTimeout(this.focusBlur);\n                this.holder1.nativeElement.focus();\n                this.selectionInput = -1;\n                this.setSpanSelection(this.holder1.nativeElement);\n                this.caInputComponent.caInputPlaceholderIconComponent.t2.open();\n            } else {\n                this.holder1.nativeElement.blur();\n                // this.setIsFocusInput(false);\n                let selection = window.getSelection();\n                selection?.removeAllRanges();\n            }\n            return;\n        }\n    }\n\n    public handleFocusInput(e: Event) {\n        const event = e as FocusEvent;\n\n        if (!this.inputConfig.isDisabled) {\n            clearTimeout(this.dateTimeMainTimer);\n            clearTimeout(this.focusBlur);\n            this.showDateInput = true;\n            if (\n                (this.selectionInput === -1 &&\n                    (event?.target as HTMLElement)?.nodeName === 'INPUT') ||\n                (event?.relatedTarget as HTMLElement)?.nodeName === 'INPUT' ||\n                event?.relatedTarget === null\n            ) {\n                this.preventBlur = true;\n                this.holder1.nativeElement.focus();\n                this.setSpanSelection(this.holder1.nativeElement);\n                this.selectionInput = -1;\n            }\n\n            this.caInputComponent.caInputPlaceholderIconComponent.t2.toggle();\n        }\n    }\n\n    public setSpanSelection(element: Node): void {\n        let range: Range;\n        let selection: Selection | null;\n\n        if (window.getSelection && document.createRange) {\n            selection = window.getSelection();\n            range = document.createRange();\n            range.selectNodeContents(element);\n            selection?.removeAllRanges();\n            selection?.addRange(range);\n        }\n    }\n\n    public setSelection(event: {\n        preventDefault: () => void;\n        stopPropagation: () => void;\n        target: any;\n    }): void {\n        const element = event.target;\n\n        const selectionInput = parseInt(element.getAttribute('tabindex'));\n\n        const currentSelection = window.getSelection();\n\n        if (currentSelection && currentSelection.toString().length > 10) {\n            this.holder1.nativeElement.focus();\n            this.selectionInput = 0;\n            this.setSpanSelection(this.holder1.nativeElement);\n            clearTimeout(this.dateTimeMainTimer);\n            clearTimeout(this.focusBlur);\n            return;\n        }\n\n        clearTimeout(this.dateTimeMainTimer);\n        if (element.classList.contains('main')) {\n            this.selectionInput = selectionInput;\n            this.setSpanSelection(element);\n        } else {\n            if (this.selectionInput === -1) {\n                this.span1.nativeElement.focus();\n                this.selectionInput = 0;\n                this.setSpanSelection(this.span1.nativeElement);\n            } else {\n                event.preventDefault();\n                this.selectSpanByTabIndex(this.selectionInput);\n            }\n        }\n    }\n\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    public onChange(_: InputChangeValue): void {}\n\n    public writeValue(obj: InputChangeValue): void {\n        if (obj) this.setTimeDateInput(obj, true);\n    }\n\n    public registerOnTouched(): void {}\n\n    // BLUR ON INPUT\n    public blurOnDateTime(): void {\n        clearTimeout(this.dateTimeMainTimer);\n        this.dateTimeMainTimer = setTimeout(() => {\n            if (\n                this.inputConfig.name === InputConfigNameStringEnum.DATE_PICKER\n            ) {\n                if (\n                    !isNaN(this.span1?.nativeElement.innerHTML) &&\n                    !isNaN(this.span2?.nativeElement.innerHTML) &&\n                    !isNaN(this.span3?.nativeElement.innerHTML)\n                ) {\n                    if (\n                        this.inputConfig.isFutureDateDisabled &&\n                        moment(this.dateTimeInputDate).isAfter(moment())\n                    )\n                        this.superControl.control?.setErrors({\n                            invalid: true,\n                        });\n                    // don't accept future dates\n                    else {\n                        if (\n                            this.inputConfig.expiredDateInvalid &&\n                            moment(this.dateTimeInputDate).isBefore(moment())\n                        ) {\n                            this.superControl.control?.setErrors({\n                                invalid: true,\n                            }); // don't accept expired dates\n                        } else {\n                            this.calendarService.dateChanged.next(\n                                this.dateTimeInputDate\n                            );\n                        }\n                    }\n                } else {\n                    this.span1.nativeElement.innerHTML = 'mm';\n                    this.span2.nativeElement.innerHTML = 'dd';\n                    this.span3.nativeElement.innerHTML = 'yy';\n                    this.dateTimeInputDate = new Date();\n                    this.showDateInput = false;\n                }\n            } else if (\n                this.inputConfig.name ===\n                InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n            ) {\n                if (\n                    !isNaN(this.span1.nativeElement.innerHTML) &&\n                    !isNaN(this.span2.nativeElement.innerHTML)\n                ) {\n                    if (\n                        this.inputConfig.expiredDateInvalid &&\n                        moment(this.dateTimeInputDate).isBefore(moment())\n                    ) {\n                        this.superControl.control?.setErrors({ invalid: true }); // don't accept expired dates\n                    } else {\n                        this.calendarService.dateChanged.next(\n                            this.dateTimeInputDate\n                        );\n                    }\n                } else {\n                    this.span1.nativeElement.innerHTML = 'mm';\n                    this.span2.nativeElement.innerHTML = 'yy';\n                    this.dateTimeInputDate = new Date();\n                    this.showDateInput = false;\n                }\n            } else {\n                if (\n                    !isNaN(this.span1.nativeElement.innerHTML) &&\n                    !isNaN(this.span2.nativeElement.innerHTML)\n                ) {\n                    this.calendarService.dateChanged.next(\n                        this.dateTimeInputDate\n                    );\n                } else {\n                    this.span1.nativeElement.innerHTML = 'HH';\n                    this.span2.nativeElement.innerHTML = 'MM';\n                    this.setTimePickerTime();\n                    this.showDateInput = false;\n                }\n            }\n\n            clearTimeout(this.dateTimeMainTimer);\n            this.selectionInput = -1;\n            this.newInputChanged = true;\n        }, 100);\n    }\n\n    public onPopoverShown(): void {\n        this.showDateInput = true;\n        this.holder1.nativeElement.focus();\n    }\n\n    public onPopoverHidden(): void {\n        this.blurOnDateTime();\n    }\n\n    public setTimeDateInput(date: InputChangeValue, hasValue?: boolean): void {\n        let text, dateFormat, timeFormat;\n        if (this.inputConfig.name === InputConfigNameStringEnum.DATE_PICKER) {\n            text = moment(new Date(date)).format('MM/DD/YY');\n            dateFormat = text.split('/');\n        } else if (\n            this.inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n        ) {\n            text = moment(new Date(date)).format('MM/DD/YY');\n            dateFormat = text.split('/');\n        } else {\n            date =\n                date instanceof Date\n                    ? date\n                    : new Date(moment().format('MM/DD/YYYY') + ' ' + date);\n            text = moment(new Date(date)).format('HH:mm');\n\n            timeFormat = moment(new Date(date)).format('hh/mm/A');\n            dateFormat = timeFormat.split('/');\n        }\n\n        if (this.formFormat) {\n            const newFormFormat = moment(new Date(date)).format(\n                this.formFormat\n            );\n            this.valueAfterWriteValue = newFormFormat;\n            text = newFormFormat;\n        }\n\n        if (!hasValue) this.onChange(text);\n        this.setIsFocusInput(false);\n\n        // HAS TO BE IN TIMEOUT BECAUSE OF ANGULAR STACK\n        setTimeout(() => {\n            if (this.span1) this.span1.nativeElement.innerHTML = dateFormat[0];\n\n            if (this.span2)\n                if (\n                    this.inputConfig.name !==\n                    InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n                ) {\n                    this.span2.nativeElement.innerHTML = dateFormat[1];\n                    this.span3.nativeElement.innerHTML = dateFormat[2];\n                } else {\n                    this.span2.nativeElement.innerHTML = dateFormat[2];\n                }\n        }, 0);\n\n        if (date) {\n            this.dateTimeInputDate = new Date(date);\n        }\n        this.showDateInput = true;\n    }\n\n    public handleKeyboardInputs(e: KeyboardEvent, isRestart?: boolean): void {\n        const spanOneValue: number | undefined =\n            isNaN(this.span1.nativeElement.innerHTML) || this.newInputChanged\n                ? undefined\n                : parseInt(this.span1.nativeElement.innerHTML);\n        const span2Value: number | undefined =\n            isNaN(this.span2.nativeElement.innerHTML) || this.newInputChanged\n                ? undefined\n                : parseInt(this.span2.nativeElement.innerHTML);\n\n        let span3Value: string | number | undefined;\n\n        if (\n            this.inputConfig.name !==\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n        ) {\n            span3Value =\n                isNaN(this.span3.nativeElement.innerHTML) ||\n                this.newInputChanged\n                    ? ''\n                    : parseInt(this.span3.nativeElement.innerHTML);\n        }\n\n        this.newInputChanged = false;\n        if (this.inputConfig.name === InputConfigNameStringEnum.DATE_PICKER) {\n            if (this.selectionInput === 0) {\n                if (isRestart) {\n                    this.span1.nativeElement.innerHTML = 'mm';\n                    this.selectionInput = 0;\n                    this.selectSpanByTabIndex(0);\n                } else if (spanOneValue !== undefined) {\n                    let final_value = parseInt(`${spanOneValue}${e.key}`);\n                    if (final_value > 12) {\n                        this.span1.nativeElement.innerHTML = (\n                            '0' + parseInt(e.key)\n                        ).slice(-2);\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    } else {\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setMonth(\n                                parseInt(\n                                    this.span1.nativeElement.innerHTML +\n                                        parseInt(e.key)\n                                ) - 1\n                            )\n                        );\n\n                        if (!final_value)\n                            this.span1.nativeElement.innerHTML = 'mm';\n                        else\n                            this.span1.nativeElement.innerHTML = (\n                                this.span1.nativeElement.innerHTML +\n                                parseInt(e.key)\n                            ).slice(-2);\n\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    }\n                } else {\n                    if (parseInt(e.key))\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setMonth(parseInt(e.key) - 1)\n                        );\n\n                    const final_value = ('0' + parseInt(e.key)).slice(-2);\n\n                    this.span1.nativeElement.innerHTML = final_value;\n\n                    if (parseInt(`1${e.key}`) > 12) {\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    } else this.selectSpanByTabIndex(0);\n                }\n            } else if (this.selectionInput === 1) {\n                if (isRestart) {\n                    this.span2.nativeElement.innerHTML = 'dd';\n                    this.selectionInput = 0;\n                    this.selectSpanByTabIndex(0, true);\n                } else if (span2Value !== undefined) {\n                    let final_value = parseInt(`${span2Value}${e.key}`);\n                    if (final_value > 31) {\n                        this.span2.nativeElement.innerHTML = (\n                            '0' + parseInt(e.key)\n                        ).slice(-2);\n                        this.selectionInput = 2;\n                        this.selectSpanByTabIndex(2, true);\n                    } else {\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setDate(\n                                parseInt(\n                                    this.span2.nativeElement.innerHTML +\n                                        parseInt(e.key)\n                                )\n                            )\n                        );\n\n                        if (!final_value) {\n                            this.span2.nativeElement.innerHTML = 'dd';\n                        } else {\n                            this.span2.nativeElement.innerHTML = (\n                                this.span2.nativeElement.innerHTML +\n                                parseInt(e.key)\n                            ).slice(-2);\n                        }\n\n                        this.selectionInput = 2;\n                        this.selectSpanByTabIndex(2, true);\n                    }\n                } else {\n                    if (parseInt(e.key))\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setDate(parseInt(e.key))\n                        );\n\n                    this.span2.nativeElement.innerHTML = (\n                        '0' + parseInt(e.key)\n                    ).slice(-2);\n\n                    if (parseInt(`1${e.key}`) > 31) {\n                        this.selectionInput = 2;\n                        this.selectSpanByTabIndex(2, true);\n                    } else {\n                        this.selectSpanByTabIndex(1);\n                    }\n                }\n            } else {\n                if (isRestart) {\n                    this.span3.nativeElement.innerHTML = 'yy';\n                    this.selectionInput = 1;\n                    this.selectSpanByTabIndex(1, true);\n                } else if (!span3Value || span3Value.toString().length === 2) {\n                    this.span3.nativeElement.innerHTML = (\n                        '0' + parseInt(e.key)\n                    ).slice(-2);\n                    this.dateTimeInputDate = new Date(\n                        this.dateTimeInputDate.setFullYear(\n                            parseInt(`200${parseInt(e.key)}`)\n                        )\n                    );\n\n                    this.selectSpanByTabIndex(2);\n                } else {\n                    const finalYear = parseInt(\n                        this.span3.nativeElement.innerHTML + parseInt(e.key)\n                    );\n\n                    const finalShowYear =\n                        finalYear > 31\n                            ? parseInt(`19${finalYear}`)\n                            : parseInt(`20${finalYear}`);\n                    this.dateTimeInputDate = new Date(\n                        this.dateTimeInputDate.setFullYear(finalShowYear)\n                    );\n\n                    this.span3.nativeElement.innerHTML = (\n                        this.span3.nativeElement.innerHTML + parseInt(e.key)\n                    ).slice(-2);\n                    this.selectSpanByTabIndex(2);\n                }\n            }\n        } else if (\n            this.inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n        ) {\n            if (!this.selectionInput) {\n                if (isRestart) {\n                    this.span1.nativeElement.innerHTML = 'mm';\n                    this.selectionInput = 0;\n                    this.selectSpanByTabIndex(0);\n                } else if (spanOneValue) {\n                    const final_value = parseInt(`${spanOneValue}${e.key}`);\n                    if (final_value > 12) {\n                        this.span1.nativeElement.innerHTML = (\n                            '0' + parseInt(e.key)\n                        ).slice(-2);\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    } else {\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setMonth(\n                                parseInt(\n                                    this.span1.nativeElement.innerHTML +\n                                        parseInt(e.key)\n                                ) - 1\n                            )\n                        );\n\n                        if (!final_value) {\n                            this.span1.nativeElement.innerHTML = 'mm';\n                        } else {\n                            this.span1.nativeElement.innerHTML = (\n                                this.span1.nativeElement.innerHTML +\n                                parseInt(e.key)\n                            ).slice(-2);\n                        }\n\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    }\n                } else {\n                    if (parseInt(e.key))\n                        this.dateTimeInputDate = new Date(\n                            this.dateTimeInputDate.setMonth(parseInt(e.key) - 1)\n                        );\n\n                    const final_value = ('0' + parseInt(e.key)).slice(-2);\n\n                    this.span1.nativeElement.innerHTML = final_value;\n\n                    if (parseInt(`1${e.key}`) > 12) {\n                        this.selectionInput = 1;\n                        this.selectSpanByTabIndex(1, true);\n                    } else this.selectSpanByTabIndex(0);\n                }\n            } else {\n                if (isRestart) {\n                    this.span2.nativeElement.innerHTML = 'yy';\n                    this.selectionInput = 2;\n                    this.selectSpanByTabIndex(2, true);\n                } else if (!span2Value || span2Value.toString().length === 2) {\n                    this.span2.nativeElement.innerHTML = (\n                        '0' + parseInt(e.key)\n                    ).slice(-2);\n                    this.dateTimeInputDate = new Date(\n                        this.dateTimeInputDate.setFullYear(\n                            parseInt(`200${parseInt(e.key)}`)\n                        )\n                    );\n\n                    this.selectSpanByTabIndex(1);\n                } else {\n                    const finalYear = parseInt(\n                        this.span2.nativeElement.innerHTML + parseInt(e.key)\n                    );\n\n                    const finalShowYear =\n                        finalYear > 31\n                            ? parseInt(`19${finalYear}`)\n                            : parseInt(`20${finalYear}`);\n                    this.dateTimeInputDate = new Date(\n                        this.dateTimeInputDate.setFullYear(finalShowYear)\n                    );\n\n                    this.span2.nativeElement.innerHTML = (\n                        this.span2.nativeElement.innerHTML + parseInt(e.key)\n                    ).slice(-2);\n                    this.selectSpanByTabIndex(1);\n                }\n            }\n        }\n    }\n\n    selectSpanByTabIndex(indx: number, changeTab?: boolean): void {\n        switch (indx) {\n            case 0:\n                this.setSpanSelection(this.span1.nativeElement);\n                break;\n            case 1:\n                this.setSpanSelection(this.span2.nativeElement);\n                break;\n            case 2:\n                this.setSpanSelection(this.span3.nativeElement);\n                break;\n            default:\n                this.setSpanSelection(this.holder1.nativeElement);\n        }\n\n        if (changeTab) this.newInputChanged = true;\n    }\n\n    private handleNavigationKey(event: KeyboardEvent): void {\n        switch (event.keyCode) {\n            case 37: // Left arrow\n                this.moveSelectionLeft();\n                break;\n            case 39: // Right arrow\n            case 9: // Tab\n                this.moveSelectionRightOrTab(event);\n                break;\n            case 38: // Up arrow\n                this.setDateTimeModel('up');\n                break;\n            case 40: // Down arrow\n                this.setDateTimeModel('down');\n                break;\n            case 8: // Backspace\n            case 46: // Delete\n                this.handleKeyboardInputs(event, true);\n                break;\n        }\n    }\n\n    private handleDatePickerInput(isUp: boolean, isDatePicker: boolean): void {\n        if (this.selectionInput === 0) this.updateMonth(isUp);\n        else if (this.selectionInput === 1) this.updateDate(isUp, isDatePicker);\n        else this.updateYear(isUp, isDatePicker);\n    }\n\n    private setDateTimeModel(direction: string): void {\n        if (this.selectionInput === -1) this.selectionInput = 0;\n\n        const isUp = direction === 'up';\n        const isDatePicker =\n            this.inputConfig.name === InputConfigNameStringEnum.DATE_PICKER;\n        const isBankCardPicker =\n            this.inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD;\n\n        if (isDatePicker || isBankCardPicker)\n            this.handleDatePickerInput(isUp, isDatePicker);\n        else this.handleTimePickerInput(isUp);\n    }\n\n    private moveSelectionRightOrTab(e: KeyboardEvent): void {\n        const isDatepickerBankCard =\n            this.inputConfig.name ===\n            InputConfigNameStringEnum.DATE_PICKER_BANK_CARD;\n        const maxIndex = isDatepickerBankCard ? 1 : 2;\n\n        if (this.selectionInput < maxIndex && !e.shiftKey) {\n            this.selectionInput += 1;\n            this.selectSpanByTabIndex(this.selectionInput, true);\n        } else if (e.keyCode === 9 && !e.shiftKey) {\n            this.focusNextInput();\n        } else if (e.shiftKey && e.keyCode === 9) {\n            this.focusPreviousInput();\n        }\n    }\n\n    private focusPreviousInput(): void {\n        const allInputs = Array.from(\n            document.querySelectorAll('input.input-control')\n        ) as HTMLInputElement[];\n\n        const currentIndex = allInputs.findIndex(\n            (input) =>\n                input === this.caInputComponent.inputElement.nativeElement\n        );\n\n        if (currentIndex === -1) this.selectionInput = 3;\n        else if (currentIndex === 0) this.selectionInput = 0;\n        else {\n            this.selectionInput -= 1;\n            this.selectSpanByTabIndex(this.selectionInput);\n        }\n\n        if (currentIndex > 0) allInputs[currentIndex - 1].focus();\n\n        this.selectionInput = -1;\n    }\n\n    private focusNextInput(): void {\n        const allInputs = Array.from(\n            document.querySelectorAll('input.input-control')\n        ) as HTMLInputElement[];\n        const currentIndex = allInputs.findIndex(\n            (input) =>\n                input === this.caInputComponent.inputElement.nativeElement\n        );\n\n        if (allInputs[currentIndex + 1]) allInputs[currentIndex + 1].focus();\n        else {\n            this.setIsFocusInput(false);\n            this.blurOnDateTime();\n        }\n\n        this.selectionInput = -1;\n    }\n\n    public setIsFocusInput(value: boolean): void {\n        this.caInputComponent.isFocusInput = value;\n    }\n\n    private moveSelectionLeft(): void {\n        if (this.selectionInput > 0) {\n            this.selectionInput -= 1;\n            this.selectSpanByTabIndex(this.selectionInput, true);\n        }\n    }\n\n    private updateMonth(isUp: boolean): void {\n        const monthDelta = isUp ? 1 : -1;\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setMonth(\n                this.dateTimeInputDate.getMonth() + monthDelta\n            )\n        );\n\n        this.span1.nativeElement.innerHTML = this.padValue(\n            this.dateTimeInputDate.getMonth() + 1\n        );\n        this.setSpanSelection(this.span1.nativeElement);\n    }\n\n    private updateDate(isUp: boolean, isDatePicker: boolean): void {\n        const dateDelta = isUp ? 1 : -1;\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setDate(\n                this.dateTimeInputDate.getDate() + dateDelta\n            )\n        );\n\n        const spanElement = isDatePicker\n            ? this.span2.nativeElement\n            : this.span1.nativeElement;\n        spanElement.innerHTML = this.padValue(this.dateTimeInputDate.getDate());\n        this.setSpanSelection(spanElement);\n    }\n\n    private updateYear(isUp: boolean, isDatePicker: boolean): void {\n        const yearDelta = isUp ? 1 : -1;\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setFullYear(\n                this.dateTimeInputDate.getFullYear() + yearDelta\n            )\n        );\n\n        const spanElement = isDatePicker\n            ? this.span3.nativeElement\n            : this.span2.nativeElement;\n        spanElement.innerHTML = this.dateTimeInputDate\n            .getFullYear()\n            .toString()\n            .slice(-2);\n        this.setSpanSelection(spanElement);\n    }\n\n    private padValue(value: number): string {\n        return ('0' + value).slice(-2);\n    }\n\n    private handleTimePickerInput(isUp: boolean): void {\n        if (this.selectionInput === 0) this.updateHours(isUp);\n        else if (this.selectionInput === 1) this.updateMinutes(isUp);\n        else this.toggleAMPM();\n    }\n\n    private updateHours(isUp: boolean): void {\n        const hoursDelta = isUp ? 1 : -1;\n        let selectedHours = this.dateTimeInputDate.getHours() + hoursDelta;\n\n        if (selectedHours === 0) selectedHours = 24;\n        if (selectedHours === -1) selectedHours = 23;\n\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setHours(selectedHours)\n        );\n\n        this.span1.nativeElement.innerHTML = this.padValue(\n            selectedHours > 12 ? selectedHours - 12 : selectedHours\n        );\n        this.setSpanSelection(this.span1.nativeElement);\n\n        this.span3.nativeElement.innerHTML =\n            selectedHours > 11 && selectedHours < 24 ? 'PM' : 'AM';\n    }\n\n    private updateMinutes(isUp: boolean): void {\n        const minutesDelta = isUp ? 1 : -1;\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setMinutes(\n                this.dateTimeInputDate.getMinutes() + minutesDelta\n            )\n        );\n\n        this.span2.nativeElement.innerHTML = this.padValue(\n            this.dateTimeInputDate.getMinutes()\n        );\n        this.setSpanSelection(this.span2.nativeElement);\n    }\n\n    private toggleAMPM(): void {\n        this.span3.nativeElement.innerHTML =\n            this.span3.nativeElement.innerHTML === 'AM' ? 'PM' : 'AM';\n\n        const hoursToAdd =\n            this.span3.nativeElement.innerHTML === 'AM' ? -12 : 12;\n        this.dateTimeInputDate = new Date(\n            this.dateTimeInputDate.setHours(\n                this.dateTimeInputDate.getHours() + hoursToAdd\n            )\n        );\n\n        this.setSpanSelection(this.span3.nativeElement);\n    }\n\n    public clearInput(event: boolean): void {\n        this.clearInputEvent.emit(event);\n\n        this.setIsFocusInput(false);\n        this.resetDateTimeInputs();\n        this.onChange('');\n    }\n\n    public onBlurInput(event: any): void {\n        this.blurInputEvent.emit(event);\n        // Datepicker\n        this.focusBlur = setTimeout(() => {\n            this.blurOnDateTime();\n        }, 100);\n    }\n\n    public resetDateTimeInputs(): void {\n        if (this.span1)\n            if (\n                this.inputConfig.name === InputConfigNameStringEnum.DATE_PICKER\n            ) {\n                this.span1.nativeElement.innerHTML = 'mm';\n                this.span2.nativeElement.innerHTML = 'dd';\n                this.span3.nativeElement.innerHTML = 'yy';\n            } else if (\n                this.inputConfig.name ===\n                InputConfigNameStringEnum.DATE_PICKER_BANK_CARD\n            ) {\n                this.span1.nativeElement.innerHTML = 'mm';\n                this.span2.nativeElement.innerHTML = 'yy';\n            } else if (\n                this.inputConfig.name === InputConfigNameStringEnum.TIME_PICKER\n            ) {\n                this.span1.nativeElement.innerHTML = 'HH';\n                this.span2.nativeElement.innerHTML = 'MM';\n                this.span3.nativeElement.innerHTML = 'AM';\n            }\n\n        this.setTimePickerTime();\n        this.newInputChanged = true;\n        this.setIsFocusInput(false);\n        this.showDateInput = false;\n    }\n\n    public setTimePickerTime(): void {\n        if (this.inputConfig.name === InputConfigNameStringEnum.TIME_PICKER)\n            this.dateTimeInputDate = new Date(\n                moment().format('MM/DD/YYYY') +\n                    (this.inputConfig?.isFromDate ? ' 12:15' : ' 12:00')\n            );\n    }\n\n    public ngOnDestroy() {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"datetime-picker-main-holder input-custom-group datetimeclass\"\n    [ngClass]=\"\n        getSuperControl\n            | inputContainerClass\n                : caInputComponent.isFocusInput\n                : caInputComponent.isTouchedInput\n                : inputConfig\n                : getSuperControl?.value\n                : getSuperControl?.disabled\n                : getSuperControl?.invalid\n    \"\n>\n    <div\n        #holder1\n        class=\"date_time_holder input-control\"\n        [class.active]=\"showDateInput\"\n        tabindex=\"-1\"\n        (mousedown)=\"selectLastOneForSelection()\"\n        (mouseup)=\"selectLastOneAfterMouseUp()\"\n        (paste)=\"onDatePaste($event)\"\n        (keydown)=\"changeSelection($event)\"\n        (click)=\"toggleDropdownOptions()\"\n        [ngStyle]=\"{\n            'padding-left': inputConfig.isIconHidden ? '2px' : '27px',\n        }\"\n        [ngClass]=\"\n            caInputComponent.isFocusInput\n                | inputDatetimePickerClass\n                    : false\n                    : inputConfig\n                    : caInputComponent.isTouchedInput\n                    : getSuperControl?.disabled\n                    : getSuperControl?.value\n                    : getSuperControl?.valid\n                    : getSuperControl?.touched\n        \"\n    >\n        <span\n            #span1\n            class=\"main\"\n            [ngClass]=\"{\n                'reset-selection-color': !caInputComponent.isFocusInput,\n            }\"\n            tabindex=\"0\"\n            [innerHTML]=\"inputConfig.name === 'datepicker' ? 'mm' : 'HH'\"\n        ></span>\n        <span>\n            <div\n                class=\"border-picker\"\n                [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ':'\"\n            ></div>\n        </span>\n        <span\n            #span2\n            class=\"main\"\n            [ngClass]=\"{\n                'reset-selection-color': !caInputComponent.isFocusInput,\n            }\"\n            tabindex=\"1\"\n            [innerHTML]=\"inputConfig.name === 'datepicker' ? 'dd' : 'MM'\"\n        ></span>\n        <span>\n            <div\n                class=\"border-picker\"\n                [innerHTML]=\"inputConfig.name === 'datepicker' ? '/' : ' '\"\n            ></div>\n        </span>\n        <span\n            #span3\n            class=\"main\"\n            [ngClass]=\"{\n                'reset-selection-color': !caInputComponent.isFocusInput,\n            }\"\n            tabindex=\"2\"\n            [innerHTML]=\"inputConfig.name === 'datepicker' ? 'yy' : 'AM'\"\n        ></span>\n    </div>\n    <ca-input-test\n        [inputConfig]=\"inputConfig\"\n        [dateTimePopover]=\"dateTimePopover\"\n        (focusInputEvent)=\"handleFocusInput($event)\"\n        (handleToggleDropdownOptions)=\"toggleDropdownOptions()\"\n        (closePopover)=\"blurOnDateTime()\"\n        (blurInput)=\"onBlurInput($event)\"\n        (clear)=\"clearInput($event)\"\n        [formControl]=\"getSuperControl! | formControl\"\n    ></ca-input-test>\n</div>\n<!-- Popover for DateTime Pickers -->\n<ng-template #dateTimePopover let-data=\"data\">\n    <div class=\"datetime-dropdown-holder\">\n        <ca-custom-datetime-pickers\n            [calendarType]=\"\n                inputConfig.name === 'datepicker' ||\n                inputConfig.name === 'datepickerBankCard'\n                    ? 'date'\n                    : 'time'\n            \"\n            [inputConfig]=\"inputConfig\"\n            [placeholder]=\"'MM/DD/YY'\"\n            [dateTime]=\"dateTimeInputDate\"\n            (closePopover)=\"closePopover()\"\n        ></ca-custom-datetime-pickers>\n    </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\ninterface RadioButton {\n  id: number;\n  label: string;\n  value: string;\n  name: string; // must be same for all radio buttons\n  checked: boolean;\n  isActive?: boolean; // this field change in this component\n}\n\n@Component({\n    selector: 'app-ca-input-radiobuttons',\n    templateUrl: './ca-input-radiobuttons.component.html',\n    styleUrls: ['./ca-input-radiobuttons.component.scss'],\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n    ]\n})\nexport class CaInputRadiobuttonsComponent {\n  @Input() buttons: RadioButton[] | null = null;\n  @Input() disabled: boolean = false;\n  @Input() displayRequiredNote?: boolean = false;\n\n  @Output() changedValue: EventEmitter<RadioButton[]> = new EventEmitter<\n    RadioButton[]\n  >(undefined);\n\n  public onChange(button: RadioButton): void {\n    this.buttons?.filter((item) => (item.checked = false));\n    button.checked = true;\n    this.changedValue.emit(this.buttons!);\n  }\n\n  public identity(index: number, item: any): string {\n    return item.value;\n  }\n}\n","<div\n    class=\"ta-input-radiobutons\"\n    [ngClass]=\"{ disabled, required: displayRequiredNote }\"\n>\n    @for (button of buttons; let indx = $index; track indx) {\n        <label\n            class=\"d-flex justify-content-center align-items-center radio-button-label\"\n            [ngClass]=\"{\n                checked: button.checked,\n                'no-checked': !button.checked,\n                disabled,\n                required: displayRequiredNote,\n            }\"\n            for=\"{{ button.id }}\"\n        >\n            <input\n                [id]=\"button.id\"\n                [name]=\"button.name\"\n                [value]=\"button.value\"\n                [checked]=\"button.checked\"\n                type=\"radio\"\n                class=\"radio-button\"\n                (change)=\"onChange(button)\"\n            />\n            <span class=\"radio-button-text\">{{ button.label }}</span>\n        </label>\n    }\n</div>\n","export class LastFuelPriceSvgRoutes {\n    static progressIconRoute: string =\n        'assets/ca-components/svg/common/ic_owner-status.svg';\n}\n","export class LastFuelPriceProgressConstants {\n    static LAST_FUEL_PRICE_COLORS: string[] = [\n        '#56B4AC',\n        '#77BF56',\n        '#FAB15C',\n        '#FF906D',\n        '#E66767',\n    ];\n}\n","export class LastFuelPriceProgressHelper {\n    static getSvgClassFromValue(\n        minValue: number,\n        maxValue: number,\n        totalValue: number,\n        isOutdated?: boolean,\n        isTableVariation?: boolean,\n        isCardVariation?: boolean\n    ): string {\n        if (isOutdated) return 'fuel-color-outdated';\n\n        // edge case: zero range in table/card context => place in the middle with color 3\n        if ((isTableVariation || isCardVariation) && maxValue === minValue) {\n            return 'fuel-color-3';\n        }\n\n        // calculate percentage of cost in relation to min and max values\n        const percentage =\n            ((totalValue - minValue) / (maxValue - minValue)) * 100;\n\n        // ensure percentage is within the range [0, 100]\n        const clampedPercentage = Math.min(Math.max(percentage, 0), 100);\n\n        // cap the effective maximum\n        // - 90% for card variation\n        // - 85% for table variation\n        // - 100% otherwise\n        const effectiveMax = isCardVariation ? 90 : isTableVariation ? 85 : 100;\n        const cappedPercentage = Math.min(clampedPercentage, effectiveMax);\n\n        // divide into 5 equal sections relative to the effective maximum\n        const sectionSize = effectiveMax / 5; // 17 when 85%, 20 when 100%\n        const colorSection = Math.min(\n            4,\n            Math.floor(cappedPercentage / sectionSize)\n        );\n\n        // return the appropriate class based on the section\n        return `fuel-color-${colorSection + 1}`;\n    }\n\n    static calculateSvgPosition(\n        minValue: number,\n        maxValue: number,\n        totalValue: number,\n        isOutdated?: boolean,\n        isTableVariation?: boolean,\n        isCardVariation?: boolean\n    ): { svgPosition: number; svgClass: string } {\n        // edge case: zero range in table/card context => place in the middle with color 3\n        if ((isTableVariation || isCardVariation) && maxValue === minValue) {\n            const effectiveMax = isCardVariation ? 90 : 85;\n\n            const svgPosition = effectiveMax / 2;\n            const svgClass = isOutdated\n                ? 'fuel-color-outdated'\n                : 'fuel-color-3';\n\n            return { svgPosition, svgClass };\n        }\n\n        // calculate percentage of cost in relation to min and max values\n        const percentage =\n            ((totalValue - minValue) / (maxValue - minValue)) * 100;\n\n        // ensure percentage is within the range [0, 100]\n        const clampedPercentage = Math.min(Math.max(percentage, 0), 100);\n\n        // calculate the position; apply 3% insets only for non-table/non-card variations\n        const effectiveMax = isCardVariation ? 90 : isTableVariation ? 85 : 100;\n\n        let svgPosition: number;\n\n        if (!isTableVariation && !isCardVariation) {\n            const minInsetPercent = 3;\n            const maxInsetPercent = 97;\n\n            const insetRange = maxInsetPercent - minInsetPercent;\n\n            const mappedPercent =\n                minInsetPercent + insetRange * (clampedPercentage / 100);\n\n            svgPosition = (mappedPercent / 100) * effectiveMax; // within insets\n        } else {\n            svgPosition = (clampedPercentage / 100) * effectiveMax; // direct mapping for table/card\n        }\n\n        // use the utility function to get the appropriate class for the SVG based on the value range\n        const svgClass = this.getSvgClassFromValue(\n            minValue,\n            maxValue,\n            totalValue,\n            isOutdated,\n            isTableVariation,\n            isCardVariation\n        );\n\n        return { svgPosition, svgClass };\n    }\n}\n","export enum eLastFuelPriceProgress {\n    DIESEL = 'Diesel',\n    DEF = 'DEF',\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { LastFuelPriceSvgRoutes } from './utils/svg-routes';\n\n// constants\nimport { LastFuelPriceProgressConstants } from './utils/constants';\n\n// helpers\nimport { LastFuelPriceProgressHelper } from './utils/helpers';\n\n// enums\nimport { eLastFuelPriceProgress } from './enums';\nimport { eStringPlaceholder, eUnit } from '../../enums';\n\n// interfaces\nimport {\n    ILastFuelPriceProgressConfig,\n    ILastFuelPriceProgressData,\n} from './interfaces';\n\n@Component({\n    selector: 'app-ca-last-fuel-price-progress',\n    templateUrl: './ca-last-fuel-price-progress.component.html',\n    styleUrl: './ca-last-fuel-price-progress.component.scss',\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n    ]\n})\nexport class CaLastFuelPriceProgressComponent implements OnInit {\n    @Input() set lastFuelPriceData(data: ILastFuelPriceProgressData) {\n        this.createLastFuelPriceCardData(data);\n    }\n\n    // svg routes\n    public lastFuelPriceSvgRoutes = LastFuelPriceSvgRoutes;\n\n    // enums\n    public eStringPlaceholder = eStringPlaceholder;\n    public eUnit = eUnit;\n\n    // config\n    public lastFuelPriceConfig: ILastFuelPriceProgressConfig[] = [];\n\n    public lastFuelPriceColors: string[] = [];\n\n    public isMapView: boolean = false;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.getConstantData();\n    }\n\n    private getConstantData(): void {\n        this.lastFuelPriceColors =\n            LastFuelPriceProgressConstants.LAST_FUEL_PRICE_COLORS;\n    }\n\n    private createLastFuelPriceCardData(\n        data: ILastFuelPriceProgressData\n    ): void {\n        const {\n            pricePerGallon,\n            lowestPricePerGallon,\n            highestPricePerGallon,\n            priceOutDated,\n            defPrice,\n            defLowestPrice,\n            defHighestPrice,\n            defPriceOutDated,\n            isMapView,\n        } = data;\n\n        const gallonSvgData = LastFuelPriceProgressHelper.calculateSvgPosition(\n            lowestPricePerGallon,\n            highestPricePerGallon,\n            pricePerGallon,\n            priceOutDated,\n        );\n        const defSvgData = LastFuelPriceProgressHelper.calculateSvgPosition(\n            defLowestPrice,\n            defHighestPrice,\n            defPrice\n        );\n\n        this.isMapView = isMapView;\n\n        let fuelPriceConfig = [\n            {\n                title: eLastFuelPriceProgress.DIESEL,\n                totalValue: pricePerGallon,\n                minValue: lowestPricePerGallon,\n                maxValue: highestPricePerGallon,\n                isOutdated: priceOutDated,\n                isMapView,\n                ...gallonSvgData,\n            },\n        ];\n\n        if (!isMapView)\n            fuelPriceConfig = [\n                ...fuelPriceConfig,\n                {\n                    title: eLastFuelPriceProgress.DEF,\n                    totalValue: defPrice,\n                    minValue: defLowestPrice,\n                    maxValue: defHighestPrice,\n                    isOutdated: defPriceOutDated,\n                    isMapView,\n                    ...defSvgData,\n                },\n            ];\n\n        this.lastFuelPriceConfig = [...fuelPriceConfig];\n    }\n}\n","<div\n    class=\"d-grid align-items-center last-fuel-price\"\n    [class.map-view]=\"isMapView\"\n>\n    @for (\n        fuelPrice of lastFuelPriceConfig;\n        let i = $index;\n        track fuelPrice.title\n    ) {\n        @let isSingleTransaction =\n            fuelPrice?.totalValue === fuelPrice?.minValue &&\n            fuelPrice?.minValue === fuelPrice?.maxValue;\n\n        @let isDisabled =\n            isSingleTransaction ||\n            fuelPrice?.isOutdated ||\n            !fuelPrice?.totalValue;\n\n        @let hasNoPurchaseCompanyWide =\n            !fuelPrice?.minValue && !fuelPrice?.maxValue;\n\n        <div\n            class=\"d-flex flex-column justify-content-center last-fuel-price-item\"\n            [ngClass]=\"{ disabled: isDisabled }\"\n        >\n            @if (!fuelPrice.isMapView) {\n                <p\n                    class=\"m-0 ca-font-bold text-size-11\"\n                    [ngClass]=\"\n                        isDisabled ? 'text-color-bw6-2' : 'text-color-black'\n                    \"\n                >\n                    {{ fuelPrice?.title }}\n                </p>\n\n                <span\n                    class=\"ca-font-medium text-size-18 total-value\"\n                    [ngClass]=\"\n                        isDisabled\n                            ? 'text-color-light-grey-2'\n                            : 'text-color-black'\n                    \"\n                >\n                    {{\n                        fuelPrice.totalValue\n                            ? eUnit.DOLLAR_SIGN + fuelPrice?.totalValue\n                            : hasNoPurchaseCompanyWide\n                              ? eStringPlaceholder.NA\n                              : eStringPlaceholder.NONE\n                    }}\n                </span>\n            }\n\n            <!-- Progress -->\n\n            <div\n                class=\"d-flex flex-column justify-content-center last-fuel-price-item-progress\"\n            >\n                <div\n                    class=\"d-grid align-items-center last-fuel-price-item-progress-bar\"\n                >\n                    @for (\n                        fuelPriceColor of lastFuelPriceColors;\n                        track fuelPriceColor\n                    ) {\n                        <div\n                            class=\"last-fuel-price-item-progress-bar-box\"\n                            [ngStyle]=\"{\n                                'background-color': fuelPriceColor,\n                            }\"\n                        ></div>\n                    }\n\n                    <!-- Progress Icon -->\n\n                    <svg-icon\n                        class=\"svg-size-22 progress-icon\"\n                        [ngClass]=\"fuelPrice?.svgClass\"\n                        [ngStyle]=\"{\n                            left:\n                                fuelPrice?.svgPosition + eUnit.PERCENTAGE_SIGN,\n                        }\"\n                        [src]=\"lastFuelPriceSvgRoutes.progressIconRoute\"\n                    ></svg-icon>\n                </div>\n\n                <div class=\"d-flex align-items-center justify-content-between\">\n                    <span\n                        class=\"ca-font-medium text-size-11\"\n                        [ngClass]=\"\n                            isDisabled\n                                ? 'text-color-muted'\n                                : 'text-color-black-2'\n                        \"\n                        >${{ fuelPrice?.minValue ?? eStringPlaceholder.NA }}\n                    </span>\n\n                    <span\n                        class=\"ca-font-medium text-size-11\"\n                        [ngClass]=\"\n                            isDisabled\n                                ? 'text-color-muted'\n                                : 'text-color-black-2'\n                        \"\n                        >${{ fuelPrice?.maxValue ?? eStringPlaceholder.NA }}\n                    </span>\n                </div>\n            </div>\n        </div>\n    }\n</div>\n","export class MapDropdownSvgRoutes {\n  static likeRoute: string = \"assets/ca-components/svg/map/like.svg\";\n  static dislikeRoute: string = \"assets/ca-components/svg/map/dislike.svg\";\n  static reviewRoute: string = \"assets/ca-components/svg/map/review.svg\";\n  static phoneRoute: string = \"assets/ca-components/svg/map/phone.svg\";\n  static emailRoute: string = \"assets/ca-components/svg/map/email.svg\";\n  static addressRoute: string = \"assets/ca-components/svg/map/address.svg\";\n  static cornerDownArrowRoute: string = \"assets/ca-components/svg/popup/resize-arrow.svg\";\n  static calenderRoute: string = \"assets/ca-components/svg/map/calender_last_used.svg\";\n  static calenderTwoRoute: string = \"assets/ca-components/svg/map/18px_tooltip.svg\";\n  static cornerTopArrowRoute: string = \"assets/ca-components/svg/map/arrow_corner_top.svg\";\n  static vechileRoute: string = \"assets/ca-components/svg/map/accident_vechile.svg\";\n  static injuryRoute: string = \"assets/ca-components/svg/map/accident_injury.svg\";\n  static hazmatRoute: string = \"assets/ca-components/svg/map/accident_hazmat.svg\";\n  static towingRoute: string = \"assets/ca-components/svg/map/accident_towing.svg\";\n  static accidentCalenderRoute: string = \"assets/ca-components/svg/map/accident_calender.svg\";\n  static ossRoute: string = \"assets/ca-components/svg/map/oss.svg\";\n  static permanentlyClosedRoute: string = 'assets/ca-components/svg/map/ic_permanently_closed.svg';\n  static favoriteRoute: string = 'assets/ca-components/svg/map/ic_favorite.svg';\n  static backButtonRoute: string = 'assets/ca-components/svg/pickup-delivery/arrowLeft.svg';\n  static dateDeactivatedRoute: string = 'assets/ca-components/svg/map/ic_date_deactivated.svg';\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Models\nimport { MapDropdownContentItem } from '../models';\n\n@Pipe({\n  standalone: true,\n  name: 'mapDropdownContentType',\n})\nexport class MapDropdownContentPipe implements PipeTransform {\n  transform(item: MapDropdownContentItem): MapDropdownContentItem | null {\n    if (item) return item;\n\n    return null;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Models\nimport { MapDropdownClusterItem } from '../models';\n\n@Pipe({\n  standalone: true,\n  name: 'mapDropdownClusterContentType',\n})\nexport class MapDropdownClusterContentPipe implements PipeTransform {\n  transform(item: MapDropdownClusterItem): MapDropdownClusterItem | null {\n    if (item) return item;\n\n    return null;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Models\nimport { MapDropdownContentItem } from '../models';\n\n@Pipe({\n  name: 'mapDropdownValue',\n  standalone: true,\n})\nexport class MapDropdownValuePipe implements PipeTransform {\n  transform(value: any, itemRow: MapDropdownContentItem): string {\n    if (!value || !itemRow) return '/';\n    let itemValue = '/';\n\n    if (value[itemRow.field]) {\n      if (itemRow.thirdField && itemRow.secondField)\n        itemValue =\n          value[itemRow.field][itemRow.secondField]?.[itemRow.thirdField] !==\n          null\n            ? value[itemRow.field][itemRow.secondField]?.[itemRow.thirdField]\n            : '/';\n      else if (itemRow.secondField)\n        itemValue =\n          value[itemRow.field][itemRow.secondField] !== null\n            ? value[itemRow.field][itemRow.secondField]\n            : '/';\n      else\n        itemValue = value[itemRow.field] !== null ? value[itemRow.field] : '/';\n    }\n\n    return itemValue;\n  }\n}\n","export enum eMapDropdownString {\n    // Dropdown Content Templates\n    HEADER_TITLE = 'header-title',\n    RATING_REVIEW = 'rating-review',\n    DIVIDER = 'divider',\n    REPAIR_SHOP_SERVICES = 'repair-shop-services',\n    FUEL_PRICE_RANGE = 'fuel-price-range',\n    STOP_TYPE = 'stop-type',\n    ICON_TEXT = 'icon-text',\n    TITLE = 'title',\n    TITLE_COUNT = 'title-count',\n    MONEY_TEXT = 'money-text',\n    OPEN_HOURS = 'open-hours',\n    TEXT_COUNT = 'text-count',\n    SUBTITLE = 'subtitle',\n    TEXT = 'text',\n    SMALL_SUBTITLE = 'small-subtitle',\n    DATE = 'date',\n    TRAVEL_TIME = 'travel-time',\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule, SvgIconRegistryService } from 'angular-svg-icon';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaLastFuelPriceProgressComponent } from '../ca-last-fuel-price-progress/ca-last-fuel-price-progress.component';\n\n// json\nimport taDetailDropdownJson from '../../../assets/json/ta-detail-dropdown.json';\n\n// svg-routes\nimport { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes';\n\n// models\nimport {\n    DropDownData,\n    IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\nimport { MapDropdownClusterItem, MapDropdownContent } from './models';\nimport { ILastFuelPriceProgressData } from '../ca-last-fuel-price-progress/interfaces';\n\n// pipes\nimport { CaSvgPipe } from '../../pipes/ca-svg.pipe';\nimport {\n    MapDropdownContentPipe,\n    MapDropdownClusterContentPipe,\n    MapDropdownValuePipe,\n} from './pipes';\nimport { DatePipe } from '@angular/common';\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../pipes/date-from-string.pipe';\nimport { FormatDurationPipe } from '../../pipes/format-duration.pipe';\n\n// enums\nimport { eMapDropdownString } from './enums';\n\n@Component({\n    selector: 'app-ca-map-dropdown',\n    imports: [\n        //modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbTooltip,\n        // components\n        CaAppTooltipV2Component,\n        CaLastFuelPriceProgressComponent,\n        // pipes\n        CaSvgPipe,\n        MapDropdownContentPipe,\n        MapDropdownClusterContentPipe,\n        MapDropdownValuePipe,\n        DatePipe,\n        DateFromStringPipe,\n        FormatCurrencyPipe,\n        FormatDurationPipe,\n    ],\n    templateUrl: './ca-map-dropdown.component.html',\n    styleUrls: ['./ca-map-dropdown.component.scss'],\n    providers: [SvgIconRegistryService]\n})\nexport class CaMapDropdownComponent<T> {\n    @Input() set infoWindowContent(values: MapDropdownContent | null) {\n        this._infoWindowContent = values;\n\n        if (\n            values?.selectedClusterItemData?.data?.hasOwnProperty(\n                'pricePerGallon'\n            )\n        )\n            this.setFuelPriceData(values?.selectedClusterItemData?.data);\n    }\n    @Input() set markerData(values: T) {\n        this._markerData = values;\n        this.isHidden = true;\n\n        if (values?.hasOwnProperty('pricePerGallon'))\n            this.setFuelPriceData(values);\n    }\n\n    @Output() onClusterItemClick: EventEmitter<number> = new EventEmitter();\n    @Output() onClusterListScrollToEnd = new EventEmitter();\n    @Output() onBackButtonClick = new EventEmitter();\n    @Output() bodyActions: EventEmitter<IDropDownActions> = new EventEmitter();\n\n    public isHidden: boolean = true;\n    public isShowAllDaysActive: boolean = false;\n\n    public data: DropDownData[] = taDetailDropdownJson.taDetailDropDown;\n    public _markerData: T | null = null;\n    public _infoWindowContent: MapDropdownContent | null = null;\n    public fuelPriceRangeData: ILastFuelPriceProgressData | null = null;\n\n    public mapDropdownSvgRoutes = MapDropdownSvgRoutes;\n    public eMapDropdownString = eMapDropdownString;\n\n    public showHiddenData(event: Event): void {\n        this.preventEventPropagation(event, true);\n\n        this.isHidden = !this.isHidden;\n    }\n\n    public callBodyAction(action: IDropDownActions): void {\n        this.bodyActions.emit(action);\n    }\n\n    public clusterItemClick(item: MapDropdownClusterItem): void {\n        if (item?.id) this.onClusterItemClick?.emit(item.id);\n    }\n\n    public backButtonClick(event: Event): void {\n        this.preventEventPropagation(event);\n\n        this.onBackButtonClick.emit();\n    }\n\n    public showAllDaysClick(): void {\n        this.isShowAllDaysActive = !this.isShowAllDaysActive;\n    }\n\n    public onClusterListScroll(event: Event): void {\n        this.preventEventPropagation(event);\n\n        if (\n            this._infoWindowContent?.clusterData &&\n            this._infoWindowContent?.clusterData?.length >= 25\n        ) {\n            const scrollElement = document.querySelector(\n                '.cluster-marker-container'\n            ) as HTMLElement;\n\n            if (\n                scrollElement?.offsetHeight + scrollElement?.scrollTop >=\n                scrollElement?.scrollHeight - 105\n            )\n                this.onClusterListScrollToEnd.emit();\n        }\n    }\n\n    public preventEventPropagation(\n        event: Event,\n        preventDefault?: boolean\n    ): void {\n        if (preventDefault) event.preventDefault();\n        event.stopPropagation();\n    }\n\n    public setFuelPriceData(markerData: T): void {\n        const {\n            pricePerGallon,\n            lowestPricePerGallon,\n            highestPricePerGallon,\n            priceOutDated,\n            defPrice,\n            defLowestPrice,\n            defHighestPrice,\n            defPriceOutDated,\n            dieselLastUsed,\n        } = markerData as ILastFuelPriceProgressData;\n\n        if (markerData)\n            this.fuelPriceRangeData = {\n                pricePerGallon,\n                lowestPricePerGallon,\n                highestPricePerGallon,\n                priceOutDated,\n                defPrice,\n                defLowestPrice,\n                defHighestPrice,\n                defPriceOutDated,\n                dieselLastUsed,\n                isMapView: true,\n            };\n    }\n}\n","@if (_infoWindowContent?.clusterData) {\n    @if (_infoWindowContent?.selectedClusterItemData) {\n        <div\n            class=\"marker-container relative\"\n            [class.expanded]=\"!isHidden\"\n            (click)=\"preventEventPropagation($event, true)\"\n            (mousewheel)=\"preventEventPropagation($event)\"\n        >\n            @if (_infoWindowContent?.selectedClusterItemData?.mainContentTemplate) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        _infoWindowContent?.selectedClusterItemData?.mainContentTemplate;\n                        context: {\n                            data: _infoWindowContent?.selectedClusterItemData\n                                .data,\n                            isCluster: true,\n                        }\n                    \"\n                ></ng-container>\n            } @else {\n                @for (\n                    item of _infoWindowContent?.selectedClusterItemData\n                        .mainContent;\n                    let i = $index;\n                    track i\n                ) {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            dropdownContentTemplate;\n                            context: {\n                                content: item,\n                                data: _infoWindowContent\n                                    ?.selectedClusterItemData.data,\n                                isCluster: true,\n                            }\n                        \"\n                    ></ng-container>\n                }\n            }\n\n            <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n                @if (_infoWindowContent?.selectedClusterItemData?.expandedContentTemplate) {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            _infoWindowContent?.selectedClusterItemData?.expandedContentTemplate;\n                            context: {\n                                data: _infoWindowContent\n                                    ?.selectedClusterItemData.data,\n                            }\n                        \"\n                    ></ng-container>\n                } @else {\n                    @for (\n                        item of _infoWindowContent?.selectedClusterItemData\n                            .expandedContent;\n                        let i = $index;\n                        track i\n                    ) {\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                dropdownContentTemplate;\n                                context: {\n                                    content: item,\n                                    data: _infoWindowContent\n                                        ?.selectedClusterItemData.data,\n                                }\n                            \"\n                        ></ng-container>\n                    }\n                }\n            </div>\n\n            @if (\n                _infoWindowContent?.selectedClusterItemData?.expandedContentTemplate ||\n                _infoWindowContent?.expandedContentTemplate ||\n                _infoWindowContent?.expandedContent?.length\n            ) {\n                <div\n                    class=\"dropdown-arrow align-self-end\"\n                    [class.rotate-arrow]=\"!isHidden\"\n                >\n                    <svg-icon\n                        [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n                        (click)=\"showHiddenData($event)\"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n    } @else {\n        <div\n            class=\"cluster-marker-container d-flex flex-column gap-1\"\n            (click)=\"preventEventPropagation($event, true)\"\n            (mousewheel)=\"onClusterListScroll($event)\"\n        >\n            @for (\n                item of _infoWindowContent?.clusterData;\n                let i = $index;\n                track i\n            ) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        clusterContentTemplate;\n                        context: {\n                            content: item,\n                        }\n                    \"\n                ></ng-container>\n            }\n        </div>\n    }\n} @else {\n    <div\n        class=\"marker-container relative\"\n        [class.expanded]=\"!isHidden || _infoWindowContent?.isAlwaysExpanded\"\n        (click)=\"preventEventPropagation($event, true)\"\n        (mousewheel)=\"preventEventPropagation($event)\"\n    >\n        @if (_infoWindowContent?.mainContentTemplate) {\n            <ng-container\n                *ngTemplateOutlet=\"\n                    _infoWindowContent!.mainContentTemplate!;\n                    context: {\n                        data: _markerData,\n                    }\n                \"\n            ></ng-container>\n        } @else {\n            @for (\n                item of _infoWindowContent?.mainContent;\n                let i = $index;\n                track i\n            ) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        dropdownContentTemplate;\n                        context: {\n                            content: item,\n                            data: _markerData,\n                        }\n                    \"\n                ></ng-container>\n            }\n        }\n\n        <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n            @if (_infoWindowContent?.expandedContentTemplate) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        _infoWindowContent!.expandedContentTemplate!;\n                        context: {\n                            data: _markerData,\n                        }\n                    \"\n                ></ng-container>\n            } @else {\n                @for (\n                    item of _infoWindowContent?.expandedContent;\n                    let i = $index;\n                    track i\n                ) {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            dropdownContentTemplate;\n                            context: {\n                                content: item,\n                                data: _markerData,\n                            }\n                        \"\n                    ></ng-container>\n                }\n            }\n        </div>\n\n        @if (\n            _infoWindowContent?.expandedContentTemplate ||\n            _infoWindowContent?.expandedContent?.length\n        ) {\n            <div\n                class=\"dropdown-arrow align-self-end\"\n                [class.rotate-arrow]=\"!isHidden\"\n            >\n                <svg-icon\n                    [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n                    (click)=\"showHiddenData($event)\"\n                ></svg-icon>\n            </div>\n        }\n    </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n    @let item = content | mapDropdownClusterContentType;\n    @if (item) {\n        <div\n            class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n            (click)=\"clusterItemClick(item)\"\n        >\n            <div\n                class=\"d-flex align-items-center gap-1\"\n                [ngStyle]=\"{\n                    'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n                }\"\n            >\n                @if (item.isClosed) {\n                    <svg-icon\n                        class=\"d-flex svg-size-18\"\n                        [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n                    ></svg-icon>\n                }\n                <div\n                    class=\"regular-text dark-gray-text text-uppercase text-ellipsis\"\n                >\n                    {{ item.name }}\n                </div>\n            </div>\n\n            @if (item.favourite) {\n                <svg-icon\n                    class=\"d-flex svg-size-18\"\n                    [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n                ></svg-icon>\n            }\n        </div>\n    }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n    @let item = content | mapDropdownContentType;\n    @if (item) {\n        @if (!item.sideBySideInfo) {\n            <ng-container\n                *ngTemplateOutlet=\"\n                    dropdownContentItemTemplates;\n                    context: {\n                        content: item,\n                        data: data,\n                    }\n                \"\n            ></ng-container>\n        } @else {\n            <!-- Side by Side Data -->\n            <div class=\"d-flex align-items-center\">\n                <!-- Left Side -->\n                @if (item.sideBySideInfo.leftSide) {\n                    <div class=\"flex-1\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                dropdownContentItemTemplates;\n                                context: {\n                                    content: item.sideBySideInfo?.leftSide,\n                                    data: data,\n                                }\n                            \"\n                        >\n                        </ng-container>\n                    </div>\n                }\n\n                <!-- Right Side -->\n                @if (item.sideBySideInfo.rightSide) {\n                    <div class=\"flex-1\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                dropdownContentItemTemplates;\n                                context: {\n                                    content: item.sideBySideInfo?.rightSide,\n                                    data: data,\n                                }\n                            \"\n                        >\n                        </ng-container>\n                    </div>\n                }\n            </div>\n        }\n    }\n</ng-template>\n\n<ng-template\n    #dropdownContentItemTemplates\n    let-content=\"content\"\n    let-data=\"data\"\n>\n    @let item = content | mapDropdownContentType;\n    @if (item) {\n        @switch (item?.template) {\n            @case (eMapDropdownString.HEADER_TITLE) {\n                <div\n                    class=\"heading d-flex justify-content-between align-items-center {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    <div\n                        class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n                    >\n                        @if (item.hasBackButton) {\n                            <div\n                                class=\"header-back-button d-flex align-items-center justify-content-center\"\n                                (click)=\"backButtonClick($event)\"\n                            >\n                                <svg-icon\n                                    class=\"d-flex svg-size-14\"\n                                    [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n                                >\n                                </svg-icon>\n                            </div>\n                        }\n\n                        <span\n                            class=\"header ca-font-extra-bold dark-gray-text {{\n                                item.customClassText\n                            }}\"\n                        >\n                            {{ data | mapDropdownValue: item }}\n                        </span>\n                    </div>\n                </div>\n            }\n\n            <!-- Rating Review -->\n            @case (eMapDropdownString.RATING_REVIEW) {\n                <div\n                    class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    <div\n                        class=\"d-flex justify-content-start align-items-center gap-2\"\n                        [class.opacity-40]=\"!data[item.field].likeCount\"\n                    >\n                        <svg-icon\n                            class=\"rating-icon like-icon d-flex svg-size-14\"\n                            [class.active]=\"data[item.field].hasLiked\"\n                            [src]=\"mapDropdownSvgRoutes.likeRoute\"\n                        ></svg-icon>\n                        <span\n                            class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n                            >{{ data[item.field].likeCount }}\n                        </span>\n                    </div>\n                    <div\n                        class=\"d-flex justify-content-start align-items-center gap-2\"\n                        [class.opacity-40]=\"!data[item.field].dislikeCount\"\n                    >\n                        <svg-icon\n                            class=\"rating-icon dislike-icon d-flex svg-size-14\"\n                            [class.active]=\"data[item.field].hasDislike\"\n                            [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n                        ></svg-icon>\n                        <span\n                            class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n                            >{{ data[item.field].dislikeCount }}\n                        </span>\n                    </div>\n                    <div\n                        class=\"d-flex justify-content-start align-items-center gap-2\"\n                        [class.opacity-40]=\"!data[item.field].reviewCount\"\n                    >\n                        <svg-icon\n                            class=\"rating-icon review-icon d-flex svg-size-14\"\n                            [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n                        ></svg-icon>\n                        <span\n                            class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n                            >{{ data[item.field].reviewCount ?? 0 }}\n                        </span>\n                    </div>\n                </div>\n            }\n\n            <!-- Border Divider -->\n            @case (eMapDropdownString.DIVIDER) {\n                <div class=\"info-divider\"></div>\n            }\n\n            <!-- Repair Shop Services -->\n            @case (eMapDropdownString.REPAIR_SHOP_SERVICES) {\n                <div\n                    class=\"d-flex align-items-center justify-content-between {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    @for (\n                        service of data[item.field];\n                        let i = $index;\n                        track i\n                    ) {\n                        <div\n                            class=\"d-flex align-items-center justify-content-center\"\n                            ngbTooltip\n                            [tooltipBackground]=\"'#424242'\"\n                            [mainCaTooltip]=\"service.serviceType.name\"\n                            position=\"bottom\"\n                        >\n                            <svg-icon\n                                class=\"repair-service-icon svg-size-18\"\n                                [class.active]=\"service.active\"\n                                [src]=\"\n                                    service.logoName\n                                        | caSvg: 'common' : 'repair-services'\n                                \"\n                            ></svg-icon>\n                        </div>\n                    }\n                </div>\n            }\n\n            <!-- Icon and Text -->\n            @case (eMapDropdownString.ICON_TEXT) {\n                <div\n                    class=\"d-flex align-items-start gap-1 {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    @if (item.url) {\n                        <div\n                            ngbTooltip\n                            [tooltipBackground]=\"'#424242'\"\n                            [mainCaTooltip]=\"item.iconTooltipText\"\n                            position=\"bottom\"\n                            [disableTooltip]=\"!item.iconTooltipText\"\n                        >\n                            <svg-icon\n                                class=\"d-flex align-items-center justify-content-center svg-size-18\"\n                                [src]=\"item.url\"\n                            ></svg-icon>\n                        </div>\n                    }\n\n                    <span\n                        class=\"regular-text dark-gray-text {{\n                            item.customClassText\n                        }}\"\n                    >\n                        {{\n                            item.isDate\n                                ? (data[item.field] | date: 'MM/dd/yy')\n                                : (data | mapDropdownValue: item)\n                        }}\n                    </span>\n                </div>\n            }\n\n            <!-- Title -->\n            @case (eMapDropdownString.TITLE) {\n                <div\n                    class=\"regular-text dark-gray-text ca-font-extra-bold {{\n                        item.customClassText\n                    }}\"\n                >\n                    {{ data | mapDropdownValue: item }}\n                </div>\n            }\n\n            <!-- Title and Count -->\n            @case (eMapDropdownString.TITLE_COUNT) {\n                <div\n                    class=\"d-flex align-items-center gap-1 {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n                        {{ item.title }}\n                    </div>\n                    <div\n                        class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n                    >\n                        {{\n                            item.isDuration\n                                ? (data[item.field] | formatDuration)\n                                : (data | mapDropdownValue: item)\n                        }}\n                    </div>\n                </div>\n            }\n\n            <!-- Money Text  -->\n            @case (eMapDropdownString.MONEY_TEXT) {\n                <div\n                    class=\"d-flex align-items-center gap-1 {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    <div class=\"regular-text ca-font-bold blue-text\">\n                        {{\n                            data?.[item.field] !== ''\n                                ? (data[item.field] | formatCurrency)\n                                : '$0'\n                        }}\n                    </div>\n                    <div class=\"regular-text light-gray-text ca-font-bold\">\n                        {{ item.title }}\n                    </div>\n                </div>\n            }\n\n            <!-- Open Hours -->\n            @case (eMapDropdownString.OPEN_HOURS) {\n                <div class=\"d-flex flex-column gap-2\">\n                    <div\n                        class=\"regular-text dark-gray-text ca-font-extra-bold {{\n                            item.customClassText\n                        }}\"\n                    >\n                        {{ item.title }}\n                    </div>\n                    <div class=\"open-hours-grid\">\n                        @if (\n                            data[item.field]?.openHoursToday &&\n                            !isShowAllDaysActive\n                        ) {\n                            <div class=\"d-flex flex-column flex-1\">\n                                <div\n                                    class=\"small-text dark-gray-text ca-font-bold\"\n                                >\n                                    {{ data[item.field].openHoursToday.status }}\n                                </div>\n                                <div\n                                    class=\"regular-text dark-gray-text text-ellipsis\"\n                                >\n                                    {{ data[item.field].openHoursToday.info }}\n                                </div>\n                            </div>\n                        }\n\n                        @if (data[item.field]?.openHours?.length) {\n                            @if (isShowAllDaysActive) {\n                                @for (\n                                    day of data[item.field].openHours;\n                                    let i = $index;\n                                    track i\n                                ) {\n                                    <div class=\"d-flex flex-column flex-1\">\n                                        <div\n                                            class=\"small-text dark-gray-text ca-font-bold\"\n                                        >\n                                            {{ day.dayOfWeek }}\n                                        </div>\n                                        <div\n                                            class=\"regular-text dark-gray-text text-ellipsis\"\n                                        >\n                                            {{\n                                                day.startTime +\n                                                    ' - ' +\n                                                    day.endTime\n                                            }}\n                                        </div>\n                                    </div>\n                                }\n                            }\n                            <div\n                                class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n                            >\n                                <div\n                                    class=\"d-flex align-items-center gap-1\"\n                                    (click)=\"showAllDaysClick()\"\n                                >\n                                    <svg-icon\n                                        class=\"d-flex svg-size-14\"\n                                        [src]=\"\n                                            mapDropdownSvgRoutes.accidentCalenderRoute\n                                        \"\n                                    ></svg-icon>\n                                    <div\n                                        class=\"regular-text gray-text cursor-pointer\"\n                                    >\n                                        {{\n                                            isShowAllDaysActive\n                                                ? 'Show today'\n                                                : 'Show all days'\n                                        }}\n                                    </div>\n                                </div>\n                            </div>\n                        }\n                    </div>\n                </div>\n            }\n\n            <!-- Text and Count -->\n            @case (eMapDropdownString.TEXT_COUNT) {\n                <div\n                    class=\"d-flex align-items-center gap-1 {{\n                        item.customClassContainer\n                    }}\"\n                >\n                    <div class=\"regular-text {{ item.customClassText }}\">\n                        {{ item.title }}\n                    </div>\n                    <div\n                        class=\"regular-text ca-font-semi-bold {{\n                            item.customClassText\n                        }}\"\n                    >\n                        {{ data | mapDropdownValue: item }}\n                    </div>\n                </div>\n            }\n\n            <!-- Subtitle -->\n            @case (eMapDropdownString.SUBTITLE) {\n                <div\n                    class=\"regular-text dark-gray-text ca-font-extra-bold {{\n                        item.customClassText\n                    }}\"\n                >\n                    {{ item.title }}\n                </div>\n            }\n\n            <!-- Regular Text -->\n            @case (eMapDropdownString.TEXT) {\n                <div class=\"regular-text black-text {{ item.customClassText }}\">\n                    {{\n                        item.isDate\n                            ? (data[item.field] | date: 'MM/dd/yy hh:mm a')\n                            : (data | mapDropdownValue: item)\n                    }}\n                </div>\n            }\n\n            <!-- Small Subtitle -->\n            @case (eMapDropdownString.SMALL_SUBTITLE) {\n                <div\n                    class=\"small-text dark-gray-text {{ item.customClassText }}\"\n                >\n                    {{ item.title }}\n                </div>\n            }\n\n            <!-- Date -->\n            @case (eMapDropdownString.DATE) {\n                <div class=\"regular-text black-text {{ item.customClassText }}\">\n                    {{ data[item.field] | date }}\n                </div>\n            }\n\n            <!-- Fuel Price Range -->\n            @case (eMapDropdownString.FUEL_PRICE_RANGE) {\n                @if (fuelPriceRangeData) {\n                    <div\n                        class=\"d-flex align-items-center justify-content-between gap-1\"\n                    >\n                        <div class=\"d-flex flex-column\">\n                            <div\n                                class=\"text-size-14 ca-font-semi-bold\"\n                                [ngClass]=\"\n                                    fuelPriceRangeData.priceOutDated\n                                        ? 'text-color-muted'\n                                        : 'text-color-black'\n                                \"\n                            >\n                                {{\n                                    fuelPriceRangeData.pricePerGallon\n                                        | formatCurrency\n                                }}\n                            </div>\n                            <div class=\"text-size-11 text-color-muted\">\n                                {{\n                                    fuelPriceRangeData.dieselLastUsed\n                                        | dateFromStringPipe: 'time-ago'\n                                }}\n                            </div>\n                        </div>\n\n                        <app-ca-last-fuel-price-progress\n                            [lastFuelPriceData]=\"fuelPriceRangeData\"\n                        ></app-ca-last-fuel-price-progress>\n                    </div>\n                }\n            }\n\n            <!-- Miles Stop Type -->\n            @case (eMapDropdownString.STOP_TYPE) {\n                <div class=\"regular-text {{ item.customClassText }}\">\n                    {{ data | mapDropdownValue: item }}\n\n                    @if (data.businessName) {\n                        <span\n                            class=\"text-size-14 ca-font-medium text-color-muted text-uppercase\"\n                            >- {{ data.businessName }}</span\n                        >\n                    }\n                </div>\n            }\n\n            <!-- Travel Time -->\n            @case (eMapDropdownString.TRAVEL_TIME) {\n                <div class=\"regular-text {{ item.customClassText }}\">\n                    {{\n                        {\n                            days: 0,\n                            hours: data[item.field],\n                            minutes: data[item.secondField!],\n                            seconds: 0,\n                        } | formatDuration\n                    }}\n                </div>\n            }\n        }\n    }\n</ng-template>\n","import { IMapMarkers, IRoutePath } from '../../models';\n\nexport class MapHelper {\n    static getIconForUnitViewStops = (color: string, id: number | string) => {\n        const svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"31\" height=\"34\" viewBox=\"0 0 44 48.364\">\n                              <defs>\n                                  <filter  id=\"Path_41824\"  x=\"0\"  y=\"0\"  width=\"44\"  height=\"48.364\" filterUnits=\"userSpaceOnUse\">\n                                      <feOffset input=\"SourceAlpha\" />\n                                      <feGaussianBlur  stdDeviation=\"2\"  result=\"blur\"/>\n                                      <feFlood flood-opacity=\"0.149\" />\n                                      <feComposite  operator=\"in\"  in2=\"blur\"/>\n                                      <feComposite in=\"SourceGraphic\" />\n                                  </filter>\n                              </defs>\n                              <g  id=\"Group_103737\"  data-name=\"Group 103737\" transform=\"translate(-1095 -945)\">\n                                  <circle id=\"Ellipse_9165\"  data-name=\"Ellipse 9165\"  cx=\"4\"  cy=\"4\"  r=\"6\"  transform=\"translate(1113 983)\" fill=\"${color}\"/>\n                                  <circle  id=\"Ellipse_9166\"  data-name=\"Ellipse 9166\" cx=\"2\"  cy=\"2\"  r=\"2\"\n                                      transform=\"translate(1115 985.5)\"  fill=\"#fff\" />\n                              </g>\n                              <g  transform=\"matrix(1, 0, 0, 1, 0, 0)\" filter=\"url(#Path_41824)\">\n                                  <path id=\"Path_41824-2\" data-name=\"Path 41824\" d=\"M32,15.962A15.956,15.956,0,0,1,24.942,29.2c-.035.026-.551.345-.755.479-4.9,3.113-6.863,5.215-7.654,6.394a.641.641,0,0,1-.886.18.665.665,0,0,1-.18-.18c-.791-1.18-2.762-3.281-7.654-6.394-.223-.138-.719-.452-.755-.479A15.975,15.975,0,1,1,32,15.962\"\n                                  transform=\"translate(6 6)\" fill=\"#fff\"/>\n                              </g>\n                              <circle id=\"Ellipse_9255\" data-name=\"Ellipse 9255\" cx=\"13\" cy=\"13\" r=\"13\" transform=\"translate(9 9.001)\" fill= \"${color}\"/>\n                                  <text dominant-baseline=\"middle\" text-anchor=\"middle\" id=\"_1\" data-name=\"1\" transform=\"translate(22 27.001)\" fill=\"#fff\" font-size=\"14\"\n                                    font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"700\"><tspan y=\"-3\">${id}</tspan>\n                                    </text>\n                            </svg>`;\n        const url =\n            'data:image/svg+xml;charset=UTF-8,' +\n            encodeURIComponent(svgTemplate);\n        return url;\n    };\n\n    static getIconForDriveMiles = (color: string, id: number | string) => {\n        const svgTemplate = `<svg width=\"18\" height=\"25\" viewBox=\"0 0 18 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <circle cx=\"9\" cy=\"22\" r=\"3\" fill=\"${color}\"/>\n        <circle cx=\"9\" cy=\"22\" r=\"1.5\" fill=\"white\"/>\n        <path d=\"M18 9.09915C18 11.3366 17.166 13.4937 15.66 15.1491L9.39649 21.8286C9.18153 22.0572 8.81849 22.0572 8.60352 21.8286L2.33997 15.1491C-1.85302 10.5362 -0.359978 2.75614 6.409 0.414645C7.55604 0.0176113 8.79346 -0.0978672 9.99354 0.0836513C14.9535 0.833651 18.0015 4.81961 18 9.09915Z\" fill=\"${color}\"/>\n        <circle cx=\"9\" cy=\"9\" r=\"7\" fill=\"white\"/>\n        <text x=\"9\" y=\"9\"  text-anchor=\"middle\" fill=\"${color}\" font-size=\"8\" font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"600\" dy=\".3em\">${id}</text>\n      </svg>`;\n        const url =\n            'data:image/svg+xml;charset=UTF-8,' +\n            encodeURIComponent(svgTemplate);\n        return url;\n    };\n\n    static getLocationIcon(color: string) {\n        let svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\"><g transform=\"translate(-181 -295)\"><rect width=\"13\" height=\"13\" rx=\"6.5\" transform=\"translate(181 295)\" fill=\"${color}\"/><rect width=\"5\" height=\"5\" rx=\"2.5\" transform=\"translate(185 299)\" fill=\"#fff\"/></g></svg>`;\n        const url =\n            'data:image/svg+xml;charset=UTF-8,' +\n            encodeURIComponent(svgTemplate);\n        return url;\n    }\n\n    static getFillColorForState(\n        stateDensity: number,\n        View: string\n    ): { fillColor: string; fillOpacity: number } {\n        let fillColor = '#EEEEEE';\n        let fillOpacity = 1;\n\n        const getFleetViewColor = (density: number) => {\n            if (density < 50) return { fillColor: '#EF5350', fillOpacity: 0.8 };\n            else if (density < 100)\n                return { fillColor: '#EF5350', fillOpacity: 1 };\n            else if (density < 500)\n                return { fillColor: '#00967E', fillOpacity: 0.8 };\n            else if (density < 1000)\n                return { fillColor: '#00967E', fillOpacity: 1 };\n            return { fillColor: '#EEEEEE', fillOpacity: 1 };\n        };\n\n        const getUnitViewColor = (density: number) => {\n            if (density < 50) return { fillColor: '#FFA726', fillOpacity: 0.3 };\n            else if (density < 100)\n                return { fillColor: '#FFA726', fillOpacity: 0.6 };\n            else if (density < 500)\n                return { fillColor: '#FFA726', fillOpacity: 0.9 };\n            else if (density < 1000)\n                return { fillColor: '#FFA726', fillOpacity: 1 };\n            return { fillColor: '#EEEEEE', fillOpacity: 1 };\n        };\n\n        switch (View) {\n            case 'fleetView':\n                ({ fillColor, fillOpacity } = getFleetViewColor(stateDensity));\n                break;\n            case 'unitView':\n                ({ fillColor, fillOpacity } = getUnitViewColor(stateDensity));\n                break;\n            default:\n                break;\n        }\n        return {\n            fillColor: fillColor,\n            fillOpacity: fillOpacity,\n        };\n    }\n\n    static getMapCenterAndZoom(markers: IMapMarkers[]): {\n        mapCenter: IRoutePath;\n        bounds?: google.maps.LatLngBounds | null;\n        mapZoom?: number | null;\n    } {\n        // Calculate center\n        const coordinates: { lat: number[]; lng: number[] } = {\n            lat: [],\n            lng: [],\n        };\n\n        // Calculate zoom\n        const bounds: google.maps.LatLngBounds | null =\n            markers?.length > 1 ? new google.maps.LatLngBounds() : null;\n\n        if (markers?.length > 1) {\n            markers.forEach((marker) => {\n                coordinates.lat.push(Number(marker.position.lat));\n                coordinates.lng.push(Number(marker.position.lng));\n\n                bounds?.extend({\n                    lat: Number(marker.position.lat),\n                    lng: Number(marker.position.lng),\n                });\n            });\n        }\n\n        const averageLng =\n            markers?.length > 1\n                ? (Math.max(...coordinates.lng) +\n                      Math.min(...coordinates.lng)) /\n                  2\n                : markers[0].position.lng;\n        const averageLat =\n            markers?.length > 1\n                ? (Math.max(...coordinates.lat) +\n                      Math.min(...coordinates.lat)) /\n                  2\n                : markers[0].position.lat;\n\n        const mapCenter = { lat: averageLat, lng: averageLng };\n\n        const mapZoom = markers.length === 1 ? 8 : null;\n\n        return { mapCenter, bounds, mapZoom };\n    }\n\n    static getMapScaleDistance(map: google.maps.Map): {\n        roundedMiles: number;\n        pixelLength: number;\n    } {\n        const center = map.getCenter();\n        const zoom = map.getZoom();\n\n        if (!center || zoom == null) return { roundedMiles: 0, pixelLength: 0 };\n\n        const lat = center.lat();\n        const metersPerPixel =\n            (156543.03392 * Math.cos((lat * Math.PI) / 180)) /\n            Math.pow(2, zoom);\n\n        const maxBarPx = 100;\n        const rawMeters = metersPerPixel * maxBarPx;\n\n        const rawMiles = rawMeters / 1609.34;\n        const roundedMiles = this.getRoundedMiles(rawMiles);\n\n        const roundedMeters = roundedMiles * 1609.34;\n        const pixelLength = roundedMeters / metersPerPixel;\n\n        return {\n            roundedMiles,\n            pixelLength,\n        };\n    }\n\n    static getRoundedMiles(miles: number): number {\n        if (miles <= 0) return 0;\n\n        const exponent = Math.floor(Math.log10(miles));\n        const fraction = miles / Math.pow(10, exponent);\n        let roundedFraction: number;\n\n        if (fraction < 1.5) roundedFraction = 1;\n        else if (fraction < 3) roundedFraction = 2;\n        else if (fraction < 7) roundedFraction = 5;\n        else roundedFraction = 10;\n\n        return roundedFraction * Math.pow(10, exponent);\n    }\n}\n","export class MapInfoWindowOptionsConstants {\n  static mapInfoWindowOptions: google.maps.InfoWindowOptions = {\n    headerDisabled: true,\n    pixelOffset: new google.maps.Size(0, -50)\n  };\n}\n","export class MapConstants {\n    static GOOGLE_MAP_STYLES: google.maps.MapTypeStyle[] = [\n        {\n            elementType: 'geometry.fill',\n            stylers: [\n                {\n                    color: '#f1f1f1',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.icon',\n            stylers: [\n                {\n                    visibility: 'on',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.land_parcel',\n            elementType: 'labels',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.text',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.text',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'transit',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.country',\n            stylers: [\n                {\n                    color: '#919191',\n                },\n                {\n                    visibility: 'on',\n                },\n                {\n                    weight: 1,\n                },\n            ],\n        },\n        {\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#919191',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.text.stroke',\n            stylers: [\n                {\n                    color: '#f5f5f5',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.land_parcel',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#bdbdbd',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#eeeeee',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#e5e5e5',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n        {\n            featureType: 'landscape',\n            elementType: 'labels',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'road',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#ffffff',\n                },\n            ],\n        },\n        {\n            featureType: 'road',\n            stylers: [\n                {\n                    saturation: -100,\n                },\n                {\n                    lightness: 30,\n                },\n            ],\n        },\n        {\n            featureType: 'road.arterial',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#dadada',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#dadada',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            featureType: 'road.local',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n        {\n            featureType: 'transit.line',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#e5e5e5',\n                },\n            ],\n        },\n        {\n            featureType: 'transit.station',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#eeeeee',\n                },\n            ],\n        },\n        {\n            featureType: 'water',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#dadada',\n                },\n            ],\n        },\n        {\n            featureType: 'water',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n    ];\n\n    static GOOGLE_MAP_DARK_STYLES: google.maps.MapTypeStyle[] = [\n        {\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#212121',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.icon',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.text.stroke',\n            stylers: [\n                {\n                    color: '#212121',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.country',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.land_parcel',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'administrative.locality',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#bdbdbd',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#181818',\n                },\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            elementType: 'labels.text.stroke',\n            stylers: [\n                {\n                    color: '#1b1b1b',\n                },\n            ],\n        },\n        {\n            featureType: 'road',\n            elementType: 'geometry.fill',\n            stylers: [\n                {\n                    color: '#2c2c2c',\n                },\n            ],\n        },\n        {\n            featureType: 'road',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#8a8a8a',\n                },\n            ],\n        },\n        {\n            featureType: 'road.arterial',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#373737',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#3c3c3c',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway.controlled_access',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#4e4e4e',\n                },\n            ],\n        },\n        {\n            featureType: 'road.local',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            featureType: 'transit',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'water',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#000000',\n                },\n            ],\n        },\n        {\n            featureType: 'water',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#3d3d3d',\n                },\n            ],\n        },\n    ];\n\n    static NORTH_AMERICA_BOUNDS = {\n        north: 75,\n        south: 9,\n        west: -170,\n        east: -50,\n    };\n}\n","// Models\nimport {\n    ICaMapProps,\n    IMapAreaFilter,\n    IMapDashedRouteIcon,\n    IMapDashedRouteStyle,\n    IMapOptions,\n    IMapPagination,\n    IRoutePath,\n} from '../../models';\n\n// Constants\nimport { MapConstants } from './map.constants';\n\nexport class MapOptionsConstants {\n    static DEFAULT_MAP_ZOOM: number = 5;\n\n    static DEFAULT_MAP_CENTER: IRoutePath = { lat: 40, lng: -100 };\n\n    static DEFAULT_MAP_OPTIONS: IMapOptions = {\n        fullscreenControl: false,\n        restriction: {\n            latLngBounds: MapConstants.NORTH_AMERICA_BOUNDS,\n            strictBounds: true,\n        },\n        streetViewControl: false,\n        keyboardShortcuts: false,\n        panControl: true,\n        gestureHandling: 'greedy',\n        mapTypeControl: false,\n        disableDefaultUI: true,\n        zoom: MapOptionsConstants.DEFAULT_MAP_ZOOM,\n        center: MapOptionsConstants.DEFAULT_MAP_CENTER,\n    };\n\n    static DEFAULT_MAP_CONFIG: ICaMapProps = {\n        markers: [],\n        clusterMarkers: [],\n        routingMarkers: [],\n    };\n\n    static MAP_LIST_PAGINATION: IMapPagination = { pageIndex: 1, pageSize: 25 };\n\n    static AREA_FILTER_DATA: IMapAreaFilter = {\n        options: {\n            fillColor: '#3B73ED',\n            strokeWeight: 0,\n            fillOpacity: 0.2,\n            editable: false,\n            draggable: false,\n            clickable: false,\n        },\n        center: { lat: 41.860119, lng: -87.660156 },\n        radius: 124000,\n    };\n\n    static ROUTING_MARKER_DARK_COLORS: Record<string, string> = {\n        pickup: '#259F94',\n        delivery: '#DF3C3C',\n        deadhead: '#6C6C6C',\n    };\n\n    static ROUTING_MARKER_LIGHT_COLORS: Record<string, string> = {\n        pickup: '#56B4AC',\n        delivery: '#FF906D',\n        deadhead: '#919191',\n        repair: '#A08266',\n        fuel: '#6692F1',\n        towing: '#B370F0',\n        parking: '#4DC5EB',\n        cancelleddelivery: '#F4BEBE',\n        cancelledpickup: '#F4BEBE',\n        splitlocation: '#FAB15C',\n    };\n\n    static ROUTING_PATH_DARK_COLORS: Record<string, string> = {\n        incomplete: '#6C6C6C',\n        complete: '#CCCCCC',\n    };\n\n    static ROUTING_PATH_COLORS: Record<string, string> = {\n        currentLocation: '#E5E5E5',\n        deadhead: '#2F2F2F',\n        gray: '#919191',\n        darkgray: '#6c6c6c',\n        lightgray: '#CCCCCC',\n        lightblue: '#6692F1',\n        blue: '#3B73ED',\n        purple: '#B370F0',\n        darkpurple: '#9E47EC',\n        lightpurple: '#DFC2F9',\n    };\n\n    static ROUTING_DASHED_LINE_PATH: IMapDashedRouteIcon = {\n        path: 'M 0.3,0 -0.3,0 -0.3,0.5 0.3,0.5',\n        strokeOpacity: 1,\n        strokeColor: '#919191',\n        scale: 4,\n    };\n\n    static ROUTING_DASHED_LINE_ICON: IMapDashedRouteStyle[] = [\n        {\n            icon: this.ROUTING_DASHED_LINE_PATH,\n            offset: '0',\n            repeat: '10px',\n        },\n    ];\n\n    static ROUTING_MARKER_OUTLINE_COLORS: Record<string, string> = {\n        pickup: '#86C9C3',\n        delivery: '#ED9292',\n        deadhead: '#CCCCCC',\n        white: '#FFFFFF',\n    };\n\n    static ROUTING_MARKER_DOT_COLORS: Record<string, string> = {\n        dark: '#2F2F2F',\n        light: '#EEEEEE',\n    };\n\n    static LTL_MARKER_COLORS: string[] = [\n        '#6692F1',\n        '#E66767',\n        '#FAB15C',\n        '#56B4AC',\n        '#B370F0',\n        '#FF906D',\n        '#4DC5EB',\n        '#E668A0',\n        '#77BF56',\n        '#A08266',\n        '#919191',\n        '#DAAD4F',\n    ];\n\n    static DISPATCH_ROUTE_MARKER_COLORS: Record<string, string> = {\n        pickup: '#56B4AC',\n        delivery: '#FF906D',\n        deadhead: '#AAAAAA',\n    };\n\n    static ROUTING_MARKER_ICON_PATHS: Record<string, string> = {\n        deadhead:\n            'M20.3442 18.4375L17.7251 10.9376C17.6821 10.8092 17.61 10.6994 17.5177 10.6217C17.4255 10.5439 17.317 10.5016 17.2058 10.5H15.3749L15.4231 11.0424C15.4253 11.0686 15.4231 11.0951 15.4166 11.1201C15.4102 11.1452 15.3995 11.1682 15.3854 11.1878C15.3713 11.2074 15.3541 11.223 15.3349 11.2337C15.3156 11.2443 15.2948 11.2498 15.2738 11.2498H14.7279C14.7068 11.2498 14.686 11.2443 14.6668 11.2337C14.6475 11.223 14.6303 11.2074 14.6162 11.1878C14.6021 11.1682 14.5915 11.1452 14.585 11.1201C14.5785 11.0951 14.5763 11.0686 14.5785 11.0424L14.6267 10.5H12.7959C12.6846 10.5016 12.5762 10.5439 12.4839 10.6217C12.3916 10.6994 12.3195 10.8092 12.2765 10.9376L9.65501 18.4375C9.61361 18.5493 9.59492 18.6722 9.60061 18.7952C9.60629 18.9183 9.63618 19.0376 9.68761 19.1428C9.73904 19.2479 9.81043 19.3355 9.89543 19.3978C9.98043 19.4601 10.0764 19.4952 10.1749 19.5H13.865L14.0577 17.2098C14.0654 17.1176 14.1002 17.0323 14.1553 16.9703C14.2104 16.9083 14.2818 16.874 14.3559 16.8741H15.6452C15.7193 16.874 15.7908 16.9083 15.8459 16.9703C15.9009 17.0323 15.9357 17.1176 15.9435 17.2098L16.1362 19.5H19.8243C19.9228 19.4952 20.0188 19.4601 20.1038 19.3978C20.1888 19.3355 20.2602 19.2479 20.3116 19.1428C20.363 19.0376 20.3929 18.9183 20.3986 18.7952C20.4043 18.6722 20.3856 18.5493 20.3442 18.4375ZM14.4836 12.1695C14.4875 12.1234 14.505 12.0807 14.5326 12.0498C14.5601 12.0189 14.5959 12.0018 14.633 12.0019H15.3691C15.4062 12.0018 15.442 12.0189 15.4696 12.0498C15.4971 12.0807 15.5146 12.1234 15.5185 12.1695L15.6047 13.191C15.6081 13.2302 15.6047 13.2699 15.595 13.3074C15.5853 13.3449 15.5694 13.3794 15.5483 13.4087C15.5272 13.4381 15.5015 13.4615 15.4727 13.4776C15.4439 13.4937 15.4127 13.502 15.3812 13.502H14.6214C14.5899 13.5021 14.5587 13.4938 14.5298 13.4778C14.501 13.4617 14.4752 13.4383 14.4541 13.4089C14.433 13.3796 14.4171 13.345 14.4074 13.3075C14.3977 13.2699 14.3945 13.2302 14.3978 13.191L14.4836 12.1695ZM15.5185 16.1267H14.4826C14.4406 16.1268 14.399 16.1157 14.3606 16.0944C14.3221 16.073 14.2877 16.0417 14.2596 16.0026C14.2315 15.9635 14.2102 15.9174 14.1973 15.8673C14.1843 15.8173 14.1799 15.7644 14.1844 15.7121L14.2808 14.5869C14.2885 14.4947 14.3233 14.4094 14.3783 14.3474C14.4334 14.2854 14.5049 14.2511 14.579 14.2512H15.425C15.4991 14.2511 15.5706 14.2854 15.6257 14.3474C15.6808 14.4094 15.7155 14.4947 15.7233 14.5869L15.8196 15.7121C15.8239 15.7646 15.8193 15.8176 15.806 15.8677C15.7928 15.9177 15.7713 15.9638 15.7429 16.0027C15.7145 16.0417 15.6798 16.0727 15.6411 16.0938C15.6025 16.1148 15.5607 16.1255 15.5185 16.1249V16.1267Z',\n        repair: 'M20.2763 12.7862C20.2611 12.7261 20.2302 12.6712 20.1869 12.627C20.1435 12.5827 20.0892 12.5508 20.0295 12.5344C19.9697 12.5181 19.9067 12.5178 19.8468 12.5338C19.787 12.5497 19.7324 12.5813 19.6888 12.6252L17.5168 14.7972L15.5343 14.4667L15.2038 12.4842L17.3763 10.3127C17.4204 10.2688 17.4521 10.2138 17.468 10.1536C17.4838 10.0934 17.4833 10.03 17.4665 9.97001C17.4497 9.91003 17.4172 9.85562 17.3723 9.81241C17.3274 9.7692 17.2718 9.73874 17.2113 9.72418C16.4813 9.54051 15.7153 9.55708 14.994 9.77214C14.2727 9.98721 13.6227 10.3928 13.1125 10.9462C12.6023 11.4997 12.2508 12.1804 12.0951 12.9169C11.9393 13.6533 11.9849 14.4181 12.2273 15.1307L10.1513 17.2092C9.82411 17.564 9.64687 18.0315 9.65663 18.514C9.6664 18.9965 9.86242 19.4565 10.2037 19.7978C10.5449 20.139 11.0049 20.3351 11.4874 20.3448C11.9699 20.3546 12.4375 20.1773 12.7923 19.8502L14.8653 17.7767C15.5787 18.0185 16.3441 18.0637 17.081 17.9073C17.8178 17.751 18.499 17.3989 19.0527 16.8882C19.6064 16.3775 20.0123 15.727 20.2276 15.0052C20.4429 14.2833 20.4597 13.5168 20.2763 12.7862ZM11.4708 19.2317C11.3323 19.2317 11.197 19.1906 11.0819 19.1137C10.9668 19.0368 10.877 18.9275 10.8241 18.7996C10.7711 18.6717 10.7572 18.5309 10.7842 18.3951C10.8112 18.2593 10.8779 18.1346 10.9758 18.0367C11.0737 17.9388 11.1984 17.8721 11.3342 17.8451C11.47 17.8181 11.6107 17.832 11.7386 17.885C11.8666 17.938 11.9759 18.0277 12.0528 18.1428C12.1297 18.2579 12.1708 18.3932 12.1708 18.5317C12.1708 18.7173 12.097 18.8954 11.9657 19.0267C11.8345 19.1579 11.6564 19.2317 11.4708 19.2317Z',\n        fuel: 'M17.2865 19.052H10.5367C10.4474 19.0522 10.3618 19.0878 10.2985 19.1509C10.2353 19.2141 10.1996 19.2996 10.1992 19.389V20.064C10.1995 20.1534 10.2351 20.2391 10.2984 20.3024C10.3616 20.3656 10.4473 20.4012 10.5367 20.4015H17.287C17.3764 20.4012 17.4621 20.3656 17.5254 20.3024C17.5886 20.2391 17.6243 20.1534 17.6245 20.064V19.389C17.6241 19.2995 17.5884 19.2139 17.525 19.1508C17.4617 19.0876 17.3759 19.0521 17.2865 19.052ZM20.6027 11.8647L18.8941 10.1561C18.8307 10.0933 18.7451 10.058 18.6558 10.058C18.5666 10.058 18.481 10.0933 18.4176 10.1561L18.1791 10.3946C18.1162 10.458 18.081 10.5436 18.081 10.6329C18.081 10.7221 18.1162 10.8077 18.1791 10.8711L18.9741 11.6661V12.9767C18.9748 13.2601 19.0776 13.5337 19.2635 13.7475C19.4494 13.9614 19.7061 14.1011 19.9866 14.1413V17.5329C19.9866 17.6672 19.9333 17.7959 19.8383 17.8909C19.7434 17.9858 19.6146 18.0392 19.4804 18.0392C19.3461 18.0392 19.2173 17.9858 19.1224 17.8909C19.0274 17.7959 18.9741 17.6672 18.9741 17.5329V16.8579C18.9741 16.6141 18.9261 16.3728 18.8328 16.1476C18.7395 15.9224 18.6028 15.7178 18.4305 15.5454C18.2581 15.3731 18.0535 15.2363 17.8283 15.1431C17.6031 15.0498 17.3618 15.0018 17.118 15.0018H16.9495V10.9516C16.9495 10.5936 16.8073 10.2502 16.5541 9.99698C16.3009 9.7438 15.9575 9.60156 15.5994 9.60156H12.2243C11.8662 9.60156 11.5229 9.7438 11.2697 9.99698C11.0165 10.2502 10.8742 10.5936 10.8742 10.9516V18.3764H16.9495V16.0138H17.118C17.3417 16.0138 17.5563 16.1027 17.7145 16.2609C17.8727 16.4191 17.9615 16.6336 17.9615 16.8574V17.4439C17.9532 17.8309 18.0871 18.2075 18.3379 18.5024C18.5886 18.7973 18.9388 18.99 19.3221 19.044C19.5337 19.0655 19.7475 19.0426 19.9496 18.9765C20.1518 18.9104 20.3379 18.8028 20.496 18.6604C20.654 18.5181 20.7805 18.3442 20.8672 18.15C20.954 17.9558 20.9991 17.7456 20.9997 17.5329V12.8202C20.9996 12.6427 20.9646 12.4669 20.8966 12.3029C20.8285 12.139 20.7288 11.99 20.6032 11.8647H20.6027ZM15.5994 13.6517H12.2243V10.9516H15.5994V13.6517Z',\n        towing: 'M18.5265 11.4679C18.3135 10.947 18.0928 10.4261 17.8937 9.90523C17.8535 9.75933 17.775 9.62654 17.6662 9.52027C17.5574 9.414 17.4222 9.33803 17.2742 9.30005L12.7273 9.30696C12.601 9.33177 12.4829 9.38716 12.3835 9.46818C12.2842 9.54919 12.2067 9.65331 12.158 9.77121C11.9303 10.3488 11.6957 10.9332 11.4533 11.5101C11.3828 11.6913 11.3828 11.8919 11.4533 12.0731C11.6887 12.6576 11.9234 13.2476 12.165 13.8327C12.2179 13.972 12.3139 14.0913 12.4393 14.1734C12.5647 14.2555 12.7132 14.2964 12.8635 14.2901H13.1834C13.1825 14.3209 13.1848 14.3516 13.1904 14.382C13.2228 14.578 13.3323 14.7533 13.4949 14.8698C13.6575 14.9863 13.8601 15.0344 14.0585 15.0037C14.1284 14.9968 14.1982 15.0037 14.2723 15.0037C14.2723 15.1094 14.2792 15.1937 14.2723 15.2856C14.2757 15.4327 14.2366 15.5777 14.1597 15.7036C14.0827 15.8295 13.9711 15.9311 13.8378 15.9965C13.6745 16.0736 13.5215 16.1706 13.3824 16.2852C12.8739 16.6966 12.5509 17.2905 12.4842 17.9369C12.4176 18.5834 12.6127 19.2296 13.0269 19.734C13.3053 20.111 13.6907 20.3977 14.1342 20.5576C14.5777 20.7175 15.0592 20.7434 15.5176 20.6321C16.0226 20.5347 16.4842 20.2836 16.8376 19.9138C17.1911 19.544 17.4187 19.0741 17.4886 18.5699C17.5443 18.3484 17.5319 18.1156 17.453 17.9011C17.384 17.7614 17.271 17.6477 17.1309 17.5772C16.9908 17.5066 16.8313 17.4831 16.6765 17.5101C16.5217 17.5371 16.38 17.6131 16.2727 17.7268C16.1655 17.8405 16.0985 17.9856 16.082 18.1402C16.0742 18.2735 16.0527 18.4057 16.0177 18.5347C15.9428 18.772 15.7849 18.9753 15.5724 19.108C15.3598 19.2408 15.1064 19.2944 14.8576 19.2594C14.6349 19.2284 14.4276 19.1297 14.2642 18.9769C14.1008 18.8242 13.9896 18.6249 13.9458 18.4068C13.9021 18.1887 13.928 17.9625 14.02 17.7596C14.1121 17.5568 14.2656 17.3872 14.4594 17.2745C14.6777 17.1526 14.8827 17.0089 15.0713 16.8455C15.4524 16.4787 15.6808 15.9841 15.7118 15.459C15.7188 15.3111 15.7257 15.1557 15.7327 14.994C16.274 15.0431 16.7224 14.9381 16.8146 14.2832H17.094C17.2626 14.2994 17.4315 14.2569 17.5718 14.1631C17.7121 14.0692 17.8148 13.9299 17.8623 13.7692C18.083 13.2206 18.303 12.6714 18.5307 12.1222C18.5767 12.0191 18.6004 11.9077 18.6004 11.7951C18.6004 11.6824 18.5767 11.571 18.5307 11.4679M13.358 12.7066C13.1484 12.0945 12.9452 11.4887 12.7385 10.8766H13.4928C13.6569 11.3484 14.1123 12.7066 14.1123 12.7066H13.358ZM14.9302 12.7066C14.7207 12.1015 14.5244 11.4963 14.3184 10.8766H15.0727L15.6915 12.7066H14.9302ZM15.8626 13.2206V13.2137H15.8696L15.8626 13.2206ZM16.5101 12.7066C16.3006 12.0945 16.0973 11.4887 15.8913 10.8766H16.6526L17.2714 12.7066H16.5101Z',\n        parking:\n            'M12.0992 19.8C11.8783 19.8 11.6992 19.6209 11.6992 19.4V10.6C11.6992 10.379 11.8783 10.2 12.0992 10.2H15.6548C16.446 10.2 17.1258 10.3266 17.6945 10.5799C18.2713 10.8331 18.7163 11.2008 19.0295 11.6828C19.3426 12.1567 19.4992 12.7205 19.4992 13.3741C19.4992 14.0195 19.3426 14.5792 19.0295 15.0531C18.7163 15.5269 18.2713 15.8946 17.6945 16.156C17.1258 16.4093 16.446 16.536 15.6548 16.536H13.059L14.1468 15.482V19.4C14.1468 19.6209 13.9677 19.8 13.7468 19.8H12.0992ZM14.1468 15.7394L13.059 14.6241H15.5065C16.0174 14.6241 16.3965 14.5138 16.6438 14.2932C16.8992 14.0726 17.027 13.7662 17.027 13.3741C17.027 12.9737 16.8992 12.6633 16.6438 12.4427C16.3965 12.2221 16.0174 12.1118 15.5065 12.1118H13.059L14.1468 10.9965V15.7394Z',\n        cancelledpickup:\n            'M11.3334 19.1992V10.7993C11.3354 10.6424 11.2761 10.4912 11.1684 10.3787C11.0608 10.2663 10.9137 10.2017 10.7593 10.1992H10.1785C10.1018 10.1998 10.0261 10.2158 9.95553 10.2461C9.88497 10.2765 9.821 10.3207 9.76725 10.3761C9.7135 10.4316 9.67103 10.4973 9.64228 10.5694C9.61352 10.6415 9.59904 10.7187 9.59966 10.7966V19.1992C9.59869 19.277 9.61282 19.3543 9.64125 19.4265C9.66968 19.4988 9.71185 19.5647 9.76535 19.6204C9.81885 19.6761 9.88264 19.7206 9.95306 19.7513C10.0235 19.782 10.0992 19.7982 10.1758 19.7992H10.7573C10.8339 19.7986 10.9097 19.7827 10.9802 19.7523C11.0508 19.7219 11.1148 19.6778 11.1685 19.6223C11.2222 19.5668 11.2647 19.5012 11.2935 19.429C11.3222 19.3569 11.3367 19.2797 11.3361 19.2019M12.493 13.3992H15.7725V11.2049C15.7705 11.1073 15.7974 11.0113 15.8498 10.9294C15.9021 10.8475 15.9774 10.7834 16.066 10.7455C16.1546 10.7076 16.2523 10.6975 16.3466 10.7166C16.4409 10.7358 16.5273 10.7832 16.5947 10.8528L20.2623 14.6562C20.3504 14.748 20.3996 14.8711 20.3996 14.9992C20.3996 15.1274 20.3504 15.2504 20.2623 15.3422L16.5947 19.1464C16.527 19.2158 16.4403 19.263 16.3459 19.2818C16.2515 19.3007 16.1537 19.2903 16.0651 19.2521C15.9766 19.2139 15.9014 19.1495 15.8492 19.0674C15.797 18.9853 15.7703 18.8892 15.7725 18.7915V16.5972H12.493C12.4164 16.5966 12.3407 16.5806 12.2701 16.5503C12.1996 16.5199 12.1356 16.4757 12.0818 16.4203C12.0281 16.3648 11.9856 16.2991 11.9569 16.227C11.9281 16.1549 11.9136 16.0777 11.9142 15.9999V13.9993C11.9133 13.9214 11.9274 13.8442 11.9558 13.7719C11.9843 13.6996 12.0264 13.6338 12.0799 13.578C12.1334 13.5223 12.1972 13.4778 12.2676 13.4472C12.3381 13.4165 12.4138 13.4002 12.4904 13.3992',\n        cancelleddelivery:\n            'M20.4001 10.7982V19.1999C20.401 19.2779 20.3868 19.3554 20.3582 19.4279C20.3296 19.5004 20.2872 19.5664 20.2335 19.6221C20.1797 19.6779 20.1156 19.7223 20.0449 19.7529C19.9742 19.7834 19.8982 19.7994 19.8214 19.8H19.2427C19.1661 19.7991 19.0905 19.7828 19.02 19.7521C18.9496 19.7214 18.8859 19.6769 18.8324 19.6212C18.7789 19.5655 18.7367 19.4996 18.7083 19.4273C18.6799 19.355 18.6658 19.2777 18.6667 19.1999V10.8002C18.6658 10.7222 18.68 10.6447 18.7086 10.5722C18.7372 10.4997 18.7796 10.4337 18.8333 10.378C18.8871 10.3222 18.9512 10.2778 19.0219 10.2472C19.0926 10.2167 19.1686 10.2007 19.2454 10.2H19.8241C19.9784 10.202 20.1257 10.2661 20.2337 10.3782C20.3416 10.4903 20.4015 10.6413 20.4001 10.7982V10.7982ZM10.1788 16.5994H13.4574V18.7921C13.4554 18.8897 13.4823 18.9857 13.5346 19.0676C13.587 19.1496 13.6623 19.2137 13.7508 19.2516C13.8394 19.2896 13.9371 19.2996 14.0313 19.2805C14.1256 19.2614 14.212 19.2139 14.2794 19.1443L17.9461 15.3387C18.0331 15.2471 18.0817 15.1247 18.0817 14.9973C18.0817 14.87 18.0331 14.7476 17.9461 14.6559L14.2794 10.8503C14.212 10.7807 14.1256 10.7333 14.0313 10.7142C13.9371 10.6951 13.8394 10.7051 13.7508 10.7431C13.6623 10.781 13.587 10.8451 13.5346 10.927C13.4823 11.009 13.4554 11.105 13.4574 11.2026V13.3987H10.1788C10.102 13.3993 10.026 13.4153 9.9553 13.4459C9.88459 13.4764 9.82051 13.5208 9.76674 13.5766C9.71297 13.6324 9.67057 13.6984 9.64198 13.7708C9.61339 13.8433 9.59918 13.9208 9.60014 13.9989L9.60014 15.9992C9.59918 16.0773 9.61339 16.1548 9.64198 16.2272C9.67057 16.2997 9.71297 16.3657 9.76674 16.4215C9.82051 16.4772 9.88459 16.5217 9.9553 16.5522C10.026 16.5827 10.102 16.5988 10.1788 16.5994V16.5994Z',\n    };\n\n    static MILES_MARKER_ICON_PATHS: Record<string, string> = {\n        pickup: 'M13.9448 20.5V13.5C13.9465 13.3694 13.897 13.2433 13.8074 13.1496C13.7177 13.0559 13.5951 13.0021 13.4664 13H12.9824C12.9185 13.0005 12.8554 13.0138 12.7966 13.0391C12.7378 13.0644 12.6845 13.1012 12.6397 13.1474C12.5949 13.1937 12.5595 13.2484 12.5356 13.3085C12.5116 13.3686 12.4995 13.4329 12.5 13.4978V20.5C12.4992 20.5648 12.511 20.6292 12.5347 20.6894C12.5584 20.7497 12.5935 20.8045 12.6381 20.851C12.6827 20.8974 12.7359 20.9345 12.7945 20.96C12.8532 20.9856 12.9163 20.9992 12.9802 21H13.4647C13.5286 20.9995 13.5917 20.9862 13.6505 20.9609C13.7093 20.9356 13.7626 20.8988 13.8074 20.8526C13.8522 20.8063 13.8876 20.7516 13.9115 20.6915C13.9355 20.6314 13.9476 20.5671 13.9471 20.5022M14.9112 15.6667H17.6441V13.8381C17.6424 13.7567 17.6649 13.6768 17.7085 13.6085C17.7521 13.5403 17.8148 13.4869 17.8886 13.4552C17.9625 13.4236 18.0439 13.4152 18.1225 13.4312C18.201 13.4471 18.2731 13.4866 18.3293 13.5446L21.3856 16.7141C21.459 16.7906 21.5 16.8932 21.5 17C21.5 17.1068 21.459 17.2094 21.3856 17.2859L18.3293 20.4559C18.2728 20.5138 18.2006 20.5531 18.1219 20.5688C18.0433 20.5845 17.9617 20.5759 17.8879 20.5441C17.8142 20.5122 17.7515 20.4586 17.708 20.3902C17.6645 20.3217 17.6423 20.2416 17.6441 20.1602V18.3316H14.9112C14.8473 18.3311 14.7842 18.3178 14.7254 18.2925C14.6666 18.2672 14.6133 18.2304 14.5685 18.1842C14.5237 18.138 14.4883 18.0833 14.4644 18.0231C14.4404 17.963 14.4283 17.8987 14.4289 17.8339V16.1667C14.428 16.1019 14.4398 16.0375 14.4635 15.9772C14.4872 15.917 14.5224 15.8621 14.5669 15.8157C14.6115 15.7693 14.6647 15.7322 14.7234 15.7066C14.782 15.6811 14.8451 15.6675 14.909 15.6667',\n        delivery:\n            'M21.5 13.4984V20.4999C21.5008 20.5649 21.4889 20.6295 21.4651 20.6899C21.4413 20.7503 21.4059 20.8053 21.3611 20.8517C21.3163 20.8982 21.2629 20.9352 21.204 20.9607C21.1451 20.9861 21.0818 20.9995 21.0177 21H20.5355C20.4717 20.9992 20.4086 20.9856 20.35 20.96C20.2913 20.9345 20.2381 20.8974 20.1936 20.851C20.149 20.8045 20.1139 20.7496 20.0902 20.6894C20.0665 20.6291 20.0547 20.5647 20.0555 20.4999V13.5001C20.0547 13.4351 20.0666 13.3705 20.0904 13.3101C20.1142 13.2497 20.1496 13.1947 20.1944 13.1483C20.2392 13.1018 20.2926 13.0648 20.3515 13.0393C20.4104 13.0139 20.4737 13.0005 20.5377 13H21.02C21.1486 13.0016 21.2714 13.055 21.3613 13.1484C21.4513 13.2419 21.5011 13.3677 21.5 13.4984ZM12.9823 18.3328H15.7145V20.16C15.7128 20.2414 15.7352 20.3214 15.7788 20.3897C15.8224 20.4579 15.8851 20.5113 15.9589 20.543C16.0327 20.5746 16.1142 20.583 16.1927 20.567C16.2712 20.5511 16.3433 20.5116 16.3995 20.4536L19.455 17.2822C19.5275 17.2059 19.568 17.1039 19.568 16.9977C19.568 16.8916 19.5275 16.7896 19.455 16.7132L16.3995 13.5419C16.3433 13.4839 16.2712 13.4444 16.1927 13.4284C16.1142 13.4125 16.0327 13.4209 15.9589 13.4525C15.8851 13.4841 15.8224 13.5375 15.7788 13.6058C15.7352 13.6741 15.7128 13.7541 15.7145 13.8355V15.6655H12.9823C12.9182 15.6661 12.8549 15.6794 12.796 15.7049C12.7371 15.7303 12.6837 15.7673 12.6389 15.8138C12.5941 15.8603 12.5587 15.9153 12.5349 15.9757C12.5111 16.0361 12.4992 16.1006 12.5 16.1657V17.8326C12.4992 17.8977 12.5111 17.9623 12.5349 18.0226C12.5587 18.083 12.5941 18.138 12.6389 18.1845C12.6837 18.231 12.7371 18.268 12.796 18.2934C12.8549 18.3189 12.9182 18.3323 12.9823 18.3328Z',\n        fuel: 'M18.9056 20.3768H13.2808C13.2063 20.377 13.135 20.4067 13.0823 20.4593C13.0296 20.5119 12.9998 20.5832 12.9995 20.6576V21.2202C12.9997 21.2947 13.0294 21.3661 13.0821 21.4188C13.1348 21.4715 13.2062 21.5012 13.2808 21.5014H18.906C18.9805 21.5012 19.0519 21.4715 19.1046 21.4188C19.1573 21.3661 19.187 21.2947 19.1873 21.2202V20.6576C19.1869 20.5831 19.1571 20.5117 19.1044 20.4591C19.0516 20.4065 18.9801 20.3769 18.9056 20.3768ZM21.669 14.3874L20.2452 12.9636C20.1924 12.9112 20.121 12.8819 20.0467 12.8819C19.9723 12.8819 19.901 12.9112 19.8481 12.9636L19.6494 13.1623C19.597 13.2152 19.5677 13.2865 19.5677 13.3609C19.5677 13.4352 19.597 13.5066 19.6494 13.5594L20.3119 14.222V15.3141C20.3125 15.5502 20.3981 15.7782 20.5531 15.9564C20.708 16.1346 20.9219 16.2511 21.1557 16.2845V19.1109C21.1557 19.2228 21.1112 19.3301 21.0321 19.4092C20.953 19.4883 20.8457 19.5328 20.7338 19.5328C20.6219 19.5328 20.5146 19.4883 20.4355 19.4092C20.3563 19.3301 20.3119 19.2228 20.3119 19.1109V18.5484C20.3119 18.3453 20.2719 18.1441 20.1942 17.9565C20.1164 17.7688 20.0025 17.5983 19.8589 17.4547C19.7152 17.3111 19.5447 17.1971 19.3571 17.1194C19.1694 17.0417 18.9683 17.0017 18.7652 17.0017H18.6247V13.6265C18.6247 13.3281 18.5062 13.042 18.2952 12.831C18.0842 12.62 17.7981 12.5015 17.4997 12.5015H14.6871C14.3887 12.5015 14.1025 12.62 13.8916 12.831C13.6806 13.042 13.562 13.3281 13.562 13.6265V19.8139H18.6247V17.845H18.7652C18.9516 17.845 19.1304 17.9191 19.2622 18.0509C19.3941 18.1827 19.4681 18.3615 19.4681 18.548V19.0367C19.4612 19.3592 19.5728 19.6731 19.7817 19.9188C19.9907 20.1645 20.2825 20.3251 20.6019 20.3701C20.7782 20.3881 20.9564 20.369 21.1249 20.3139C21.2933 20.2589 21.4484 20.1691 21.5801 20.0505C21.7118 19.9319 21.8172 19.787 21.8895 19.6252C21.9618 19.4633 21.9994 19.2882 21.9999 19.1109V15.1837C21.9999 15.0357 21.9707 14.8892 21.914 14.7526C21.8573 14.616 21.7742 14.4919 21.6695 14.3874H21.669ZM17.4997 15.8766H14.6871V13.6265H17.4997V15.8766Z',\n        deadhead:\n            'M21.4538 19.8645L19.2713 13.6146C19.2354 13.5077 19.1753 13.4162 19.0984 13.3514C19.0215 13.2866 18.9312 13.2514 18.8385 13.25H17.3128L17.3529 13.702C17.3548 13.7238 17.3529 13.7459 17.3475 13.7668C17.3421 13.7876 17.3333 13.8069 17.3215 13.8232C17.3098 13.8395 17.2954 13.8525 17.2794 13.8614C17.2633 13.8703 17.246 13.8748 17.2285 13.8748H16.7736C16.756 13.8748 16.7387 13.8703 16.7226 13.8614C16.7066 13.8525 16.6922 13.8395 16.6805 13.8232C16.6687 13.8069 16.6599 13.7876 16.6545 13.7668C16.6491 13.7459 16.6472 13.7238 16.6491 13.702L16.6892 13.25H15.1635C15.0708 13.2514 14.9805 13.2866 14.9036 13.3514C14.8267 13.4162 14.7666 13.5077 14.7307 13.6146L12.5462 19.8645C12.5117 19.9577 12.4961 20.0602 12.5008 20.1627C12.5056 20.2652 12.5305 20.3647 12.5733 20.4523C12.6162 20.5399 12.6757 20.6129 12.7465 20.6648C12.8174 20.7168 12.8973 20.746 12.9794 20.75H16.0545L16.2151 18.8415C16.2215 18.7647 16.2505 18.6936 16.2964 18.6419C16.3423 18.5902 16.4019 18.5617 16.4636 18.5617H17.538C17.5998 18.5617 17.6593 18.5902 17.7052 18.6419C17.7511 18.6936 17.7801 18.7647 17.7865 18.8415L17.9471 20.75H21.0206C21.1027 20.746 21.1826 20.7168 21.2535 20.6648C21.3243 20.6129 21.3838 20.5399 21.4267 20.4523C21.4695 20.3647 21.4944 20.2652 21.4992 20.1627C21.5039 20.0602 21.4883 19.9577 21.4538 19.8645ZM16.57 14.6412C16.5733 14.6028 16.5878 14.5673 16.6108 14.5415C16.6338 14.5157 16.6636 14.5015 16.6945 14.5016H17.308C17.3388 14.5015 17.3686 14.5157 17.3916 14.5415C17.4146 14.5673 17.4291 14.6028 17.4324 14.6412L17.5043 15.4925C17.507 15.5252 17.5043 15.5582 17.4962 15.5895C17.4881 15.6207 17.4748 15.6495 17.4572 15.674C17.4397 15.6984 17.4182 15.7179 17.3942 15.7313C17.3702 15.7447 17.3443 15.7516 17.318 15.7517H16.6848C16.6585 15.7517 16.6325 15.7448 16.6085 15.7315C16.5845 15.7181 16.563 15.6986 16.5454 15.6741C16.5278 15.6497 16.5146 15.6209 16.5065 15.5896C16.4984 15.5583 16.4957 15.5252 16.4985 15.4925L16.57 14.6412ZM17.4324 17.9389H16.5692C16.5341 17.939 16.4995 17.9298 16.4675 17.912C16.4354 17.8941 16.4068 17.8681 16.3833 17.8355C16.3599 17.8029 16.3422 17.7645 16.3314 17.7228C16.3206 17.6811 16.3169 17.637 16.3207 17.5934L16.401 16.6557C16.4074 16.5789 16.4364 16.5078 16.4823 16.4561C16.5282 16.4045 16.5877 16.3759 16.6495 16.376H17.3545C17.4163 16.3759 17.4758 16.4045 17.5217 16.4561C17.5676 16.5078 17.5966 16.5789 17.6031 16.6557L17.6834 17.5934C17.6869 17.6371 17.6831 17.6813 17.672 17.723C17.661 17.7648 17.6431 17.8031 17.6194 17.8356C17.5957 17.8681 17.5668 17.8939 17.5346 17.9115C17.5024 17.929 17.4676 17.9379 17.4324 17.9374V17.9389Z',\n        repair: 'M21.3969 15.1552C21.3842 15.1051 21.3585 15.0593 21.3224 15.0225C21.2863 14.9856 21.241 14.959 21.1912 14.9454C21.1414 14.9317 21.0889 14.9315 21.039 14.9448C20.9892 14.9581 20.9437 14.9844 20.9073 15.021L19.0973 16.831L17.4452 16.5556L17.1698 14.9035L18.9802 13.0939C19.017 13.0573 19.0434 13.0115 19.0566 12.9613C19.0698 12.9111 19.0694 12.8583 19.0554 12.8083C19.0414 12.7584 19.0143 12.713 18.9769 12.677C18.9395 12.641 18.8932 12.6156 18.8427 12.6035C18.2344 12.4504 17.5961 12.4642 16.995 12.6435C16.3939 12.8227 15.8523 13.1607 15.4271 13.6219C15.002 14.0831 14.709 14.6504 14.5792 15.264C14.4494 15.8777 14.4874 16.515 14.6894 17.1089L12.9594 18.841C12.6868 19.1366 12.5391 19.5263 12.5472 19.9284C12.5553 20.3304 12.7187 20.7138 13.0031 20.9982C13.2874 21.2825 13.6708 21.4459 14.0729 21.454C14.4749 21.4622 14.8646 21.3145 15.1602 21.0418L16.8877 19.3139C17.4822 19.5154 18.1201 19.5531 18.7341 19.4228C19.3482 19.2925 19.9158 18.9991 20.3772 18.5735C20.8387 18.1479 21.1769 17.6059 21.3563 17.0043C21.5358 16.4028 21.5498 15.764 21.3969 15.1552ZM14.059 20.5264C13.9436 20.5264 13.8308 20.4922 13.7349 20.4281C13.639 20.364 13.5642 20.2729 13.52 20.1663C13.4759 20.0597 13.4643 19.9424 13.4868 19.8293C13.5094 19.7161 13.5649 19.6122 13.6465 19.5306C13.7281 19.449 13.832 19.3935 13.9452 19.3709C14.0583 19.3484 14.1756 19.36 14.2822 19.4041C14.3888 19.4483 14.4799 19.5231 14.544 19.619C14.6081 19.7149 14.6423 19.8277 14.6423 19.9431C14.6423 20.0978 14.5808 20.2462 14.4715 20.3555C14.3621 20.4649 14.2137 20.5264 14.059 20.5264Z',\n        towing: 'M19.9385 14.0566C19.7609 13.6225 19.577 13.1884 19.4111 12.7543C19.3776 12.6327 19.3122 12.5221 19.2215 12.4335C19.1309 12.345 19.0182 12.2817 18.8949 12.25L15.1057 12.2558C15.0005 12.2764 14.9021 12.3226 14.8193 12.3901C14.7365 12.4576 14.6719 12.5444 14.6314 12.6426C14.4416 13.1239 14.2461 13.611 14.0441 14.0917C13.9853 14.2427 13.9853 14.4099 14.0441 14.5609C14.2402 15.0479 14.4358 15.5396 14.6372 16.0272C14.6812 16.1433 14.7612 16.2427 14.8658 16.3111C14.9703 16.3796 15.094 16.4136 15.2192 16.4083H15.4858C15.4851 16.434 15.487 16.4597 15.4916 16.4849C15.5187 16.6483 15.6099 16.7944 15.7454 16.8915C15.881 16.9885 16.0498 17.0286 16.2151 17.0031C16.2733 16.9973 16.3315 17.0031 16.3932 17.0031C16.3932 17.0911 16.399 17.1614 16.3932 17.2379C16.3961 17.3605 16.3635 17.4814 16.2994 17.5863C16.2353 17.6912 16.1422 17.7759 16.0312 17.8304C15.8951 17.8946 15.7676 17.9755 15.6517 18.071C15.2279 18.4138 14.9587 18.9087 14.9032 19.4474C14.8477 19.9861 15.0103 20.5246 15.3554 20.9449C15.5874 21.2591 15.9086 21.498 16.2782 21.6313C16.6477 21.7646 17.049 21.7862 17.431 21.6934C17.8518 21.6122 18.2365 21.4029 18.531 21.0948C18.8256 20.7866 19.0153 20.395 19.0735 19.9749C19.1199 19.7903 19.1096 19.5963 19.0439 19.4176C18.9864 19.3012 18.8921 19.2064 18.7754 19.1476C18.6587 19.0888 18.5258 19.0692 18.3968 19.0917C18.2678 19.1142 18.1496 19.1776 18.0603 19.2723C17.9709 19.367 17.9151 19.4879 17.9013 19.6168C17.8948 19.7279 17.8769 19.838 17.8478 19.9455C17.7853 20.1433 17.6538 20.3127 17.4766 20.4233C17.2995 20.534 17.0884 20.5787 16.881 20.5494C16.6955 20.5236 16.5227 20.4414 16.3865 20.3141C16.2504 20.1868 16.1576 20.0207 16.1212 19.839C16.0847 19.6572 16.1063 19.4687 16.183 19.2997C16.2597 19.1306 16.3877 18.9893 16.5492 18.8954C16.7311 18.7938 16.9019 18.674 17.0591 18.5379C17.3766 18.2322 17.567 17.82 17.5928 17.3825C17.5986 17.2592 17.6045 17.1297 17.6103 16.995C18.0614 17.0359 18.435 16.9484 18.5119 16.4026H18.7447C18.8851 16.4161 19.0259 16.3807 19.1428 16.3025C19.2597 16.2243 19.3453 16.1082 19.3849 15.9743C19.5689 15.5172 19.7522 15.0595 19.942 14.6018C19.9802 14.5159 20 14.423 20 14.3292C20 14.2353 19.9802 14.1425 19.942 14.0566M15.6313 15.0888C15.4567 14.5787 15.2873 14.0738 15.1151 13.5638H15.7437C15.8804 13.957 16.2599 15.0888 16.2599 15.0888H15.6313ZM16.9415 15.0888C16.7669 14.5845 16.6033 14.0802 16.4316 13.5638H17.0602L17.5759 15.0888H16.9415ZM17.7185 15.5171V15.5114H17.7244L17.7185 15.5171ZM18.2581 15.0888C18.0835 14.5787 17.9141 14.0738 17.7424 13.5638H18.3768L18.8925 15.0888H18.2581Z',\n        parking:\n            'M14.65 21C14.4291 21 14.25 20.8209 14.25 20.6V13.4C14.25 13.1791 14.4291 13 14.65 13H17.5464C18.2056 13 18.7722 13.1055 19.246 13.3166C19.7268 13.5277 20.0976 13.834 20.3586 14.2357C20.6195 14.6306 20.75 15.1004 20.75 15.6451C20.75 16.183 20.6195 16.6494 20.3586 17.0443C20.0976 17.4391 19.7268 17.7455 19.246 17.9634C18.7722 18.1745 18.2056 18.28 17.5464 18.28H15.3831L16.2896 17.4017V20.6C16.2896 20.8209 16.1105 21 15.8896 21H14.65ZM16.2896 17.6162L15.3831 16.6868H17.4227C17.8485 16.6868 18.1644 16.5949 18.3704 16.4111C18.5833 16.2272 18.6898 15.9719 18.6898 15.6451C18.6898 15.3115 18.5833 15.0528 18.3704 14.8689C18.1644 14.6851 17.8485 14.5932 17.4227 14.5932H15.3831L16.2896 13.6638V17.6162Z',\n    };\n\n    static ROUTING_MARKER_PATH_FILL_COLORS: Record<string, string> = {\n        cancelleddelivery: '#E66767',\n        cancelledpickup: '#E66767',\n    };\n\n    static ROUTING_MARKER_DOT_FILL_COLORS: Record<string, string> = {\n        cancelleddelivery: '#E66767',\n        cancelledpickup: '#E66767',\n    };\n}\n","export class MapMarkerIconsConstants {\n  static defaultMarker: string = `<svg class=\"marker-svg\" width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                                    <g filter=\"url(#filter0_f_30697_48851)\">\n                                    <path class=\"shadow-circle\" d=\"M15 31C18.3137 31 21 30.1046 21 29C21 27.8954 18.3137 27 15 27C11.6863 27 9 27.8954 9 29C9 30.1046 11.6863 31 15 31Z\" fill=\"black\" fill-opacity=\"0.6\"/>\n                                    </g>\n                                    <g filter=\"url(#filter1_d_30697_48851)\">\n                                    <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" fill=\"white\"/>\n                                    </g>\n                                    <circle class=\"outside-circle\" cx=\"15\" cy=\"15\" r=\"9\" fill=\"#6692F1\"/>\n                                    <circle class=\"white-circle\" cx=\"15\" cy=\"15\" r=\"5\" fill=\"white\"/>\n                                    <defs>\n                                    <filter id=\"filter0_f_30697_48851\" x=\"7\" y=\"25\" width=\"16\" height=\"8\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"/>\n                                    <feGaussianBlur stdDeviation=\"1\" result=\"effect1_foregroundBlur_30697_48851\"/>\n                                    </filter>\n                                    <filter id=\"filter1_d_30697_48851\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                    <feOffset/>\n                                    <feGaussianBlur stdDeviation=\"2\"/>\n                                    <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                    <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                    <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_30697_48851\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_30697_48851\" result=\"shape\"/>\n                                    </filter>\n                                    </defs>\n                                </svg>\n`;\n\n  static favoriteMarker: string = `<svg class=\"marker-svg\" width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                                    <g filter=\"url(#filter0_f_30697_39170)\">\n                                    <path class=\"shadow-circle\" d=\"M15 31C18.3137 31 21 30.1046 21 29C21 27.8954 18.3137 27 15 27C11.6863 27 9 27.8954 9 29C9 30.1046 11.6863 31 15 31Z\" fill=\"black\" fill-opacity=\"0.6\"/>\n                                    </g>\n                                    <g filter=\"url(#filter1_d_30697_39170)\">\n                                    <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" fill=\"white\"/>\n                                    </g>\n                                    <circle class=\"outside-circle\" cx=\"15\" cy=\"15\" r=\"9\" fill=\"#6692F1\"/>\n                                    <path class=\"inside-shape\" d=\"M20.3715 13.6803C20.339 13.5707 20.2747 13.4731 20.1868 13.3999C20.099 13.3268 19.9914 13.2813 19.8777 13.2692L16.7605 12.9736L15.5284 9.96352C15.4875 9.85661 15.4151 9.76463 15.3209 9.69973C15.2266 9.63484 15.1149 9.6001 15.0004 9.6001C14.886 9.6001 14.7742 9.63484 14.6799 9.69973C14.5857 9.76463 14.5133 9.85661 14.4725 9.96352L13.2404 12.9736L10.1225 13.2692C10.0089 13.2814 9.90137 13.327 9.81351 13.4001C9.72565 13.4733 9.66135 13.5707 9.62867 13.6803C9.59364 13.7914 9.59076 13.9101 9.62037 14.0228C9.64999 14.1355 9.71089 14.2374 9.79603 14.3169L12.1529 16.4737L11.4582 19.6676C11.4327 19.7812 11.4401 19.8997 11.4796 20.0092C11.5191 20.1187 11.589 20.2147 11.6811 20.2859C11.7708 20.3547 11.8794 20.3943 11.9923 20.3995C12.1052 20.4047 12.217 20.3752 12.3126 20.3149L15.0004 18.6375L17.6882 20.3149C17.7838 20.3751 17.8956 20.4046 18.0085 20.3994C18.1214 20.3942 18.23 20.3546 18.3197 20.2859C18.4118 20.2147 18.4817 20.1187 18.5212 20.0092C18.5607 19.8997 18.5681 19.7812 18.5426 19.6676L17.848 16.4737L20.2042 14.3169C20.2893 14.2374 20.3502 14.1355 20.3798 14.0228C20.4094 13.9101 20.4066 13.7914 20.3715 13.6803Z\" fill=\"white\"/>\n                                    <defs>\n                                    <filter id=\"filter0_f_30697_39170\" x=\"7\" y=\"25\" width=\"16\" height=\"8\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"/>\n                                    <feGaussianBlur stdDeviation=\"1\" result=\"effect1_foregroundBlur_30697_39170\"/>\n                                    </filter>\n                                    <filter id=\"filter1_d_30697_39170\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                    <feOffset/>\n                                    <feGaussianBlur stdDeviation=\"2\"/>\n                                    <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                    <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                    <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_30697_39170\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_30697_39170\" result=\"shape\"/>\n                                    </filter>\n                                    </defs>\n                                    </svg>\n`;\n\n  static closedMarker: string = `<svg class=\"marker-svg\" width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                                    <g filter=\"url(#filter0_f_30697_35967)\">\n                                    <path class=\"shadow-circle\" d=\"M15 31C18.3137 31 21 30.1046 21 29C21 27.8954 18.3137 27 15 27C11.6863 27 9 27.8954 9 29C9 30.1046 11.6863 31 15 31Z\" fill=\"black\" fill-opacity=\"0.6\"/>\n                                    </g>\n                                    <g filter=\"url(#filter1_d_30697_35967)\">\n                                    <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" fill=\"white\"/>\n                                    </g>\n                                    <circle class=\"outside-circle\" cx=\"15\" cy=\"15\" r=\"9\" fill=\"#E66767\"/>\n                                    <path class=\"inside-shape\" d=\"M16.5917 14.9998L18.9793 12.612C19.1201 12.4712 19.1991 12.2803 19.1991 12.0812C19.1991 11.8821 19.1201 11.6912 18.9793 11.5504L18.4486 11.0196C18.3078 10.8789 18.1169 10.7998 17.9178 10.7998C17.7188 10.7998 17.5279 10.8789 17.3871 11.0196L15.0001 13.4075L12.6118 11.0196C12.4711 10.8789 12.2802 10.7998 12.0811 10.7998C11.882 10.7998 11.6911 10.8789 11.5504 11.0196L11.0196 11.5504C10.8789 11.6912 10.7998 11.8821 10.7998 12.0812C10.7998 12.2803 10.8789 12.4712 11.0196 12.612L13.4073 14.9998L11.0203 17.3876C10.8796 17.5284 10.8005 17.7193 10.8005 17.9184C10.8005 18.1175 10.8796 18.3084 11.0203 18.4492L11.551 18.98C11.6918 19.1207 11.8827 19.1998 12.0818 19.1998C12.2808 19.1998 12.4717 19.1207 12.6125 18.98L15.0001 16.5921L17.3878 18.98C17.5285 19.1207 17.7195 19.1998 17.9185 19.1998C18.1176 19.1998 18.3085 19.1207 18.4493 18.98L18.98 18.4492C19.1207 18.3084 19.1998 18.1175 19.1998 17.9184C19.1998 17.7193 19.1207 17.5284 18.98 17.3876L16.5917 14.9998Z\" fill=\"white\"/>\n                                    <defs>\n                                    <filter id=\"filter0_f_30697_35967\" x=\"7\" y=\"25\" width=\"16\" height=\"8\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"/>\n                                    <feGaussianBlur stdDeviation=\"1\" result=\"effect1_foregroundBlur_30697_35967\"/>\n                                    </filter>\n                                    <filter id=\"filter1_d_30697_35967\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                    <feOffset/>\n                                    <feGaussianBlur stdDeviation=\"2\"/>\n                                    <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                    <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                    <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_30697_35967\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_30697_35967\" result=\"shape\"/>\n                                    </filter>\n                                    </defs>\n                                    </svg>\n`;\n\nstatic clusterIcon: string = `<svg class=\"marker-svg\" width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                                <g filter=\"url(#filter0_d_8915_70166)\">\n                                    <circle cx=\"26\" cy=\"26\" r=\"16\" fill=\"white\"/>\n                                </g>\n                                <circle cx=\"26\" cy=\"26\" r=\"14\" fill=\"#FAB15C\"/>\n                                <path d=\"M16.7817 28.942V27.416L21.4017 21.2H23.7817L19.2597 27.416L18.1537 27.094H25.8677V28.942H16.7817ZM22.0597 31V28.942L22.1297 27.094V25.26H24.2717V31H22.0597ZM26.434 28.942V27.416L31.054 21.2H33.434L28.912 27.416L27.806 27.094H35.52V28.942H26.434ZM31.712 31V28.942L31.782 27.094V25.26H33.924V31H31.712Z\" fill=\"white\"/>\n                                <g opacity=\"0.7\" filter=\"url(#filter1_d_8915_70166)\">\n                                    <path d=\"M36.781 7.65002L35.461 9.89302C35.3705 10.0502 35.3446 10.2363 35.3886 10.4122C35.4326 10.5881 35.5432 10.74 35.697 10.836C37.8917 12.2409 39.7555 14.1051 41.16 16.3C41.256 16.4538 41.408 16.5644 41.5838 16.6084C41.7597 16.6524 41.9458 16.6265 42.103 16.536L44.346 15.216C44.4275 15.1691 44.4988 15.1061 44.5554 15.031C44.6121 14.9559 44.653 14.8702 44.6758 14.7789C44.6986 14.6876 44.7027 14.5926 44.688 14.4997C44.6732 14.4068 44.6399 14.3178 44.59 14.238C42.8426 11.4867 40.5103 9.15436 37.759 7.40702C37.6792 7.35709 37.5902 7.32376 37.4973 7.30901C37.4044 7.29427 37.3094 7.2984 37.2181 7.32118C37.1268 7.34396 37.0411 7.38491 36.966 7.44158C36.8909 7.49825 36.8279 7.56848 36.781 7.65002ZM46.601 20.651L44.073 21.309C43.8985 21.3562 43.749 21.469 43.6558 21.6239C43.5626 21.7788 43.5329 21.9637 43.573 22.14C44.1343 24.6827 44.1343 27.3173 43.573 29.86C43.5329 30.0363 43.5626 30.2212 43.6558 30.3761C43.749 30.531 43.8985 30.6439 44.073 30.691L46.601 31.349C46.6917 31.3735 46.7864 31.3794 46.8795 31.3665C46.9725 31.3536 47.0621 31.3221 47.1427 31.2738C47.2233 31.2256 47.2934 31.1616 47.3488 31.0857C47.4041 31.0098 47.4437 30.9235 47.465 30.832C48.173 27.6496 48.173 24.3504 47.465 21.168C47.4437 21.0765 47.4041 20.9902 47.3488 20.9143C47.2934 20.8384 47.2233 20.7744 47.1427 20.7262C47.0621 20.678 46.9725 20.6464 46.8795 20.6335C46.7864 20.6206 46.6917 20.6266 46.601 20.651ZM30.696 44.079C30.6502 43.9037 30.5376 43.7532 30.3823 43.6598C30.227 43.5663 30.0414 43.5374 29.865 43.579C27.3192 44.1397 24.6818 44.1397 22.136 43.579C21.9597 43.5389 21.7748 43.5686 21.6199 43.6618C21.465 43.755 21.3521 43.9045 21.305 44.079L20.647 46.6C20.6225 46.6907 20.6166 46.7854 20.6295 46.8785C20.6424 46.9716 20.6739 47.0611 20.7222 47.1417C20.7704 47.2223 20.8344 47.2924 20.9103 47.3478C20.9862 47.4032 21.0725 47.4427 21.164 47.464C24.3471 48.172 27.6469 48.172 30.83 47.464C30.9214 47.4427 31.0076 47.4032 31.0834 47.3479C31.1592 47.2926 31.2231 47.2226 31.2714 47.1421C31.3196 47.0616 31.3512 46.9722 31.3641 46.8792C31.3771 46.7863 31.3713 46.6917 31.347 46.601L30.696 44.079ZM15.21 7.64902C15.163 7.56762 15.1002 7.49651 15.0251 7.43993C14.9501 7.38335 14.8644 7.34245 14.7733 7.31968C14.6821 7.29691 14.5873 7.29273 14.4945 7.30739C14.4016 7.32205 14.3127 7.35526 14.233 7.40502C11.4742 9.14543 9.13842 11.4795 7.39599 14.237C7.34623 14.3167 7.31303 14.4057 7.29837 14.4985C7.28371 14.5913 7.28789 14.6861 7.31066 14.7773C7.33343 14.8685 7.37432 14.9541 7.4309 15.0292C7.48748 15.1042 7.55859 15.1671 7.63999 15.214L9.88599 16.533C10.0436 16.6246 10.2308 16.6511 10.4076 16.6068C10.5845 16.5626 10.7371 16.4511 10.833 16.296C12.237 14.1021 14.101 12.2394 16.296 10.837C16.451 10.7411 16.5625 10.5885 16.6068 10.4116C16.6511 10.2348 16.6246 10.0476 16.533 9.89002L15.21 7.64902ZM7.90999 21.308L5.39599 20.652C5.30528 20.6274 5.21053 20.6213 5.11741 20.6341C5.02428 20.6468 4.93468 20.6782 4.85396 20.7264C4.77323 20.7746 4.70303 20.8385 4.64754 20.9143C4.59205 20.9902 4.55242 21.0765 4.53099 21.168C3.823 24.3504 3.823 27.6496 4.53099 30.832C4.55231 30.9235 4.59184 31.0098 4.64721 31.0857C4.70258 31.1616 4.77267 31.2256 4.8533 31.2738C4.93392 31.3221 5.02343 31.3536 5.1165 31.3665C5.20956 31.3794 5.30428 31.3735 5.39499 31.349L7.92299 30.691C8.09751 30.6439 8.24702 30.531 8.34022 30.3761C8.43342 30.2212 8.46308 30.0363 8.42299 29.86C8.13992 28.5928 7.99673 27.2984 7.99599 26C7.99593 24.7027 8.13439 23.409 8.40899 22.141C8.44966 21.9645 8.42028 21.779 8.32703 21.6237C8.23379 21.4683 8.08494 21.3552 7.90999 21.308ZM9.88899 35.465L7.64599 36.785C7.56446 36.832 7.49322 36.8949 7.43655 36.97C7.37988 37.0451 7.33893 37.1309 7.31616 37.2222C7.29338 37.3135 7.28924 37.4084 7.30399 37.5013C7.31874 37.5943 7.35207 37.6833 7.40199 37.763C9.14933 40.5143 11.4817 42.8467 14.233 44.594C14.3127 44.6439 14.4017 44.6773 14.4947 44.692C14.5876 44.7068 14.6826 44.7026 14.7738 44.6799C14.8651 44.6571 14.9509 44.6161 15.026 44.5595C15.1011 44.5028 15.164 44.4316 15.211 44.35L16.531 42.107C16.6214 41.9499 16.6474 41.7638 16.6034 41.5879C16.5594 41.412 16.4488 41.26 16.295 41.164C14.1003 39.7592 12.2365 37.895 10.832 35.7C10.736 35.5462 10.584 35.4357 10.4081 35.3916C10.2322 35.3476 10.0461 35.3746 9.88899 35.465ZM41.16 35.7C39.7552 37.8951 37.891 39.7593 35.696 41.164C35.5422 41.26 35.4316 41.412 35.3876 41.5879C35.3436 41.7638 35.3695 41.9499 35.46 42.107L36.78 44.35C36.827 44.4316 36.8899 44.5028 36.965 44.5595C37.0401 44.6161 37.1258 44.6571 37.2171 44.6799C37.3084 44.7026 37.4034 44.7068 37.4963 44.692C37.5892 44.6773 37.6782 44.6439 37.758 44.594C40.5093 42.8467 42.8416 40.5143 44.589 37.763C44.6389 37.6833 44.6722 37.5943 44.687 37.5013C44.7017 37.4084 44.6976 37.3135 44.6748 37.2222C44.6521 37.1309 44.6111 37.0451 44.5544 36.97C44.4978 36.8949 44.4265 36.832 44.345 36.785L42.102 35.465C41.9448 35.3746 41.7587 35.3486 41.5828 35.3926C41.407 35.4367 41.255 35.5472 41.159 35.701M25.996 4.00002C24.3707 3.99798 22.7501 4.17607 21.164 4.53102C21.0725 4.55244 20.9862 4.59208 20.9103 4.64757C20.8344 4.70305 20.7705 4.77325 20.7224 4.85398C20.6742 4.93471 20.6428 5.02431 20.63 5.11743C20.6173 5.21056 20.6234 5.3053 20.648 5.39602L21.304 7.91202C21.3511 8.08696 21.4643 8.23681 21.6196 8.33006C21.775 8.4233 21.9604 8.45268 22.137 8.41202C23.405 8.13775 24.6987 7.99963 25.996 8.00002C27.2971 7.99907 28.5944 8.1399 29.865 8.42002C30.0414 8.46168 30.227 8.43269 30.3823 8.33926C30.5376 8.24583 30.6502 8.09536 30.696 7.92002L31.347 5.39302C31.3713 5.30237 31.3771 5.20776 31.3641 5.11481C31.3512 5.02186 31.3196 4.93247 31.2714 4.85196C31.2231 4.77145 31.1592 4.70146 31.0834 4.64615C31.0076 4.59084 30.9214 4.55135 30.83 4.53002C29.2431 4.17581 27.6219 3.99806 25.996 4.00002Z\" fill=\"white\"/>\n                                </g>\n                                <defs>\n                                    <filter id=\"filter0_d_8915_70166\" x=\"6\" y=\"6\" width=\"40\" height=\"40\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                        <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                        <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                        <feOffset/>\n                                        <feGaussianBlur stdDeviation=\"2\"/>\n                                        <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                        <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                        <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_8915_70166\"/>\n                                        <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_8915_70166\" result=\"shape\"/>\n                                    </filter>\n                                    <filter id=\"filter1_d_8915_70166\" x=\"0\" y=\"0\" width=\"51.9961\" height=\"51.9951\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                        <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                        <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                        <feOffset/>\n                                        <feGaussianBlur stdDeviation=\"2\"/>\n                                        <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                        <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                        <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_8915_70166\"/>\n                                        <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_8915_70166\" result=\"shape\"/>\n                                    </filter>\n                                </defs>\n                            </svg>`;\n}\n","export class SharedSvgRoutes {\n    static COMMON_FOLDER_ROUTE: string = 'assets/ca-components/svg/common/';\n\n    static ARROW_DOWN_SORT: string =\n        'assets/ca-components/svg/common/ic_arrow_sort.svg';\n    static ARROW_UP_SORT: string =\n        'assets/ca-components/svg/common/ic_arrow_desc.svg';\n    static SORT_ARROWS_ICON: string =\n        'assets/ca-components/svg/common/ic_sort_arrows.svg';\n    static DROPDOWN_ARROW: string =\n        'assets/ca-components/svg/input/ic_arrow_input.svg';\n    static ARROW_LEFT: string =\n        'assets/ca-components/svg/common/arrow-left.svg';\n    static LAST_PRICE_ARROW_DOWN: string =\n        'assets/ca-components/svg/progress-range/progress-range-last-price-cursor.svg';\n    static ARROW_RIGHT: string =\n        'assets/ca-components/svg/common/arrow-right.svg';\n    static ARROW_DOWN: string =\n        'assets/ca-components/svg/input/ic_arrow_down_updated.svg';\n    static SELECT_REMAINING_ICON: string =\n        'assets/ca-components/svg/common/ic_zoom_minus.svg';\n    static CIRCLE: string =\n        'assets/ca-components/svg/common/colors/ic_circle.svg';\n\n    static CLEAR_SELECTED_ICON: string =\n        'assets/ca-components/svg/common/ic_x.svg';\n    static BACK_STATUS_ICON: string =\n        'assets/ca-components/svg/common/back_status.svg';\n    public static ARROW_UP =\n        'assets/ca-components/svg/common/payroll-down-arrow.svg';\n    static CONFIRMATION_TRASH_MODAL_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_trash.svg';\n    static CONFIRMATION_DELETE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_delete.svg';\n    static CONFIRMATION_INFO_ICON: string =\n        'assets/svg/common/confirmation/ic_confirmation_info2.svg';\n    static CONFIRMATION_CHECKMARK_ICON: string =\n        'assets/svg/common/confirmation/ic_confirmation_hire.svg';\n    static CONFIRMATION_RESET_ICON: string =\n        'assets/svg/common/confirmation/ic_confirmation_reset.svg';\n    static CONFIRMATION_VOID_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_void.svg';\n    static CONFIRMATION_MODAL_ACTIVATE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_button_activate.svg';\n    static CONFIRMATION_MODAL_DEACTIVATE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_button_deactivate.svg';\n    static CONFIRMATION_MODAL_CLOSE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_close.svg';\n    static CONFIRMATION_MODAL_OPEN_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_open.svg';\n    static CONFIRMATION_MODAL_TABEL_RESET_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_reset.svg';\n    static CONFIRMATION_MODAL_MOVE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_move.svg';\n    static CONFIRMATION_MODAL_REMOVE_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_remove.svg';\n    static CONFIRMATION_MODAL_VOID_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_void.svg';\n    static MODAL_INFO_ICON: string =\n        'assets/ca-components/svg/common/confirmation/ic_confirmation_modal_info.svg';\n    static FILES_ICON: string =\n        'assets/ca-components/svg/common/ic_attachment.svg';\n    static CHECKMARK_ICON: string =\n        'assets/ca-components/svg/input/ic_confirm.svg';\n    static CANCEL_ICON: string = 'assets/ca-components/svg/comment/cancel.svg';\n    static ARROW_UP_FILLED_ICON: string =\n        'assets/ca-components/svg/common/arrow_up_filled.svg';\n    static PLUS_ICON: string = 'assets/ca-components/svg/common/ic_plus.svg';\n    static COMMENT_ICON: string = 'assets/svg/comment.svg';\n    static DOCUMENT_ICON: string =\n        'assets/ca-components/svg/common/ic_document.svg';\n    static CLOSE_ICON_NORMAL: string =\n        'assets/ca-components/svg/common/close-x.svg';\n    static PHONE_ICON: string = 'assets/ca-components/svg/input/ic_phone.svg';\n    static EMAIL_ICON: string = 'assets/ca-components/svg/input/ic_email.svg';\n    static EDIT_ICON: string = 'assets/ca-components/svg/common/ic_edit.svg';\n    static DELETE_ICON: string =\n        'assets/ca-components/svg/right-side-panel/ic_delete.svg';\n    static COPY_ICON: string =\n        'assets/ca-components/svg/right-side-panel/ic_copy.svg';\n    static CHECK_ICON: string =\n        'assets/ca-components/svg/common/ic_checkmark.svg';\n    static NEW_SORT_ICON: string =\n        'assets/ca-components/svg/common/ic_sorting-new.svg';\n    static NEW_SORT_ICON_ASCENDING: string =\n        'assets/ca-components/svg/common/ic_sorting-new-ascending.svg';\n    static NEW_SORT_ICON_DESCENDING: string =\n        'assets/ca-components/svg/common/ic_sorting-new-descending.svg';\n    static MINUS_ICON: string = 'assets/ca-components/svg/popup/Minus.svg';\n    static MAP_LOCATION_ICON: string = 'assets/ca-components/svg/common/ic_location_map.svg';\n}\n","export class MapSvgRoutes {\n  static markerSvgRoute: string =\n    'assets/ca-components/svg/map/routing_marker.svg';\n  static phone: string = 'assets/ca-components/svg/map/phone.svg';\n\n  // Routing markers\n  static routingCheckedPickupMarker: string =\n    'assets/ca-components/svg/map/progress-marker-pickup.svg';\n  static routingCheckedDeliveryMarker: string =\n    'assets/ca-components/svg/map/progress-marker-checked.svg';\n  static routingCheckedDeadheadMarker: string =\n    'assets/ca-components/svg/map/progress_marker_reached.svg';\n\n  // Regular markers\n  static defaultMarkerIcon = 'assets/ca-components/svg/map/ic_marker.svg';\n  static favoriteMarkerIcon =\n    'assets/ca-components/svg/map/ic_marker_favorite.svg';\n  static closedMarkerIcon = 'assets/ca-components/svg/map/ic_marker_closed.svg';\n}\n","// Constants\nimport { MapOptionsConstants } from '../constants';\nimport { GpsLocationConstants } from '../../../../utils/constants';\n\n// Enums\nimport { eMapMarkerStopType, eMapMarkerString } from '../../enums';\nimport {\n    eGpsHeadingDirection,\n    eGpsMotionStatus,\n    eStringPlaceholder,\n} from '../../../../enums';\n\n// Svg Routes\nimport { MapSvgRoutes } from '../svg-routes';\n\n// Helpers\nimport { GpsLocationHelper } from '../../../../utils/helpers';\n\n// uuid\nimport { uuidv4 } from '../../../../utils/helpers';\n\nexport class MapMarkerIconHelper {\n    static getRoutingMarkerElement = (\n        stopNumber: number | string,\n        stopType: string,\n        isStopChecked?: boolean,\n        isLightMode?: boolean,\n        labelName?: string,\n        isIconMarker?: boolean,\n        isShowLabelOnHover?: boolean,\n        index?: number\n    ): HTMLElement => {\n        const markerElement = document.createElement('div');\n\n        let markerSvg = '';\n\n        if (\n            [\n                eMapMarkerString.DEADHEAD,\n                eMapMarkerString.REPAIR,\n                eMapMarkerString.FUEL,\n                eMapMarkerString.TOWING,\n                eMapMarkerString.PARKING,\n                eMapMarkerString.CANCELLED_PICKUP,\n                eMapMarkerString.CANCELLED_DELIVERY,\n            ].includes(stopType as eMapMarkerString) &&\n            isIconMarker\n        )\n            markerSvg = this.getRoutingMarkerIconSvg(stopType);\n        else\n            markerSvg = MapMarkerIconHelper.getRoutingMarkerIcon(\n                stopNumber,\n                stopType,\n                isStopChecked,\n                isLightMode\n            );\n\n        markerElement.classList.add('routing-icon');\n        markerElement.innerHTML = markerSvg;\n\n        const id = uuidv4();\n\n        markerElement.id = 'routingMarker-' + id;\n\n        if (labelName)\n            MapMarkerIconHelper.createRoutingMarkerLabelElement(\n                markerElement,\n                labelName,\n                isShowLabelOnHover\n            );\n\n        return markerElement;\n    };\n\n    static getMilesMarkerElement = (\n        stopNumber: number | string,\n        stopType: string,\n        labelName?: string,\n        index?: number\n    ): HTMLElement => {\n        const markerElement = document.createElement('div');\n\n        const markerSvg = MapMarkerIconHelper.getMilesMarkerSvg(\n            stopNumber,\n            stopType\n        );\n\n        markerElement.classList.add('miles-icon', 'position-relative');\n        markerElement.innerHTML = markerSvg;\n\n        if (index !== null) markerElement.id = 'milesMarker-' + index;\n\n        if (labelName) {\n            const markerLabelElement = document.createElement('div');\n            markerLabelElement.classList.add('marker-label', 'pe-none');\n            const markerLabelText = document.createElement('div');\n            markerLabelText.classList.add(\n                'marker-label-text',\n                'text-color-black-2'\n            );\n            markerLabelText.innerHTML = labelName.toUpperCase();\n            markerLabelElement.appendChild(markerLabelText);\n            markerElement.appendChild(markerLabelElement);\n            markerElement.classList.add('show-label-on-hover');\n        }\n\n        return markerElement;\n    };\n\n    static getRoutingMarkerIcon = (\n        stopNumber: number | string,\n        stopType: string,\n        isStopChecked?: boolean,\n        isLightMode?: boolean\n    ): string => {\n        if (!isStopChecked) {\n            const markerSvg = this.getRoutingMarkerSvg(\n                stopNumber,\n                stopType,\n                isLightMode\n            );\n\n            return markerSvg;\n        } else {\n            const checkedMarkerSvg = this.getRoutingCheckedMarkerSvg(\n                stopType,\n                isLightMode\n            );\n\n            return checkedMarkerSvg;\n        }\n    };\n\n    static getRoutingMarkerSvg = (\n        stopNumber: number | string,\n        stopType: string,\n        isLightMode?: boolean\n    ): string => {\n        const markerColor = isLightMode\n            ? MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS[\n                  stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS\n              ]\n            : MapOptionsConstants.ROUTING_MARKER_DARK_COLORS[\n                  stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_DARK_COLORS\n              ];\n\n        const markerOutlineColor =\n            MapOptionsConstants.ROUTING_MARKER_OUTLINE_COLORS[\n                isLightMode\n                    ? eMapMarkerString.WHITE\n                    : (stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_OUTLINE_COLORS)\n            ];\n\n        const markerDotColor =\n            MapOptionsConstants.ROUTING_MARKER_DOT_COLORS[\n                isLightMode ? eMapMarkerString.LIGHT : eMapMarkerString.DARK\n            ];\n\n        const markerSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" class=\"marker-svg\">\n                        <circle class=\"shadow-circle\" cx=\"15\" cy=\"29\" r=\"3\" fill=\"${markerColor}\" stroke=\"${markerDotColor}\" stroke-width=\"2\"/>\n                        <g filter=\"url(#filter0_d_24060_59090)\">\n                            <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" \n                              fill=\"${markerOutlineColor}\"\n                            />\n                        </g>\n                        <circle class=\"outside-circle\" xmlns=\"http://www.w3.org/2000/svg\" cx=\"15\" cy=\"15\" r=\"9\" fill=\"${markerColor}\"/>\n                        <text xmlns=\"http://www.w3.org/2000/svg\" id=\"_4\" data-name=\"4\" transform=\"translate(15 16)\" fill=\"#fff\" font-size=\"11\" font-family=\"Montserrat, sans-serif\" font-weight=\"700\" dominant-baseline=\"middle\" text-anchor=\"middle\" y=\"0\">\n                            <tspan>${stopNumber ?? 0}</tspan>\n                        </text>\n                        <defs>\n                            <filter id=\"filter0_d_24060_59090\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                <feOffset/>\n                                <feGaussianBlur stdDeviation=\"2\"/>\n                                <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24060_59090\"/>\n                                <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24060_59090\" result=\"shape\"/>\n                            </filter>\n                        </defs>\n                      </svg>`;\n\n        return markerSvg;\n    };\n\n    static getMilesMarkerSvg = (\n        stopNumber: number | string,\n        stopType: string\n    ): string => {\n        const markerColor =\n            MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS\n            ];\n\n        const markerSvgPath =\n            MapOptionsConstants.MILES_MARKER_ICON_PATHS[\n                stopType as keyof typeof MapOptionsConstants.MILES_MARKER_ICON_PATHS\n            ];\n\n        const markerSvg = `<svg width=\"34\" height=\"34\" viewBox=\"0 0 34 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"marker-svg\">\n                                <g filter=\"url(#filter0_d_11479_6856)\">\n                                    <rect class=\"white-circle\" x=\"6\" y=\"6\" width=\"22\" height=\"22\" rx=\"11\" fill=\"white\"/>\n                                    <rect class=\"inside-circle\" x=\"8\" y=\"8\" width=\"18\" height=\"18\" rx=\"9\"fill=\"${markerColor}\"/>\n                                    <path class=\"marker-path\" d=\"${markerSvgPath}\" fill=\"white\"/>\n                                    <text class=\"marker-number\" fill=\"white\" font-size=\"11\" font-family=\"Montserrat, sans-serif\" font-weight=\"700\" text-anchor=\"middle\" x=\"50%\" y=\"50%\" dy=\".35em\">\n                                        <tspan>${stopNumber ?? 0}</tspan>\n                                    </text>\n                                </g>\n                                <defs>\n                                    <filter id=\"filter0_d_11479_6856\" x=\"0\" y=\"0\" width=\"34\" height=\"34\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                        <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                        <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                        <feOffset/>\n                                        <feGaussianBlur stdDeviation=\"3\"/>\n                                        <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                        <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0\"/>\n                                        <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1224_9282\"/>\n                                        <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1224_9282\" result=\"shape\"/>\n                                    </filter>\n                                </defs>\n                            </svg>`;\n\n        return markerSvg;\n    };\n\n    static getRoutingCheckedMarkerSvg = (\n        stopType: string,\n        isLightMode?: boolean\n    ) => {\n        const checkedMarkerColor = isLightMode\n            ? MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS[\n                  stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS\n              ]\n            : MapOptionsConstants.ROUTING_MARKER_DARK_COLORS[\n                  stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_DARK_COLORS\n              ];\n\n        const checkedMarkerOutlineColor =\n            MapOptionsConstants.ROUTING_MARKER_OUTLINE_COLORS[\n                isLightMode\n                    ? eMapMarkerString.WHITE\n                    : (stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_OUTLINE_COLORS)\n            ];\n\n        const checkedMarkerDotColor =\n            MapOptionsConstants.ROUTING_MARKER_DOT_COLORS[\n                isLightMode ? eMapMarkerString.LIGHT : eMapMarkerString.DARK\n            ];\n\n        const checkedMarkerSvg = `<svg width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                                <circle cx=\"15\" cy=\"29\" r=\"3\" fill=\"${checkedMarkerColor}\" stroke=\"${checkedMarkerDotColor}\" stroke-width=\"2\"/>\n                                <g filter=\"url(#filter0_d_18055_34238)\">\n                                  <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" \n                                    fill=\"${checkedMarkerOutlineColor}\"\n                                  />\n                                </g>\n                                <circle cx=\"15\" cy=\"15\" r=\"9\" fill=\"${checkedMarkerColor}\"/>\n                                <path d=\"M13.0462 19.0477L9.71291 15.7144C9.65718 15.6587 9.61297 15.5925 9.5828 15.5197C9.55264 15.4469 9.53711 15.3689 9.53711 15.2901C9.53711 15.2112 9.55264 15.1332 9.5828 15.0604C9.61297 14.9876 9.65718 14.9214 9.71291 14.8657L10.5629 14.0184C10.6186 13.9627 10.6848 13.9184 10.7576 13.8883C10.8304 13.8581 10.9084 13.8426 10.9872 13.8426C11.0661 13.8426 11.1441 13.8581 11.2169 13.8883C11.2897 13.9184 11.3559 13.9627 11.4116 14.0184L13.4702 16.0771L18.5869 10.9571C18.6426 10.9013 18.7088 10.8571 18.7816 10.8269C18.8544 10.7968 18.9324 10.7812 19.0112 10.7812C19.0901 10.7812 19.1681 10.7968 19.2409 10.8269C19.3137 10.8571 19.3799 10.9013 19.4356 10.9571L20.2842 11.8057C20.34 11.8614 20.3842 11.9276 20.4144 12.0004C20.4445 12.0732 20.4601 12.1512 20.4601 12.2301C20.4601 12.3089 20.4445 12.3869 20.4144 12.4597C20.3842 12.5325 20.34 12.5987 20.2842 12.6544L13.8949 19.0451C13.8392 19.1008 13.773 19.145 13.7002 19.1752C13.6274 19.2053 13.5494 19.2209 13.4706 19.2209C13.3918 19.2209 13.3137 19.2053 13.2409 19.1752C13.1681 19.145 13.102 19.1008 13.0462 19.0451V19.0477Z\" fill=\"white\"/>\n                                <defs>\n                                  <filter id=\"filter0_d_18055_34238\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                    <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                    <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                    <feOffset/>\n                                    <feGaussianBlur stdDeviation=\"2\"/>\n                                    <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                    <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                    <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_18055_34238\"/>\n                                    <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_18055_34238\" result=\"shape\"/>\n                                  </filter>\n                                </defs>\n                              </svg>`;\n\n        return checkedMarkerSvg;\n    };\n\n    static getRoutingMarkerIconSvg = (stopType: string): string => {\n        const markerSvgPath =\n            MapOptionsConstants.ROUTING_MARKER_ICON_PATHS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_ICON_PATHS\n            ];\n\n        const markerSvgPathFillColor =\n            MapOptionsConstants.ROUTING_MARKER_PATH_FILL_COLORS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_PATH_FILL_COLORS\n            ] ?? eMapMarkerString.WHITE;\n\n        const checkedMarkerColor =\n            MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS\n            ];\n\n        const markerDotFillColor =\n            MapOptionsConstants.ROUTING_MARKER_DOT_FILL_COLORS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_DOT_FILL_COLORS\n            ] ?? checkedMarkerColor;\n\n        const checkedMarkerDotColor =\n            MapOptionsConstants.ROUTING_MARKER_DOT_COLORS[\n                eMapMarkerString.LIGHT\n            ];\n\n        const routingMarkerSvg = `<svg width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"marker-svg\">\n                                      <circle class=\"shadow-circle\" cx=\"15\" cy=\"29\" r=\"3\" fill=\"${markerDotFillColor}\" stroke=\"${checkedMarkerDotColor}\" stroke-width=\"2\"/>\n                                      <g filter=\"url(#filter0_d_9268_79834)\">\n                                        <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" fill=\"white\"/>\n                                      </g>\n                                      <circle class=\"outside-circle\" cx=\"15\" cy=\"15\" r=\"9\" fill=\"${checkedMarkerColor}\"/>\n                                      <path d=\"${markerSvgPath}\" fill=\"${markerSvgPathFillColor}\"/>\n                                      <defs>\n                                        <filter id=\"filter0_d_9268_79834\" x=\"0\" y=\"0\" width=\"30\" height=\"32.9985\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                          <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                          <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                          <feOffset/>\n                                          <feGaussianBlur stdDeviation=\"2\"/>\n                                          <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                          <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                          <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_9268_79834\"/>\n                                          <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_9268_79834\" result=\"shape\"/>\n                                        </filter>\n                                      </defs>\n                                    </svg>`;\n\n        return routingMarkerSvg;\n    };\n\n    static getMapMarker(isFavorite?: boolean, isClosed?: boolean): string {\n        let markerIconRoute = MapSvgRoutes.defaultMarkerIcon;\n\n        if (isClosed) markerIconRoute = MapSvgRoutes.closedMarkerIcon;\n        else if (isFavorite) markerIconRoute = MapSvgRoutes.favoriteMarkerIcon;\n\n        return markerIconRoute;\n    }\n    static getClusterMarker(\n        count: number,\n        isSelected?: boolean,\n        isFuelMarker?: boolean\n    ): string {\n        const markerColor = isFuelMarker ? '#6692F1' : '#FAB15C';\n        const markerSvg = `<svg class=\"marker-svg\" width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                          <g filter=\"url(#filter0_d_2631_274104)\">\n                              <circle cx=\"26\" cy=\"26\" r=\"16\" fill=\"white\"/>\n                          </g>\n                          <circle cx=\"26\" cy=\"26\" r=\"14\" fill=\"${markerColor}\"/>\n                          <text\n                              id=\"_4\"\n                              data-name=\"4\"\n                              transform=\"translate(26 27)\"\n                              fill=\"#fff\"\n                              font-size=\"14\"\n                              font-family=\"Montserrat, sans-serif\"\n                              font-weight=\"700\"\n                              dominant-baseline=\"middle\"\n                              text-anchor=\"middle\"\n                          >\n                              <tspan> ${count} </tspan>\n                          </text>\n                          <g opacity=\"0.7\" filter=\"url(#filter1_d_2631_274104)\">\n                              <path d=\"M36.781 7.65002L35.461 9.89302C35.3705 10.0502 35.3446 10.2363 35.3886 10.4122C35.4326 10.5881 35.5432 10.74 35.697 10.836C37.8917 12.2409 39.7555 14.1051 41.16 16.3C41.256 16.4538 41.408 16.5644 41.5838 16.6084C41.7597 16.6524 41.9458 16.6265 42.103 16.536L44.346 15.216C44.4275 15.1691 44.4988 15.1061 44.5554 15.031C44.6121 14.9559 44.653 14.8702 44.6758 14.7789C44.6986 14.6876 44.7027 14.5926 44.688 14.4997C44.6732 14.4068 44.6399 14.3178 44.59 14.238C42.8426 11.4867 40.5103 9.15436 37.759 7.40702C37.6792 7.35709 37.5902 7.32376 37.4973 7.30901C37.4044 7.29427 37.3094 7.2984 37.2181 7.32118C37.1268 7.34396 37.0411 7.38491 36.966 7.44158C36.8909 7.49825 36.8279 7.56848 36.781 7.65002ZM46.601 20.651L44.073 21.309C43.8985 21.3562 43.749 21.469 43.6558 21.6239C43.5626 21.7788 43.5329 21.9637 43.573 22.14C44.1343 24.6827 44.1343 27.3173 43.573 29.86C43.5329 30.0363 43.5626 30.2212 43.6558 30.3761C43.749 30.531 43.8985 30.6439 44.073 30.691L46.601 31.349C46.6917 31.3735 46.7864 31.3794 46.8795 31.3665C46.9725 31.3536 47.0621 31.3221 47.1427 31.2738C47.2233 31.2256 47.2934 31.1616 47.3488 31.0857C47.4041 31.0098 47.4437 30.9235 47.465 30.832C48.173 27.6496 48.173 24.3504 47.465 21.168C47.4437 21.0765 47.4041 20.9902 47.3488 20.9143C47.2934 20.8384 47.2233 20.7744 47.1427 20.7262C47.0621 20.678 46.9725 20.6464 46.8795 20.6335C46.7864 20.6206 46.6917 20.6266 46.601 20.651ZM30.696 44.079C30.6502 43.9037 30.5376 43.7532 30.3823 43.6598C30.227 43.5663 30.0414 43.5374 29.865 43.579C27.3192 44.1397 24.6818 44.1397 22.136 43.579C21.9597 43.5389 21.7748 43.5686 21.6199 43.6618C21.465 43.755 21.3521 43.9045 21.305 44.079L20.647 46.6C20.6225 46.6907 20.6166 46.7854 20.6295 46.8785C20.6424 46.9716 20.6739 47.0611 20.7222 47.1417C20.7704 47.2223 20.8344 47.2924 20.9103 47.3478C20.9862 47.4032 21.0725 47.4427 21.164 47.464C24.3471 48.172 27.6469 48.172 30.83 47.464C30.9214 47.4427 31.0076 47.4032 31.0834 47.3479C31.1592 47.2926 31.2231 47.2226 31.2714 47.1421C31.3196 47.0616 31.3512 46.9722 31.3641 46.8792C31.3771 46.7863 31.3713 46.6917 31.347 46.601L30.696 44.079ZM15.21 7.64902C15.163 7.56762 15.1002 7.49651 15.0251 7.43993C14.9501 7.38335 14.8644 7.34245 14.7733 7.31968C14.6821 7.29691 14.5873 7.29273 14.4945 7.30739C14.4016 7.32205 14.3127 7.35526 14.233 7.40502C11.4742 9.14543 9.13842 11.4795 7.39599 14.237C7.34623 14.3167 7.31303 14.4057 7.29837 14.4985C7.28371 14.5913 7.28789 14.6861 7.31066 14.7773C7.33343 14.8685 7.37432 14.9541 7.4309 15.0292C7.48748 15.1042 7.55859 15.1671 7.63999 15.214L9.88599 16.533C10.0436 16.6246 10.2308 16.6511 10.4076 16.6068C10.5845 16.5626 10.7371 16.4511 10.833 16.296C12.237 14.1021 14.101 12.2394 16.296 10.837C16.451 10.7411 16.5625 10.5885 16.6068 10.4116C16.6511 10.2348 16.6246 10.0476 16.533 9.89002L15.21 7.64902ZM7.90999 21.308L5.39599 20.652C5.30528 20.6274 5.21053 20.6213 5.11741 20.6341C5.02428 20.6468 4.93468 20.6782 4.85396 20.7264C4.77323 20.7746 4.70303 20.8385 4.64754 20.9143C4.59205 20.9902 4.55242 21.0765 4.53099 21.168C3.823 24.3504 3.823 27.6496 4.53099 30.832C4.55231 30.9235 4.59184 31.0098 4.64721 31.0857C4.70258 31.1616 4.77267 31.2256 4.8533 31.2738C4.93392 31.3221 5.02343 31.3536 5.1165 31.3665C5.20956 31.3794 5.30428 31.3735 5.39499 31.349L7.92299 30.691C8.09751 30.6439 8.24702 30.531 8.34022 30.3761C8.43342 30.2212 8.46308 30.0363 8.42299 29.86C8.13992 28.5928 7.99673 27.2984 7.99599 26C7.99593 24.7027 8.13439 23.409 8.40899 22.141C8.44966 21.9645 8.42028 21.779 8.32703 21.6237C8.23379 21.4683 8.08494 21.3552 7.90999 21.308ZM9.88899 35.465L7.64599 36.785C7.56446 36.832 7.49322 36.8949 7.43655 36.97C7.37988 37.0451 7.33893 37.1309 7.31616 37.2222C7.29338 37.3135 7.28924 37.4084 7.30399 37.5013C7.31874 37.5943 7.35207 37.6833 7.40199 37.763C9.14933 40.5143 11.4817 42.8467 14.233 44.594C14.3127 44.6439 14.4017 44.6773 14.4947 44.692C14.5876 44.7068 14.6826 44.7026 14.7738 44.6799C14.8651 44.6571 14.9509 44.6161 15.026 44.5595C15.1011 44.5028 15.164 44.4316 15.211 44.35L16.531 42.107C16.6214 41.9499 16.6474 41.7638 16.6034 41.5879C16.5594 41.412 16.4488 41.26 16.295 41.164C14.1003 39.7592 12.2365 37.895 10.832 35.7C10.736 35.5462 10.584 35.4357 10.4081 35.3916C10.2322 35.3476 10.0461 35.3746 9.88899 35.465ZM41.16 35.7C39.7552 37.8951 37.891 39.7593 35.696 41.164C35.5422 41.26 35.4316 41.412 35.3876 41.5879C35.3436 41.7638 35.3695 41.9499 35.46 42.107L36.78 44.35C36.827 44.4316 36.8899 44.5028 36.965 44.5595C37.0401 44.6161 37.1258 44.6571 37.2171 44.6799C37.3084 44.7026 37.4034 44.7068 37.4963 44.692C37.5892 44.6773 37.6782 44.6439 37.758 44.594C40.5093 42.8467 42.8416 40.5143 44.589 37.763C44.6389 37.6833 44.6722 37.5943 44.687 37.5013C44.7017 37.4084 44.6976 37.3135 44.6748 37.2222C44.6521 37.1309 44.6111 37.0451 44.5544 36.97C44.4978 36.8949 44.4265 36.832 44.345 36.785L42.102 35.465C41.9448 35.3746 41.7587 35.3486 41.5828 35.3926C41.407 35.4367 41.255 35.5472 41.159 35.701M25.996 4.00002C24.3707 3.99798 22.7501 4.17607 21.164 4.53102C21.0725 4.55244 20.9862 4.59208 20.9103 4.64757C20.8344 4.70305 20.7705 4.77325 20.7224 4.85398C20.6742 4.93471 20.6428 5.02431 20.63 5.11743C20.6173 5.21056 20.6234 5.3053 20.648 5.39602L21.304 7.91202C21.3511 8.08696 21.4643 8.23681 21.6196 8.33006C21.775 8.4233 21.9604 8.45268 22.137 8.41202C23.405 8.13775 24.6987 7.99963 25.996 8.00002C27.2971 7.99907 28.5944 8.1399 29.865 8.42002C30.0414 8.46168 30.227 8.43269 30.3823 8.33926C30.5376 8.24583 30.6502 8.09536 30.696 7.92002L31.347 5.39302C31.3713 5.30237 31.3771 5.20776 31.3641 5.11481C31.3512 5.02186 31.3196 4.93247 31.2714 4.85196C31.2231 4.77145 31.1592 4.70146 31.0834 4.64615C31.0076 4.59084 30.9214 4.55135 30.83 4.53002C29.2431 4.17581 27.6219 3.99806 25.996 4.00002Z\" fill=\"${\n                                  isSelected ? markerColor : '#FFFFFF'\n                              }\"/>\n                          </g>\n                          <defs>\n                              <filter id=\"filter0_d_2631_274104\" x=\"6\" y=\"6\" width=\"40\" height=\"40\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                  <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                  <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                  <feOffset/>\n                                  <feGaussianBlur stdDeviation=\"2\"/>\n                                  <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                  <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                  <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2631_274104\"/>\n                                  <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2631_274104\" result=\"shape\"/>\n                              </filter>\n                              <filter id=\"filter1_d_2631_274104\" x=\"0\" y=\"0\" width=\"51.9961\" height=\"51.995\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                                  <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                                  <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                                  <feOffset/>\n                                  <feGaussianBlur stdDeviation=\"2\"/>\n                                  <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                                  <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                                  <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2631_274104\"/>\n                                  <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2631_274104\" result=\"shape\"/>\n                              </filter>\n                          </defs>\n                        </svg>`;\n\n        const markerIconRoute =\n            'data:image/svg+xml;charset=UTF-8;base64,' + btoa(markerSvg);\n\n        return markerSvg;\n    }\n\n    static getCurrentLocationMarkerSvg(motionStatus: eGpsMotionStatus): string {\n        if (motionStatus === eGpsMotionStatus.NO_GPS_DEVICE)\n            return eStringPlaceholder.EMPTY;\n\n        const classes = GpsLocationHelper.getGpsSvgClasses(motionStatus);\n\n        return `<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <rect class=\"${classes}\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#6692F1\"/>\n                    <rect x=\"3\" y=\"3\" width=\"4\" height=\"4\" rx=\"2\" fill=\"white\"/>\n                </svg>`;\n    }\n\n    static getGpsMarkerElement(\n        motionStatus: eGpsMotionStatus,\n        headingDirection: string,\n        isIgnition?: boolean,\n        index?: number,\n        labelName?: string,\n        secondLabelName?: string\n    ): HTMLElement {\n        const markerElement = document.createElement('div');\n\n        const markerSvg = MapMarkerIconHelper.getGpsMarkerSvg(\n            motionStatus,\n            headingDirection,\n            isIgnition\n        );\n\n        markerElement.classList.add('routing-icon');\n        markerElement.innerHTML = markerSvg;\n\n        if (index !== null) markerElement.id = 'routingMarker-' + index;\n\n        if (labelName) {\n            const markerLabelElement = document.createElement('div');\n            markerLabelElement.classList.add('marker-label');\n\n            const markerLabelText = document.createElement('div');\n            markerLabelText.classList.add(\n                'marker-label-text',\n                'text-color-black',\n                'ca-font-bold'\n            );\n\n            const labelText = labelName.toUpperCase();\n\n            markerLabelText.innerHTML = labelText;\n\n            markerLabelElement.appendChild(markerLabelText);\n\n            if (secondLabelName) {\n                const secondLabelElement = document.createElement('div');\n                secondLabelElement.classList.add(\n                    'marker-label-second-text',\n                    'text-color-muted',\n                    'ca-font-bold',\n                    'line-clamp-1'\n                );\n\n                secondLabelElement.innerHTML = secondLabelName;\n\n                markerLabelElement.appendChild(secondLabelElement);\n\n                markerLabelText.classList.add('line-clamp-1');\n            }\n\n            markerElement.appendChild(markerLabelElement);\n\n            if (motionStatus === eGpsMotionStatus.MOVING)\n                markerLabelElement.classList.add('m-t-6');\n        }\n\n        return markerElement;\n    }\n\n    static getGpsMarkerSvg(\n        motionStatus: eGpsMotionStatus,\n        headingDirection: string,\n        isIgnition?: boolean\n    ): string {\n        if (motionStatus === eGpsMotionStatus.MOVING)\n            return MapMarkerIconHelper.getGpsMovingMarkerSvg(headingDirection);\n        else\n            return MapMarkerIconHelper.getGpsStopMarkerSvg(\n                motionStatus,\n                isIgnition\n            );\n    }\n\n    static getGpsMovingMarkerSvg(headingDirection: string): string {\n        const direction =\n            eGpsHeadingDirection[\n                headingDirection as keyof typeof eGpsHeadingDirection\n            ];\n\n        const rotationDeg =\n            GpsLocationConstants.GPS_HEADING_ROTATION_ANGLE[direction] ?? 0;\n\n        return `<svg class=\"overflow-visible\" width=\"26\" height=\"37\" viewBox=\"0 0 26 37\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <g transform=\"rotate(${rotationDeg}, 13, 24)\">\n                        <path d=\"M4 0L22 0L18 24H8L4 0Z\" fill=\"url(#paint0_linear_5496_225961)\"/>\n                    </g>\n                    <g filter=\"url(#filter0_d_5496_225961)\">\n                        <circle cx=\"13\" cy=\"24\" r=\"9\" fill=\"white\"/>\n                    </g>\n                    <circle cx=\"13\" cy=\"24\" r=\"6\" fill=\"#6692F1\"/>\n                    <defs>\n                        <filter id=\"filter0_d_5496_225961\" x=\"0\" y=\"11\" width=\"26\" height=\"26\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                            <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                            <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                            <feOffset/>\n                            <feGaussianBlur stdDeviation=\"2\"/>\n                            <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                            <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                            <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_5496_225961\"/>\n                            <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_5496_225961\" result=\"shape\"/>\n                        </filter>\n                        <linearGradient id=\"paint0_linear_5496_225961\" x1=\"13\" y1=\"0\" x2=\"13\" y2=\"24\" gradientUnits=\"userSpaceOnUse\">\n                            <stop stop-color=\"#3B73ED\" stop-opacity=\"0\"/>\n                            <stop offset=\"1\" stop-color=\"#3B73ED\"/>\n                        </linearGradient>\n                    </defs>\n                </svg>`;\n    }\n\n    static getGpsStopMarkerSvg(\n        motionStatus: eGpsMotionStatus,\n        isIgnition?: boolean\n    ): string {\n        const innerRadius = isIgnition ? 2 : 4;\n\n        const fillColor =\n            GpsLocationConstants.GPS_SVG_FILL_COLORS[motionStatus];\n\n        const isInnerCircleVisible =\n            motionStatus !== eGpsMotionStatus.NO_GPS_DEVICE;\n\n        return `<svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <g filter=\"url(#filter0_d)\">\n                        <circle cx=\"13.0013\" cy=\"13\" r=\"9\" fill=\"white\"/>\n                    </g>\n                    <circle cx=\"13.0013\" cy=\"13\" r=\"7\" fill=\"${fillColor}\" />\n                    ${isInnerCircleVisible ? `<circle cx=\"13.0013\" cy=\"13\" r=\"${innerRadius}\" fill=\"white\" />` : ''}\n                    <defs>\n                        <filter id=\"filter0_d\" x=\"0.00134277\" y=\"0\" width=\"26\" height=\"26\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                            <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                            <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\n                                values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n                                result=\"hardAlpha\"/>\n                            <feOffset/>\n                            <feGaussianBlur stdDeviation=\"2\"/>\n                            <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                            <feColorMatrix type=\"matrix\"\n                                values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                            <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\"/>\n                            <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\"/>\n                        </filter>\n                    </defs>\n                </svg>`;\n    }\n\n    static getGpsAtStopMarkerElement(\n        motionStatus: eGpsMotionStatus,\n        stopNumber: number | string,\n        stopType: string,\n        isIgnition?: boolean,\n        labelName?: string,\n        isShowLabelOnHover?: boolean,\n        id?: number\n    ): HTMLElement {\n        const markerElement = document.createElement('div');\n\n        const routingMarkerSvg = MapMarkerIconHelper.getRoutingCircleMarkerSvg(\n            stopType,\n            stopNumber\n        );\n\n        const gpsMarkerSvg = MapMarkerIconHelper.getGpsMarkerSvg(\n            motionStatus,\n            eStringPlaceholder.EMPTY,\n            isIgnition\n        );\n\n        const routingMarkerElement = document.createElement('div');\n        routingMarkerElement.innerHTML = routingMarkerSvg;\n        const gpsMarkerElement = document.createElement('div');\n        gpsMarkerElement.classList.add('m-t--2');\n        gpsMarkerElement.innerHTML = gpsMarkerSvg;\n\n        markerElement.classList.add(\n            'routing-icon',\n            'd-flex',\n            'flex-column',\n            'align-items-center'\n        );\n        markerElement.appendChild(routingMarkerElement);\n        markerElement.appendChild(gpsMarkerElement);\n\n        if (id !== null) markerElement.id = 'routingMarker-' + id;\n\n        if (labelName)\n            MapMarkerIconHelper.createRoutingMarkerLabelElement(\n                markerElement,\n                labelName,\n                isShowLabelOnHover\n            );\n\n        return markerElement;\n    }\n\n    static getRoutingCircleMarkerSvg(\n        stopType: string,\n        stopNumber: number | string\n    ): string {\n        const markerColor =\n            MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS[\n                stopType as keyof typeof MapOptionsConstants.ROUTING_MARKER_LIGHT_COLORS\n            ];\n\n        return `<svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <circle cx=\"11\" cy=\"11\" r=\"10\" fill=\"${markerColor}\" stroke=\"white\" stroke-width=\"2\"/>\n                    <text x=\"11\" y=\"12.5\" fill=\"white\" font-size=\"11\" font-family=\"Montserrat, sans-serif\" font-weight=\"700\" text-anchor=\"middle\" dominant-baseline=\"middle\"\n                    >\n                        <tspan>${stopNumber ?? 0}</tspan>\n                    </text>\n                </svg>`;\n    }\n\n    static createRoutingMarkerLabelElement(\n        markerElement: HTMLElement,\n        labelName: string,\n        isShowLabelOnHover?: boolean\n    ): void {\n        const markerLabelElement = document.createElement('div');\n        markerLabelElement.classList.add('marker-label');\n        const markerLabelText = document.createElement('div');\n        markerLabelText.classList.add('marker-label-text');\n        markerLabelText.innerHTML = labelName.toUpperCase();\n        markerLabelElement.appendChild(markerLabelText);\n        markerElement.appendChild(markerLabelElement);\n\n        if (isShowLabelOnHover)\n            markerElement.classList.add('show-label-on-hover');\n    }\n\n    static getLtlMarkerElement(\n        stopType: string,\n        labelName: string,\n        index: number\n    ): HTMLElement {\n        const markerElement = document.createElement('div');\n\n        const markerSvg = MapMarkerIconHelper.getLtlMarkerSvg(stopType, index);\n\n        markerElement.classList.add('routing-icon');\n        markerElement.innerHTML = markerSvg;\n\n        const id = uuidv4();\n\n        markerElement.id = 'routingMarker-' + id;\n\n        if (labelName)\n            MapMarkerIconHelper.createRoutingMarkerLabelElement(\n                markerElement,\n                labelName,\n                true\n            );\n\n        return markerElement;\n    }\n\n    static getLtlMarkerSvg(stopType: string, index: number): string {\n        const colorIndex =\n            Math.floor(index / 2) %\n            MapOptionsConstants.LTL_MARKER_COLORS.length;\n\n        const markerColor = MapOptionsConstants.LTL_MARKER_COLORS[colorIndex];\n\n        const markerInsideContent =\n            stopType === eMapMarkerString.PICKUP\n                ? '<path d=\"M20.3996 10.7989V19.2006C20.4005 19.2787 20.3863 19.3562 20.3577 19.4286C20.3291 19.5011 20.2867 19.5671 20.233 19.6229C20.1792 19.6786 20.1151 19.7231 20.0444 19.7536C19.9737 19.7841 19.8977 19.8002 19.8209 19.8008H19.2422C19.1656 19.7998 19.09 19.7835 19.0196 19.7528C18.9492 19.7221 18.8854 19.6777 18.8319 19.6219C18.7784 19.5662 18.7362 19.5003 18.7078 19.428C18.6794 19.3557 18.6653 19.2785 18.6662 19.2006V10.801C18.6653 10.7229 18.6795 10.6454 18.7081 10.5729C18.7367 10.5005 18.7791 10.4345 18.8328 10.3787C18.8866 10.3229 18.9507 10.2785 19.0214 10.248C19.0921 10.2174 19.1681 10.2014 19.2449 10.2008H19.8236C19.9779 10.2027 20.1252 10.2668 20.2332 10.3789C20.3412 10.491 20.401 10.6421 20.3996 10.7989ZM10.1783 16.6001H13.457V18.7928C13.455 18.8905 13.4819 18.9865 13.5342 19.0684C13.5865 19.1503 13.6618 19.2144 13.7503 19.2523C13.8389 19.2903 13.9366 19.3004 14.0309 19.2812C14.1251 19.2621 14.2115 19.2147 14.2789 19.1451L17.9456 15.3395C18.0326 15.2478 18.0812 15.1254 18.0812 14.9981C18.0812 14.8707 18.0326 14.7483 17.9456 14.6567L14.2789 10.8511C14.2115 10.7815 14.1251 10.734 14.0309 10.7149C13.9366 10.6958 13.8389 10.7059 13.7503 10.7438C13.6618 10.7817 13.5865 10.8458 13.5342 10.9278C13.4819 11.0097 13.455 11.1057 13.457 11.2033V13.3994H10.1783C10.1015 13.4 10.0255 13.4161 9.95482 13.4466C9.8841 13.4771 9.82002 13.5216 9.76625 13.5773C9.71248 13.6331 9.67008 13.6991 9.64149 13.7716C9.61291 13.844 9.59869 13.9215 9.59966 13.9996V15.9999C9.59869 16.078 9.61291 16.1555 9.64149 16.228C9.67008 16.3004 9.71248 16.3664 9.76625 16.4222C9.82002 16.478 9.8841 16.5224 9.95482 16.5529C10.0255 16.5835 10.1015 16.5995 10.1783 16.6001Z\" fill=\"white\"/>'\n                : '<path d=\"M11.3334 19.1992V10.7993C11.3354 10.6424 11.2761 10.4912 11.1684 10.3787C11.0608 10.2663 10.9137 10.2017 10.7593 10.1992H10.1785C10.1018 10.1998 10.0261 10.2158 9.95553 10.2461C9.88497 10.2765 9.821 10.3207 9.76725 10.3761C9.7135 10.4316 9.67103 10.4973 9.64228 10.5694C9.61352 10.6415 9.59904 10.7187 9.59966 10.7966V19.1992C9.59869 19.277 9.61282 19.3543 9.64125 19.4265C9.66968 19.4988 9.71185 19.5647 9.76535 19.6204C9.81885 19.6761 9.88264 19.7206 9.95306 19.7513C10.0235 19.782 10.0992 19.7982 10.1758 19.7992H10.7573C10.8339 19.7986 10.9097 19.7827 10.9802 19.7523C11.0508 19.7219 11.1148 19.6778 11.1685 19.6223C11.2222 19.5668 11.2647 19.5012 11.2935 19.429C11.3222 19.3569 11.3367 19.2797 11.3361 19.2019M12.493 13.3992H15.7725V11.2049C15.7705 11.1073 15.7974 11.0113 15.8498 10.9294C15.9021 10.8475 15.9774 10.7834 16.066 10.7455C16.1546 10.7076 16.2523 10.6975 16.3466 10.7166C16.4409 10.7358 16.5273 10.7832 16.5947 10.8528L20.2623 14.6562C20.3504 14.748 20.3996 14.8711 20.3996 14.9992C20.3996 15.1274 20.3504 15.2504 20.2623 15.3422L16.5947 19.1464C16.527 19.2158 16.4403 19.263 16.3459 19.2818C16.2515 19.3007 16.1537 19.2903 16.0651 19.2521C15.9766 19.2139 15.9014 19.1495 15.8492 19.0674C15.797 18.9853 15.7703 18.8892 15.7725 18.7915V16.5972H12.493C12.4164 16.5966 12.3407 16.5806 12.2701 16.5503C12.1996 16.5199 12.1356 16.4757 12.0818 16.4203C12.0281 16.3648 11.9856 16.2991 11.9569 16.227C11.9281 16.1549 11.9136 16.0777 11.9142 15.9999V13.9993C11.9133 13.9214 11.9274 13.8442 11.9558 13.7719C11.9843 13.6996 12.0264 13.6338 12.0799 13.578C12.1334 13.5223 12.1972 13.4778 12.2676 13.4472C12.3381 13.4165 12.4138 13.4002 12.4904 13.3992\" fill=\"white\"/>';\n\n        return `<svg class=\"marker-svg\" width=\"30\" height=\"33\" viewBox=\"0 0 30 33\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <circle cx=\"15\" cy=\"29\" r=\"3\" fill=\"${markerColor}\" stroke=\"#EEEEEE\" stroke-width=\"2\"/>\n                    <g filter=\"url(#filter0_d_48097_211664)\">\n                        <path d=\"M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z\" fill=\"white\"/>\n                    </g>\n                    <circle cx=\"15\" cy=\"15\" r=\"9\" fill=\"${markerColor}\"/>\n                    ${markerInsideContent}\n                    <defs>\n                        <filter id=\"filter0_d_48097_211664\" x=\"0\" y=\"0\" width=\"30\" height=\"32.998\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                            <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                            <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                            <feOffset/>\n                            <feGaussianBlur stdDeviation=\"2\"/>\n                            <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                            <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"/>\n                            <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_48097_211664\"/>\n                            <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_48097_211664\" result=\"shape\"/>\n                        </filter>\n                    </defs>\n                </svg>`;\n    }\n\n    static getDispatchRouteMarkerElement(\n        stopType: string,\n        id?: number\n    ): HTMLElement {\n        const markerElement = document.createElement('div');\n\n        markerElement.classList.add('routing-icon');\n        markerElement.innerHTML =\n            MapMarkerIconHelper.getDispatchRouteMarkerSvg(stopType);\n\n        if (id) markerElement.id = 'routingMarker-' + id;\n\n        return markerElement;\n    }\n\n    static getDispatchRouteMarkerSvg(stopType: string): string {\n        const markerColor =\n            MapOptionsConstants.DISPATCH_ROUTE_MARKER_COLORS[\n                stopType as keyof typeof MapOptionsConstants.DISPATCH_ROUTE_MARKER_COLORS\n            ];\n\n        return `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <g filter=\"url(#filter0_d_62732_4805)\">\n                        <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"6\" fill=\"white\" shape-rendering=\"geometricPrecision\"/>\n                        <rect x=\"8\" y=\"8\" width=\"8\" height=\"8\" rx=\"4\" fill=\"${markerColor}\"/>\n                    </g>\n                    <defs>\n                        <filter id=\"filter0_d_62732_4805\" x=\"0\" y=\"0\" width=\"24\" height=\"24\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n                            <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n                            <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n                            <feOffset/>\n                            <feGaussianBlur stdDeviation=\"3\"/>\n                            <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n                            <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0\"/>\n                            <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_62732_4805\"/>\n                            <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_62732_4805\" result=\"shape\"/>\n                        </filter>\n                    </defs>\n                </svg>`;\n    }\n\n    static getStopType(\n        stopType: { id?: number; name?: string },\n        stopStatusId?: number\n    ): string {\n        const isCancelled = stopStatusId === 2 || stopStatusId === 3;\n\n        switch (stopType.id) {\n            case eMapMarkerStopType.DEADHEAD_STOP:\n                return eMapMarkerString.DEADHEAD;\n\n            case eMapMarkerStopType.SPLIT_LOCATION_STOP:\n                return eMapMarkerString.SPLIT_LOCATION;\n\n            case eMapMarkerStopType.REDIRECT_LOCATION_STOP:\n                return eMapMarkerString.DEADHEAD;\n\n            case eMapMarkerStopType.REDIRECTED_DELIVERY_STOP:\n                return eMapMarkerString.DELIVERY;\n\n            case eMapMarkerStopType.REDIRECTED_PICKUP_STOP:\n                return eMapMarkerString.PICKUP;\n\n            case eMapMarkerStopType.PICKUP_STOP:\n                return isCancelled\n                    ? eMapMarkerString.CANCELLED_PICKUP\n                    : eMapMarkerString.PICKUP;\n\n            case eMapMarkerStopType.DELIVERY_STOP:\n                return isCancelled\n                    ? eMapMarkerString.CANCELLED_DELIVERY\n                    : eMapMarkerString.DELIVERY;\n\n            default:\n                return stopType.name || eStringPlaceholder.EMPTY;\n        }\n    }\n}\n","import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// Helpers\nimport { MapMarkerIconHelper } from '../helpers';\n\n// Constants\nimport { MapMarkerIconsConstants } from '../constants';\n\n// Models\nimport { IMapMarkers } from '../../models';\n\n// Enums\nimport { eGpsMotionStatus } from '../../../../enums';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class MapMarkerIconService {\n    private renderer: Renderer2;\n    private clusterMarkerIds = new BehaviorSubject<IMapMarkers[]>([]);\n    public clusterMarkerIds$: Observable<IMapMarkers[]> =\n        this.clusterMarkerIds.asObservable();\n    private routingMarkerIds = new BehaviorSubject<IMapMarkers[]>([]);\n    public routingMarkerIds$: Observable<IMapMarkers[]> =\n        this.routingMarkerIds.asObservable();\n    private markerElements = new BehaviorSubject<HTMLElement[]>([]);\n    private clusterElements = new BehaviorSubject<HTMLElement[]>([]);\n    private routingElements = new BehaviorSubject<HTMLElement[]>([]);\n\n    constructor(rendererFactory: RendererFactory2) {\n        this.renderer = rendererFactory.createRenderer(null, null);\n    }\n\n    public getMarkerIcon(\n        markerId: number,\n        labelName?: string,\n        isClosed?: boolean,\n        isFavorite?: boolean,\n        isAlwaysSelected?: boolean,\n        fuelMarkerClass?: string,\n        secondLabelName?: string,\n        isCreateNewMarker?: boolean\n    ): HTMLElement {\n        const markerElements = this.markerElements.getValue();\n\n        const previousMarkerIcon = markerElements.find(\n            (icon) => icon.id === 'marker-' + markerId\n        );\n\n        if (previousMarkerIcon && !isCreateNewMarker) return previousMarkerIcon;\n        else {\n            const markerElement = this.renderer.createElement('div');\n            this.renderer.setAttribute(\n                markerElement,\n                'id',\n                'marker-' + markerId\n            );\n            this.renderer.addClass(markerElement, 'marker-icon');\n\n            const markerSvg = isClosed\n                ? MapMarkerIconsConstants.closedMarker\n                : isFavorite\n                  ? MapMarkerIconsConstants.favoriteMarker\n                  : MapMarkerIconsConstants.defaultMarker;\n\n            this.renderer.setProperty(markerElement, 'innerHTML', markerSvg);\n\n            if (labelName) {\n                const markerLabelElement = this.renderer.createElement('div');\n                this.renderer.addClass(markerLabelElement, 'marker-label');\n\n                const markerLabelText = this.renderer.createElement('div');\n                this.renderer.addClass(markerLabelText, 'marker-label-text');\n\n                const labelText = isAlwaysSelected\n                    ? labelName\n                    : labelName.toUpperCase();\n\n                this.renderer.setProperty(\n                    markerLabelText,\n                    'innerHTML',\n                    labelText\n                );\n\n                this.renderer.appendChild(markerLabelElement, markerLabelText);\n\n                if (secondLabelName) {\n                    const secondLabelElement =\n                        this.renderer.createElement('div');\n                    this.renderer.addClass(\n                        secondLabelElement,\n                        'marker-label-second-text'\n                    );\n                    this.renderer.addClass(secondLabelElement, 'ca-font-bold');\n                    this.renderer.addClass(secondLabelElement, 'line-clamp-1');\n\n                    this.renderer.setProperty(\n                        secondLabelElement,\n                        'innerHTML',\n                        secondLabelName.toUpperCase()\n                    );\n\n                    this.renderer.appendChild(\n                        markerLabelElement,\n                        secondLabelElement\n                    );\n\n                    this.renderer.addClass(markerLabelText, 'line-clamp-1');\n                }\n\n                this.renderer.appendChild(markerElement, markerLabelElement);\n            }\n\n            if (isAlwaysSelected)\n                this.renderer.addClass(markerElement, 'selected-permanently');\n\n            if (fuelMarkerClass && !isClosed) {\n                this.renderer.addClass(markerElement, 'fuel-icon');\n                this.renderer.addClass(markerElement, fuelMarkerClass);\n            }\n\n            markerElements.push(markerElement);\n\n            this.markerElements.next(markerElements);\n\n            return markerElement;\n        }\n    }\n\n    public getClusterMarkerIcon(\n        markerData: IMapMarkers,\n        isFuelMarker?: boolean\n    ): HTMLElement {\n        const clusterElements = this.clusterElements.getValue();\n\n        const clusterId = this.createClusterId(markerData);\n\n        const previousClusterIcon = clusterElements.find(\n            (icon) => icon.id === 'cluster-' + clusterId\n        );\n\n        if (previousClusterIcon) return previousClusterIcon;\n        else {\n            const markerElement = this.renderer.createElement('div');\n            this.renderer.setAttribute(\n                markerElement,\n                'id',\n                'cluster-' + clusterId\n            );\n            this.renderer.addClass(markerElement, 'cluster-icon');\n\n            if (isFuelMarker)\n                this.renderer.addClass(markerElement, 'fuel-icon');\n\n            const markerSvg = MapMarkerIconHelper.getClusterMarker(\n                markerData.data.count,\n                false,\n                isFuelMarker\n            );\n            this.renderer.setProperty(markerElement, 'innerHTML', markerSvg);\n            clusterElements.push(markerElement);\n\n            this.clusterElements.next(clusterElements);\n\n            return markerElement;\n        }\n    }\n\n    public getRoutingMarkerIcon(\n        markerData: IMapMarkers,\n        stopNumber: number,\n        stopType: string,\n        isStopChecked?: boolean,\n        isLightMode?: boolean,\n        labelName?: string\n    ): HTMLElement {\n        const routingElements = this.routingElements.getValue();\n\n        const routingId = markerData.id ?? this.createRoutingId(markerData);\n\n        const previousClusterIcon = routingElements.find(\n            (icon) => icon.id === 'routingMarker-' + routingId\n        );\n\n        if (previousClusterIcon) return previousClusterIcon;\n        else {\n            const markerElement = this.renderer.createElement('div');\n            this.renderer.setAttribute(\n                markerElement,\n                'id',\n                'routingMarker-' + routingId\n            );\n            this.renderer.addClass(markerElement, 'routing-icon');\n\n            const markerSvg = MapMarkerIconHelper.getRoutingMarkerIcon(\n                stopNumber,\n                stopType,\n                isStopChecked,\n                isLightMode\n            );\n            this.renderer.setProperty(markerElement, 'innerHTML', markerSvg);\n\n            if (labelName) {\n                const markerLabelElement = this.renderer.createElement('div');\n                this.renderer.addClass(markerLabelElement, 'marker-label');\n                this.renderer.setProperty(\n                    markerLabelElement,\n                    'innerHTML',\n                    labelName.toUpperCase()\n                );\n                this.renderer.appendChild(markerElement, markerLabelElement);\n            }\n\n            routingElements.push(markerElement);\n\n            this.routingElements.next(routingElements);\n\n            return markerElement;\n        }\n    }\n\n    public getCurrentLocationMarkerIcon(\n        markerData: IMapMarkers,\n        motionStatus: eGpsMotionStatus\n    ): HTMLElement {\n        const routingElements = this.routingElements.getValue();\n\n        const routingId = markerData.id ?? this.createRoutingId(markerData);\n\n        const previousClusterIcon = routingElements.find(\n            (icon) => icon.id === 'routingMarker-' + routingId\n        );\n\n        if (previousClusterIcon) return previousClusterIcon;\n        else {\n            const markerElement = this.renderer.createElement('div');\n            this.renderer.setAttribute(\n                markerElement,\n                'id',\n                'routingMarker-' + routingId\n            );\n            this.renderer.addClass(markerElement, 'routing-icon');\n            this.renderer.addClass(markerElement, 'd-flex');\n\n            const markerSvg =\n                MapMarkerIconHelper.getCurrentLocationMarkerSvg(motionStatus);\n            this.renderer.setProperty(markerElement, 'innerHTML', markerSvg);\n\n            routingElements.push(markerElement);\n\n            this.routingElements.next(routingElements);\n\n            return markerElement;\n        }\n    }\n\n    public createClusterId(clusterData: IMapMarkers): number {\n        const clusterMarkers = this.clusterMarkerIds.getValue();\n\n        const clusterId = clusterMarkers.find(\n            (item) => clusterData?.id === item?.id\n        )?.id;\n\n        if (clusterId) return clusterId;\n        else {\n            const newId = crypto.getRandomValues(new Uint32Array(1))[0];\n\n            const newData = {\n                ...clusterData,\n                id: newId,\n            };\n\n            clusterMarkers.push(newData);\n            this.clusterMarkerIds.next(clusterMarkers);\n\n            return newId;\n        }\n    }\n\n    public createRoutingId(markerData: IMapMarkers): number {\n        const routingMarkers = this.routingMarkerIds.getValue();\n\n        const routingId = routingMarkers.find(\n            (item) => markerData?.id === item?.id\n        )?.id;\n\n        if (routingId) return routingId;\n        else {\n            const newId =\n                markerData?.id ?? crypto.getRandomValues(new Uint32Array(1))[0];\n\n            const newData = {\n                ...markerData,\n                id: newId,\n            };\n\n            routingMarkers.push(newData);\n            this.routingMarkerIds.next(routingMarkers);\n\n            return newId;\n        }\n    }\n\n    public resetMarkersData(): void {\n        this.clusterMarkerIds.next([]);\n        this.routingMarkerIds.next([]);\n        this.markerElements.next([]);\n        this.clusterElements.next([]);\n        this.routingElements.next([]);\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    Renderer2,\n    ViewChild,\n    ViewChildren,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport {\n    GoogleMap,\n    GoogleMapsModule,\n    MapAdvancedMarker,\n} from '@angular/google-maps';\n\n// Components\nimport { CaMapDropdownComponent } from '../ca-map-dropdown/ca-map-dropdown.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Enums\nimport { GoogleMapEnum } from '../ca-map/enums/google-map.enum';\nimport { eMapMarkerString } from './enums';\nimport { eStringPlaceholder } from '../../enums';\n\n// Models\nimport {\n    IMapMarkers,\n    ICaMapProps,\n    IMapOptions,\n    IRoutePath,\n    IMapBoundsZoom,\n    IMapSelectedMarkerData,\n    IMapAreaFilter,\n} from '../ca-map/models';\n\n// Helpers\nimport { MapHelper } from '../ca-map/utils/helpers/map.helper';\n\n// Constants\nimport { MapOptionsConstants, MapConstants } from './utils/constants';\n\n// Services\nimport { MapMarkerIconService } from './utils/services';\n\n// Svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-map',\n    templateUrl: './ca-map.component.html',\n    styleUrls: ['./ca-map.component.scss'],\n    imports: [\n        // Modules\n        GoogleMapsModule,\n        CommonModule,\n        AngularSvgIconModule,\n        NgbTooltipModule,\n        // Components\n        CaMapDropdownComponent,\n        CaAppTooltipV2Component,\n    ],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class CaMapComponent {\n    constructor(\n        public cd: ChangeDetectorRef,\n        private el: ElementRef,\n        private renderer: Renderer2,\n\n        // Services\n        private markerIconService: MapMarkerIconService\n    ) {}\n    @ViewChild(GoogleMap, { static: false }) maps!: GoogleMap;\n    @ViewChild('markerDropdown') markerDropdown!: ElementRef;\n    @ViewChild('clusterDropdown') clusterDropdown!: ElementRef;\n    @ViewChildren(MapAdvancedMarker) mapMarkers!: QueryList<MapAdvancedMarker>;\n\n    @Input() set data(values: ICaMapProps) {\n        this.handleMapData(values);\n    }\n\n    @Output() resetSelectedMarkerItem = new EventEmitter<boolean>();\n    @Output() routingMarkerClick = new EventEmitter<number>();\n    @Output() clusterMarkerClick = new EventEmitter<IMapMarkers>();\n    @Output() clusterListScrollEvent = new EventEmitter<IMapMarkers>();\n    @Output() getInfoWindowData = new EventEmitter<number>();\n    @Output() boundsChanged = new EventEmitter<IMapBoundsZoom>();\n    @Output() openInMapEvent = new EventEmitter();\n\n    private destroy$ = new Subject<void>();\n\n    public directionsRenderers: google.maps.DirectionsRenderer[] = [];\n\n    public mapOptions: IMapOptions = MapOptionsConstants.DEFAULT_MAP_OPTIONS;\n    public mapZoom: number = MapOptionsConstants.DEFAULT_MAP_ZOOM;\n    public mapCenter: IRoutePath = MapOptionsConstants.DEFAULT_MAP_CENTER;\n    public map: google.maps.Map | null = null;\n    public mapStyleId: string = 'd681904a390a8402';\n    public mapData: ICaMapProps = {};\n    public mapScaleMilesLabel: number = 0;\n    public mapScalePixelWidth: number = 0;\n\n    public openedInfoWindowData: IMapMarkers | null = null;\n    public selectedRoutingMarker: IMapMarkers | null = null;\n    public areaFilterData: IMapAreaFilter | null = null;\n    public routePathColors: string[] = [];\n\n    public routePolylines: google.maps.PolylineOptions[] = [];\n\n    public isMarkerDropdownOpen: boolean = false;\n    public isClusterDropdownOpen: boolean = false;\n    public isMapCenterSet: boolean = false;\n\n    public openDropdownTimeout: ReturnType<typeof setTimeout> | number = 0;\n    public selectRoutingTimeout: ReturnType<typeof setTimeout> | number = 0;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    ngOnInit() {\n        // Reset all icons to their initial state on page load\n        this.resetMarkersIcons();\n\n        this.storeRoutePathColors();\n    }\n\n    ngAfterViewInit() {\n        this.maps.googleMap?.addListener('click', () => {\n            this.closeInfoWindow();\n        });\n    }\n\n    public onClusterMarkerClick(markerItem: IMapMarkers): void {\n        const isInfoWindowOpened = this.checkInfoWindowPosition(\n            markerItem,\n            this.openedInfoWindowData\n        );\n\n        if (!isInfoWindowOpened) this.clusterMarkerClick.emit(markerItem);\n        else this.closeInfoWindow();\n    }\n\n    public getMarkerInfoWindow(markerId: number): void {\n        if (markerId) this.getInfoWindowData.emit(markerId);\n    }\n\n    public onMarkerClick(markerItem: IMapMarkers): void {\n        const isInfoWindowOpened = this.checkInfoWindowPosition(\n            markerItem,\n            this.openedInfoWindowData\n        );\n\n        if (!isInfoWindowOpened) this.getMarkerInfoWindow(markerItem.data.id);\n        else this.closeInfoWindow();\n    }\n\n    public onRoutingMarkerClick(markerItem: IMapMarkers): void {\n        const isRoutingMarkerSelected = this.checkInfoWindowPosition(\n            markerItem,\n            this.selectedRoutingMarker\n        );\n\n        if (!isRoutingMarkerSelected) {\n            if (markerItem?.data?.id)\n                this.routingMarkerClick.emit(markerItem?.data?.id);\n            else this.handleRoutingMarkerSelect(markerItem);\n        } else this.closeInfoWindow();\n    }\n\n    public onMapReady(mapInstance: google.maps.Map): {\n        fillColor?: string;\n        strokeColor?: string;\n        strokeWeight?: number;\n        fillOpacity?: number;\n    } | void {\n        this.map = mapInstance;\n\n        if (this.mapData?.darkMode) {\n            const styledMapType = new google.maps.StyledMapType(\n                MapConstants.GOOGLE_MAP_DARK_STYLES\n            );\n            this.map!.mapTypes.set(GoogleMapEnum.DARK_MAP, styledMapType);\n            this.map!.setMapTypeId(GoogleMapEnum.DARK_MAP);\n        }\n\n        if (this.mapData.stateBoundariesUrl) {\n            const stateBoundariesUrl = this.mapData.stateBoundariesUrl.url;\n            this.maps.googleMap?.data.loadGeoJson(stateBoundariesUrl);\n\n            this.maps.googleMap?.data.setStyle((feature) => {\n                const stateDensity = feature.getProperty('density');\n                const { fillColor, fillOpacity } =\n                    MapHelper.getFillColorForState(\n                        stateDensity as number,\n                        this.mapData.view || ''\n                    );\n                return {\n                    fillColor: fillColor,\n                    strokeColor: '#EEEEEE',\n                    strokeWeight: 0.6,\n                    fillOpacity: fillOpacity,\n                };\n            });\n        }\n\n        this.sendBoundsChangedEvent();\n        this.getMapIdleEvent(mapInstance);\n        this.setMapStyles();\n    }\n\n    public onClusterBackButtonClick(): void {\n        this.resetSelectedMarkerItem.emit(true);\n    }\n\n    public checkInfoWindowPosition(\n        markerItem: IMapMarkers,\n        markerItem2?: IMapMarkers | null\n    ): boolean {\n        if (markerItem?.data?.id && markerItem2?.data?.id)\n            return markerItem.data.id === markerItem2.data.id;\n\n        return (\n            markerItem.position.lat === markerItem2?.position?.lat &&\n            markerItem.position.lng === markerItem2?.position?.lng\n        );\n    }\n\n    public onClusterListScrollToEnd(): void {\n        if (this.openedInfoWindowData)\n            this.clusterListScrollEvent.emit(this.openedInfoWindowData);\n    }\n\n    public onZoomChange(isMinusClick?: boolean): void {\n        const currentZoomLevel = this.map?.getZoom();\n\n        if (currentZoomLevel) {\n            const nextZoomLevel = isMinusClick\n                ? currentZoomLevel - 1\n                : currentZoomLevel + 1;\n            this.map?.setZoom(nextZoomLevel);\n        }\n    }\n\n    public onOpenInMap(): void {\n        this.openInMapEvent.emit();\n    }\n\n    private calculateAndDisplayRoute(): void {\n        if (this.mapData.routePaths) {\n            // Clear previous route polylines\n            this.routePolylines = [];\n\n            this.mapData.routePaths!.forEach((route, index) => {\n                if (route.decodedShape) {\n                    const polyLineCoordinates = route.decodedShape?.map(\n                        (item) => {\n                            const coordinates = {\n                                lat: item.latitude!,\n                                lng: item.longitude!,\n                            };\n                            return coordinates;\n                        }\n                    );\n\n                    const routePathDashedLine = [\n                        {\n                            ...MapOptionsConstants.ROUTING_DASHED_LINE_ICON[0],\n                            icon: {\n                                ...MapOptionsConstants.ROUTING_DASHED_LINE_PATH,\n                                strokeColor: route.strokeColor,\n                            },\n                        },\n                    ];\n\n                    const routePolyline: google.maps.PolylineOptions = {\n                        path: polyLineCoordinates,\n                        geodesic: true,\n                        strokeColor:\n                            route.strokeColor || GoogleMapEnum.STROKE_COLOR,\n                        strokeOpacity: !route.isDashed\n                            ? route.strokeOpacity ||\n                              GoogleMapEnum.STROKE_OPACITY\n                            : 0,\n                        strokeWeight:\n                            route.strokeWeight || GoogleMapEnum.STROKE_WEIGHT,\n                        icons: route.isDashed\n                            ? (route.dashedLineStyle ?? routePathDashedLine)\n                            : null,\n                        clickable: false,\n                        zIndex: index,\n                    };\n\n                    this.routePolylines.push(routePolyline);\n                }\n            });\n        }\n    }\n\n    private resetMarkersIcons(): void {\n        this.mapData.markers?.map((marker: IMapMarkers, index: number) => {\n            const markerIcon = this.el.nativeElement.querySelector(\n                '#marker-' + marker.id\n            );\n            if (markerIcon)\n                this.renderer.removeClass(\n                    markerIcon,\n                    eMapMarkerString.SELECTED\n                );\n            this.isMarkerDropdownOpen = false;\n\n            return {\n                ...marker,\n                options: { zIndex: index + 1 },\n            };\n        });\n\n        this.mapData.clusterMarkers?.map(\n            (clusterMarker: IMapMarkers, index: number) => {\n                const markerIconId =\n                    eStringPlaceholder.HASH_SIGN + clusterMarker.content.id;\n                const markerIcon =\n                    this.el.nativeElement.querySelector(markerIconId);\n                if (markerIcon)\n                    this.renderer.removeClass(\n                        markerIcon,\n                        eMapMarkerString.SELECTED\n                    );\n                this.isClusterDropdownOpen = false;\n            }\n        );\n\n        this.mapData.routingMarkers?.map((routingMarker, index) => {\n            const markerIcon = this.el.nativeElement.querySelector(\n                eStringPlaceholder.HASH_SIGN + routingMarker.content.id\n            );\n            if (markerIcon)\n                this.renderer.removeClass(\n                    markerIcon,\n                    eMapMarkerString.SELECTED\n                );\n            this.selectedRoutingMarker = null;\n        });\n\n        this.routePolylines = this.routePolylines?.map((polyline, index) => {\n            const pathStrokeColor = this.routePathColors[index];\n\n            if (polyline?.icons?.[0]?.icon) {\n                const routePathDashedLine = [\n                    {\n                        ...polyline.icons[0],\n                        icon: {\n                            ...polyline.icons[0].icon,\n                            strokeColor: pathStrokeColor,\n                        },\n                    },\n                ];\n\n                return {\n                    ...polyline,\n                    icons: routePathDashedLine,\n                    zIndex: index,\n                };\n            }\n\n            return {\n                ...polyline,\n                strokeColor: pathStrokeColor,\n                zIndex: index,\n            };\n        });\n\n        this.cd.detectChanges();\n    }\n\n    private setMapStyles(): void {\n        const allMarkersCombined = [\n            ...(this.mapData.routingMarkers ?? []),\n            ...(this.mapData.clusterMarkers ?? []),\n            ...(this.mapData.markers ?? []),\n        ];\n\n        if (!allMarkersCombined?.length || !this.map || this.isMapCenterSet)\n            return;\n\n        const mapCenterAndBounds =\n            MapHelper.getMapCenterAndZoom(allMarkersCombined);\n\n        if (mapCenterAndBounds.bounds) {\n            this.map!.fitBounds(mapCenterAndBounds.bounds);\n        } else {\n            this.map!.panTo(mapCenterAndBounds.mapCenter);\n            if (mapCenterAndBounds.mapZoom)\n                this.map!.setZoom(mapCenterAndBounds.mapZoom);\n        }\n\n        this.isMapCenterSet = true;\n    }\n\n    private getMapIdleEvent(map: google.maps.Map): void {\n        map.addListener('idle', () => {\n            this.sendBoundsChangedEvent();\n\n            if (this.mapData.isZoomShown) this.getScaleDistance();\n        });\n    }\n\n    private sendBoundsChangedEvent(): void {\n        if (this.map) {\n            const mapBounds = this.map.getBounds();\n            const mapZoom = this.map.getZoom();\n\n            if (mapBounds && mapZoom) {\n                const boundsObject = { bounds: mapBounds, zoom: mapZoom };\n                this.boundsChanged.emit(boundsObject);\n            }\n        }\n    }\n\n    private openMarkerInfoWindow(markerItem: IMapSelectedMarkerData): void {\n        const isInfoWindowOpened = this.checkInfoWindowPosition(\n            markerItem,\n            this.openedInfoWindowData\n        );\n\n        const combinedMarkers = [\n            ...this.mapData.markers!,\n            ...this.mapData.clusterMarkers!,\n        ];\n\n        combinedMarkers.forEach((item: IMapMarkers, index: number) => {\n            const isSelectedMarker = this.checkInfoWindowPosition(\n                item,\n                markerItem\n            );\n\n            const isClusterMarker = item?.data?.count > 1;\n\n            const markerIconId = eStringPlaceholder.HASH_SIGN + item.content.id;\n\n            const dropdownElement = isClusterMarker\n                ? this.clusterDropdown.nativeElement\n                : this.markerDropdown.nativeElement;\n\n            if (isSelectedMarker) {\n                item.options = { zIndex: 999 };\n\n                if (isClusterMarker) this.isMarkerDropdownOpen = false;\n                else this.isClusterDropdownOpen = false;\n\n                clearTimeout(this.openDropdownTimeout);\n\n                this.openDropdownTimeout = setTimeout(() => {\n                    const markerIcon =\n                        this.el.nativeElement.querySelector(markerIconId);\n\n                    if (!(markerIcon?.previousSibling === dropdownElement))\n                        this.renderer.insertBefore(\n                            markerIcon?.parentNode,\n                            dropdownElement,\n                            markerIcon\n                        );\n\n                    if (\n                        markerIcon &&\n                        !markerIcon.classList?.contains(\n                            eMapMarkerString.SELECTED\n                        )\n                    )\n                        this.renderer.addClass(\n                            markerIcon,\n                            eMapMarkerString.SELECTED\n                        );\n\n                    this.isMarkerDropdownOpen = !isClusterMarker;\n                    this.isClusterDropdownOpen = isClusterMarker;\n\n                    this.cd.detectChanges();\n                }, 50);\n            } else {\n                const markerIcon =\n                    this.el.nativeElement.querySelector(markerIconId);\n\n                if (markerIcon?.classList?.contains(eMapMarkerString.SELECTED))\n                    this.renderer.removeClass(\n                        markerIcon,\n                        eMapMarkerString.SELECTED\n                    );\n\n                setTimeout(() => {\n                    item.options = { zIndex: index + 1 };\n                }, 50);\n            }\n        });\n\n        this.openedInfoWindowData = markerItem;\n\n        if (!isInfoWindowOpened) this.map!.panTo(markerItem.position);\n    }\n\n    private closeInfoWindow(): void {\n        this.resetMarkersIcons();\n\n        setTimeout(() => (this.openedInfoWindowData = null), 250);\n\n        clearTimeout(this.openDropdownTimeout);\n        this.isMarkerDropdownOpen = false;\n        this.isClusterDropdownOpen = false;\n        this.selectedRoutingMarker = null;\n        this.resetSelectedMarkerItem.emit();\n    }\n\n    private handleRoutingMarkerSelect(markerItem: IMapMarkers): void {\n        let selectedPathIndex: number = -1;\n\n        this.mapData?.routingMarkers?.map(\n            (item: IMapMarkers, index: number) => {\n                const isSelectedMarker = this.checkInfoWindowPosition(\n                    markerItem,\n                    item\n                );\n\n                const markerIconId =\n                    eStringPlaceholder.HASH_SIGN + item.content.id;\n\n                if (isSelectedMarker) {\n                    selectedPathIndex = index - 1;\n\n                    const markerIcon =\n                        this.el.nativeElement.querySelector(markerIconId);\n\n                    if (\n                        markerIcon &&\n                        !markerIcon.classList?.contains(\n                            eMapMarkerString.SELECTED\n                        )\n                    )\n                        this.renderer.addClass(\n                            markerIcon,\n                            eMapMarkerString.SELECTED\n                        );\n\n                    if (markerItem.infoWindowContent) {\n                        if (\n                            !(\n                                markerIcon?.previousSibling ===\n                                this.clusterDropdown.nativeElement\n                            )\n                        )\n                            this.renderer.insertBefore(\n                                markerIcon?.parentNode,\n                                this.clusterDropdown.nativeElement,\n                                markerIcon\n                            );\n\n                        this.isClusterDropdownOpen = true;\n                        this.openedInfoWindowData = { ...markerItem };\n                    }\n\n                    this.cd.detectChanges();\n\n                    return {\n                        ...item,\n                        options: { zIndex: 999 },\n                    };\n                } else {\n                    const markerIcon =\n                        this.el.nativeElement.querySelector(markerIconId);\n\n                    if (\n                        markerIcon?.classList?.contains(\n                            eMapMarkerString.SELECTED\n                        )\n                    )\n                        this.renderer.removeClass(\n                            markerIcon,\n                            eMapMarkerString.SELECTED\n                        );\n\n                    return {\n                        ...item,\n                        options: { zIndex: index + 1 },\n                    };\n                }\n            }\n        );\n\n        this.routePolylines = this.routePolylines?.map((polyline, index) => {\n            let pathStrokeColor = this.routePathColors[index];\n\n            const isSelectedPath = selectedPathIndex === index;\n\n            const isTowingPath =\n                this.routePathColors[index] ===\n                MapOptionsConstants.ROUTING_PATH_COLORS['purple'];\n\n            if (selectedPathIndex > -1) {\n                if (isSelectedPath)\n                    pathStrokeColor = isTowingPath\n                        ? MapOptionsConstants.ROUTING_PATH_COLORS['darkpurple']\n                        : MapOptionsConstants.ROUTING_PATH_COLORS['darkgray'];\n                else\n                    pathStrokeColor = isTowingPath\n                        ? MapOptionsConstants.ROUTING_PATH_COLORS['lightpurple']\n                        : MapOptionsConstants.ROUTING_PATH_COLORS['lightgray'];\n            }\n\n            if (polyline?.icons?.[0]?.icon) {\n                const routePathDashedLine = [\n                    {\n                        ...polyline.icons[0],\n                        icon: {\n                            ...polyline.icons[0].icon,\n                            strokeColor: pathStrokeColor,\n                        },\n                    },\n                ];\n\n                return {\n                    ...polyline,\n                    icons: routePathDashedLine,\n                    zIndex: isSelectedPath ? 999 : index,\n                };\n            }\n\n            return {\n                ...polyline,\n                strokeColor: pathStrokeColor,\n                zIndex: isSelectedPath ? 999 : index,\n            };\n        });\n\n        this.selectedRoutingMarker = markerItem;\n\n        this.map!.panTo(markerItem.position);\n    }\n\n    private handleMapData(newData: ICaMapProps): void {\n        this.mapData = { ...newData };\n\n        if (this.mapData.selectedMarkerData)\n            this.openMarkerInfoWindow(this.mapData.selectedMarkerData);\n\n        if (this.mapData.selectedRoutingMarkerData)\n            this.handleRoutingMarkerSelect(\n                this.mapData.selectedRoutingMarkerData\n            );\n        else if (this.selectedRoutingMarker) this.closeInfoWindow();\n\n        if (this.mapData.routePaths?.length !== this.routePathColors.length)\n            this.storeRoutePathColors();\n\n        this.areaFilterData = this.mapData.areaFilterData || null;\n\n        this.setMapStyles();\n\n        // Display routes for routingMarkers\n        this.calculateAndDisplayRoute();\n\n        setTimeout(() => this.addHoverListeners(), 0);\n\n        this.cd.detectChanges();\n    }\n\n    private addHoverListeners(): void {\n        if (!this.mapMarkers) return;\n\n        this.mapMarkers.forEach((marker, index) => {\n            const contentEl = (marker as any)._content as HTMLElement;\n            const markerData = this.mapData.routingMarkers?.[index];\n\n            if (!contentEl || !markerData?.hasHoverEvent) return;\n\n            contentEl.onmouseenter = null;\n            contentEl.onmouseleave = null;\n\n            contentEl.addEventListener('mouseenter', () => {\n                this.handleHover(markerData);\n            });\n\n            contentEl.addEventListener('mouseleave', () => {\n                this.resetMarkersIcons();\n            });\n        });\n    }\n\n    private handleHover(markerData: IMapMarkers): void {\n        if (markerData.isRouteHover && markerData.routeId) {\n            this.highlightMarkersByRoute(markerData.routeId);\n            this.updatePolylineColorsByRoute(markerData.routeId);\n        } else {\n            const selectedMarkerIndex = this.highlightSingleMarker(markerData);\n            this.updatePolylineColorsByMarker(selectedMarkerIndex);\n        }\n    }\n\n    private highlightMarkersByRoute(routeId: number): void {\n        this.mapData?.routingMarkers?.forEach((item: IMapMarkers) => {\n            if (item.routeId === routeId) {\n                const markerIcon = item.content as HTMLElement;\n\n                if (\n                    markerIcon &&\n                    !markerIcon.classList?.contains(eMapMarkerString.SELECTED)\n                ) {\n                    this.renderer.addClass(\n                        markerIcon,\n                        eMapMarkerString.SELECTED\n                    );\n                }\n            }\n        });\n    }\n\n    private highlightSingleMarker(markerData: IMapMarkers): number {\n        let selectedMarkerIndex = -1;\n\n        this.mapData?.routingMarkers?.forEach((item, index) => {\n            const isSelectedMarker = this.checkInfoWindowPosition(\n                markerData,\n                item\n            );\n\n            if (isSelectedMarker) {\n                const markerIcon = item.content as HTMLElement;\n\n                if (\n                    markerIcon &&\n                    !markerIcon.classList?.contains(eMapMarkerString.SELECTED)\n                ) {\n                    this.renderer.addClass(\n                        markerIcon,\n                        eMapMarkerString.SELECTED\n                    );\n                }\n\n                selectedMarkerIndex = index;\n            }\n        });\n\n        return selectedMarkerIndex;\n    }\n\n    private updatePolylineColorsByRoute(routeId: number): void {\n        this.routePolylines = this.routePolylines?.map((polyline, index) => {\n            const routeData = this.mapData.routePaths?.[index];\n            const isSelectedPath = routeData?.id === routeId;\n\n            return {\n                ...polyline,\n                strokeColor: isSelectedPath\n                    ? MapOptionsConstants.ROUTING_PATH_COLORS['darkgray']\n                    : MapOptionsConstants.ROUTING_PATH_COLORS['lightgray'],\n                zIndex: isSelectedPath ? 999 : index,\n            };\n        });\n    }\n\n    private updatePolylineColorsByMarker(selectedMarkerIndex: number): void {\n        this.routePolylines = this.routePolylines?.map((polyline, index) => {\n            const isSelectedPath =\n                selectedMarkerIndex >= 0 &&\n                selectedMarkerIndex < this.routePolylines.length &&\n                index === selectedMarkerIndex;\n\n            const isPreviousPath =\n                selectedMarkerIndex - 1 >= 0 &&\n                selectedMarkerIndex - 1 < this.routePolylines.length &&\n                index === selectedMarkerIndex - 1;\n\n            let strokeColor =\n                MapOptionsConstants.ROUTING_PATH_COLORS['lightgray'];\n            if (isSelectedPath) {\n                strokeColor =\n                    MapOptionsConstants.ROUTING_PATH_COLORS['darkgray'];\n            } else if (isPreviousPath) {\n                strokeColor = MapOptionsConstants.ROUTING_PATH_COLORS['gray'];\n            }\n\n            return {\n                ...polyline,\n                strokeColor,\n                zIndex: isSelectedPath ? 999 : index,\n            };\n        });\n    }\n\n    private storeRoutePathColors(): void {\n        let pathColors: string[] = [];\n\n        this.mapData.routePaths?.forEach((path) => {\n            pathColors = [...pathColors, path.strokeColor];\n        });\n\n        this.routePathColors = [...pathColors];\n    }\n\n    private getScaleDistance(): void {\n        if (!this.map) return;\n\n        const { roundedMiles, pixelLength } = MapHelper.getMapScaleDistance(\n            this.map\n        );\n\n        if (!roundedMiles || !pixelLength) return;\n\n        this.mapScaleMilesLabel = roundedMiles;\n        this.mapScalePixelWidth = pixelLength;\n\n        this.cd.detectChanges();\n    }\n\n    ngOnDestroy() {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<google-map\n    class=\"position-relative\"\n    [class.dark-mode-map]=\"mapData.darkMode\"\n    height=\"100%\"\n    width=\"100%\"\n    [options]=\"mapOptions\"\n    [mapId]=\"mapStyleId\"\n    (mapInitialized)=\"onMapReady($event)\"\n>\n    @for (marker of mapData.markers; let i = $index; track marker.data.id) {\n        <map-advanced-marker\n            [position]=\"marker.position\"\n            [content]=\"marker.content\"\n            [zIndex]=\"\n                openedInfoWindowData?.data?.id === marker.data.id ? 999 : i\n            \"\n            (mapClick)=\"onMarkerClick(marker)\"\n        >\n        </map-advanced-marker>\n    }\n\n    <div\n        #markerDropdown\n        class=\"marker-dropdown dropdown-hidden\"\n        [ngClass]=\"{ 'dropdown-hidden': !isMarkerDropdownOpen }\"\n    >\n        <app-ca-map-dropdown\n            [infoWindowContent]=\"\n                !isClusterDropdownOpen\n                    ? openedInfoWindowData?.infoWindowContent!\n                    : null\n            \"\n            [markerData]=\"openedInfoWindowData?.data\"\n            (onClusterItemClick)=\"getMarkerInfoWindow($event)\"\n            (onClusterListScrollToEnd)=\"onClusterListScrollToEnd()\"\n            (onBackButtonClick)=\"onClusterBackButtonClick()\"\n        ></app-ca-map-dropdown>\n    </div>\n\n    @for (\n        clusterMarker of mapData.clusterMarkers;\n        let i = $index;\n        track clusterMarker.position\n    ) {\n        <map-advanced-marker\n            [position]=\"clusterMarker.position\"\n            [content]=\"clusterMarker.content\"\n            [zIndex]=\"\n                checkInfoWindowPosition(clusterMarker, openedInfoWindowData)\n                    ? 999\n                    : i\n            \"\n            (mapClick)=\"onClusterMarkerClick(clusterMarker)\"\n        >\n        </map-advanced-marker>\n    }\n\n    @for (route of routePolylines; let i = $index; track i) {\n        <map-polyline [options]=\"route\"></map-polyline>\n    }\n\n    <div\n        #clusterDropdown\n        class=\"marker-dropdown cluster-dropdown dropdown-hidden\"\n        [ngClass]=\"{ 'dropdown-hidden': !isClusterDropdownOpen }\"\n    >\n        <app-ca-map-dropdown\n            [infoWindowContent]=\"\n                !isMarkerDropdownOpen\n                    ? openedInfoWindowData?.infoWindowContent!\n                    : null\n            \"\n            [markerData]=\"openedInfoWindowData?.data\"\n            (onClusterItemClick)=\"getMarkerInfoWindow($event)\"\n            (onClusterListScrollToEnd)=\"onClusterListScrollToEnd()\"\n            (onBackButtonClick)=\"onClusterBackButtonClick()\"\n        ></app-ca-map-dropdown>\n    </div>\n\n    @if (areaFilterData) {\n        <map-circle\n            [options]=\"areaFilterData.options\"\n            [center]=\"areaFilterData.center\"\n            [radius]=\"areaFilterData.radius\"\n        ></map-circle>\n    }\n\n    @for (routingMarker of mapData.routingMarkers; let i = $index; track i) {\n        <map-advanced-marker\n            [position]=\"routingMarker.position\"\n            [content]=\"routingMarker.content\"\n            [zIndex]=\"\n                checkInfoWindowPosition(routingMarker, selectedRoutingMarker)\n                    ? 999\n                    : i\n            \"\n            (mapClick)=\"\n                routingMarker.hasClickEvent &&\n                    onRoutingMarkerClick(routingMarker)\n            \"\n        >\n        </map-advanced-marker>\n    }\n\n    @if (mapData.isOpenInMapShown) {\n        <div\n            class=\"open-in-map-container d-flex align-items-center justify-content-center z-1\"\n            ngbTooltip\n            mainCaTooltip=\"Open in Map\"\n            tooltipBackground=\"#424242\"\n            position=\"bottom\"\n            (click)=\"onOpenInMap()\"\n        >\n            <svg-icon\n                class=\"d-flex svg-size-18\"\n                [src]=\"sharedSvgRoutes.MAP_LOCATION_ICON\"\n            ></svg-icon>\n        </div>\n    }\n\n    @if (mapData.isZoomShown) {\n        <div\n            class=\"map-zoom-container d-flex flex-column align-items-end z-1\"\n            [ngClass]=\"{\n                'flex-column': !mapData.isVerticalZoom,\n                'vertical-zoom-buttons': mapData.isVerticalZoom,\n            }\"\n        >\n            @let outterContainerBackgroundClass =\n                mapData.darkMode ? 'background-black-3' : 'background-bw2';\n            <div\n                class=\"map-zoom-buttons-container d-flex align-items-center justify-content-center p-y-3 p-x-3 br-2 m-b-1\"\n                [ngClass]=\"outterContainerBackgroundClass\"\n            >\n                @let innerContainerBackgroundClass =\n                    mapData.darkMode\n                        ? 'background-black-2'\n                        : 'background-white';\n                <div\n                    class=\"map-zoom-buttons d-flex align-items-center br-2\"\n                    [ngClass]=\"innerContainerBackgroundClass\"\n                    [class.flex-column]=\"mapData.isVerticalZoom\"\n                >\n                    <div\n                        class=\"zoom-button-container d-flex align-items-center justify-content-center flex-1\"\n                        (click)=\"onZoomChange(true)\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14\"\n                            [src]=\"sharedSvgRoutes.MINUS_ICON\"\n                        ></svg-icon>\n                    </div>\n                    <div\n                        class=\"zoom-button-container d-flex align-items-center justify-content-center flex-1\"\n                        (click)=\"onZoomChange(false)\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14\"\n                            [src]=\"sharedSvgRoutes.PLUS_ICON\"\n                        ></svg-icon>\n                    </div>\n                </div>\n            </div>\n\n            @let rangeContainerBackgroundClass =\n                mapData.darkMode ? 'background-black-3' : 'background-bw2';\n\n            <div\n                class=\"map-zoom-range d-flex align-items-center position-relative h-12 br-3 p-x-3\"\n                [ngClass]=\"rangeContainerBackgroundClass\"\n            >\n                <div\n                    class=\"range-line background-bw5 h-2 br-1\"\n                    [style.width.px]=\"mapScalePixelWidth\"\n                ></div>\n\n                @let rangeTextClass =\n                    mapData.darkMode\n                        ? 'text-color-white background-black-3'\n                        : 'text-color-black background-bw2';\n                <div\n                    class=\"range-text font-size-8 ca-font-medium position-absolute top-0 start-50 translate-middle-x p-x-2 user-select-none\"\n                    [ngClass]=\"rangeTextClass\"\n                >\n                    {{ mapScaleMilesLabel }} mi\n                </div>\n            </div>\n        </div>\n    }\n</google-map>\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  Renderer2,\n  HostListener,\n} from \"@angular/core\";\n\n@Directive({\n  selector: \"[Placeholder]\",\n  standalone: true,\n})\nexport class PlaceholderDirective {\n  @Input() placeholder: string = \"\";\n\n  constructor(\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {}\n\n  ngOnInit() {\n    this.updatePlaceholder();\n  }\n\n  @HostListener(\"input\") onInput() {\n    this.updatePlaceholder();\n  }\n\n  @HostListener(\"focus\") onFocus() {\n    this.updatePlaceholder(true);\n  }\n\n  @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: KeyboardEvent) {\n    this.updatePlaceholder(true);\n  }\n\n  private updatePlaceholder(focus: boolean = false): void {\n    const element = this.el.nativeElement;\n    if (!element.innerText.trim() && !focus) {\n      this.renderer.setProperty(element, \"innerText\", this.placeholder);\n      this.renderer.setStyle(element, \"color\", \"#DADADA\");\n    } else if (element.innerText === this.placeholder && focus) {\n      this.renderer.setProperty(element, \"innerText\", \"\");\n      this.renderer.setStyle(element, \"color\", \"#DADADA\");\n    } else if (element.innerText === this.placeholder) {\n      this.renderer.setStyle(element, \"color\", \"#DADADA\");\n    } else {\n      this.renderer.setStyle(element, \"color\", \"#DADADA\");\n    }\n  }\n}\n","export class CopyPasteHelper {\n  static onPaste(event: ClipboardEvent): void {\n    event.preventDefault();\n\n    const pastedData = event.clipboardData!.getData(\"text/plain\");\n    document.execCommand(\"insertText\", false, pastedData);\n  }\n}\n","import { NoteActiveOptions } from '../../../../models/note-active-options.model';\nimport { NoteColors } from '../../../ca-note-container/models/note-colors.model';\n\nexport class NoteConfigConstants {\n    static noteDarkColors: NoteColors[] = [\n        {\n            color: 'rgb(218, 218, 218)',\n            name: 'Gray',\n        },\n        {\n            color: 'rgb(102, 146, 241)',\n            name: 'Blue',\n        },\n        {\n            color: 'rgb(86, 180, 172)',\n            name: 'Green',\n        },\n        {\n            color: 'rgb(230, 103, 103)',\n            name: 'Red',\n        },\n        {\n            color: 'rgb(250, 177, 92)',\n            name: 'Yellow',\n        },\n        {\n            color: 'rgb(179, 112, 240)',\n            name: 'Purple',\n        },\n    ];\n\n    static noteLightColors: NoteColors[] = [\n        {\n            color: 'rgb(66, 66, 66)',\n            name: 'Black',\n        },\n        {\n            color: 'rgb(59, 115, 237)',\n            name: 'Blue',\n        },\n        {\n            color: 'rgb(37, 159, 148)',\n            name: 'Green',\n        },\n        {\n            color: 'rgb(223, 60, 60)',\n            name: 'Red',\n        },\n        {\n            color: 'rgb(248, 155, 46)',\n            name: 'Yellow',\n        },\n        {\n            color: 'rgb(158, 71, 236)',\n            name: 'Purple',\n        },\n    ];\n\n    static noteActiveOptions: NoteActiveOptions = {\n        bold: false,\n        italic: false,\n        foreColor: false,\n        underline: false,\n    };\n}\n","export enum NoteSelectedColorStringEnum {\n  GRAY_RGB = \"rgb(218, 218, 218)\",\n  GRAY = \"Gray\",\n}\n","export enum NoteDefaultStringEnum {\n  FORE_COLOR = \"ForeColor\",\n  FORE_COLOR2 = \"foreColor\",\n  MAIN_EDITOR = \"main_editor\",\n  CSS_STYLE = \"styleWithCSS\",\n  FALSE = \"false\",\n  COLOR = \"color\",\n  DARK = \"dark\",\n}\n","export class NoteContainerSvgRoutes {\n  static boldRoute: string = \"assets/ca-components/svg/note/bold.svg\";\n  static itallicRoute: string = \"assets/ca-components/svg/note/Itallic.svg\";\n  static colorRoute: string = \"assets/ca-components/svg/note/Note - Empty.svg\";\n  static underlineRoute: string = \"assets/ca-components/svg/note/Underline.svg\";\n  static checkRoute: string = \"assets/ca-components/svg/note/tick.svg\";\n  static arrowRoute: string = \"assets/ca-components/svg/note/arrow.svg\";\n}\n","import { Subject } from 'rxjs';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Animations\nimport { pickupAnimation } from '../../animations/animation';\n\n// Modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Constants\nimport { NoteConfigConstants } from '../ca-note-container/utils/constants/note-config.constant';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { NoteColors } from '../ca-note-container/models/note-colors.model';\n\n// Enums\nimport { NoteSelectedColorStringEnum } from '../ca-note-container/enums/note-selected-color.enum';\nimport { NoteDefaultStringEnum } from '../ca-note-container/enums/note-default-string.enum';\n\n//svg-routes\nimport { NoteContainerSvgRoutes } from '../ca-note-container/utils/svg-routes/note-container-svg-routes';\n\n@Component({\n    selector: 'app-ca-note-container',\n    templateUrl: './ca-note-container.component.html',\n    styleUrls: ['./ca-note-container.component.scss'],\n    imports: [\n        // Module\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // Component\n        CaAppTooltipV2Component,\n    ],\n    animations: [pickupAnimation]\n})\nexport class CaNoteContainerComponent implements OnInit, OnDestroy {\n  @Input() value!: string;\n  @Input() range!: Range;\n  @Input() selectionTaken!: Selection;\n  @Input() isExpanded!: boolean | string;\n  @Input() isParking: boolean = false;\n  @Input() isPopoverNote: boolean = false;\n  @Input() isVisibleArrow: boolean = true;\n  @Input() type!: string;\n  @Input() selectedEditor!: HTMLDivElement;\n\n  @Output() stopBlurRemoveTimeout = new EventEmitter();\n\n  //Colors\n  public selectedPaternColor: string = NoteSelectedColorStringEnum.GRAY_RGB;\n  public activeOptions: NoteActiveOptions | any = {\n    ...NoteConfigConstants.noteActiveOptions,\n  };\n  public containerColors!: NoteColors[];\n  public selectedColorName!: NoteColors;\n\n  //Timeout\n  private slowTimeout!: ReturnType<typeof setTimeout>;\n  private lastSavedIndex: number = -1;\n\n  //Pattern\n  private isDefaultColorSet: boolean = false;\n  public isShowColorPattern!: boolean;\n  public isClosedPattern: boolean = false;\n  public isHoveringArrowPicker: boolean = false;\n\n  private destroy$ = new Subject<void>();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.setContainerColors();\n  }\n\n  private filterContainersColor(): void {\n    this.containerColors.sort((a) => {\n      if (a[NoteDefaultStringEnum.COLOR] !== this.selectedColorName.color) {\n        return 1;\n      }\n      return -1;\n    });\n  }\n\n  public executeEditor(action: string, color?: string, indx?: number): void {\n    this.stopBlurRemoveTimeout.emit();\n    if (indx || indx === 0) this.selectedColorName = this.containerColors[indx];\n\n    if (this.range) {\n      this.selectionTaken.removeAllRanges();\n      this.selectionTaken.addRange(this.range);\n    }\n    if (action !== NoteDefaultStringEnum.FORE_COLOR2) {\n      this.isShowColorPattern = false;\n      this.activeOptions[action] = !this.activeOptions[action];\n      if (!this.activeOptions[action]) {\n        if (this.value.replace('<br>', '') === '')\n          this.selectionTaken.removeAllRanges();\n\n        document.execCommand(\n          NoteDefaultStringEnum.CSS_STYLE,\n          false,\n          NoteDefaultStringEnum.FALSE\n        );\n        document.execCommand(action, false);\n      } else {\n        this.focusElement();\n        document.execCommand(action, false);\n      }\n    } else {\n      if (this.lastSavedIndex != indx) this.filterContainersColor();\n\n      this.lastSavedIndex = indx || -1;\n      setTimeout(() => {\n        this.focusElement();\n        setTimeout(() => {\n          this.focusElement();\n          this.selectedPaternColor = color || 'grey';\n          document.execCommand(NoteDefaultStringEnum.FORE_COLOR2, false, color);\n        });\n      });\n    }\n  }\n  public togglePattern(): void {\n    this.isShowColorPattern = !this.isShowColorPattern;\n\n    if (!this.isShowColorPattern)\n      setTimeout(() => {\n        this.isClosedPattern = false;\n      }, 300);\n    else this.isClosedPattern = true;\n  }\n\n  public hoveringArrow(value: boolean): void {\n    this.isHoveringArrowPicker = value;\n  }\n\n  private setContainerColors(): void {\n    this.containerColors =\n      this.type === NoteDefaultStringEnum.DARK\n        ? [...NoteConfigConstants.noteDarkColors]\n        : [...NoteConfigConstants.noteLightColors];\n\n    this.selectedColorName = {\n      name: this.containerColors[0].name,\n      color: this.containerColors[0].color,\n    };\n  }\n\n  /**Function retrun id */\n  public identity(index: number): number {\n    return index;\n  }\n\n  public getSvgPath(propertyName: keyof typeof NoteContainerSvgRoutes): string {\n    return NoteContainerSvgRoutes[propertyName] as string;\n  }\n\n  public focusElement(): void {\n    if (this.selectedEditor) this.selectedEditor.focus();\n    else document.getElementById(NoteDefaultStringEnum.MAIN_EDITOR)!.focus();\n  }\n\n  public checkActiveItems(): void {\n    for (const act in this.activeOptions) {\n      this.activeOptions[act] = document.queryCommandState(act);\n\n      clearTimeout(this.slowTimeout);\n      this.slowTimeout = setTimeout(() => {\n        const findedColor = this.containerColors.find(\n          (item) =>\n            item.color ===\n            document.queryCommandValue(NoteDefaultStringEnum.FORE_COLOR)\n        );\n        this.selectedColorName = findedColor\n          ? findedColor\n          : {\n              color: NoteSelectedColorStringEnum.GRAY_RGB,\n              name: NoteSelectedColorStringEnum.GRAY,\n            };\n      }, 200);\n      this.selectedPaternColor = document.queryCommandValue(\n        NoteDefaultStringEnum.FORE_COLOR\n      );\n    }\n\n    if (this.isDefaultColorSet) {\n      this.containerColors.map((col, indx) => {\n        if (col.color === this.selectedPaternColor) {\n          this.selectedColorName = this.containerColors[indx];\n\n          if (this.lastSavedIndex != indx) {\n            this.filterContainersColor();\n          }\n          this.lastSavedIndex = indx;\n          setTimeout(() => {\n            this.focusElement();\n            setTimeout(() => {\n              this.focusElement();\n              this.selectedPaternColor = col.color;\n            });\n          });\n        }\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.isShowColorPattern = false;\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","<div\n    [class.active]=\"isExpanded\"\n    [class.parking_editor_menu]=\"isParking\"\n    [class.opened_parking_editor.justify-content-end]=\"\n        isParking && isShowColorPattern\n    \"\n    [class.dark]=\"type === 'dark'\"\n    class=\"editor_menu d-flex align-items-center\"\n>\n    @if (!isParking || (isParking && !isShowColorPattern)) {\n        <div class=\"font_editor d-flex\" [class.parking_font_editor]=\"isParking\">\n            <div\n                (click)=\"executeEditor('bold')\"\n                [class.active]=\"activeOptions.bold\"\n                [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n                ngbTooltip\n                [mainCaTooltip]=\"'Bold'\"\n                position=\"bottom\"\n                class=\"editor_buttons main_commands bold_text d-flex justify-content-center align-items-center\"\n            >\n                <svg-icon [src]=\"getSvgPath('boldRoute')\"></svg-icon>\n            </div>\n            <div\n                (click)=\"executeEditor('italic')\"\n                [class.active]=\"activeOptions.italic\"\n                [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n                ngbTooltip\n                [mainCaTooltip]=\"'Italic'\"\n                position=\"bottom\"\n                class=\"editor_buttons d-flex justify-content-center align-items-center main_commands italic_text\"\n            >\n                <svg-icon [src]=\"getSvgPath('itallicRoute')\"></svg-icon>\n            </div>\n            <div\n                (click)=\"executeEditor('underline')\"\n                [class.active]=\"activeOptions.underline\"\n                [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n                ngbTooltip\n                [mainCaTooltip]=\"'Underline'\"\n                position=\"bottom\"\n                class=\"editor_buttons d-flex justify-content-center align-items-center main_commands underline_text\"\n            >\n                <svg-icon [src]=\"getSvgPath('underlineRoute')\"></svg-icon>\n            </div>\n            <div class=\"note_separator\"></div>\n        </div>\n        <div\n            (click)=\"togglePattern()\"\n            [class.no_opacity]=\"isShowColorPattern\"\n            [class.parking_tooltip.d-flex.justify-content-end]=\"\n                isParking && isShowColorPattern\n            \"\n            class=\"editor_buttons d-flex justify-content-center align-items-center text_color justify-content-end\"\n            [class.popover_text_color.justify-content-start]=\"isPopoverNote\"\n            [class.active]=\"isShowColorPattern\"\n        >\n            <div\n                class=\"colors_patter d-flex align-items-center\"\n                id=\"colors_patter\"\n                [class.closed_pattern]=\"!isClosedPattern\"\n                [class.input_note.flex-reverse]=\"!isPopoverNote\"\n            >\n                @for (\n                    paternCol of containerColors;\n                    let indx = $index;\n                    track indx\n                ) {\n                    <div\n                        (click)=\"\n                            executeEditor('foreColor', paternCol.color, indx)\n                        \"\n                        [style.backgroundColor]=\"paternCol.color\"\n                        [class.hide_elements]=\"indx && !isShowColorPattern\"\n                        [tooltipBackground]=\"\n                            indx && !isShowColorPattern\n                                ? ''\n                                : type === 'dark'\n                                  ? '#2F2F2F'\n                                  : '#6C6C6C'\n                        \"\n                        ngbTooltip\n                        [mainCaTooltip]=\"\n                            indx === 0 && !isShowColorPattern\n                                ? 'Color Picker'\n                                : indx && !isShowColorPattern\n                                  ? ''\n                                  : !indx && isShowColorPattern\n                                    ? 'Close'\n                                    : paternCol.name\n                        \"\n                        position=\"bottom\"\n                        class=\"editor_buttons_colors d-flex justify-content-center align-items-center\"\n                        [class.justify-content-start]=\"isPopoverNote\"\n                        [ngStyle]=\"{\n                            opacity: !isShowColorPattern && indx ? 0 : 1,\n                        }\"\n                        (mouseenter)=\"\n                            hoveringArrow(!!isShowColorPattern && !indx)\n                        \"\n                        (mouseleave)=\"hoveringArrow(false)\"\n                    >\n                        @if (!indx) {\n                            <div\n                                class=\"color_picker_arrow d-flex\"\n                                [class.flip_arrow]=\"\n                                    (!isPopoverNote && isShowColorPattern) ||\n                                    (isPopoverNote && !isShowColorPattern)\n                                \"\n                                [class.regular_icon]=\"\n                                    !isPopoverNote &&\n                                    isShowColorPattern &&\n                                    !isHoveringArrowPicker\n                                \"\n                                [class.active]=\"isShowColorPattern\"\n                                [class.hovering_picker]=\"\n                                    !isHoveringArrowPicker && isShowColorPattern\n                                \"\n                            >\n                                <svg-icon\n                                    [src]=\"\n                                        !isHoveringArrowPicker &&\n                                        isShowColorPattern\n                                            ? getSvgPath('checkRoute')\n                                            : getSvgPath('arrowRoute')\n                                    \"\n                                ></svg-icon>\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        </div>\n    }\n    @if (!isParking && !isPopoverNote && isVisibleArrow) {\n        <div class=\"note_border_line\" [class.dark]=\"type === 'dark'\"></div>\n    }\n</div>\n","export class NoteSvgRoutes {\n  static trashRoute: string = \"assets/ca-components/svg/popup/trash.svg\";\n  static noteRoute: string = \"assets/ca-components/svg/note/note-empty.svg\";\n  static noteFilledRoute: string = \"assets/ca-components/svg/note/note-filled.svg\";\n}","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// moment\nimport moment from 'moment';\n\n// animations\nimport { noteLongAnimation, pickupAnimation } from '../../animations/animation';\n\n//pipe\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { PlaceholderDirective } from '../../directives/placeholder-directive';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n//svg-routess\nimport { NoteSvgRoutes } from '../ca-note/utils/svg-routes/note-svg-routes';\n\n@Component({\n    selector: 'app-ca-note',\n    templateUrl: './ca-note.component.html',\n    styleUrls: ['./ca-note.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // Module\n        CommonModule,\n        NgbModule,\n        AngularSvgIconModule,\n        //Components\n        CaNoteContainerComponent,\n        CaAppTooltipV2Component,\n        CaSpinnerComponent,\n        //Directives\n        PlaceholderDirective,\n        // Pipe\n        SafeHtmlPipe,\n    ],\n    animations: [pickupAnimation, noteLongAnimation]\n})\nexport class CaNoteComponent {\n  @Output() saveNoteValue = new EventEmitter();\n\n  @Input() isParking: boolean = false;\n  @Input() dispatchIndex: number = -1;\n  @Input() type!: string;\n  @Input() parentWidth!: string;\n  @Input() isDispatch: boolean = false;\n  @Input() set noteWidth(value: number) {\n    this._noteWidth = value;\n  }\n  @Input() set isOpenAll(value: boolean) {\n    this.isAllOpen = value;\n    if (this.isDispatch) {\n      this.closeNote(true);\n      this.setNoteParentWidth();\n    }\n  }\n  @ViewChild('main_editor') public main_editor!: ElementRef;\n  @ViewChild('note_popover') public note_popover!: ElementRef;\n  @ViewChild('noteContainer') public noteContainer!: CaNoteContainerComponent;\n\n  public placeholder = 'Write Something...';\n  public _note!: string;\n  public _noteWidth: number = 250;\n  public _parentWidth: number = 250;\n  public isAllOpen!: boolean;\n\n  public noteIcon: string =\n    this._note !== '' ? NoteSvgRoutes.noteRoute : NoteSvgRoutes.noteFilledRoute;\n\n  //note container\n  public isShowColorPattern!: boolean;\n  public buttonsExpanded = false;\n  public activeOptions!: NoteActiveOptions;\n  public selectedPaternColor: string = '#6C6C6C';\n\n  //properties and values\n\n  public isExpanded: boolean = false;\n  public isNoteOpened: boolean = false;\n  public value: string = '';\n  private lastTypeTime!: number;\n  public isleavedOpened!: boolean;\n  public selectionTaken!: Selection;\n  public range!: Range;\n  public isFocused: boolean = false;\n  private isPreventedClosing: boolean = false;\n\n  //saving\n  public isSavingNote: boolean = false;\n  public savedValue: string = '';\n\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private ref: ChangeDetectorRef,\n    private elRef: ElementRef\n  ) {}\n  ngAfterViewInit(): void {\n    this.value = this._note;\n  }\n\n  public checkFocus(event: Event): void {\n    event.stopPropagation();\n    event.preventDefault();\n\n    this.isFocused = true;\n    this.isleavedOpened = true;\n    this.isExpanded = true;\n    setTimeout(() => {\n      this.buttonsExpanded = true;\n      this.checkActiveItems();\n    }, 150);\n  }\n\n  public toggleNote(data: string, t2: NgbPopover): void {\n    this.isPreventedClosing = true;\n    setTimeout(() => {\n      this.isPreventedClosing = false;\n    }, 200);\n\n    if (t2?.isOpen()) {\n      if (this.isOpenAll) {\n        this.isleavedOpened = true;\n      } else if (!this.isExpanded) {\n        this.isleavedOpened = false;\n        this.checkActiveItems();\n        this.isExpanded = true;\n        this.buttonsExpanded = true;\n        setTimeout(() => {\n          t2.open();\n        }, 1);\n      } else {\n        this.isExpanded = false;\n        this.buttonsExpanded = false;\n        this.isleavedOpened = false;\n        this.isNoteOpened = false;\n        this._note = this.value;\n        t2.close();\n      }\n      this.isShowColorPattern = false;\n    } else {\n      if (!data || data == '' || this.isOpenAll) {\n        this.buttonsExpanded = true;\n        this.isExpanded = true;\n      }\n      this.isleavedOpened = true;\n      setTimeout(() => {\n        this.isNoteOpened = true;\n      }, 1);\n      t2.open();\n    }\n  }\n\n  public prepareForTextRange(): void {\n    this.isFocused = false;\n    this.selectionTaken = window.getSelection()!;\n    if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n      this.range = this.selectionTaken.getRangeAt(0);\n      this.selectionTaken.removeAllRanges();\n      this.selectionTaken.addRange(this.range);\n    }\n  }\n\n  public preventMouseDown(ev: Event): void {\n    ev.stopPropagation();\n    ev.preventDefault();\n  }\n\n  public valueChange(event: Event | string, deleteAll?: boolean): void {\n    if (event) {\n      const target = (event as Event).target as HTMLElement;\n      this.value = target.innerHTML;\n    } else {\n      this.value = event;\n    }\n    this.checkActiveItems();\n    this.lastTypeTime = moment().unix();\n    this.checkNoteImage(this.value);\n  }\n\n  public saveNote(autoSave?: boolean, deleteAll?: boolean): void {\n    setTimeout(() => {\n      if (!autoSave && this.isOpenAll) {\n        this.closeNote();\n      }\n    }, 200);\n    if (this.value == '<br>') {\n      this.value = this.value.replace('<br>', '');\n    }\n\n    this.savedValue = this.value;\n    if (deleteAll) this.closeNote();\n  }\n\n  private closeNote(dontTransfer?: boolean): void {\n    this.isNoteOpened = false;\n    this.isleavedOpened = false;\n    this.isShowColorPattern = false;\n    this.isExpanded = false;\n    this.buttonsExpanded = false;\n    this._note = this.value;\n\n    if (!dontTransfer) this.transferNoteData();\n  }\n  public popoverClosed(): void {\n    if (!this.isPreventedClosing) {\n      this.closeNote();\n    }\n\n    this.isPreventedClosing = false;\n  }\n\n  public onPaste(event: ClipboardEvent): void {\n    CopyPasteHelper.onPaste(event);\n  }\n\n  private transferNoteData(): void {\n    if (this.dispatchIndex === -1) this.saveNoteValue.emit(this.value);\n    else\n      this.saveNoteValue.emit({\n        note: this.value,\n        dispatchIndex: this.dispatchIndex,\n      });\n  }\n\n  private checkNoteImage(note: string): void {\n    if (note && note != '') {\n      this.noteIcon = this.getSvgPath('noteFilledRoute');\n    } else {\n      this.noteIcon = this.getSvgPath('noteRoute');\n    }\n  }\n\n  public getSvgPath(propertyName: keyof typeof NoteSvgRoutes): string {\n    return NoteSvgRoutes[propertyName] as string;\n  }\n\n  private checkActiveItems(): void {\n    if (this.noteContainer && this.noteContainer?.checkActiveItems) {\n      this.noteContainer?.checkActiveItems();\n    }\n  }\n\n  private setNoteParentWidth(): void {\n    if (this.parentWidth && this.isAllOpen) {\n      setTimeout(() => {\n        const parentWidth = this.elRef.nativeElement\n          .closest(this.parentWidth)\n          .getBoundingClientRect();\n        this._parentWidth = this.isDispatch\n          ? parentWidth.width - 2\n          : parentWidth.width;\n        this.ref.detectChanges();\n      }, 1000);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.isleavedOpened = false;\n    this.isShowColorPattern = false;\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","<div\n    class=\"all_note_holder\"\n    [class.closed_main_holder.d-flex]=\"!isAllOpen && isNoteOpened\"\n    [class.opened_main_all_holder.d-flex.align-items-center]=\"isAllOpen\"\n    #t2=\"ngbPopover\"\n    [ngbPopover]=\"note_popover\"\n    [autoClose]=\"'outside'\"\n    [container]=\"'body'\"\n    [placement]=\"'right-top'\"\n    popoverClass=\"isAllOpen && isDispatch ? 'my-note-popover dispatch-note' : 'my-note-popover'\"\n    triggers=\"manual\"\n    (click)=\"isAllOpen ? toggleNote(_note, t2) : ''\"\n>\n    @if (!isAllOpen && (isNoteOpened || (!isNoteOpened && !isSavingNote))) {\n        <div\n            class=\"note_button_hold\"\n            [ngClass]=\"{\n                'note-normal-icon': !isAllOpen,\n                'note-note-empty': !_note && !isAllOpen,\n                'note-all-expanded': isNoteOpened,\n            }\"\n            [tooltipBackground]=\"'#424242'\"\n            ngbTooltip\n            [mainCaTooltip]=\"isNoteOpened ? 'Close Note' : 'Note'\"\n            position=\"bottom\"\n        >\n            <svg-icon\n                #t2=\"ngbPopover\"\n                [ngbPopover]=\"note_popover\"\n                [autoClose]=\"'outside'\"\n                class=\"note-btn\"\n                [container]=\"'body'\"\n                [placement]=\"'right-top'\"\n                [animation]=\"false\"\n                popoverClass=\"my-note-popover\"\n                triggers=\"manual\"\n                (click)=\"toggleNote(_note, t2)\"\n                (hidden)=\"popoverClosed()\"\n                [src]=\"noteIcon\"\n            ></svg-icon>\n        </div>\n    }\n    @if (!isAllOpen && !isNoteOpened && isSavingNote) {\n        <div class=\"spinner d-flex justify-content-center align-items-center\">\n            <app-ca-spinner\n                [size]=\"'small'\"\n                [color]=\"'blueDark'\"\n            ></app-ca-spinner>\n        </div>\n    }\n    @if (isAllOpen) {\n        <div [innerHTML]=\"_note | safeHtml\" class=\"note_inner_text\"></div>\n    }\n</div>\n\n<ng-template #note_popover let-data=\"data\">\n    <div\n        class=\"kendo-editor-note-wrapper\"\n        [class.opened_all_hold]=\"isAllOpen\"\n        [class.closed_note_hold]=\"!isAllOpen && isNoteOpened\"\n        [class.dispatch]=\"isDispatch\"\n    >\n        <div\n            [class.expanded]=\"isExpanded\"\n            class=\"k-widget k-editor custom_editor\"\n            [ngStyle]=\"{\n                width: parentWidth ? _parentWidth + 'px' : _noteWidth + 'px',\n            }\"\n        >\n            <div\n                (blur)=\"prepareForTextRange()\"\n                (focus)=\"checkFocus($event)\"\n                (input)=\"valueChange($event)\"\n                @noteLongAnimation\n                [@.disabled]=\"isAllOpen || isParking || isNoteOpened\"\n                [class.not_expanded]=\"!isExpanded\"\n                [class.parking_text_hold]=\"isParking\"\n                [class.opened_all_editor]=\"isAllOpen\"\n                [innerHTML]=\"_note | safeHtml\"\n                class=\"editor\"\n                contenteditable=\"true\"\n                spellcheck=\"false\"\n                id=\"main_editor\"\n                #mainEditorDiv\n                (paste)=\"onPaste($event)\"\n                Placeholder\n                [placeholder]=\"placeholder\"\n            ></div>\n\n            @if (isExpanded) {\n                <div class=\"container_separate\">\n                    <div class=\"container_separate_inner\"></div>\n                </div>\n            }\n\n            @if (isSavingNote && isExpanded) {\n                <div class=\"spinner\">\n                    <app-ca-spinner\n                        [size]=\"'small'\"\n                        [color]=\"'blueDark'\"\n                    ></app-ca-spinner>\n                </div>\n            }\n\n            @if (isExpanded) {\n                <div\n                    class=\"note_container d-flex align-items-center justify-content-between\"\n                    (click)=\"preventMouseDown($event)\"\n                >\n                    <app-ca-note-container\n                        #noteContainer\n                        [isExpanded]=\"isExpanded\"\n                        [range]=\"range\"\n                        [selectionTaken]=\"selectionTaken\"\n                        [value]=\"value\"\n                        [isParking]=\"isParking\"\n                        [isPopoverNote]=\"true\"\n                        [type]=\"'dark'\"\n                        [selectedEditor]=\"main_editor?.nativeElement\"\n                    ></app-ca-note-container>\n                    @if (!isSavingNote && value) {\n                        <div\n                            [tooltipBackground]=\"'#424242'\"\n                            ngbTooltip\n                            [mainCaTooltip]=\"'Delete'\"\n                            position=\"bottom\"\n                        >\n                            <svg-icon\n                                [src]=\"getSvgPath('trashRoute')\"\n                                (click)=\"valueChange('', true)\"\n                            ></svg-icon>\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    </div>\n</ng-template>\n","import {\n    trigger,\n    transition,\n    style,\n    animate,\n    state,\n} from '@angular/animations';\nexport const accordionAnimation = (type: string) =>\n    trigger(type, [\n        state(\n            'true',\n            style({\n                height: '*',\n                opacity: '1',\n                'margin-top': '{{marginTop}}',\n                'margin-bottom': '{{marginBottom}}',\n            }),\n            {\n                params: {\n                    marginTop: '{{marginTop}}',\n                    marginBottom: '{{marginBottom}}',\n                },\n            }\n        ),\n        state(\n            'false',\n            style({\n                height: '0px',\n                opacity: '0',\n                'margin-top': '0px',\n            })\n        ),\n        state(\n            'null',\n            style({\n                height: '*',\n            })\n        ),\n        transition('false <=> true', [animate('.3s ease-in-out')]),\n        transition('true <=> false', [animate('.3s ease-in-out')]),\n    ]);\n","export class SvgRoutes {\n    static downArrow = 'assets/ca-components/svg/common/payroll-down-arrow.svg';\n    static upArrow = 'assets/ca-components/svg/common/payroll-up-arrow.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\n\n//Third-party-module\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n//model\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n    selector: 'app-ca-payroll-list-summary-overview',\n    templateUrl: './ca-payroll-list-summary-overview.component.html',\n    styleUrls: ['./ca-payroll-list-summary-overview.component.scss'],\n    imports: [\n        //Modules\n        CommonModule,\n        AngularSvgIconModule,\n    ],\n    animations: [accordionAnimation('showHideCardBody')],\n    encapsulation: ViewEncapsulation.None\n})\nexport class CaPayrollListSummaryOverviewComponent {\n  @Input() leftTemplate!: TemplateRef<any>;\n  @Input() showLeftTemplate: boolean = false;\n  @Input() item!: PayrollListSummaryOverview;\n  public isItemExpanded: boolean = true;\n\n  @Input() isExpanded: boolean = false;\n  @Input() index: number = -1;\n\n  @Output() toggle: EventEmitter<{\n    payrollSummary: PayrollListSummaryOverview;\n    status: boolean;\n    index: number;\n  }> = new EventEmitter<{\n    payrollSummary: PayrollListSummaryOverview;\n    status: boolean;\n    index: number;\n  }>();\n  @Input() animationMarginParams = {\n    marginTop: '12px',\n    marginBottom: '12px',\n  };\n  constructor() {}\n\n  public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n    return SvgRoutes[propertyName] as string;\n  }\n\n  public toggleAccordion(): void {\n    this.toggle.emit({\n      payrollSummary: this.item,\n      status: !this.isExpanded,\n      index: this.index,\n    });\n  }\n}\n","@let type = item.type;\n@let moneyCounter = item.moneyCounter;\n@let payrollSummaryItemClass = {\n'text-color-red-11': item.status === 'danger',\n'text-color-blue-13': item.status === 'positive',\n'text-color-white': isExpanded,\n};\n\n<div class=\"accordion\" id=\"accordionExample\">\n    <div class=\"accordion-item\">\n        <div>\n            <div class=\"d-flex justify-content-between align-items-center accordion-header user-select-none\"\n                [ngClass]=\"{ 'is-expanded': isExpanded }\" (click)=\"toggleAccordion()\">\n\n                <div class=\"d-flex header-content ca-font-extra-bold align-items-end\"\n                    [ngClass]=\"{ 'is-expanded': isExpanded }\">\n                    @if (!showLeftTemplate) {\n                    <div class=\"d-flex flex-column\">\n                        <div class=\"me-1 item-text text-size-11 font-weight-600\">\n                            <span>{{ item.text }}</span>\n                        </div>\n                        <div class=\"me-1 item-text text-size-14\">\n                            <span>{{ type }}</span>\n                        </div>\n                    </div>\n                    <div class=\"text-size-11 ca-font-bold heading-count d-flex align-items-center justify-content-center\"\n                        [ngClass]=\"{\n                                'is-expanded text-color-black': isExpanded,\n                                'text-color-white': !isExpanded,\n                            }\">\n                        {{ item.itemCount }}\n                    </div>\n                    } @else {\n                    <ng-container *ngTemplateOutlet=\"leftTemplate\"></ng-container>\n                    }\n                </div>\n\n                <div class=\"d-flex align-items-center header-content-right ca-font-bold\">\n                    @if (item.date) {\n                    <div class=\"me-2 date\" [class]=\"{ \n                                'is-expanded': isExpanded,\n                                'text-color-white': isExpanded,\n                                'text-color-black': !isExpanded,\n                            }\">\n                        {{ item.date | date: 'dd/MM/yy' }}\n                    </div>\n                    }\n                    @if (item.status !== 'success') {\n                    <div class=\"d-flex amount me-1\" [ngClass]=\"{\n                                danger: item.status === 'danger',\n                                positive: item.status === 'positive',\n                            }\" [class.is-danger-expanded]=\"\n                                item.status === 'danger' && isExpanded\n                            \" [class.is-positive-expanded]=\"\n                                item.status === 'positive' && isExpanded\n                            \">\n                        <div class=\"me-1\" [class]=\"payrollSummaryItemClass\">\n                            {{ item.money | currency }}\n                        </div>\n                        @if (moneyCounter) {\n                        <div [class]=\"payrollSummaryItemClass\">\n                            ({{ moneyCounter }})\n                        </div>\n                        }\n                    </div>\n                    } @else {\n                    <div class=\"d-flex amount me-1\" [ngClass]=\"{\n                                success: item.status === 'success',\n                            }\" [class.is-success-expanded]=\"\n                                item.status === 'success' && isExpanded\n                            \">\n                        <div class=\"me-1\" [class]=\"{\n                                    'text-color-green-2': item.status === 'success',\n                                    'text-color-white': isExpanded\n                                }\">\n                            ALL PAID\n                        </div>\n                    </div>\n                    }\n                    <div class=\"accordion-toggle-icon d-flex\" [ngClass]=\"{\n                            svg_rotate: isExpanded,\n                            rotate_back: !isExpanded,\n                        }\">\n                        <svg-icon [src]=\"getSvgPath('downArrow')\" alt=\"Toggle\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div [id]=\"'collapseOne' + index\" class=\"accordion-collapse\" [class.show]=\"isExpanded\"\n            data-bs-parent=\"#accordionExample\" [@showHideCardBody]=\"{\n                value: isExpanded.toString(),\n                params: animationMarginParams,\n            }\">\n            <ng-container>\n                <div class=\"accordion-body\">\n                    <!-- Add the expanded content here -->\n                    <!-- {{ item.description }} -->\n                    @if (isExpanded) {\n                    <ng-content></ng-content>\n                    }\n                </div>\n            </ng-container>\n        </div>\n    </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//components\nimport { CaPayrollListSummaryOverviewComponent } from '../ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\n\n//models\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n    selector: 'app-ca-payroll-list-summary-overview-table',\n    imports: [CommonModule, CaPayrollListSummaryOverviewComponent],\n    templateUrl: './ca-payroll-list-summary-overview-table.component.html',\n    styleUrls: ['./ca-payroll-list-summary-overview-table.component.scss']\n})\nexport class CaPayrollListSummaryOverviewTableComponent {\n  @Input() data!: PayrollListSummaryOverview[];\n  public openIndex!: number | null;\n\n  public identity(index: number, item: PayrollListSummaryOverview): string {\n    return item.text;\n  }\n\n  public toggleItem(index: number): number | void {\n    this.openIndex = this.openIndex === index ? null : index;\n  }\n}\n","<table class=\"table\">\n    <tbody>\n        @for (item of data; let indx = $index; track indx) {\n            <tr>\n                <td>\n                    <app-ca-payroll-list-summary-overview\n                        [item]=\"item\"\n                        [index]=\"indx\"\n                        [isExpanded]=\"openIndex === indx\"\n                        (toggle)=\"toggleItem(indx)\"\n                    >\n                        Lorem Ipsum lorem ipsum lorem ipsum\n                    </app-ca-payroll-list-summary-overview>\n                </td>\n            </tr>\n        }\n    </tbody>\n</table>\n","export enum eDropdownMenu {\n    // actions\n    CLOSE = 'Close',\n    OPEN = 'Open',\n    RESET_TABLE = 'reset-table',\n\n    // positions\n    RIGHT_TOP = 'right-top',\n    BOTTOM_RIGHT = 'bottom-right',\n\n    // types\n    DOTS_MENU_TYPE = 'dots-menu-type',\n    HAMBURGER_MENU_TYPE = 'hamburger-menu-type',\n    SELECT_MENU_TYPE = 'select-menu-type',\n\n    // Empty string\n    EMPTY_STRING_PLACEHOLDER = '',\n\n    // titles\n    BACK_TO_MENU = 'Back To Menu',\n    CLOSE_MENU = 'Close Menu',\n    OPEN_MENU = 'Open Menu',\n    MORE = 'More',\n    RESET_TABLE_TITLE = 'Reset Table',\n}\n","export enum eDropdownMenuItemType {\nADD_NEW = 'add-new',\nCDL = 'cdl',\nTEST = 'test',\nREQUEST = 'request',\nOPEN_BUSINESS_HOURS = 'open-business',\nDELETE = 'delete',\nEDIT = 'edit',\nADD_BILL = 'add-bill',\nCOLUMNS = 'columns',\n}\n","export class CheckboxSvgRoutes {\n    static carrieraLogoActiveIcon: string =\n        'assets/ca-components/svg/common/ic_carriera-logo-active.svg';\n    static carrieraLogoInactiveIcon: string =\n        'assets/ca-components/svg/common/ic_carriera-logo-inactive.svg';\n    static checkedIcon: string = 'assets/ca-components/svg/applicant/check.svg';\n    static disabledIcon: string =\n        'assets/ca-components/svg/common/ic_disable.svg';\n}\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    Self,\n    Optional,\n    ChangeDetectorRef,\n    Renderer2,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// enums\nimport { eColor, eGeneralActions } from '../../enums';\n\n// interfaces\nimport { IColumnCheckAction } from './interfaces';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// svg routes\nimport { CheckboxSvgRoutes } from './utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-checkbox',\n    templateUrl: './ca-checkbox.component.html',\n    styleUrls: ['./ca-checkbox.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        NgbModule,\n\n        // components\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaCheckboxComponent implements ControlValueAccessor {\n    @Input() label: string = '';\n    @Input() required: boolean = false;\n    @Input() disabled?: boolean = false;\n    @Input() disabledStillCheckMark: boolean = false;\n    @Input() svg: string = '';\n    @Input() name: string = 'ca-checkbox';\n    @Input() customClass: string = '';\n    @Input() svgCustomClass: string = '';\n    @Input() moveIconDown: boolean = false;\n    @Input() isUseCarrieraACHCheckBox: boolean = false;\n    @Input() isDisabledBlue: boolean = false;\n    @Input() isDisabledRegularCheck: boolean = false;\n    @Input() isLabelDisabled: boolean = false;\n    @Input() isRegularCheckbox: boolean = true;\n    @Input() isChecked?: boolean = false;\n    @Input() isGroupPartialyChecked: boolean = false;\n    @Input() isBlackLabelCheckbox: boolean = false;\n    @Input() isModalCheckbox: boolean = false;\n    @Input() isMarginTopReset: boolean = false;\n    @Input() groupIndex: number = -1;\n    @Input() itemIndex: number = -1;\n    @Input() isDarkBackgroundCheckbox: boolean = false;\n\n    @Output() formArrayAction: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output() columnCheckAction: EventEmitter<IColumnCheckAction> =\n        new EventEmitter<IColumnCheckAction>();\n\n    public isInputChecked: boolean = false;\n\n    public checkboxSvgRoutes = CheckboxSvgRoutes;\n    public eGeneralActions = eGeneralActions;\n    public eColor = eColor;\n\n    public get getSuperControl() {\n        return this.superControl?.control;\n    }\n\n    constructor(\n        private renderer: Renderer2,\n        @Self() @Optional() public superControl?: NgControl,\n        private cdRef?: ChangeDetectorRef\n    ) {\n        if (this.superControl) {\n            this.superControl.valueAccessor = this;\n        }\n    }\n\n    ngAfterViewInit(): void {\n        // Initialize checkbox state based on formControl value or isChecked input\n        if (this.isRegularCheckbox) {\n            this.isInputChecked = this.getSuperControl?.value ?? false;\n        } else {\n            this.isInputChecked = this.isChecked ?? false;\n        }\n        this.cdRef?.detectChanges();\n    }\n\n    private onChangeCallback: (value: boolean) => void = () => {};\n\n    private onTouchedCallback: () => void = () => {};\n\n    public writeValue(obj: any): void {\n        if (obj !== undefined && obj !== null) {\n            this.isInputChecked = obj;\n            if (this.isRegularCheckbox) {\n                this.isChecked = obj;\n            }\n            this.cdRef?.markForCheck();\n        }\n    }\n\n    public registerOnChange(fn: any): void {\n        this.onChangeCallback = fn;\n    }\n\n    public registerOnTouched(fn: any): void {\n        this.onTouchedCallback = fn;\n    }\n\n    public setDisabledState?(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n    }\n\n    public onChange(event: Event): void {\n        event.stopPropagation();\n\n        const newValue = (event.target as HTMLInputElement).checked;\n\n        this.isInputChecked = newValue;\n\n        // Call the formControl callback\n        this.onChangeCallback(newValue);\n        this.onTouchedCallback();\n\n        if (!this.isRegularCheckbox) {\n            this.isChecked = newValue;\n            const columnAction: IColumnCheckAction = {\n                isChecked: this.isChecked,\n                name: this.label,\n                groupIndex: this.groupIndex,\n                itemIndex: this.itemIndex,\n            };\n            this.columnCheckAction.emit(columnAction);\n        } else {\n            // For regular checkboxes, also update isChecked and emit formArrayAction\n            this.isChecked = newValue;\n            this.formArrayAction.emit(newValue);\n        }\n    }\n\n    public onHandleClick(event?: MouseEvent, fromCheckboxArea = false): void {\n        const shouldHandle = fromCheckboxArea\n            ? !this.isRegularCheckbox\n            : this.isRegularCheckbox;\n        if (!shouldHandle || this.isLabelDisabled || this.disabled) return;\n\n        event?.preventDefault();\n        event?.stopPropagation();\n\n        const current = this.isRegularCheckbox\n            ? (this.getSuperControl?.value ?? this.isInputChecked ?? false)\n            : (this.isChecked ?? this.isInputChecked ?? false);\n        const next = !current;\n\n        this.isInputChecked = next;\n        this.isChecked = next;\n        this.onChangeCallback(next);\n        this.onTouchedCallback();\n\n        const columnAction: IColumnCheckAction = {\n            isChecked: this.isChecked!,\n            name: this.label,\n            groupIndex: this.groupIndex,\n            itemIndex: this.itemIndex,\n        };\n\n        if (this.isRegularCheckbox) {\n            this.formArrayAction.emit(next);\n        } else {\n            this.columnCheckAction.emit(columnAction);\n        }\n        this.cdRef?.markForCheck();\n    }\n}\n","<div class=\"d-flex align-items-center h-100\">\n    @let isCheckboxDisabled = disabled || disabledStillCheckMark;\n    @if (isUseCarrieraACHCheckBox) {\n        <div\n            [ngClass]=\"{\n                disabled: isCheckboxDisabled,\n                'disabled-blue': isDisabledBlue,\n                'ca-dark-bg': isDarkBackgroundCheckbox,\n            }\"\n            class=\"d-flex align-items-center ca-checkbox-container {{\n                customClass\n            }}\"\n        >\n            <label\n                class=\"d-flex align-items-center\"\n                [for]=\"name\"\n                (click)=\"onHandleClick($event)\"\n            >\n                <input\n                    type=\"checkbox\"\n                    class=\"a-checkbox\"\n                    [name]=\"name\"\n                    [id]=\"name\"\n                    [checked]=\"getSuperControl?.value\"\n                    (change)=\"onChange($event)\"\n                    (click)=\"$event.stopPropagation()\"\n                />\n\n                @if (!disabled || getSuperControl?.value) {\n                    <span class=\"ca-mark position-absolute\"></span>\n                }\n\n                <svg-icon\n                    class=\"carriera-icon\"\n                    [src]=\"\n                        getSuperControl?.value\n                            ? checkboxSvgRoutes.carrieraLogoActiveIcon\n                            : checkboxSvgRoutes.carrieraLogoInactiveIcon\n                    \"\n                ></svg-icon>\n            </label>\n        </div>\n    } @else {\n        @let isDisabledState = disabled && !disabledStillCheckMark;\n\n        <div\n            [ngClass]=\"{\n                disabled: isCheckboxDisabled,\n                'disabled-blue': isDisabledBlue,\n                'disabled-regular-check': isDisabledRegularCheck,\n                'c-pointer': !isDisabledState,\n                'top-0': isMarginTopReset,\n            }\"\n            class=\"ca-checkbox-container d-flex align-items-center {{\n                customClass\n            }}\"\n            [class.ca-dark-bg]=\"isDarkBackgroundCheckbox\"\n            [class.checked]=\"isChecked\"\n            (click)=\"onHandleClick($event)\"\n        >\n            <label\n                class=\"d-flex align-items-center\"\n                [ngClass]=\"{\n                    'h-26': isModalCheckbox,\n                    'c-pointer': !isDisabledState,\n                }\"\n                [for]=\"name\"\n            >\n                @if (\n                    getSuperControl?.errors?.['required'] &&\n                    getSuperControl?.touched\n                ) {\n                    <span class=\"required-text-checkbox ca-font-semi-bold\">\n                        Required\n                    </span>\n                }\n\n                @let checkboxSizeClass =\n                    isModalCheckbox ? 'h-14 w-14' : 'h-18 w-18';\n                @let tooltipText =\n                    isDisabledState\n                        ? 'Disabled'\n                        : getSuperControl?.value || isChecked\n                          ? eGeneralActions.CLEAR\n                          : eGeneralActions.SELECT;\n                @let tooltipBgColor =\n                    isDisabledState ? eColor.LIGHT_GREY : eColor.BLACK;\n                @let tooltipTextColor = isDisabledState ? eColor.DARK_GREY : '';\n\n                <div\n                    class=\"position-relative d-flex align-items-center justify-content-center ca-checkbox-input-container\"\n                    [ngClass]=\"checkboxSizeClass\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"tooltipText\"\n                    [tooltipMarginTop]=\"'4px'\"\n                    [tooltipBackground]=\"tooltipBgColor\"\n                    [tooltipColor]=\"tooltipTextColor\"\n                    position=\"bottom\"\n                    (click)=\"onHandleClick($event, true)\"\n                >\n                    @if (\n                        (!disabled || disabledStillCheckMark) &&\n                        !isDisabledBlue &&\n                        !isDisabledRegularCheck\n                    ) {\n                        <input\n                            type=\"checkbox\"\n                            class=\"ca-checkbox position-absolute\"\n                            [name]=\"name\"\n                            [id]=\"name\"\n                            (click)=\"$event.stopPropagation()\"\n                            [checked]=\"\n                                !isRegularCheckbox\n                                    ? isChecked\n                                    : getSuperControl?.value\n                            \"\n                            (change)=\"onChange($event)\"\n                        />\n                    }\n\n                    @if (\n                        (!disabled ||\n                            (disabledStillCheckMark &&\n                                getSuperControl?.value)) &&\n                        !isDisabledBlue &&\n                        !isDisabledRegularCheck\n                    ) {\n                        <span\n                            class=\"ca-mark position-relative\"\n                            [ngClass]=\"{\n                                invalid:\n                                    getSuperControl?.errors?.['required'] &&\n                                    getSuperControl?.touched,\n                                disabled: disabledStillCheckMark,\n                                'down-position': moveIconDown,\n                                minus: isGroupPartialyChecked,\n                            }\"\n                        >\n                            @if (isChecked && !isGroupPartialyChecked) {\n                                <svg-icon\n                                    class=\"ca-mark-checked-icon d-flex justify-content-center align-items-center w-100 h-100 svg-fill-white svg-size-9\"\n                                    [src]=\"checkboxSvgRoutes.checkedIcon\"\n                                ></svg-icon>\n                            }\n                        </span>\n                    }\n\n                    @if (isDisabledRegularCheck) {\n                        <svg-icon\n                            class=\"d-flex justify-content-center align-items-center ca-checkbox-disabled-regular-check\"\n                            [src]=\"checkboxSvgRoutes.checkedIcon\"\n                        ></svg-icon>\n                    }\n\n                    @if (isDisabledBlue) {\n                        <svg-icon\n                            class=\"ca-checkbox-disabled-blue\"\n                            [src]=\"checkboxSvgRoutes.disabledIcon\"\n                        ></svg-icon>\n                    }\n\n                    @if (isDisabledState) {\n                        <svg-icon\n                            class=\"ca-checkbox-disabled\"\n                            [class.dark-disabled-icon]=\"isBlackLabelCheckbox\"\n                            [src]=\"checkboxSvgRoutes.disabledIcon\"\n                        ></svg-icon>\n                    }\n                </div>\n\n                @if (svg) {\n                    <svg-icon\n                        class=\"ca-checkbox-svg {{ svgCustomClass }}\"\n                        [src]=\"svg\"\n                    ></svg-icon>\n                }\n\n                @if (label) {\n                    <span\n                        class=\"ca-checkbox-label\"\n                        [ngClass]=\"{\n                            'ca-checkbox-label-blue': isDisabledBlue,\n                            'ca-checkbox-label-regular-check':\n                                isDisabledRegularCheck,\n                            'ca-checkbox-label-disabled': isLabelDisabled,\n                            'ca-font-bold': !isBlackLabelCheckbox && isChecked,\n                            'ca-font-extra-bold text-size-14': isModalCheckbox,\n                            'text-color-white': !isBlackLabelCheckbox,\n                            'text-color-light-grey-2':\n                                !isInputChecked && isBlackLabelCheckbox,\n                            'text-color-black':\n                                isInputChecked && isBlackLabelCheckbox,\n                            'text-color-bw6-2':\n                                isModalCheckbox && !isInputChecked,\n                        }\"\n                        (click)=\"!isRegularCheckbox && $event.preventDefault()\"\n                    >\n                        {{ label }}\n                        @if (required) {\n                            <span class=\"ca-checkbox-label-required\">*</span>\n                        }\n                    </span>\n                }\n            </label>\n        </div>\n    }\n</div>\n","export class DropdownMenuSvgRoutes {\n    static dotsDropdownIcon: string =\n        'assets/ca-components/svg/period-content/options.svg';\n    static hamburgerDropdownIcon: string =\n        'assets/ca-components/svg/truckassist-table/burger-icon.svg';\n    static showMoreIcon: string =\n        'assets/ca-components/svg/truckassist-table/Show More.svg';\n    static backToMenuIcon: string =\n        'assets/ca-components/svg/dropdown/ic_arrow-primary-left.svg';\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eDropdownMenu } from '../enums';\n\n@Pipe({\n    name: 'dropdownMenuPlacementClass',\n    standalone: true,\n})\nexport class DropdownMenuPlacementClassPipe implements PipeTransform {\n    transform(type: string): string | undefined {\n        if (type === eDropdownMenu.DOTS_MENU_TYPE) {\n            return 'dots-menu';\n        } else {\n            return 'hamburger-select-menu';\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// models\nimport { IDropdownMenuItem } from '../interfaces';\n\n@Pipe({\n    name: 'groupItemCheckedState',\n    standalone: true,\n})\nexport class GroupItemCheckedStatePipe implements PipeTransform {\n    transform(option: IDropdownMenuItem): boolean {\n        if (!option.innerDropdownContent) return false;\n\n        const innerOptions = option.innerDropdownContent;\n        return (\n            innerOptions.some((opt) => opt.isChecked) &&\n            innerOptions.some((opt) => !opt.isChecked)\n        );\n    }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { IDropdownMenuItem, IDropdownMenuOptionEmit } from './interfaces';\nimport { IColumnCheckAction } from '../ca-checkbox/interfaces';\n\n// enums\nimport { eDropdownMenu, eDropdownMenuItemType } from './enums';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaCheckboxComponent } from '../ca-checkbox/ca-checkbox.component';\n\n// svg routes\nimport { DropdownMenuSvgRoutes } from './utils/svg-routes';\n\n// pipes\nimport {\n    DropdownMenuPlacementClassPipe,\n    GroupItemCheckedStatePipe,\n} from '../../components/ca-dropdown-menu/pipes';\n\n// types\nimport { DropdownMenuType } from './types';\n\n@Component({\n    selector: 'ca-dropdown-menu',\n    templateUrl: './ca-dropdown-menu.component.html',\n    styleUrls: ['./ca-dropdown-menu.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        CaCheckboxComponent,\n        // pipes\n        DropdownMenuPlacementClassPipe,\n        GroupItemCheckedStatePipe,\n    ],\n})\nexport class CaDropdownMenuComponent {\n    @Input() type: DropdownMenuType = eDropdownMenu.DOTS_MENU_TYPE;\n    @Input() options: IDropdownMenuItem[] = [];\n    @Input() placement: string = eDropdownMenu.RIGHT_TOP;\n    @Input() popoverClass?: string;\n    @Input() isDarkBackground?: boolean = false; // dropdown menu on dark background\n    @Input() isLeftSideIconPosition?: boolean = false;\n    @Input() isColumnsDropdown?: boolean = false;\n\n    @Output() dropdownOptionEmitter: EventEmitter<IDropdownMenuOptionEmit> =\n        new EventEmitter<IDropdownMenuOptionEmit>();\n\n    public dropdownMenuSvgRoutes = DropdownMenuSvgRoutes;\n    public eDropdownMenu = eDropdownMenu;\n    public eDropdownMenuItemType = eDropdownMenuItemType;\n\n    public dropdownPopover: NgbPopover | null = null;\n\n    public activeInnerDropdownOptionIndex: number = -1;\n    public isSelectMenuTypeActionItemSelected: boolean = false;\n\n    public isBackToMainDropdownItemHovered: boolean = false;\n    public isResetTableHovered: boolean = false;\n\n    public isActionLocked: boolean = false;\n\n    public get isDropdownMenuActive(): boolean | undefined {\n        return this.dropdownPopover?.isOpen();\n    }\n\n    constructor() {}\n\n    private handleCheckboxAction(action: IColumnCheckAction): void {\n        const { groupIndex, itemIndex } = action;\n\n        groupIndex >= 0 && itemIndex >= 0\n            ? this.handleChildCheckboxAction(action)\n            : this.handleParentCheckboxAction(action);\n    }\n\n    private handleChildCheckboxAction(action: IColumnCheckAction): void {\n        const { groupIndex, itemIndex, isChecked } = action;\n\n        this.options = this.options.map((option, parentItemIndex) => {\n            if (parentItemIndex !== groupIndex || !option.innerDropdownContent)\n                return option;\n\n            const updatedInnerContent = option.innerDropdownContent.map(\n                (item, innerItemIndex) =>\n                    innerItemIndex === itemIndex ? { ...item, isChecked } : item\n            );\n\n            const dropdownOptionEmitPayload = {\n                type: option.innerDropdownContent[itemIndex]?.type,\n                isActive: isChecked,\n            };\n\n            this.dropdownOptionEmitter.emit(dropdownOptionEmitPayload);\n\n            const isGroupChecked = updatedInnerContent.some(\n                (column) => column.isChecked\n            );\n\n            return {\n                ...option,\n                innerDropdownContent: updatedInnerContent,\n                isChecked: isGroupChecked,\n            };\n        });\n    }\n\n    private handleParentCheckboxAction(action: IColumnCheckAction): void {\n        const { itemIndex, isChecked } = action;\n\n        this.options = this.options.map((option, index) => {\n            if (index !== itemIndex) return option;\n\n            const updatedInner = option.innerDropdownContent?.map((inner) => ({\n                ...inner,\n                isChecked,\n            }));\n\n            const dropdownOptionEmitPayload = {\n                type: option.type,\n                isActive: isChecked,\n            };\n\n            this.dropdownOptionEmitter.emit(dropdownOptionEmitPayload);\n\n            return {\n                ...option,\n                isChecked,\n                innerDropdownContent: updatedInner,\n            };\n        });\n    }\n\n    public handleDropdownOptionClick(\n        option: IDropdownMenuItem,\n        itemIndex: number = -1,\n        groupIndex: number = -1\n    ): void {\n        this.isResetTableHovered = false;\n        this.isBackToMainDropdownItemHovered = false;\n\n        const {\n            id,\n            type,\n            innerDropdownContent,\n            isSelectMenuTypeActionItem,\n            isColumnDropdown,\n            isChecked,\n            title,\n            isCheckBoxDisabled,\n        } = option;\n\n        if (isCheckBoxDisabled) {\n            return;\n        }\n\n        if (itemIndex === 0 && type === eDropdownMenuItemType.COLUMNS) {\n            this.isBackToMainDropdownItemHovered = true;\n        }\n\n        // inner dropdown option click\n\n        if (!!innerDropdownContent) {\n            this.activeInnerDropdownOptionIndex =\n                this.activeInnerDropdownOptionIndex === itemIndex\n                    ? -1\n                    : itemIndex;\n\n            return;\n        }\n\n        // column dropdown option click\n\n        if (isColumnDropdown) {\n            const columnOption: IColumnCheckAction = {\n                isChecked: !isChecked,\n                name: title,\n                groupIndex,\n                itemIndex,\n            };\n\n            this.handleCheckboxAction(columnOption);\n\n            return;\n        }\n\n        // select dropdown action option click\n\n        if (isSelectMenuTypeActionItem) {\n            this.isSelectMenuTypeActionItemSelected =\n                !this.isSelectMenuTypeActionItemSelected;\n\n            const dropdownOptionEmitPayload = {\n                type,\n                isActive: this.isSelectMenuTypeActionItemSelected,\n            };\n\n            this.dropdownOptionEmitter.emit(dropdownOptionEmitPayload);\n\n            return;\n        }\n\n        // regular dropdown option click - emit id if type is not present (select menu simple items)\n\n        if (this.isActionLocked) return;\n        this.isActionLocked = true;\n\n        this.dropdownOptionEmitter.emit(type ? { type } : { id });\n\n        if (\n            this.type !== eDropdownMenu.SELECT_MENU_TYPE ||\n            !isSelectMenuTypeActionItem\n        ) {\n            this.activeInnerDropdownOptionIndex = -1;\n\n            this.dropdownPopover?.close();\n        }\n    }\n\n    public handleDropdownOpenCloseClick(dropdownPopover: NgbPopover): void {\n        this.activeInnerDropdownOptionIndex = -1;\n\n        if (dropdownPopover.isOpen()) {\n            dropdownPopover.close();\n\n            this.dropdownPopover = null;\n            this.isActionLocked = false;\n\n            this.dropdownOptionEmitter.emit({\n                type: eDropdownMenu.CLOSE,\n            });\n        } else {\n            this.dropdownPopover?.close();\n\n            this.dropdownPopover = dropdownPopover;\n\n            this.dropdownPopover.open();\n            this.isActionLocked = false;\n\n            this.dropdownOptionEmitter.emit({\n                type: eDropdownMenu.OPEN,\n            });\n        }\n    }\n\n    public handleCheckboxActionEmit(action: IColumnCheckAction): void {\n        this.handleCheckboxAction(action);\n    }\n\n    public handleResetTableClick(event: Event): void {\n        event.stopPropagation();\n\n        this.dropdownPopover?.close();\n        this.dropdownOptionEmitter.emit({\n            type: eDropdownMenu.RESET_TABLE,\n        });\n    }\n\n    public handleBackToMainDropdownListItemHover(isHovered: boolean): void {\n        this.isBackToMainDropdownItemHovered = isHovered;\n    }\n\n    public onResetTableHover(): void {\n        this.isResetTableHovered = !this.isResetTableHovered;\n    }\n\n    public handleDropdownClose(): void {\n        this.dropdownPopover = null;\n        this.isActionLocked = false;\n        this.isBackToMainDropdownItemHovered = false;\n        this.isResetTableHovered = false;\n        this.dropdownOptionEmitter.emit({\n            type: eDropdownMenu.CLOSE,\n        });\n    }\n}\n","<div\n    class=\"d-flex align-items-center dropdown-menu-container\"\n    [ngClass]=\"type | dropdownMenuPlacementClass\"\n>\n    <!-- Icon -->\n\n    @let dropdownMenuPopoverClass = `dropdown-menu-popover ${popoverClass}`;\n\n    <div\n        #dropdownPopover=\"ngbPopover\"\n        triggers=\"'manual'\"\n        [ngbPopover]=\"dropdownOptions\"\n        [autoClose]=\"'outside'\"\n        [placement]=\"placement\"\n        [popoverClass]=\"dropdownMenuPopoverClass\"\n        [container]=\"'body'\"\n        (click)=\"handleDropdownOpenCloseClick(dropdownPopover)\"\n        (hidden)=\"handleDropdownClose()\"\n    >\n        @let tooltipText =\n            type === eDropdownMenu.HAMBURGER_MENU_TYPE\n                ? isDropdownMenuActive\n                    ? eDropdownMenu.CLOSE_MENU\n                    : eDropdownMenu.OPEN_MENU\n                : eDropdownMenu.MORE;\n        <div\n            class=\"d-flex align-items-center justify-content-center p-4 dropdown-icon-container\"\n            [ngClass]=\"{\n                active: dropdownPopover.isOpen(),\n                'dark-background': isDarkBackground,\n            }\"\n            ngbTooltip\n            [mainCaTooltip]=\"tooltipText\"\n            [tooltipBackground]=\"isDropdownMenuActive ? '#CCCCCC' : '#424242'\"\n            [tooltipColor]=\"isDropdownMenuActive ? '#2F2F2F' : '#FFFFFF'\"\n            [tooltipMarginTop]=\"'4px'\"\n            [position]=\"'bottom'\"\n        >\n            <svg-icon\n                class=\"icon svg-size-18 d-flex align-items-center\"\n                [src]=\"\n                    type === eDropdownMenu.DOTS_MENU_TYPE\n                        ? dropdownMenuSvgRoutes.dotsDropdownIcon\n                        : dropdownMenuSvgRoutes.hamburgerDropdownIcon\n                \"\n            ></svg-icon>\n        </div>\n    </div>\n\n    <!-- Dropdown -->\n\n    <ng-template #dropdownOptions>\n        <div\n            class=\"d-flex flex-column dropdown-container\"\n            [ngClass]=\"{ 'columns-dropdown': isColumnsDropdown }\"\n        >\n            @for (\n                option of options;\n                let optionIndex = $index,\n                last = $last;\n                track optionIndex\n            ) {\n                @if (option) {\n                    <div\n                        class=\"d-flex flex-column dropdown-item\"\n                        [ngClass]=\"{\n                            'has-border': option?.hasBorder && !last,\n                            disabled: option?.isDisabled,\n                            'icon-left': isLeftSideIconPosition,\n                            'checkbox-disabled': option?.isCheckBoxDisabled,\n                            'sticky-item':\n                                option?.isColumnDropdown && optionIndex === 0,\n                        }\"\n                    >\n                        <div\n                            class=\"d-flex flex-column\"\n                            [ngClass]=\"{\n                                'm-b-4': !last,\n                                'inner-dropdown-item':\n                                    !!option?.innerDropdownContent,\n                                active:\n                                    optionIndex ===\n                                    activeInnerDropdownOptionIndex,\n                            }\"\n                        >\n                            @let dropdownItemOptionClass =\n                                isLeftSideIconPosition\n                                    ? 'gap-6'\n                                    : isBackToMainDropdownItemHovered &&\n                                        !isColumnsDropdown &&\n                                        option.isColumnDropdown &&\n                                        optionIndex === 0\n                                      ? 'justify-content-between'\n                                      : 'justify-content-between gap-6 p-4';\n                            <div\n                                class=\"d-flex align-items-center w-100 dropdown-item-option\"\n                                [ngClass]=\"dropdownItemOptionClass\"\n                                (click)=\"\n                                    handleDropdownOptionClick(\n                                        option,\n                                        optionIndex\n                                    )\n                                \"\n                                (mouseenter)=\"\n                                    option.isColumnDropdown &&\n                                        optionIndex === 0 &&\n                                        handleBackToMainDropdownListItemHover(\n                                            true\n                                        )\n                                \"\n                                (mouseleave)=\"\n                                    option.isColumnDropdown &&\n                                        optionIndex === 0 &&\n                                        handleBackToMainDropdownListItemHover(\n                                            false\n                                        )\n                                \"\n                            >\n                                @if (\n                                    option.isColumnDropdown && optionIndex > 0\n                                ) {\n                                    @let dropdownCheckboxCustomClass =\n                                        'dropdown-column w-100 h-26 p-l-4' +\n                                        (option?.innerDropdownContent\n                                            ? ' p-r-4'\n                                            : '');\n\n                                    <app-ca-checkbox\n                                        class=\"flex-1\"\n                                        [label]=\"option.title\"\n                                        [name]=\"option.type ?? option.title\"\n                                        [itemIndex]=\"optionIndex\"\n                                        [isRegularCheckbox]=\"false\"\n                                        [isChecked]=\"option?.isChecked\"\n                                        [isGroupPartialyChecked]=\"\n                                            option | groupItemCheckedState\n                                        \"\n                                        [customClass]=\"\n                                            dropdownCheckboxCustomClass\n                                        \"\n                                        [disabled]=\"option?.isCheckBoxDisabled\"\n                                        [isLabelDisabled]=\"false\"\n                                        [isDarkBackgroundCheckbox]=\"true\"\n                                        (columnCheckAction)=\"\n                                            handleCheckboxActionEmit($event)\n                                        \"\n                                    ></app-ca-checkbox>\n\n                                    @if (option?.innerDropdownContent) {\n                                        <svg-icon\n                                            [src]=\"\n                                                dropdownMenuSvgRoutes.showMoreIcon\n                                            \"\n                                            class=\"w-12 h-12 svg-size-12 d-flex dropdown-item-option-icon regular m-r-6\"\n                                        ></svg-icon>\n                                    }\n                                } @else {\n                                    <p\n                                        class=\"m-0 text-size-14 text-color-white d-flex\"\n                                        [ngClass]=\"{\n                                            'ca-font-bold':\n                                                optionIndex ===\n                                                activeInnerDropdownOptionIndex,\n                                        }\"\n                                        [ngClass]=\"option?.titleOptionalClass\"\n                                    >\n                                        @if (\n                                            isBackToMainDropdownItemHovered &&\n                                            !isColumnsDropdown\n                                        ) {\n                                            <svg-icon\n                                                class=\"w-18 h-18 svg-size-18 d-flex align-items-center justify-content-center svg-fill-muted m-r-6\"\n                                                [src]=\"\n                                                    dropdownMenuSvgRoutes.backToMenuIcon\n                                                \"\n                                            ></svg-icon>\n                                        }\n                                        @let dropdownItemOptionTitle =\n                                            option.isColumnDropdown &&\n                                            optionIndex === 0 &&\n                                            isResetTableHovered\n                                                ? eDropdownMenu.RESET_TABLE_TITLE\n                                                : isBackToMainDropdownItemHovered &&\n                                                    !isColumnsDropdown\n                                                  ? eDropdownMenu.BACK_TO_MENU\n                                                  : option?.title;\n                                        {{ dropdownItemOptionTitle }}\n                                    </p>\n                                }\n\n                                @if (option?.svgUrl) {\n                                    @let isFirstColumnDropdown =\n                                        option.isColumnDropdown &&\n                                        optionIndex === 0;\n                                    <svg-icon\n                                        class=\"dropdown-item-option-icon w-18 h-18 svg-size-18 d-flex align-items-center justify-content-center\"\n                                        [ngClass]=\"option?.svgClass\"\n                                        [src]=\"option?.svgUrl || ''\"\n                                        (mouseenter)=\"\n                                            isFirstColumnDropdown &&\n                                                onResetTableHover()\n                                        \"\n                                        (mouseleave)=\"\n                                            isFirstColumnDropdown &&\n                                                onResetTableHover()\n                                        \"\n                                        (click)=\"\n                                            isFirstColumnDropdown &&\n                                                handleResetTableClick($event)\n                                        \"\n                                    ></svg-icon>\n                                }\n                            </div>\n\n                            <!-- Inner Dropdown -->\n\n                            @if (!!option?.innerDropdownContent) {\n                                <div\n                                    class=\"d-flex flex-column inner-dropdown-list\"\n                                >\n                                    @for (\n                                        innerDropdownOption of option?.innerDropdownContent;\n                                        let innerDropdownOptionIndex = $index;\n                                        track innerDropdownOptionIndex\n                                    ) {\n                                        <div\n                                            class=\"d-flex align-items-center justify-content-between gap-20 w-100 dropdown-item-option\"\n                                            (click)=\"\n                                                handleDropdownOptionClick(\n                                                    innerDropdownOption,\n                                                    innerDropdownOptionIndex,\n                                                    optionIndex\n                                                )\n                                            \"\n                                        >\n                                            @if (option?.isColumnDropdown) {\n                                                <app-ca-checkbox\n                                                    class=\"flex-1\"\n                                                    [label]=\"\n                                                        innerDropdownOption.title\n                                                    \"\n                                                    [name]=\"\n                                                        innerDropdownOption.type ??\n                                                        innerDropdownOption.title\n                                                    \"\n                                                    [itemIndex]=\"\n                                                        innerDropdownOptionIndex\n                                                    \"\n                                                    [groupIndex]=\"optionIndex\"\n                                                    [isRegularCheckbox]=\"false\"\n                                                    [isChecked]=\"\n                                                        innerDropdownOption?.isChecked\n                                                    \"\n                                                    [disabled]=\"\n                                                        innerDropdownOption?.isCheckBoxDisabled\n                                                    \"\n                                                    [isLabelDisabled]=\"false\"\n                                                    [customClass]=\"\n                                                        'dropdown-column w-100 h-26 p-x-4'\n                                                    \"\n                                                    [isDarkBackgroundCheckbox]=\"\n                                                        true\n                                                    \"\n                                                    (columnCheckAction)=\"\n                                                        handleCheckboxActionEmit(\n                                                            $event\n                                                        )\n                                                    \"\n                                                ></app-ca-checkbox>\n                                            } @else {\n                                                <p\n                                                    class=\"m-0 text-size-14 text-color-white\"\n                                                >\n                                                    {{\n                                                        innerDropdownOption.title\n                                                    }}\n                                                </p>\n                                            }\n                                        </div>\n                                    }\n                                </div>\n                            }\n                        </div>\n                    </div>\n                }\n            }\n        </div>\n    </ng-template>\n</div>\n","export class PickupDeliverySvgRoutes {\n    static arrowLeft: string =\n        'assets/ca-components/svg/pickup-delivery/arrowLeft.svg';\n    static arrowLeftHover: string =\n        'assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg';\n    static arrowRight: string =\n        'assets/ca-components/svg/pickup-delivery/arrowRight.svg';\n    static leftArrow: string =\n        'assets/ca-components/svg/pickup-delivery/leftArrow.svg';\n    static arrowDown: string =\n        'assets/ca-components/svg/input/ic_arrow_down_updated.svg';\n    static phoneIcon: string =\n        'assets/ca-components/svg/pickup-delivery/phoneIcon.svg';\n    static mailIcon: string =\n        'assets/ca-components/svg/pickup-delivery/mailIcon.svg';\n    static markerSvgRoute: string =\n        'assets/ca-components/svg/pickup-delivery/routing_marker.svg';\n    static vector: string =\n        'assets/ca-components/svg/pickup-delivery/vector.svg';\n    static userIcon: string =\n        'assets/ca-components/svg/pickup-delivery/userIcon.svg';\n    static options: string =\n        'assets/ca-components/svg/pickup-delivery/options.svg';\n    static miles: string =\n        '/assets/ca-components/svg/pickup-delivery/Miles.svg';\n    static optionsVertical: string =\n        'assets/ca-components/svg/pickup-delivery/optionsVertical.svg';\n    static detailsOptions: string =\n        'assets/ca-components/svg/pickup-delivery/detailsOptions.svg';\n    static splitLoad: string =\n        'assets/ca-components/svg/pickup-delivery/split-load.svg';\n    static comboLoad: string =\n        'assets/ca-components/svg/pickup-delivery/combo-load.svg';\n    static fraudCheck: string =\n        'assets/ca-components/svg/pickup-delivery/fraud-check.svg';\n}\n","export class ReturnArrowIconsSvgRoutes {\n  static optionsDefault: string = \"assets/ca-components/svg/pickup-delivery/arrowLeft.svg\";\n  static optionsHovered: string = \"assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg\";\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaDropdownMenuComponent } from '../../../../../../components/ca-dropdown-menu/ca-dropdown-menu.component';\nimport { CopyComponent } from 'carriera-intern-components';\nimport { CaAppTooltipV2Component } from '../../../../../../components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../utils/svg-routes';\n\n// pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\nimport { FormatCityStatePipe } from '../../../../../../pipes/format-city-state.pipe';\n\n// helpers\nimport { DropdownMenuContentHelper } from '../../../../../../utils/helpers';\n\n// enums\nimport { eDropdownMenu } from '../../../../../ca-dropdown-menu/enums';\nimport { eColor, ePosition } from '../../../../../../enums';\n\n// models\nimport { LoadShortResponse, StatusTypeEnum } from '../../../../models';\nimport {\n    IDropdownMenuItem,\n    IDropdownMenuOptionEmit,\n} from '../../../../../ca-dropdown-menu/interfaces';\n\n@Component({\n    selector: 'app-ca-load-single',\n    templateUrl: './ca-load-single.component.html',\n    styleUrls: ['./ca-load-single.component.scss'],\n    providers: [FormatCurrencyPipe],\n    imports: [\n        AngularSvgIconModule,\n        CommonModule,\n        NgbTooltip,\n\n        // components\n        CaDropdownMenuComponent,\n        CopyComponent,\n        CaAppTooltipV2Component,\n\n        // pipes\n        DateFromStringPipe,\n        FormatCurrencyPipe,\n        FormatCityStatePipe,\n    ],\n})\nexport class ActiveLoadComponent {\n    @Input() activeLoad!: Array<LoadShortResponse>;\n    @Input() status!: StatusTypeEnum;\n\n    @Output() dropdownMenuAction: EventEmitter<IDropdownMenuOptionEmit> =\n        new EventEmitter<IDropdownMenuOptionEmit>();\n\n    // enums\n    public eColor = eColor;\n    public ePosition = ePosition;\n\n    // dropdown\n    public dropdownOptions: IDropdownMenuItem[] = [];\n\n    public isLoadDetailsHovered = false;\n\n    public openBrokerCardIds = new Set<number>();\n\n    constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n    private setDropdownOptions(): void {\n        this.dropdownOptions =\n            DropdownMenuContentHelper.getPickupDeliveryDropdownContent(\n                this.status\n            );\n    }\n\n    public getSvgPath(\n        propertyName: keyof typeof PickupDeliverySvgRoutes\n    ): string {\n        return PickupDeliverySvgRoutes[propertyName] as string;\n    }\n\n    public onToggleDropdownMenuActions(\n        action: IDropdownMenuOptionEmit,\n        id: number\n    ): void {\n        const { type } = action;\n\n        switch (type) {\n            case eDropdownMenu.OPEN:\n                this.setDropdownOptions();\n\n                break;\n            default:\n                this.dropdownMenuAction.emit({ id, ...action });\n\n                break;\n        }\n    }\n\n    public onLoadDetailsHover(): void {\n        this.isLoadDetailsHovered = !this.isLoadDetailsHovered;\n    }\n\n    public onToggleBrokerCard(loadId: number): void {\n        if (this.openBrokerCardIds.has(loadId)) {\n            this.openBrokerCardIds.delete(loadId);\n        } else {\n            this.openBrokerCardIds.add(loadId);\n        }\n    }\n}\n","@if (activeLoad && activeLoad.length) {\n    <div\n        class=\"load-details d-flex\"\n        (mouseenter)=\"onLoadDetailsHover()\"\n        (mouseleave)=\"onLoadDetailsHover()\"\n    >\n        <ng-container\n            *ngTemplateOutlet=\"\n                loadDetailsTemplate;\n                context: { load: activeLoad[0] }\n            \"\n        ></ng-container>\n\n        <div class=\"button-container\">\n            <ca-dropdown-menu\n                [type]=\"'dots-menu-type'\"\n                [placement]=\"'end-top'\"\n                [popoverClass]=\"'ca-pickup-delivery-dropdown-popover'\"\n                [isDarkBackground]=\"true\"\n                [isLeftSideIconPosition]=\"true\"\n                [options]=\"dropdownOptions\"\n                (dropdownOptionEmitter)=\"\n                    onToggleDropdownMenuActions($event, activeLoad[0]?.id!)\n                \"\n            >\n            </ca-dropdown-menu>\n        </div>\n    </div>\n\n    <div class=\"stops d-flex justify-content-between w-100\">\n        <ng-container\n            *ngTemplateOutlet=\"stopsTemplate; context: { load: activeLoad[0] }\"\n        ></ng-container>\n    </div>\n\n    <div class=\"dispatch-stops\">\n        @let isComboLoad = activeLoad[0].type?.name === 'Combo';\n\n        @if (isComboLoad) {\n            @let comboChildLoads = activeLoad[0].childLoads!;\n\n            @for (\n                comboChildLoad of comboChildLoads;\n                let first = $first;\n                track comboChildLoad.id\n            ) {\n                @let isBrokerCardOpen =\n                    openBrokerCardIds.has(comboChildLoad.id);\n\n                @let brokerCardClass =\n                    {\n                        'p-t-2': first,\n                        'border-top p-t-6': !first,\n                        active: isBrokerCardOpen,\n                    };\n\n                @let loadNumber = comboChildLoad.loadNumber!;\n                @let brokerName = comboChildLoad.broker?.businessName!;\n\n                <div\n                    class=\"d-flex flex-column p-b-6 p-r-4 p-l-2 c-pointer broker-card\"\n                    [ngClass]=\"brokerCardClass\"\n                    (click)=\"onToggleBrokerCard(comboChildLoad.id)\"\n                >\n                    <div\n                        class=\"d-flex align-items-center justify-content-between\"\n                    >\n                        <div class=\"d-flex align-items-center\">\n                            <p class=\"ca-font-bold text-size-11 load-number\">\n                                {{ loadNumber }}\n                            </p>\n\n                            @if (comboChildLoad.referenceNumber) {\n                                <span\n                                    class=\"m-l-4 text-size-11 ref-number\"\n                                >\n                                    ({{ comboChildLoad.referenceNumber }})</span\n                                >\n                            }\n                        </div>\n\n                        <div class=\"d-flex align-items-center max-w-159\">\n                            @if (!isBrokerCardOpen) {\n                                <p\n                                    class=\"text-size-11 text-color-muted text-truncate m-r-4\"\n                                >\n                                    {{ brokerName }}\n                                </p>\n                            }\n\n                            <svg-icon\n                                class=\"svg-size-14 card-arrow\"\n                                [class.arrow-rotated]=\"isBrokerCardOpen\"\n                                [src]=\"getSvgPath('arrowDown')\"\n                            ></svg-icon>\n                        </div>\n                    </div>\n\n                    <div\n                        class=\"d-flex align-items-center broker-card-dropdown-content\"\n                    >\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                brokerItemTemplate;\n                                context: { load: comboChildLoad }\n                            \"\n                        ></ng-container>\n                    </div>\n                </div>\n            }\n        } @else {\n            <span class=\"bussiness-name ca-font-bold\"> BROKER </span>\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    brokerItemTemplate;\n                    context: { load: activeLoad[0] }\n                \"\n            ></ng-container>\n        }\n    </div>\n\n    @if (activeLoad[0]?.driverMessage) {\n        <div class=\"driverMessage\">\n            <h3 class=\"ca-font-bold\">DRIVER MESSAGE</h3>\n            <span\n                class=\"message ca-font-regular text-start\"\n                [innerHTML]=\"activeLoad[0].driverMessage\"\n            ></span>\n        </div>\n    }\n} @else {\n    <div class=\"no-active-load-message\">\n        <h2>No active load</h2>\n    </div>\n}\n\n<ng-template #loadDetailsTemplate let-load=\"load\">\n    @let isSplitLoad = load.type?.name === 'Split';\n    @let isComboLoad = load.type?.name === 'Combo';\n\n    <div class=\"details-container d-flex flex-column justify-content-between\">\n        <div class=\"top-details d-flex justify-content-between\">\n            <div class=\"d-flex align-items-center\">\n                <span class=\"price ca-font-bold m-r-4\">\n                    {{ load.loadNumber }}\n                </span>\n\n                @if (isSplitLoad) {\n                    <svg-icon\n                        class=\"svg-size-14\"\n                        [src]=\"getSvgPath('splitLoad')\"\n                    ></svg-icon>\n                }\n\n                @if (isComboLoad) {\n                    <svg-icon\n                        class=\"svg-size-14 position-relative bottom-1\"\n                        [src]=\"getSvgPath('comboLoad')\"\n                    ></svg-icon>\n                }\n            </div>\n\n            <span class=\"load ca-font-medium\">{{\n                load.totalRate! | formatCurrency\n            }}</span>\n        </div>\n\n        <div class=\"bottom-details d-flex justify-content-between h-14\">\n            <div class=\"d-flex align-items-center\">\n                @if (isLoadDetailsHovered) {\n                    <svg-icon\n                        class=\"svg-size-14 m-r-4\"\n                        [src]=\"getSvgPath('miles')\"\n                    ></svg-icon>\n\n                    <p class=\"text-color-white\">\n                        {{ load.totalMiles }}\n\n                        mi\n                    </p>\n                } @else {\n                    <span class=\"ref-text ca-font-bold m-r-4\">Ref.</span>\n\n                    <p class=\"miles-ref\">\n                        {{ load.referenceNumber }}\n                    </p>\n                }\n            </div>\n\n            <div class=\"d-flex align-items-center\">\n                @let isClosedLoad = load.statusType?.name === 'Closed';\n\n                @if (!isClosedLoad) {\n                    @let hasAdjustedRate = !!load.totalAdjustedRate;\n\n                    @if (isLoadDetailsHovered) {\n                        <p class=\"ref-text ca-font-bold m-r-4\">RPM</p>\n\n                        <span class=\"ca-font-semi-bold text-color-white\">\n                            {{ load.rpm | formatCurrency }}\n                        </span>\n                    } @else {\n                        <p class=\"ref-text ca-font-bold m-r-4\">\n                            {{ hasAdjustedRate ? 'Adj.' : 'RPM' }}\n                        </p>\n\n                        <span\n                            class=\"ca-font-semi-bold\"\n                            [class]=\"\n                                hasAdjustedRate\n                                    ? 'text-color-purple-2'\n                                    : 'text-color-white'\n                            \"\n                        >\n                            {{\n                                (hasAdjustedRate\n                                    ? load.totalAdjustedRate\n                                    : load.rpm\n                                ) | formatCurrency\n                            }}\n                        </span>\n                    }\n                }\n            </div>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #stopsTemplate let-load=\"load\">\n    @let isSplitLoad = load.type?.name === 'Split';\n\n    @let pickupStopNumber = isSplitLoad ? 'S' : load.pickup?.stopOrder;\n\n    <div class=\"stops-side d-flex align-items-center flex-basis-50\">\n        <span\n            class=\"line-left d-flex justify-content-center align-items-center ca-font-bold\"\n            [class]=\"isSplitLoad ? 'text-color-yellow-4' : 'text-color-green-4'\"\n            [class.split-load]=\"isSplitLoad\"\n        >\n            {{ pickupStopNumber }}\n        </span>\n\n        <div class=\"date-location left d-flex flex-column align-items-start\">\n            <span\n                class=\"location ca-font-semi-bold text-start text-truncate d-block\"\n            >\n                {{\n                    load.pickup?.shipper?.address?.city\n                        | formatCityStatePipe\n                            : load.pickup?.shipper?.address?.stateShortName\n                }}\n            </span>\n\n            <span class=\"date ca-font-regular\">\n                {{ load.pickup?.dateFrom | dateFromStringPipe }},\n                {{ load.pickup?.dateFrom | dateFromStringPipe: 'time' }}\n            </span>\n        </div>\n    </div>\n\n    <span class=\"arrow d-flex justify-content-center align-items-center\">\n        <svg-icon\n            class=\"svg-size-10\"\n            [src]=\"getSvgPath('arrowRight')\"\n        ></svg-icon>\n    </span>\n\n    <div class=\"stops-side right d-flex align-items-center flex-basis-50\">\n        <div class=\"date-location right d-flex flex-column align-items-end\">\n            <span\n                class=\"location ca-font-semi-bold text-end text-truncate d-block\"\n            >\n                {{\n                    load.delivery?.shipper?.address?.city\n                        | formatCityStatePipe\n                            : load.delivery?.shipper?.address?.stateShortName\n                }}\n            </span>\n            <span class=\"date ca-font-regular\">\n                {{ load.delivery?.dateFrom | dateFromStringPipe }},\n                {{ load.delivery?.dateFrom | dateFromStringPipe: 'time' }}\n            </span>\n        </div>\n        <span\n            class=\"line-right d-flex justify-content-center align-items-center ca-font-bold\"\n        >\n            {{ load.delivery?.stopOrder }}\n        </span>\n    </div>\n</ng-template>\n\n<ng-template #brokerItemTemplate let-load=\"load\">\n    <div class=\"broker ca-font-regular\">\n        @let isFraudCheck = load?.broker?.fraudCheck;\n\n        <div class=\"d-flex align-items-center\">\n            @if (isFraudCheck) {\n                <div\n                    ngbTooltip\n                    [mainCaTooltip]=\"'Fraud check'\"\n                    [tooltipBackground]=\"eColor.LIGHT_GREY\"\n                    [tooltipColor]=\"eColor.DARK_GREY\"\n                    [position]=\"ePosition.BOTTOM\"\n                >\n                    <svg-icon\n                        class=\"svg-size-14 m-r-4 svg-hover-yellow-4\"\n                        [src]=\"getSvgPath('fraudCheck')\"\n                    ></svg-icon>\n                </div>\n            }\n\n            <p class=\"text-truncate\">\n                {{ load.broker?.businessName }}\n            </p>\n        </div>\n\n        <div\n            class=\"d-flex align-items-center justify-content-between m-t-8\"\n        >\n            @let hasBrokerContact = !!load.broker?.contactName;\n\n            <p\n                class=\"text-color-muted text-truncate\"\n                [class.text-decoration-line-through]=\"!hasBrokerContact\"\n            >\n                <svg-icon\n                    class=\"svg-size-14 position-relative bottom-1\"\n                    [src]=\"getSvgPath('userIcon')\"\n                ></svg-icon>\n\n                {{ load.broker?.contactName ?? 'No Contact' }}\n            </p>\n\n            <div class=\"d-flex align-items-center\">\n                <cai-copy\n                    [value]=\"load.broker?.phone!\"\n                    [copyArea]=\"'full'\"\n                    [hasNoIcon]=\"true\"\n                    [inverse]=\"true\"\n                    [tooltipPlacement]=\"'top'\"\n                >\n                    <div\n                        class=\"d-flex align-items-center justify-content-center br-1 c-pointer w-18 h-18 background-hover-dark-3 svg-hover-bw-9 m-r-4\"\n                    >\n                        <svg-icon\n                            class=\"svg-size-14 position-relative bottom-1\"\n                            [src]=\"getSvgPath('phoneIcon')\"\n                        ></svg-icon>\n                    </div>\n                </cai-copy>\n\n                <cai-copy\n                    [value]=\"load.broker?.email!\"\n                    [copyArea]=\"'full'\"\n                    [hasNoIcon]=\"true\"\n                    [inverse]=\"true\"\n                    [tooltipPlacement]=\"'top'\"\n                >\n                    <div\n                        class=\"d-flex align-items-center justify-content-center br-1 c-pointer w-18 h-18 background-hover-dark-3 svg-hover-bw-9\"\n                    >\n                        <svg-icon\n                            class=\"svg-size-14 position-relative bottom-1\"\n                            [src]=\"getSvgPath('mailIcon')\"\n                        ></svg-icon>\n                    </div>\n                </cai-copy>\n            </div>\n        </div>\n    </div>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//Models\nimport { LoadShortResponse, StatusTypeEnum } from '../../../../models';\n\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { ActiveLoadComponent } from '../../../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\nimport { CaDropdownMenuComponent } from '../../../../../../components/ca-dropdown-menu/ca-dropdown-menu.component';\n\n//Svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../utils/svg-routes';\n\n//Pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\nimport { ToLowerCasePipe } from '../../../../../../pipes/to-lower-case.pipe';\nimport { FormatCityStatePipe } from '../../../../../../pipes/format-city-state.pipe';\n\n// Interfaces\nimport {\n    IDropdownMenuOptionEmit,\n    IDropdownMenuItem,\n} from '../../../../../ca-dropdown-menu/interfaces';\n\n// Enums\nimport { eDropdownMenu } from '../../../../../ca-dropdown-menu/enums';\n\n// Helpers\nimport { DropdownMenuContentHelper } from '../../../../../../utils/helpers';\n\n@Component({\n    selector: 'app-ca-load-list',\n    templateUrl: './ca-load-list.component.html',\n    styleUrls: ['./ca-load-list.component.scss'],\n    providers: [FormatCurrencyPipe, ToLowerCasePipe],\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n\n        // components\n        ActiveLoadComponent,\n        CaDropdownMenuComponent,\n\n        // pipes\n        DateFromStringPipe,\n        FormatCurrencyPipe,\n        ToLowerCasePipe,\n        FormatCityStatePipe,\n    ],\n})\nexport class LoadListComponent {\n    @Input() loads!: Array<LoadShortResponse>;\n    @Input() focusedTab!: StatusTypeEnum;\n    @Input() isFocusingLoad: boolean = false;\n\n    @Output() focusLoadEmitter = new EventEmitter<boolean>();\n\n    @Output() dropdownMenuAction: EventEmitter<IDropdownMenuOptionEmit> =\n        new EventEmitter<IDropdownMenuOptionEmit>();\n\n    public focusedLoad!: Array<LoadShortResponse>;\n\n    // dropdown\n    public dropdownOptions: IDropdownMenuItem[] = [];\n\n    public selectedLoadDropdownId: number = 0;\n\n    constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n    private setDropdownOptions(id: number): void {\n        this.selectedLoadDropdownId = id;\n\n        this.dropdownOptions =\n            DropdownMenuContentHelper.getPickupDeliveryDropdownContent(\n                this.focusedTab\n            );\n    }\n\n    public focusLoad(load: LoadShortResponse): void {\n        this.isFocusingLoad = !this.isFocusingLoad;\n\n        this.focusLoadEmitter.emit(this.isFocusingLoad);\n\n        this.focusedLoad = [{ ...load }];\n\n        this.selectedLoadDropdownId = 0;\n    }\n\n    public getSvgPath(\n        propertyName: keyof typeof PickupDeliverySvgRoutes\n    ): string {\n        return PickupDeliverySvgRoutes[propertyName] as string;\n    }\n\n    public onDropdownMenuAction(\n        action: IDropdownMenuOptionEmit,\n        id: number\n    ): void {\n        const eventAction = { id, ...action };\n\n        this.dropdownMenuAction.emit(eventAction);\n    }\n\n    public onToggleDropdownMenuActions(\n        action: IDropdownMenuOptionEmit,\n        id: number\n    ): void {\n        const { type } = action;\n\n        switch (type) {\n            case eDropdownMenu.CLOSE:\n                break;\n            case eDropdownMenu.OPEN:\n                this.setDropdownOptions(id!);\n\n                break;\n            default:\n                this.onDropdownMenuAction(action, id);\n\n                break;\n        }\n    }\n}\n","@if (!isFocusingLoad && loads.length) {\n    <ng-template #loadList>\n        <div class=\"wrapper-container inside d-flex flex-column gap-1\">\n            @for (load of loads; let indx = $index; track indx) {\n                @let isLoadDropdownSelected =\n                    selectedLoadDropdownId === load.id;\n\n                <div\n                    class=\"wrapper d-flex flex-column\"\n                    [class.active]=\"isLoadDropdownSelected\"\n                    (click)=\"focusLoad(load)\"\n                >\n                    <div class=\"d-flex dispatch-stops\">\n                        <div\n                            class=\"load-num ca-font-bold d-flex justify-content-between align-items-center\"\n                        >\n                            @let isComboLoad = load.type?.name === 'Combo';\n\n                            <div class=\"d-flex align-items-center\">\n                                <span class=\"loadNumber-companyName\">\n                                    <span class=\"loadNumber ca-font-bold\">{{\n                                        load.loadNumber\n                                    }}</span>\n                                </span>\n\n                                @if (isComboLoad) {\n                                    <svg-icon\n                                        class=\"svg-size-14\"\n                                        [src]=\"getSvgPath('comboLoad')\"\n                                    ></svg-icon>\n                                }\n                            </div>\n\n                            <div class=\"d-flex align-items-center\">\n                                <span class=\"price ca-font-regular\">{{\n                                    load.totalRate! | formatCurrency\n                                }}</span>\n\n                                <div\n                                    class=\"button-container\"\n                                    (click)=\"$event.stopPropagation()\"\n                                >\n                                    <ca-dropdown-menu\n                                        [type]=\"'dots-menu-type'\"\n                                        [placement]=\"'end-top'\"\n                                        [popoverClass]=\"\n                                            'ca-pickup-delivery-list-dropdown-popover'\n                                        \"\n                                        [isDarkBackground]=\"true\"\n                                        [isLeftSideIconPosition]=\"true\"\n                                        [options]=\"dropdownOptions\"\n                                        (dropdownOptionEmitter)=\"\n                                            onToggleDropdownMenuActions(\n                                                $event,\n                                                load.id\n                                            )\n                                        \"\n                                    >\n                                    </ca-dropdown-menu>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n\n                    <div class=\"stops d-flex justify-content-between w-100\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                stopsSideTemplate;\n                                context: {\n                                    load: load,\n                                    type: 'pickup',\n                                    side: 'left',\n                                }\n                            \"\n                        ></ng-container>\n\n                        <span\n                            class=\"d-flex justify-content-center align-items-center\"\n                        >\n                            <svg-icon\n                                class=\"d-flex svg-size-10\"\n                                [src]=\"getSvgPath('arrowRight')\"\n                            ></svg-icon>\n                        </span>\n\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                stopsSideTemplate;\n                                context: {\n                                    load: load,\n                                    type: 'delivery',\n                                    side: 'right',\n                                }\n                            \"\n                        ></ng-container>\n                    </div>\n                </div>\n            }\n        </div>\n    </ng-template>\n\n    <ng-container *ngTemplateOutlet=\"loadList\"></ng-container>\n} @else {\n    <div class=\"focused-load-template\">\n        @if (isFocusingLoad) {\n            <app-ca-load-single\n                [status]=\"focusedTab\"\n                [activeLoad]=\"focusedLoad\"\n                (dropdownMenuAction)=\"\n                    onDropdownMenuAction($event, focusedLoad[0].id)\n                \"\n            ></app-ca-load-single>\n        } @else {\n            <div class=\"no-active-load-message\">\n                <h2>No {{ focusedTab | toLowerCase }} load</h2>\n            </div>\n        }\n    </div>\n}\n\n<ng-template #stopsSideTemplate let-load=\"load\" let-type=\"type\" let-side=\"side\">\n    <div class=\"stops-side {{ side }} d-flex align-items-center flex-basis-50\">\n        <div class=\"d-flex align-items-center justify-content-center w-22 h-18\">\n            @if (side === 'left') {\n                <span\n                    class=\"line-left line-right d-flex align-items-center justify-content-center ca-font-bold\"\n                >\n                    {{\n                        type === 'pickup'\n                            ? load.pickup?.stopOrder\n                            : load.delivery?.stopOrder\n                    }}\n                </span>\n            }\n        </div>\n\n        <div\n            class=\"date-location {{ side }} d-flex flex-column align-items-{{\n                side === 'left' ? 'start' : 'end'\n            }}\"\n        >\n            <span\n                class=\"location text-start ca-font-medium text-truncate d-block\"\n                [class.text-end]=\"type === 'delivery'\"\n            >\n                {{\n                    type === 'pickup'\n                        ? (load.pickup?.shipper?.address?.city\n                          | formatCityStatePipe\n                              : load.pickup?.shipper?.address?.stateShortName)\n                        : (load.delivery?.shipper?.address?.city\n                          | formatCityStatePipe\n                              : load.delivery?.shipper?.address?.stateShortName)\n                }}\n            </span>\n            <span class=\"date ca-font-regular\">\n                {{\n                    type === 'pickup'\n                        ? (load.pickup?.dateFrom | dateFromStringPipe)\n                        : (load.delivery?.dateFrom | dateFromStringPipe)\n                }},\n                {{\n                    type === 'pickup'\n                        ? (load.pickup?.dateFrom | dateFromStringPipe: 'time')\n                        : (load.delivery?.dateFrom | dateFromStringPipe: 'time')\n                }}\n            </span>\n        </div>\n\n        <div class=\"d-flex align-items-center justify-content-center w-22 h-18\">\n            @if (side === 'right') {\n                <span\n                    class=\"line-left line-right d-flex align-items-center justify-content-center ca-font-bold\"\n                >\n                    {{\n                        type === 'pickup'\n                            ? load.pickup?.stopOrder\n                            : load.delivery?.stopOrder\n                    }}\n                </span>\n            }\n        </div>\n    </div>\n</ng-template>\n","import {\n  animate,\n  group,\n  keyframes,\n  query,\n  style,\n  transition,\n  trigger,\n} from \"@angular/animations\";\n\nexport const tabsModalAnimation = (type: string) =>\n  trigger(type, [\n    transition(\"ACTIVE => PENDING, CLOSED => ACTIVE, CLOSED => PENDING\", left, {\n      params: { height: \"0px\" },\n    }),\n    transition(\n      \"PENDING => ACTIVE, ACTIVE => CLOSED, PENDING => CLOSED\",\n      right,\n      {\n        params: { height: \"0px\" },\n      }\n    ),\n  ]);\n\nconst left = [\n  query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n    optional: true,\n  }),\n  group([\n    query(\n      \":enter\",\n      [\n        style({\n          transform: \"translateX(-8%)\",\n          opacity: 0,\n          height: \"{{height}}\",\n        }),\n        animate(\n          \".2s\",\n          keyframes([\n            style({\n              transform: \"translateX(0%)\",\n              opacity: 1,\n              height: \"*\",\n            }),\n          ])\n        ),\n      ],\n      {\n        optional: true,\n      }\n    ),\n    query(\n      \":leave\",\n      [\n        style({\n          opacity: 0,\n        }),\n        animate(\n          \".2s\",\n          style({\n            opacity: 0,\n            height: \"*\",\n          })\n        ),\n      ],\n      {\n        optional: true,\n      }\n    ),\n  ]),\n];\n\nconst right = [\n  query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n    optional: true,\n  }),\n  group([\n    query(\n      \":enter\",\n      [\n        style({\n          transform: \"translateX(8%)\",\n          opacity: 0,\n          height: \"{{height}}\",\n        }),\n        animate(\n          \".2s\",\n          keyframes([\n            style({\n              transform: \"translateX(0%)\",\n              opacity: 1,\n              height: \"*\",\n            }),\n          ])\n        ),\n      ],\n      {\n        optional: true,\n      }\n    ),\n    query(\n      \":leave\",\n      [\n        style({\n          opacity: 0,\n        }),\n        animate(\n          \".2s\",\n          style({\n            opacity: 0,\n            height: \"*\",\n          })\n        ),\n      ],\n      {\n        optional: true,\n      }\n    ),\n  ]),\n];\n","import { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\nexport class LoadTabsConstants {\n    static ANIMATION_OBJECT: AnimationObject = {\n        value: StatusTypeEnum.ACTIVE,\n        params: { height: '0px' },\n    };\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Modules\nimport { NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { LoadListComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component';\nimport { ActiveLoadComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Models\nimport { DispatchGroupedLoadsResponse, LoadShortResponse } from '../../models';\n\n// Animations\nimport { tabsModalAnimation } from '../../../../animations/tabs-modal.animation';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\n\n// Constants\nimport { ReturnArrowIconsSvgRoutes } from '../../../ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes';\nimport { LoadTabsConstants } from '../../utils/constants';\n\n// Enums\nimport { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\n\n// Interfaces\nimport { IDropdownMenuOptionEmit } from '../../../ca-dropdown-menu/interfaces';\n\n@Component({\n    selector: 'app-ca-load',\n    templateUrl: './ca-load.component.html',\n    styleUrls: ['./ca-load.component.scss'],\n    animations: [tabsModalAnimation('animationTabsModal')],\n    providers: [AngularSvgIconModule],\n    imports: [\n        CommonModule,\n        HttpClientModule,\n\n        //Modules\n        NgbNavModule,\n        AngularSvgIconModule,\n        NgbTooltipModule,\n\n        // Components\n        ActiveLoadComponent,\n        LoadListComponent,\n        CaAppTooltipV2Component,\n    ],\n})\nexport class LoadComponent {\n    @Input() focusedTab!: StatusTypeEnum;\n    @Input() loads!: DispatchGroupedLoadsResponse | null;\n    @Input() columnWidth!: number | null;\n\n    @Output() dropdownMenuAction: EventEmitter<IDropdownMenuOptionEmit> =\n        new EventEmitter<IDropdownMenuOptionEmit>();\n\n    //Tabs and load data\n    public tabs: StatusTypeEnum[] = Object.values(StatusTypeEnum);\n    public activeLoad!: Array<LoadShortResponse>;\n    public pendingLoads!: Array<LoadShortResponse>;\n    public closedLoads!: Array<LoadShortResponse>;\n    public hasLoad = false;\n\n    public StatusTypeEnum = StatusTypeEnum;\n\n    //Is visible when focusing on an pending or closed load\n    public returnButtonVisible: boolean = false;\n\n    // Animation\n    public animationObject!: AnimationObject;\n\n    // Status bar position\n    public isTop: boolean = true;\n\n    // Icons\n    private defaultIcon: string = ReturnArrowIconsSvgRoutes.optionsDefault;\n    private hoverIcon: string = ReturnArrowIconsSvgRoutes.optionsHovered;\n    public currentIcon: string = this.defaultIcon;\n\n    constructor() {}\n\n    ngOnInit() {\n        this.extractLoadStatuses();\n        this.getConstantData();\n    }\n\n    ngOnChanges() {\n        this.extractLoadStatuses();\n    }\n\n    private getConstantData(): void {\n        this.animationObject = JSON.parse(\n            JSON.stringify(LoadTabsConstants.ANIMATION_OBJECT)\n        );\n    }\n\n    private extractLoadStatuses(): void {\n        if (this.loads) {\n            const { closed, active, pending } = this.loads;\n            this.activeLoad = active ?? [];\n            this.closedLoads = closed ?? [];\n            this.pendingLoads = pending ?? [];\n        } else {\n            this.activeLoad = [];\n            this.closedLoads = [];\n            this.pendingLoads = [];\n        }\n    }\n\n    public onMouseEnter(): void {\n        this.currentIcon = this.hoverIcon;\n    }\n\n    public onMouseLeave(): void {\n        this.currentIcon = this.defaultIcon;\n    }\n\n    public toggleFocusedLoad(): void {\n        this.returnButtonVisible = !this.returnButtonVisible;\n    }\n\n    public setFocusedTab(status: StatusTypeEnum): void {\n        if (this.returnButtonVisible) {\n            this.returnButtonVisible = false;\n        }\n        this.focusedTab = status;\n        const dotAnimation = document.querySelector('.animation-three-tabs');\n        this.animationObject = {\n            value: status,\n            params: { height: `${dotAnimation?.getClientRects()[0].height}px` },\n        };\n    }\n\n    public onDropdownMenuAction(action: IDropdownMenuOptionEmit): void {\n        this.dropdownMenuAction.emit(action);\n    }\n}\n","<div\n    class=\"load-component d-flex flex-column prevent-text-selection\"\n    [ngStyle]=\"{\n        width: columnWidth + 'px',\n    }\"\n>\n    @if (isTop) {\n        <ng-container *ngTemplateOutlet=\"assignedLoadTemplate\"></ng-container>\n        <ng-container *ngTemplateOutlet=\"statusBarTemplate\"></ng-container>\n        <ng-container\n            *ngTemplateOutlet=\"loadInformationTemplate\"\n        ></ng-container>\n    } @else {\n        <ng-container\n            *ngTemplateOutlet=\"loadInformationTemplate\"\n        ></ng-container>\n        <ng-container *ngTemplateOutlet=\"statusBarTemplate\"></ng-container>\n        <ng-container *ngTemplateOutlet=\"assignedLoadTemplate\"></ng-container>\n    }\n\n    <ng-template #assignedLoadTemplate>\n        <div class=\"d-flex align-items-center assigned-load-holder\">\n            @if (returnButtonVisible) {\n                <button\n                    class=\"d-flex align-items-center justify-content-center returnButton\"\n                    ngbTooltip\n                    mainCaTooltip=\"Back\"\n                    position=\"bottom\"\n                    tooltipBackground=\"#cccccc\"\n                    tooltipColor=\"#2f2f2f\"\n                    (click)=\"toggleFocusedLoad()\"\n                    (mouseenter)=\"onMouseEnter()\"\n                    (mouseleave)=\"onMouseLeave()\"\n                >\n                    <svg-icon\n                        class=\"svg-size-16 position-relative bottom-1\"\n                        [src]=\"currentIcon\"\n                    ></svg-icon>\n                </button>\n            }\n            <span class=\"ca-font-extra-bold\">ASSIGNED LOAD</span>\n        </div>\n    </ng-template>\n\n    <ng-template #statusBarTemplate>\n        <div\n            class=\"statusBar d-flex justify-content-between align-items-center\"\n        >\n            @for (tab of tabs; let indx = $index; track indx) {\n                <button\n                    class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n                    (click)=\"setFocusedTab(tab)\"\n                    [class.active]=\"focusedTab === tab\"\n                >\n                    {{ tab }}\n                </button>\n            }\n        </div>\n    </ng-template>\n\n    <ng-template #loadInformationTemplate>\n        <div\n            [@animationTabsModal]=\"animationObject\"\n            class=\"animation-three-tabs\"\n        >\n            <div>\n                @switch (focusedTab) {\n                    @case ('CLOSED') {\n                        <div class=\"activeLoadInformation\">\n                            @if (closedLoads) {\n                                <app-ca-load-list\n                                    (focusLoadEmitter)=\"toggleFocusedLoad()\"\n                                    [loads]=\"closedLoads\"\n                                    [isFocusingLoad]=\"returnButtonVisible\"\n                                    [focusedTab]=\"StatusTypeEnum.CLOSED\"\n                                    (dropdownMenuAction)=\"\n                                        onDropdownMenuAction($event)\n                                    \"\n                                >\n                                </app-ca-load-list>\n                            } @else {\n                                No closed loads\n                            }\n                        </div>\n                    }\n                    @case ('ACTIVE') {\n                        <div class=\"activeLoadInformation\">\n                            @if (activeLoad) {\n                                <app-ca-load-single\n                                    [status]=\"focusedTab\"\n                                    [activeLoad]=\"activeLoad\"\n                                    (dropdownMenuAction)=\"\n                                        onDropdownMenuAction($event)\n                                    \"\n                                >\n                                </app-ca-load-single>\n                            }\n                        </div>\n                    }\n                    @case ('PENDING') {\n                        <div class=\"activeLoadInformation\">\n                            @if (!pendingLoads) {\n                                No pending loads\n                            }\n                            @if (pendingLoads) {\n                                <app-ca-load-list\n                                    (focusLoadEmitter)=\"toggleFocusedLoad()\"\n                                    [loads]=\"pendingLoads\"\n                                    [isFocusingLoad]=\"returnButtonVisible\"\n                                    [focusedTab]=\"StatusTypeEnum.PENDING\"\n                                    (dropdownMenuAction)=\"\n                                        onDropdownMenuAction($event)\n                                    \"\n                                >\n                                </app-ca-load-list>\n                            }\n                        </div>\n                    }\n                }\n            </div>\n        </div>\n    </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\n\n// Components\nimport { LoadComponent } from '../ca-pickup-delivery-block/components/ca-load/ca-load.component';\n\n// Models\nimport { DispatchGroupedLoadsResponse, DispatchResponse } from './models';\n\n// Enums\nimport { StatusTypeEnum } from '../ca-pickup-delivery-block/models/status-types.enum';\n\n// Pipes\nimport { DateFromStringPipe } from '../../pipes/date-from-string.pipe';\nimport { FormatCityStatePipe } from '../../pipes/format-city-state.pipe';\nimport { TableHighlightSearchTextPipe } from '../../pipes/table-highlight-search-text.pipe';\n\n// Modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// Interfaces\nimport { IDropdownMenuOptionEmit } from '../ca-dropdown-menu/interfaces';\nimport { ISearchQueryItem } from '../ca-search-multiple-states-2/interfaces';\n\n@Component({\n    selector: 'app-ca-pickup-delivery-block',\n    templateUrl: './ca-pickup-delivery-block.component.html',\n    styleUrls: ['./ca-pickup-delivery-block.component.scss'],\n    imports: [\n        CommonModule,\n        NgbModule,\n\n        // Components\n        LoadComponent,\n\n        // Pipes\n        DateFromStringPipe,\n        FormatCityStatePipe,\n        TableHighlightSearchTextPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class PickupDeliveryBlockComponent implements OnInit {\n    @Input() set columnWidth(value: number) {\n        if (value) this._columnWidth = value;\n    }\n\n    @Input() set searchStrings(value: ISearchQueryItem[]) {\n        this._searchStrings = value;\n    }\n\n    @Input() loads!: DispatchGroupedLoadsResponse | null;\n    @Input() dispatchResponse!: DispatchResponse | null;\n    @Input() isHoveringRow!: boolean;\n    @Input() isDisabled: boolean = false;\n\n    @Output() dropdownMenuAction: EventEmitter<IDropdownMenuOptionEmit> =\n        new EventEmitter<IDropdownMenuOptionEmit>();\n\n    public _searchStrings: ISearchQueryItem[] = [];\n    public _columnWidth: number = 0;\n\n    public loadType!: StatusTypeEnum;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.initializeLoadType();\n    }\n\n    private initializeLoadType(): void {\n        if (!this.dispatchResponse) return;\n        const normalizedValue =\n            this.dispatchResponse.activeLoad?.statusType?.name?.toUpperCase() as keyof typeof StatusTypeEnum;\n        this.loadType = this.dispatchResponse.activeLoad\n            ? StatusTypeEnum[normalizedValue]\n            : StatusTypeEnum.CLOSED;\n    }\n\n    public openPopover(t2: NgbPopover): void {\n        if (this.isDisabled) return;\n\n        t2.open();\n    }\n\n    public closePopover(t2: NgbPopover): void {\n        t2.close();\n    }\n\n    public onDropdownMenuAction(action: IDropdownMenuOptionEmit): void {\n        this.dropdownMenuAction.emit(action);\n    }\n}\n","<div\n    class=\"incomplete-table-container prevent-text-selection\"\n    [ngStyle]=\"{\n        width: _columnWidth + 'px',\n    }\"\n>\n    @if (dispatchResponse?.activeLoad) {\n        <ng-container\n            *ngTemplateOutlet=\"\n                loadDetailsTemplate;\n                context: { load: dispatchResponse?.activeLoad }\n            \"\n        ></ng-container>\n    } @else {\n        <div\n            class=\"incomplete-table-holder no-active-load d-flex align-items-center ca-font-medium\"\n            [class.pe-none]=\"isDisabled\"\n            #t2=\"ngbPopover\"\n            [ngClass]=\"{\n                'opacity-0': !isHoveringRow,\n            }\"\n            [ngbPopover]=\"loadDetailsPopoverTemplate\"\n            popoverClass=\"pickup-delivery-popover\"\n            triggers=\"manual\"\n            [autoClose]=\"'outside'\"\n            container=\"body\"\n            [placement]=\"['bottom-start', 'top-start']\"\n            (click)=\"openPopover(t2)\"\n            (hidden)=\"closePopover(t2)\"\n        >\n            NO ACTIVE OR PENDING LOAD\n        </div>\n    }\n\n    <ng-template #loadDetailsTemplate let-load=\"load\">\n        <div\n            class=\"incomplete-table-holder stops d-flex justify-content-between align-items-center\"\n            [class.pe-none]=\"isDisabled\"\n            #t2=\"ngbPopover\"\n            [ngbPopover]=\"loadDetailsPopoverTemplate\"\n            popoverClass=\"pickup-delivery-popover\"\n            triggers=\"manual\"\n            [autoClose]=\"'outside'\"\n            container=\"body\"\n            [placement]=\"['bottom-start', 'top-start']\"\n            (click)=\"openPopover(t2)\"\n            (hidden)=\"closePopover(t2)\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"\n                    stopsSideTemplate;\n                    context: {\n                        side: 'left',\n                        stopOrder: load?.pickupCount,\n                        city: load?.pickup?.shipper?.address?.city,\n                        state: load?.pickup?.shipper?.address?.stateShortName,\n                        date: load?.pickup?.dateFrom,\n                        status: load?.statusType?.name,\n                        type: 'pickup',\n                        loadType: load?.type?.name,\n                    }\n                \"\n            ></ng-container>\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    stopsSideTemplate;\n                    context: {\n                        side: 'right',\n                        stopOrder: load?.deliveryCount,\n                        city: load?.delivery?.shipper?.address?.city,\n                        state: load?.delivery?.shipper?.address?.stateShortName,\n                        date: load?.delivery?.dateFrom,\n                        status: load?.statusType?.name,\n                        type: 'delivery',\n                        loadType: load?.type?.name,\n                    }\n                \"\n            ></ng-container>\n        </div>\n    </ng-template>\n    <ng-template\n        #stopsSideTemplate\n        let-side=\"side\"\n        let-stopOrder=\"stopOrder\"\n        let-city=\"city\"\n        let-state=\"state\"\n        let-date=\"date\"\n        let-status=\"status\"\n        let-type=\"type\"\n        let-loadType=\"loadType\"\n    >\n        <div\n            class=\"stops-side d-flex align-items-center flex-basis-50 {{\n                side\n            }}\"\n        >\n            @let isSplitLoad = loadType === 'Split';\n\n            <span\n                class=\"d-flex justify-content-center align-items-center {{\n                    type\n                }}StationNumber ca-font-bold\"\n                [ngClass]=\"{\n                    'active-pickup': status === 'Active' && type === 'pickup',\n                    'pending-pickup': status === 'Pending' && type === 'pickup',\n                    'active-delivery':\n                        status === 'Active' && type === 'delivery',\n                    'pending-delivery':\n                        status === 'Pending' && type === 'delivery',\n                    'split-pickup': isSplitLoad,\n                }\"\n            >\n                @let pickupStopNumber = isSplitLoad ? 'S' : stopOrder;\n\n                {{ pickupStopNumber }}\n            </span>\n            <div class=\"stop-info-container d-flex flex-column\">\n                @let formattedCityState = city | formatCityStatePipe: state;\n\n                <span\n                    class=\"location ca-font-semi-bold d-block text-truncate\"\n                    [innerHTML]=\"\n                        formattedCityState\n                            | tableHighlightSearchText: _searchStrings\n                    \"\n                >\n                </span>\n\n                <div class=\"date-time-holder d-flex\">\n                    @let formattedDate = date | dateFromStringPipe;\n\n                    <span\n                        class=\"date ca-font-regular d-flex justify-content-start m-r-4\"\n                        [innerHTML]=\"\n                            formattedDate\n                                | tableHighlightSearchText: _searchStrings\n                        \"\n                    >\n                    </span>\n                    <span\n                        class=\"date pickup-delivery-time d-none ca-font-regular text-truncate\"\n                        >{{ date | dateFromStringPipe: 'time' }}</span\n                    >\n                </div>\n            </div>\n        </div>\n    </ng-template>\n\n    <ng-template #loadDetailsPopoverTemplate>\n        <app-ca-load\n            [focusedTab]=\"loadType\"\n            [loads]=\"loads\"\n            [columnWidth]=\"_columnWidth\"\n            (dropdownMenuAction)=\"onDropdownMenuAction($event)\"\n        ></app-ca-load>\n    </ng-template>\n</div>\n","export const ProgressBarConstants = {\n  completed: 'Complete',\n  completed_text: '452.0 mi',\n  total: 'Total',\n  zero: 0,\n  percentage: '%',\n  miles: 'mi',\n};\n","export class ProgressBarSvgRoutes {\n  static checkRoute: string = 'assets/ca-components/svg/map/check.svg';\n}\n","export class ConvertMinutesToHoursHelper {\n  static convertMinutesToHours = (minutes: number): string => {\n    let h: string | number = Math.floor(minutes / 60);\n    let m: string | number = minutes % 60;\n    h = h < 10 ? '0' + h : h;\n    m = m < 10 ? '0' + m : m;\n    return `${h}:${m}`;\n  };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Helpers\nimport { ConvertMinutesToHoursHelper } from '../utils/helpers';\n\n@Pipe({\n  standalone: true,\n  name: 'convertMinutesToHours',\n})\nexport class ConvertMinutesToHoursPipe implements PipeTransform {\n  transform(minutes: number): string {\n    return ConvertMinutesToHoursHelper.convertMinutesToHours(minutes);\n  }\n}\n","export enum eProgressBarString {\n  PICKUP = 'pickup',\n  DELIVERY = 'delivery',\n  DEADHEAD = 'deadhead',\n  CURRENT_LOCATION = 'Current Location',\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// Components\nimport { CaMapComponent } from '../ca-map/ca-map.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Constants\nimport { ProgressBarConstants } from './utils/constants';\nimport { MapOptionsConstants } from '../ca-map/utils/constants';\n\n// models\nimport { IGpsProgress, IProgressBarData } from './interfaces';\nimport { ICaMapProps, IMapMarkers, IMapRoutePath } from '../ca-map/models';\n\n// svg-routes\nimport { ProgressBarSvgRoutes } from './utils/svg-routes';\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// pipes\nimport { ConvertMinutesToHoursPipe } from './pipes';\nimport { SafeHtmlPipe } from '../../pipes';\n\n// Enums\nimport { eProgressBarString } from './enums';\nimport {\n    eColor,\n    ePosition,\n    eSharedString,\n    eStringPlaceholder,\n    eUnit,\n    eThousandSeparatorFormat,\n    eDateTimeFormats,\n} from '../../enums';\n\n// Services\nimport { MapMarkerIconService } from '../ca-map/utils/services';\n\n@Component({\n    selector: 'app-ca-progress-bar',\n    templateUrl: './ca-progress-bar.component.html',\n    styleUrls: ['./ca-progress-bar.component.scss'],\n    imports: [\n        // Modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        NgbTooltip,\n        // Components\n        CaMapComponent,\n        CaAppTooltipV2Component,\n        // Pipes\n        ConvertMinutesToHoursPipe,\n        SafeHtmlPipe,\n    ],\n})\nexport class ProgressBarComponent {\n    @Input() set progressBarData(values: IProgressBarData) {\n        if (values) {\n            this._progressBarData = values;\n\n            this.setProgressData();\n        }\n    }\n    @Input() dropdownWidth: number | null = null;\n    @Input() mapWidth: number | null = null;\n    @Input() isDisabled: boolean = false;\n\n    @Output() onOpenMap = new EventEmitter();\n\n    public _progressBarData: IProgressBarData | null = null;\n    public _gpsProgress: IGpsProgress[] = [];\n\n    public currentPosition: number = 0;\n    public gpsIconTopPosition: number = 0;\n\n    public hoveredGpsTitle: string | null = null;\n    public hoveredMileageInfo: string | null = null;\n\n    public hoveredGpsIcon: boolean = false;\n\n    public staticConstant = ProgressBarConstants;\n    public progressBarSvgRoutes = ProgressBarSvgRoutes;\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public mapData: ICaMapProps = {\n        markers: [],\n        clusterMarkers: [],\n        routingMarkers: [],\n        routePaths: [],\n        darkMode: true,\n    };\n\n    public eUnit = eUnit;\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eThousandSeparatorFormat = eThousandSeparatorFormat;\n    public eDateTimeFormats = eDateTimeFormats;\n\n    get gpsStopsWithoutCurrentLocation(): IGpsProgress[] {\n        return this._gpsProgress.filter(\n            (stop) => stop.type !== eSharedString.CURRENT_LOCATION\n        );\n    }\n\n    constructor(private markerIconService: MapMarkerIconService) {}\n\n    public hoverStop(stop: IGpsProgress): void {\n        this.hoveredGpsTitle = stop?.isAtStop\n            ? eProgressBarString.CURRENT_LOCATION\n            : stop?.heading || null;\n        this.hoveredMileageInfo = !stop?.isAtStop\n            ? stop?.mileage\n            : eStringPlaceholder.EMPTY;\n    }\n\n    public hoverCurrentLocation(): void {\n        this.hoveredGpsTitle = eProgressBarString.CURRENT_LOCATION;\n        this.hoveredMileageInfo = eStringPlaceholder.EMPTY;\n    }\n\n    public leaveStop(): void {\n        this.hoveredGpsTitle = null;\n        this.hoveredMileageInfo = null;\n    }\n\n    public showDropdownMap(t2: NgbPopover): void {\n        if (this.isDisabled) return;\n\n        t2.open();\n\n        this.onOpenMap.emit();\n    }\n\n    private setGpsProgress(gpsProgressData: IGpsProgress[]): void {\n        this._gpsProgress = gpsProgressData;\n\n        this.setMapMarkers();\n\n        this.calculateGpsIconPosition();\n    }\n\n    private setMapMarkers(): void {\n        let routeMarkers: IMapMarkers[] = [];\n        let routePaths: IMapRoutePath[] = [];\n\n        const currentLocationIndex = this._gpsProgress.findIndex(\n            (stop) => stop.type === eSharedString.CURRENT_LOCATION\n        );\n\n        this._gpsProgress.forEach((loadStop, index) => {\n            const markerData = {\n                position: { lat: loadStop.latitude, lng: loadStop.longitude },\n            };\n\n            const markerIcon = !!loadStop.motionStatus\n                ? this.markerIconService.getCurrentLocationMarkerIcon(\n                      markerData,\n                      loadStop.motionStatus\n                  )\n                : this.markerIconService.getRoutingMarkerIcon(\n                      markerData,\n                      loadStop.stopNumber ?? 0,\n                      loadStop.type,\n                      this.currentPosition >= loadStop.position\n                  );\n\n            const routeMarker: IMapMarkers = {\n                ...markerData,\n                content: markerIcon,\n            };\n\n            routeMarkers = [...routeMarkers, routeMarker];\n\n            if (loadStop.routeShape) {\n                const strokeColor =\n                    index <= currentLocationIndex\n                        ? MapOptionsConstants.ROUTING_PATH_DARK_COLORS[\n                              'complete'\n                          ]\n                        : MapOptionsConstants.ROUTING_PATH_DARK_COLORS[\n                              'incomplete'\n                          ];\n                const isDashed =\n                    this._gpsProgress?.[index - 1]?.type ===\n                    eProgressBarString.DEADHEAD;\n\n                const routePath: IMapRoutePath = {\n                    path: [],\n                    decodedShape: loadStop.routeShape,\n                    strokeColor,\n                    strokeOpacity: 1,\n                    strokeWeight: 4,\n                    isDashed,\n                };\n\n                routePaths = [...routePaths, routePath];\n            }\n        });\n\n        this.mapData = {\n            ...this.mapData,\n            isZoomShown: true,\n            routingMarkers: routeMarkers,\n            routePaths: routePaths,\n        };\n    }\n\n    private calculateGpsIconPosition(): void {\n        let topPosition = 0;\n        let currentStopPercentage = null;\n        const stopPercentage =\n            100 / (this.gpsStopsWithoutCurrentLocation.length - 1);\n\n        this.gpsStopsWithoutCurrentLocation.forEach((stop, index) => {\n            const isAtDeadhead = stop.isAtStop && !index;\n\n            if (stop.isVisited && !isAtDeadhead)\n                topPosition += index ? stopPercentage : stopPercentage / 2;\n\n            if (stop.isAtStop) currentStopPercentage = stopPercentage * index;\n        });\n\n        this.gpsIconTopPosition = currentStopPercentage ?? topPosition;\n    }\n\n    private setProgressData(): void {\n        if (this._progressBarData) {\n            this.currentPosition =\n                this._progressBarData.currentPosition > 100\n                    ? 100\n                    : (this._progressBarData.currentPosition ?? 0);\n\n            if (this._progressBarData.gpsProgress)\n                this.setGpsProgress(this._progressBarData.gpsProgress);\n        }\n    }\n}\n","@let currentStop = _progressBarData?.currentStop;\n@let totalMiles = _progressBarData?.totalMiles;\n@let mileageInfo = _progressBarData?.mileageInfo;\n@let mileagesPercent = _progressBarData?.mileagesPercent;\n@let gpsTitle = _progressBarData?.gpsTitle;\n@let gpsIcon = _progressBarData?.gpsIcon;\n@let gpsInfo = _progressBarData?.gpsInfo;\n@let gpsLocationIcon = _progressBarData?.gpsLocationIcon;\n@let dispatchStatus = _progressBarData?.dispatchStatus;\n@let currentLocation = _progressBarData?.currentLocation;\n\n<div class=\"gps-progress-bar\">\n    @if (_progressBarData) {\n        <div\n            class=\"gps-progress-holder c-pointer d-flex align-items-center\"\n            [class.pe-none]=\"isDisabled\"\n            #t2=\"ngbPopover\"\n            [ngbPopover]=\"gpsDropdownPopover\"\n            [autoClose]=\"'outside'\"\n            container=\"body\"\n            [placement]=\"ePosition.BOTTOM_RIGHT\"\n            popoverClass=\"gps_dropdown_popover\"\n            triggers=\"manual\"\n            (click)=\"showDropdownMap(t2)\"\n        >\n            <div\n                class=\"c-pointer\"\n                (mouseenter)=\"hoveredGpsIcon = true\"\n                (mouseleave)=\"hoveredGpsIcon = false\"\n            >\n                <div\n                    class=\"gps-icon d-flex\"\n                    [innerHTML]=\"gpsIcon! | safeHtml\"\n                ></div>\n            </div>\n\n            @if (!hoveredGpsIcon) {\n                <div class=\"gps-progress-text flex-1\">\n                    <div class=\"mileage-gps d-flex justify-content-between\">\n                        <div\n                            class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n                        >\n                            {{ hoveredGpsTitle ?? gpsTitle }}\n                        </div>\n                        <div\n                            class=\"user-select-none text-size-11 text-color-black-2 ca-font-regular\"\n                        >\n                            {{ hoveredMileageInfo ?? mileageInfo }}\n                        </div>\n                    </div>\n                    <div class=\"mileage-gps d-flex\">\n                        <div\n                            class=\"gps-timeline flex-1 background-dark-2 position-relative h-2 m-r-8\"\n                        >\n                            @let progressLineWidth =\n                                currentPosition + eUnit.PERCENTAGE_SIGN;\n\n                            <div\n                                class=\"gps-timeline-active background-muted position-absolute left-0 h-2\"\n                                [ngStyle]=\"{ width: progressLineWidth }\"\n                            ></div>\n\n                            @for (\n                                stop of gpsStopsWithoutCurrentLocation;\n                                let i = $index;\n                                track i\n                            ) {\n                                @let stopColorClass =\n                                    stop.type === 'pickup'\n                                        ? 'background-green-3'\n                                        : stop.type === 'delivery'\n                                          ? 'background-orange-4'\n                                          : 'background-gray-20';\n\n                                <div\n                                    class=\"stop-marker translate-middle-y w-12 h-12 c-pointer d-flex align-items-center justify-content-center\"\n                                    [style.--position]=\"stop.position\"\n                                    ngbTooltip\n                                    (mouseenter)=\"hoverStop(stop)\"\n                                    (mouseleave)=\"leaveStop()\"\n                                    [tooltipBackground]=\"eColor.BLACK\"\n                                    [mainCaTooltip]=\"stop?.location ?? ''\"\n                                    [position]=\"ePosition.BOTTOM\"\n                                >\n                                    <div\n                                        class=\"w-4 h-6 br-1\"\n                                        [ngClass]=\"stopColorClass\"\n                                    ></div>\n                                </div>\n                            }\n\n                            @if (gpsLocationIcon) {\n                                @let currentLocationTooltip =\n                                    currentLocation?.location ?? null;\n\n                                <div\n                                    class=\"stop-marker c-pointer w-12 h-12 d-flex align-items-center justify-content-center translate-middle-y\"\n                                    (mouseenter)=\"hoverCurrentLocation()\"\n                                    (mouseleave)=\"leaveStop()\"\n                                    [style.--position]=\"currentPosition\"\n                                    ngbTooltip\n                                    [tooltipBackground]=\"eColor.BLACK\"\n                                    [mainCaTooltip]=\"\n                                        currentLocationTooltip || ''\n                                    \"\n                                    [disableTooltip]=\"!currentLocationTooltip\"\n                                    [position]=\"ePosition.BOTTOM\"\n                                    [innerHTML]=\"gpsLocationIcon | safeHtml\"\n                                ></div>\n                            }\n                        </div>\n\n                        <div\n                            class=\"user-select-none text-size-11 text-color-black ca-font-bold w-29 text-right\"\n                        >\n                            {{ mileagesPercent }}\n                        </div>\n                    </div>\n                </div>\n            } @else if (gpsInfo) {\n                <div\n                    class=\"gps_info_hold d-flex flex-column flex-1 justify-content-center\"\n                >\n                    <div\n                        class=\"moving_side text-size-11 ca-font-bold user-select-none text-uppercase\"\n                        [ngClass]=\"gpsInfo.gpsHeadingColor\"\n                    >\n                        {{ gpsInfo.gpsHeading }}\n                    </div>\n\n                    <div\n                        class=\"moving_time text-size-11 text-color-black-2 ca-font-medium\"\n                    >\n                        {{ gpsInfo.gpsTime }}\n                    </div>\n                </div>\n            }\n        </div>\n    }\n\n    <ng-template #gpsDropdownPopover let-data=\"data\">\n        <div class=\"main_dropdown_holder d-flex\">\n            <div class=\"flex-1\" [ngStyle]=\"{ 'width.px': mapWidth ?? 340 }\">\n                <app-ca-map [data]=\"mapData\"></app-ca-map>\n            </div>\n\n            <div\n                class=\"gps_all_hold\"\n                [ngStyle]=\"{ 'width.px': dropdownWidth ?? 238 }\"\n            >\n                <div\n                    class=\"gps_header d-flex align-items-center\"\n                    (mouseenter)=\"hoveredGpsIcon = true\"\n                    (mouseleave)=\"hoveredGpsIcon = false\"\n                >\n                    <div class=\"c-pointer\">\n                        <div\n                            class=\"gps-icon\"\n                            [innerHTML]=\"gpsIcon! | safeHtml\"\n                        ></div>\n                    </div>\n\n                    <div\n                        class=\"gps_info_hold d-flex flex-column justify-content-center\"\n                    >\n                        <div\n                            class=\"moving_side text-size-11 ca-font-bold user-select-none text-uppercase\"\n                            [ngClass]=\"gpsInfo?.gpsDropdownHeadingColor\"\n                        >\n                            {{ gpsInfo?.gpsHeading }}\n                        </div>\n\n                        @if (currentLocation?.location) {\n                            <div\n                                class=\"text-size-11 text-color-white m-t--2\"\n                            >\n                                {{ currentLocation?.location }}\n                            </div>\n                        }\n                    </div>\n                </div>\n\n                <div class=\"gps_info_border\"></div>\n\n                <div class=\"gps_progress_hold\">\n                    <div\n                        class=\"gps_progress_hold_inner d-flex flex-column justify-content-between align-items-start\"\n                    >\n                        <div class=\"progress_line\">\n                            <div\n                                class=\"progress_inner_line\"\n                                [ngStyle]=\"{\n                                    height: gpsIconTopPosition + '%',\n                                }\"\n                            ></div>\n\n                            @if (!currentStop) {\n                                <ng-container\n                                    *ngTemplateOutlet=\"\n                                        gpsLocationIconTemplate;\n                                        context: {\n                                            topPosition: gpsIconTopPosition,\n                                        }\n                                    \"\n                                ></ng-container>\n                            }\n                        </div>\n\n                        @for (\n                            stop of gpsStopsWithoutCurrentLocation;\n                            let stopIndex = $index;\n                            track stopIndex\n                        ) {\n                            <div class=\"progress_inner\">\n                                <div class=\"progress_header d-flex\">\n                                    <div\n                                        class=\"progress_header_inside d-flex flex-1\"\n                                    >\n                                        <div\n                                            class=\"progress_icon d-flex justify-content-center align-items-center\"\n                                        >\n                                            @let stopNumberColorClass =\n                                                stop.type === 'pickup'\n                                                    ? 'text-color-green-4'\n                                                    : stop.type === 'delivery'\n                                                      ? 'text-color-orange-3'\n                                                      : 'text-color-muted';\n\n                                            <div\n                                                class=\"progress-stop-number text-size-14 text-center user-select-none ca-font-bold\"\n                                                [ngClass]=\"stopNumberColorClass\"\n                                            >\n                                                {{ stop.stopNumber }}\n                                            </div>\n                                        </div>\n\n                                        <div\n                                            class=\"progress_info_hold d-flex flex-column m-r-4\"\n                                        >\n                                            <div\n                                                class=\"d-flex align-items-center\"\n                                            >\n                                                @let textColorClass =\n                                                    stop.isAtStop ||\n                                                    currentPosition <\n                                                        stop.position\n                                                        ? 'text-color-white'\n                                                        : 'text-color-muted';\n\n                                                <div\n                                                    class=\"text-size-11 ca-font-semi-bold m-r-4\"\n                                                    [ngClass]=\"textColorClass\"\n                                                >\n                                                    {{ stop?.location }}\n                                                </div>\n\n                                                @if (\n                                                    stop.isAtStop &&\n                                                    gpsLocationIcon\n                                                ) {\n                                                    <ng-container\n                                                        *ngTemplateOutlet=\"\n                                                            gpsLocationIconTemplate\n                                                        \"\n                                                    ></ng-container>\n                                                } @else if (\n                                                    currentPosition >=\n                                                    stop.position\n                                                ) {\n                                                    <svg-icon\n                                                        class=\"d-flex svg-size-10 svg-fill-blue-19\"\n                                                        [src]=\"\n                                                            sharedSvgRoutes.CHECK_ICON\n                                                        \"\n                                                    ></svg-icon>\n                                                }\n                                            </div>\n\n                                            @if (!stop.isAtStop) {\n                                                @if (stop.date) {\n                                                    <div\n                                                        class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n                                                        [ngClass]=\"{\n                                                            'text-color-grey':\n                                                                currentPosition >=\n                                                                    stop.position &&\n                                                                !stop.isAtStop,\n                                                        }\"\n                                                    >\n                                                        {{\n                                                            stop.date\n                                                                | date\n                                                                    : eDateTimeFormats.MM_DD_YY\n                                                        }}\n                                                    </div>\n                                                }\n\n                                                @if (stop.time) {\n                                                    <div\n                                                        class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n                                                        [ngClass]=\"{\n                                                            'text-color-grey':\n                                                                currentPosition >=\n                                                                    stop.position &&\n                                                                !stop.isAtStop,\n                                                        }\"\n                                                    >\n                                                        {{\n                                                            stop.time\n                                                                | date\n                                                                    : eDateTimeFormats.HH_MM_AA\n                                                        }}\n                                                    </div>\n                                                }\n                                            } @else {\n                                                <div\n                                                    class=\"progress_time text-size-11 text-color-orange-3 ca-font-bold\"\n                                                >\n                                                    {{ dispatchStatus }}\n                                                </div>\n\n                                                @if (stop.currentWaitTime) {\n                                                    <div\n                                                        class=\"progress_time text-size-11 text-color-white-2\"\n                                                    >\n                                                        {{\n                                                            stop.currentWaitTime\n                                                                | convertMinutesToHours\n                                                        }}\n                                                    </div>\n                                                }\n                                            }\n                                        </div>\n                                    </div>\n\n                                    <div\n                                        class=\"progress-leg-miles-text text-size-11 text-color-white\"\n                                        [ngClass]=\"{\n                                            'text-color-grey':\n                                                currentPosition >=\n                                                    stop.position &&\n                                                !stop.isAtStop,\n                                            'ca-font-bold': stopIndex === 0,\n                                        }\"\n                                    >\n                                        {{\n                                            stopIndex === 0\n                                                ? 'LEG mi'\n                                                : stop?.legMiles\n                                                  ? '+' + stop.legMiles\n                                                  : '+' + 0\n                                        }}\n                                    </div>\n                                </div>\n                            </div>\n                        }\n                    </div>\n                </div>\n\n                <div class=\"gps_info_border\"></div>\n\n                <div class=\"gps_complete_hold\">\n                    <div class=\"gps_complete_row d-flex\">\n                        <div class=\"flex-1 text-size-11 text-color-white\">\n                            {{ staticConstant.completed }}\n                        </div>\n\n                        <div class=\"text-size-11 text-color-white\">\n                            {{ staticConstant.total }}\n                        </div>\n                    </div>\n\n                    <div class=\"gps_complete_second_row d-flex\">\n                        <div\n                            class=\"flex-1 text-size-11 text-color-blue-19 ca-font-bold\"\n                        >\n                            {{ currentPosition }}{{ staticConstant.percentage }}\n                        </div>\n\n                        <div class=\"text-size-11 text-color-white ca-font-bold\">\n                            {{\n                                totalMiles\n                                    | number\n                                        : eThousandSeparatorFormat.DECIMAL_FORMAT\n                            }}\n                            {{ staticConstant.miles }}\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </ng-template>\n</div>\n\n<ng-template #gpsLocationIconTemplate let-topPosition=\"topPosition\">\n    @if (gpsLocationIcon) {\n        <div\n            class=\"d-flex align-items-center justify-content-center\"\n            [class.moving-gps]=\"!!topPosition\"\n            [style.top]=\"topPosition + '%'\"\n            [innerHTML]=\"gpsLocationIcon | safeHtml\"\n        ></div>\n    }\n</ng-template>\n","export class SearchMultipleStatesRoutes {\n    static searchButton: string =\n        'assets/ca-components/svg/search-multiple-states/search-button.svg';\n    static focusedSearchButton: string =\n        'assets/ca-components/svg/search-multiple-states/focused-search-button.svg';\n    static clearSearch: string = 'assets/ca-components/svg/search-multiple-states/clear-search.svg';\n    static add: string = 'assets/ca-components/svg/search-multiple-states/add.svg';\n}\n","import { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nexport const toggleAnimation = trigger('focusChange', [\n    state('default', style({\n      opacity: 1,\n    })),\n    state('focused', style({\n      opacity: 1,\n    })),\n    transition('default => focused', [\n      style({ opacity: 0 }),\n      animate('0.25s')\n    ]),\n    transition('focused => default', [\n      animate('0.25s')\n    ])\n  ]);\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'chipClass',\n  standalone: true,\n})\nexport class ChipClassPipe implements PipeTransform {\n  transform(\n    i: number,\n    chips: any[],\n    chipToDelete: number\n  ): { [key: string]: boolean } {\n    return {\n      'first-chip-animation': i === 0 && chips[0]?.canDoAnimation,\n      'second-chip-animation': i === 1 && chips[1]?.canDoAnimation,\n      'third-chip-animation': i === 2 && chips[2]?.canDoAnimation,\n      'first-chip-toolbar-style': i === 0,\n      'second-chip-toolbar-style': i === 1,\n      'third-chip-toolbar-style': i === 2,\n      'delete-chip-style': chipToDelete === i,\n    };\n  }\n}\n","export enum ChipsColorsEnum {\n  FIRST_CHIP_COLOR = '26A690',\n  SECOND_CHIP_COLOR = 'AB47BC',\n  THIRD_CHIP_COLOR = 'FFA726',\n}\n","export enum KeyboardEventCommands {\n  ENTER = 'Enter',\n}\n","export enum SearchCountEnum {\n  SEARCH_ONE = 'searchOne',\n  SEARCH_TWO = 'searchTwo',\n  SEARCH_THREE = 'searchThree',\n  EMPTY_PLACE_HOLDER = '',\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject, BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CaSearchMultipleStatesService {\n  /* Search  */\n  private searchTableData = new BehaviorSubject<any>(null);\n  public currentSearchTableData = this.searchTableData.asObservable();\n  public sendCurrentSearchTableData(search: any) {\n    this.searchTableData.next(search);\n  }\n\n  /* Send Chips For Highlight Search To Table */\n  private chipsForHighlightSearchToTable = new BehaviorSubject<string[]>([]);\n  public currentChipsForHighlightSearchToTable =\n    this.chipsForHighlightSearchToTable.asObservable();\n  public sendChipsForHighlightSearchToTable(chip: string[]) {\n    this.chipsForHighlightSearchToTable.next(chip);\n  }\n\n  private selectedChipsSubject = new BehaviorSubject<string[]>([]);\n  public selectedChips$ =\n    this.selectedChipsSubject.asObservable();\n  public emitSelectedChips(chip: string[]) {\n    this.selectedChipsSubject.next(chip);\n  }\n\n  private deleteAllChipsSubject = new Subject<void>();\n  public deleteAllChips$ =\n    this.deleteAllChipsSubject.asObservable();\n  public deleteAllChips() {\n    this.deleteAllChipsSubject.next();\n  }\n}\n","import {\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\n\n// SvgRoutes\nimport { SearchMultipleStatesRoutes } from './utils/svg-routes';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Animation\nimport { toggleAnimation } from '../../animations/expand-search-button.animation';\n\n//Service\nimport { CaSearchMultipleStatesService } from './utils/services';\n\n//Pipes\nimport { ChipClassPipe } from './utils/pipes/';\n\n//Enums\nimport {\n    ChipsColorsEnum,\n    KeyboardEventCommands,\n    SearchCountEnum,\n} from './utils/enums';\n\n//Model\nimport { ChipsModel, ITabData } from './models';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n    selector: 'app-ca-search-multiple-states',\n    animations: [toggleAnimation],\n    imports: [\n        // Angular\n        NgClass,\n        AngularSvgIconModule,\n        // Modules\n        FormsModule,\n        NgbTooltipModule,\n        // Components\n        CaAppTooltipV2Component,\n        // Pipes\n        ChipClassPipe,\n    ],\n    templateUrl: './ca-search-multiple-states.component.html',\n    styleUrls: ['./ca-search-multiple-states.component.scss'],\n})\nexport class CaSearchMultipleStatesComponent implements OnInit, OnDestroy {\n    @HostListener('document:click', ['$event'])\n    public onDocumentClick(event: MouseEvent): void {\n        if (\n            !this.elementRef.nativeElement.contains(event.target) &&\n            this.openSearch &&\n            !this.isAlwaysOpenSearch\n        ) {\n            setTimeout(() => {\n                this.toggleSearch();\n            }, 0);\n        }\n    }\n\n    @ViewChild('tableSearchInput', { static: false })\n    tableSearchInput!: ElementRef;\n\n    @Input() toolbarSearch?: boolean = true;\n    @Input() selectedTabData!: ITabData;\n    @Input() searchType!: string;\n    @Input() isAlwaysOpenSearch: boolean = false;\n    @Input() set isDetailsPageSearch(value: boolean) {\n        this._isDetailsPageSearch = value;\n        this.openSearch = value;\n    }\n\n    @Output() close = new EventEmitter<void>();\n    @Output() onSearch: EventEmitter<string> = new EventEmitter();\n\n    public _isDetailsPageSearch!: boolean;\n    public chips: ChipsModel[] = [];\n    public openSearch!: boolean;\n    public searchText: string = '';\n    public searchIsActive: boolean = false;\n    public isInputFocused: boolean = false;\n    public chipToDelete: number = -1;\n    private chipsForHighlightSearch!: string[];\n\n    private typingTimeout!: ReturnType<typeof setTimeout>;\n\n    private destroy$ = new Subject<void>();\n\n    constructor(\n        private searchMultipleStatesService: CaSearchMultipleStatesService,\n        private elementRef: ElementRef\n    ) {}\n\n    ngOnInit(): void {\n        this.initDeleteAllChipsListener();\n    }\n\n    public initDeleteAllChipsListener(): void {\n        this.searchMultipleStatesService.deleteAllChips$\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((value) => {\n                this.deleteAllChips();\n            });\n    }\n\n    public toggleSearch() {\n        if (this.chips.length === 3) this.openSearch = false;\n        else {\n            this.openSearch = !this.openSearch;\n            if (!this.openSearch) this.close.emit();\n\n            if (this.openSearch && this.chips.length < 3)\n                setTimeout(() => {\n                    this.tableSearchInput.nativeElement.focus();\n                }, 100);\n        }\n    }\n\n    public onTyping(event: MouseEvent | KeyboardEvent): void {\n        clearTimeout(this.typingTimeout);\n\n        const searchNumber = !this.chips.length\n            ? SearchCountEnum.SEARCH_ONE\n            : this.chips.length === 1\n              ? SearchCountEnum.SEARCH_TWO\n              : SearchCountEnum.SEARCH_THREE;\n\n        const keyboardEvent = this.isKeyboardEvent(event)\n            ? (event as KeyboardEvent)\n            : null;\n\n        if (!keyboardEvent || !keyboardEvent.key) {\n            this.searchIsActive = true;\n            this.searchText = SearchCountEnum.EMPTY_PLACE_HOLDER;\n            this.sendHighlightSearchOnTyping();\n\n            this.emitSearchEvent();\n\n            this.searchMultipleStatesService.sendCurrentSearchTableData({\n                chip: searchNumber,\n                search: this.searchText,\n                searchType: this.searchType,\n            });\n        }\n\n        if (\n            keyboardEvent &&\n            keyboardEvent.key !== KeyboardEventCommands.ENTER\n        ) {\n            this.typingTimeout = setTimeout(() => {\n                if (this.searchText.length >= 3) {\n                    this.searchIsActive = true;\n\n                    this.sendHighlightSearchOnTyping();\n\n                    this.searchMultipleStatesService.sendCurrentSearchTableData(\n                        {\n                            chip: searchNumber,\n                            search: this.searchText,\n                            searchType: this.searchType,\n                        }\n                    );\n                } else if (this.searchIsActive && this.searchText.length < 3) {\n                    this.searchIsActive = false;\n\n                    this.sendHighlightSearchOnEnter();\n\n                    this.searchMultipleStatesService.sendCurrentSearchTableData(\n                        {\n                            chip: searchNumber,\n                            doReset: true,\n                            all: searchNumber === SearchCountEnum.SEARCH_ONE,\n                            searchType: this.searchType,\n                        }\n                    );\n                }\n\n                this.emitSearchEvent();\n            }, 500);\n        }\n    }\n\n    private isKeyboardEvent(event: Event): event is KeyboardEvent {\n        return (event as KeyboardEvent).key !== undefined;\n    }\n\n    public onEnter(): void {\n        if (!this.toolbarSearch) return;\n\n        if (this.chips.length < 3 && !this.checkChips()) {\n            this.chips.push({\n                searchText: this.searchText,\n                color: this.getChipColor(this.chips.length),\n                canDoAnimation: true,\n                query: this.getChipQuery(this.chips.length),\n            });\n\n            this.sendHighlightSearchOnEnter();\n\n            this.emitSearchEvent();\n\n            this.searchMultipleStatesService.sendCurrentSearchTableData({\n                chipAdded: true,\n                search: this.searchText,\n                query: this.getChipQuery(this.chips.length - 1),\n                searchType: this.searchType,\n            });\n            this.chips.length === 3 && !this._isDetailsPageSearch\n                ? this.toggleSearch()\n                : null;\n            this.chipToDelete = -1;\n            this.searchText = '';\n            this.searchIsActive = false;\n        }\n    }\n\n    private sendHighlightSearchOnTyping(): void {\n        this.chipsForHighlightSearch = [];\n\n        this.chips.map((chip) => {\n            this.chipsForHighlightSearch.push(chip.searchText);\n        });\n\n        if (this.chips.length <= 2)\n            this.chipsForHighlightSearch.push(this.searchText);\n\n        this.searchMultipleStatesService.sendChipsForHighlightSearchToTable(\n            this.chipsForHighlightSearch\n        );\n    }\n\n    private sendHighlightSearchOnEnter() {\n        this.chipsForHighlightSearch = [];\n\n        this.chips.map((chip) => {\n            this.chipsForHighlightSearch.push(chip.searchText);\n        });\n\n        this.searchMultipleStatesService.sendChipsForHighlightSearchToTable(\n            this.chipsForHighlightSearch\n        );\n\n        this.searchMultipleStatesService.emitSelectedChips(\n            this.chipsForHighlightSearch\n        );\n    }\n\n    public handleClearClick(): void {\n        if (this.searchText) this.searchText = '';\n    }\n\n    private checkChips(): boolean {\n        let hasSearchText = false;\n\n        this.chips.map((chip) => {\n            if (chip.searchText === this.searchText) hasSearchText = true;\n        });\n\n        return hasSearchText;\n    }\n\n    public onDeleteChip(index: number) {\n        this.chips.splice(index, 1);\n\n        this.sendHighlightSearchOnEnter();\n\n        if (this.chips.length) {\n            this.chips = this.chips.map((chip, i) => {\n                chip = {\n                    searchText: chip.searchText,\n                    color: this.getChipColor(i),\n                    canDoAnimation: false,\n                    query: this.getChipQuery(i),\n                };\n\n                return chip;\n            });\n        }\n\n        if (this.openSearch)\n            setTimeout(() => {\n                this.tableSearchInput.nativeElement.focus();\n            }, 100);\n\n        this.searchMultipleStatesService.sendCurrentSearchTableData({\n            isChipDelete: true,\n            search: this.searchText?.length >= 3 ? this.searchText : undefined,\n            addToQuery: this.getChipQuery(this.chips.length),\n            querys: [\n                SearchCountEnum.SEARCH_ONE,\n                SearchCountEnum.SEARCH_THREE,\n                SearchCountEnum.SEARCH_THREE,\n            ],\n            chips: this.chips,\n            searchType: this.searchType,\n        });\n    }\n\n    public deleteAllChips(): void {\n        this.chips = [];\n        this.chipToDelete = -1;\n\n        this.searchMultipleStatesService.sendChipsForHighlightSearchToTable([]);\n        this.searchMultipleStatesService.emitSelectedChips([]);\n\n        if (this.openSearch)\n            setTimeout(() => {\n                this.tableSearchInput.nativeElement.focus();\n            }, 100);\n\n        this.searchMultipleStatesService.sendCurrentSearchTableData({\n            isChipDelete: true,\n            search: this.searchText?.length >= 3 ? this.searchText : undefined,\n            addToQuery: this.getChipQuery(this.chips.length),\n            querys: [\n                SearchCountEnum.SEARCH_ONE,\n                SearchCountEnum.SEARCH_THREE,\n                SearchCountEnum.SEARCH_THREE,\n            ],\n            chips: this.chips,\n            searchType: this.searchType,\n        });\n    }\n\n    private getChipColor(index: number): string {\n        const chipsColors: string[] = Object.values(ChipsColorsEnum);\n\n        return chipsColors[index];\n    }\n\n    private getChipQuery(index: number): string {\n        const chipsQuery = [\n            SearchCountEnum.SEARCH_ONE,\n            SearchCountEnum.SEARCH_THREE,\n            SearchCountEnum.SEARCH_THREE,\n        ];\n\n        return chipsQuery[index];\n    }\n\n    public getSvgPath(\n        propertyName: keyof typeof SearchMultipleStatesRoutes\n    ): string {\n        return SearchMultipleStatesRoutes[propertyName] as string;\n    }\n\n    public capitalizeInput(text: string): void {\n        this.searchText = text.charAt(0).toUpperCase() + text.slice(1);\n    }\n\n    public emitSearchEvent(): void {\n        if (this._isDetailsPageSearch) this.onSearch.emit(this.searchText);\n    }\n\n    public onInputFocus(isFocused: boolean): void {\n        this.isInputFocused = isFocused;\n    }\n\n    ngOnDestroy(): void {\n        this.searchMultipleStatesService.sendCurrentSearchTableData(null);\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@let isSearchActive = isAlwaysOpenSearch ? isInputFocused : openSearch;\n@let isAlwaysOpenSearchAndNotFocused = isAlwaysOpenSearch && !isInputFocused;\n\n<div class=\"search-chips-container d-flex\">\n    <div\n        class=\"search-container d-flex\"\n        [ngClass]=\"{\n            'search-input-active': isSearchActive,\n            'ca-full-width': _isDetailsPageSearch,\n            'background-bw2 background-hover-bw-9':\n                isAlwaysOpenSearchAndNotFocused,\n        }\"\n    >\n        <!-- Icon -->\n        @if (toolbarSearch) {\n            <div\n                class=\"icon-container d-flex justify-content-center align-items-center\"\n                [ngClass]=\"{ 'icon-disabled': chips.length >= 3 }\"\n                (click)=\"chips.length < 4 && toggleSearch()\"\n                ngbTooltip\n                [mainCaTooltip]=\"\n                    openSearch\n                        ? chips.length >= 3\n                            ? 'Max Added'\n                            : 'Close'\n                        : chips.length >= 3\n                          ? 'Max Added'\n                          : 'Search'\n                \"\n                [tooltipBackground]=\"'#424242'\"\n                position=\"bottom\"\n            >\n                <svg-icon\n                    class=\"d-flex svg-size-26\"\n                    [src]=\"getSvgPath('searchButton')\"\n                ></svg-icon>\n            </div>\n        } @else {\n            <div\n                class=\"icon-container d-flex justify-content-center align-items-center\"\n                (click)=\"!isAlwaysOpenSearch && toggleSearch()\"\n                ngbTooltip\n                [mainCaTooltip]=\"openSearch ? 'Close' : 'Search'\"\n                [tooltipBackground]=\"'#424242'\"\n                position=\"bottom\"\n                [disableTooltip]=\"isAlwaysOpenSearch\"\n            >\n                <svg-icon\n                    class=\"d-flex svg-size-26\"\n                    [src]=\"getSvgPath('searchButton')\"\n                ></svg-icon>\n            </div>\n        }\n\n        <!-- Border -->\n        <div class=\"icon-border d-flex align-items-center\">\n            <div\n                class=\"inner-border\"\n                [ngClass]=\"{\n                    'background-muted': isAlwaysOpenSearchAndNotFocused,\n                    'background-light-gray-6': isSearchActive,\n                }\"\n            ></div>\n        </div>\n\n        <!-- Search Input -->\n        <div\n            class=\"multiple-search-input d-flex justify-content-between align-items-center\"\n            [ngClass]=\"{ 'ca-full-width': _isDetailsPageSearch }\"\n        >\n            @if (openSearch || isAlwaysOpenSearch) {\n                <input\n                    [disabled]=\"chips.length >= 3\"\n                    #tableSearchInput\n                    id=\"table-search\"\n                    type=\"text\"\n                    (keyup)=\"onTyping($event)\"\n                    (keyup.enter)=\"onEnter()\"\n                    (focus)=\"onInputFocus(true)\"\n                    (blur)=\"onInputFocus(false)\"\n                    autofocus=\"!isAlwaysOpenSearch\"\n                    maxlength=\"30\"\n                    [(ngModel)]=\"searchText\"\n                    (ngModelChange)=\"capitalizeInput($event)\"\n                    placeholder=\"Find {{\n                        selectedTabData.gridNameTitle\n                            ? selectedTabData.gridNameTitle\n                            : 'No Tab Name'\n                    }}\"\n                />\n            }\n            @if (toolbarSearch && openSearch && searchText.length) {\n                <div class=\"d-flex align-items-center btn-container\">\n                    <div\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Confirm'\"\n                        [tooltipBackground]=\"'#424242'\"\n                        position=\"bottom\"\n                    >\n                        <svg-icon\n                            class=\"confirm-icon d-flex svg-size-18\"\n                            [src]=\"getSvgPath('add')\"\n                            (click)=\"onEnter()\"\n                        ></svg-icon>\n                    </div>\n                    <div\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Clear'\"\n                        [tooltipBackground]=\"'#424242'\"\n                        position=\"bottom\"\n                    >\n                        <svg-icon\n                            class=\"clear-icon d-flex svg-size-18\"\n                            [src]=\"getSvgPath('clearSearch')\"\n                            (click)=\"onTyping($event)\"\n                        ></svg-icon>\n                    </div>\n                </div>\n            }\n        </div>\n    </div>\n\n    @if (chips.length) {\n        <div class=\"chips-container d-flex\">\n            @if (!toolbarSearch) {\n                @for (chip of chips; track $index; let i = $index) {\n                    <div\n                        class=\"chip d-flex justify-content-center align-items-center\"\n                        [ngClass]=\"i | chipClass: chips : chipToDelete\"\n                    >\n                        {{ chip.searchText }}\n                        <div\n                            class=\"delete-chip d-flex justify-content-center align-items-center\"\n                            (mouseenter)=\"chipToDelete = i\"\n                            (mouseleave)=\"chipToDelete = -1\"\n                            (click)=\"onDeleteChip(i)\"\n                        >\n                            <svg-icon\n                                class=\"d-flex svg-size-6\"\n                                [src]=\"getSvgPath('clearSearch')\"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                }\n            } @else {\n                @for (chip of chips; let i = $index; track i) {\n                    <div\n                        class=\"chip d-flex justify-content-center align-items-center\"\n                        [ngClass]=\"i | chipClass: chips : chipToDelete\"\n                        (click)=\"onDeleteChip(i)\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Clear'\"\n                        [tooltipBackground]=\"'#424242'\"\n                        position=\"bottom\"\n                    >\n                        <span>{{ chip.searchText }}</span>\n                    </div>\n                }\n            }\n            <div\n                class=\"delete-all-chips regular-style d-flex justify-content-center align-items-center\"\n                [ngClass]=\"{ 'toolbar-style': toolbarSearch }\"\n                (click)=\"deleteAllChips()\"\n                ngbTooltip\n                [mainCaTooltip]=\"'Clear all'\"\n                [tooltipBackground]=\"'#424242'\"\n                position=\"bottom\"\n            >\n                <svg-icon\n                    class=\"d-flex svg-size-23\"\n                    [src]=\"getSvgPath('clearSearch')\"\n                ></svg-icon>\n            </div>\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// Pipes\nimport { ThousandToShortFormatPipe } from '../../pipes/thousand-to-short-format-pipe';\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\n\n// Models\nimport { ProgressDropdownData } from '../ca-truck-trailer-progress-bar/models/progress-dropdown-data.model';\n\n//Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n@Component({\n    selector: 'app-ca-truck-trailer-progress-bar',\n    templateUrl: './ca-truck-trailer-progress-bar.component.html',\n    styleUrls: ['./ca-truck-trailer-progress-bar.component.scss'],\n    imports: [\n        // Modules\n        CommonModule,\n        NgbModule,\n        //Components\n        CaAppTooltipV2Component,\n        // Pipes\n        ThousandToShortFormatPipe,\n        FormatCurrencyPipe,\n    ],\n    encapsulation: ViewEncapsulation.None\n})\nexport class CaTruckTrailerProgresBarComponent {\n  @Input() type: string = '';\n  @Input() text: string | number = '';\n  @Input() percents!: number;\n  @Input() data!: any; // leave this any for now\n  @Input() columnField!: string;\n  @Input() isTable: boolean = false;\n  @Input() daysExpired: boolean = false;\n  @Input() daysToPay!: number;\n  @Input() hasPopover: boolean = false;\n  @Input() pmName: string = 'Add PM Item';\n\n  public progressDropdownActive: number = -1;\n  public progressDropdownColumnActive: string | any = ''; // leave this any for now\n  public progressDropdownData!: ProgressDropdownData;\n  public isOpenPopup: boolean = false;\n\n  public get daysPluralization(): string {\n    const text = isNaN(this.text as number) ? this.text : this.text.toString();\n    if (text === '1') {\n      return 'Day';\n    }\n\n    return 'Days';\n  }\n\n  // Toggle Progress Dropdown\n  public toggleProgressDropdown(tooltip: NgbPopover): void {\n    if (this.hasPopover) {\n      if (tooltip.isOpen()) {\n        tooltip.close();\n        this.isOpenPopup = false;\n      } else {\n        tooltip.open();\n        this.isOpenPopup = true;\n      }\n\n      this.progressDropdownActive = tooltip.isOpen() ? this.data.textUnit : -1;\n      this.progressDropdownColumnActive = tooltip.isOpen()\n        ? this.columnField\n        : null;\n      this.progressDropdownData = {\n        row: this.data,\n        column: this.data[this.columnField],\n      };\n    } else {\n      return;\n    }\n  }\n}\n","<div\n    class=\"progress-bar-parent d-flex align-items-center\"\n    [class.disable-hover]=\"text === '/'\"\n    [class.progress-bar-parent-expired]=\"daysExpired\"\n    #ngbProgress=\"ngbPopover\"\n    [autoClose]=\"false\"\n    [ngbPopover]=\"milesProgressPopover\"\n    [placement]=\"'bottom-left bottom-right'\"\n    container=\"body\"\n    popoverClass=\"table-progress-popover\"\n    triggers=\"manual\"\n    (hidden)=\"(progressDropdownActive === -1)\"\n    (click)=\"\n        (data[columnField]?.expirationDaysText ||\n            data[columnField]?.expirationMilesText ||\n            data[columnField]?.expirationCreditText) ??\n            toggleProgressDropdown(ngbProgress)\n    \"\n>\n    <div\n        class=\"progress-bar-tooltip d-flex align-items-center\"\n        [class.progress-bar-active-dropdown]=\"isOpenPopup\"\n        [tooltipBackground]=\"'#424242'\"\n        ngbTooltip\n        [mainCaTooltip]=\"pmName\"\n        position=\"bottom\"\n    >\n        @if (text !== '/') {\n            <div class=\"progress-bar-holder mx-2\">\n                <div\n                    class=\"progress-child-back\"\n                    [ngClass]=\"{\n                        expired: percents === 0,\n                        'back-gray': percents > 50 || percents === -1,\n                        'back-yellow': percents > 20 && percents <= 50,\n                        'back-red':\n                            percents <= 20 && percents > 0 && text !== '/',\n                    }\"\n                ></div>\n                <div\n                    class=\"progress-child-front\"\n                    [ngClass]=\"{\n                        'front-gray': percents > 50,\n                        'front-yellow': percents > 20 && percents <= 50,\n                        'front-red': percents <= 20,\n                    }\"\n                    [style.width.%]=\"daysExpired ? 100 - percents : percents\"\n                ></div>\n            </div>\n        }\n\n        @if (percents && text !== '/') {\n            <span\n                class=\"progress-text\"\n                [class.table-progress-text]=\"isTable\"\n                [class.progress-bar-text]=\"isOpenPopup\"\n            >\n                @if (type === 'days') {\n                    @if (daysExpired) {\n                        in {{ text }} days\n                    } @else {\n                        <div class=\"progress-text-title\">\n                            <span>{{ text }} {{ daysPluralization }} left</span>\n                            <span>{{ daysToPay }} days</span>\n                        </div>\n                    }\n                }\n                @switch (type) {\n                    @case ('miles') {\n                        {{ +text | thousandToShortFormatPipe }} mi to go\n                    }\n                    @case ('credit') {\n                        {{ text }}\n                    }\n                    @default {\n                        {{ text }}\n                    }\n                }\n            </span>\n        }\n\n        @if (percents === 0 && percents !== null && text !== '/') {\n            <span\n                class=\"progress-text ca-font-semi-bold\"\n                [class.table-progress-text]=\"isTable\"\n                [class.progress-bar-text]=\"isOpenPopup\"\n            >\n                @if (type === 'days') {\n                    @if (daysExpired) {\n                        {{ text }} days ago\n                    } @else {\n                        <div class=\"progress-text-title\">\n                            <span>{{ text }} {{ daysPluralization }} over</span>\n                            <span>{{ daysToPay }} days</span>\n                        </div>\n                    }\n                }\n                @switch (type) {\n                    @case ('miles') {\n                        {{ +text | thousandToShortFormatPipe }} mi over\n                    }\n                    @case ('credit') {\n                        {{ text }}\n                    }\n                }\n            </span>\n        }\n\n        @if (text === '/') {\n            <span> / </span>\n        }\n    </div>\n</div>\n\n<!-- MILES PROGRESS POPOVER -->\n<ng-template #milesProgressPopover>\n    <div\n        class=\"progress-dropdown\"\n        [ngClass]=\"{ 'credit-dropdown': type === 'credit' }\"\n    >\n        <div\n            class=\"progress-header d-flex align-items-center justify-content-between\"\n        >\n            <div class=\"progress-title\">\n                @if (progressDropdownData.column.expirationMilesText) {\n                    {{ progressDropdownData.column.expirationMilesText ?? 0 }}\n                    @if (percents && percents <= 100) {\n                        <span> mi to go</span>\n                    } @else {\n                        <span> mi over</span>\n                    }\n                }\n                @if (progressDropdownData.column.expirationDaysText) {\n                    {{ progressDropdownData.column?.expirationDaysText ?? 0 }}\n                    @if (percents && percents < 100) {\n                        <span> days left</span>\n                    } @else {\n                        <span> days ago</span>\n                    }\n                }\n                @if (progressDropdownData.column.expirationCreditText) {\n                    {{ progressDropdownData.column?.expirationCreditText ?? 0 }}\n                }\n            </div>\n            <div class=\"progress-total\">\n                {{ progressDropdownData.column.totalValueText }}\n            </div>\n        </div>\n        <div\n            class=\"table-progress-bar-container\"\n            [ngClass]=\"{\n                'bg-expired-container': !percents,\n                'bg-sliver-container': percents >= 50 && percents < 100,\n                'bg-orange-container': percents >= 20 && percents < 50,\n                'bg-danger-container': percents > 0 && percents < 20,\n                'bg-inactive-container': percents === 100,\n            }\"\n        >\n            <div\n                [ngClass]=\"{\n                    'bg-progress-sliver': percents >= 50 && percents <= 100,\n                    'bg-progress-orange': percents >= 20 && percents < 50,\n                    'bg-progress-danger': percents > 0 && percents < 20,\n                }\"\n                [ngStyle]=\"{ width: percents + '%' }\"\n                class=\"table-progress-bar bg-progress-danger\"\n            ></div>\n        </div>\n        <div class=\"progress-dropdown-body\">\n            @if (type === 'days' || type === 'miles') {\n                <div\n                    class=\"progress-dual-info-container d-flex align-items-center\"\n                >\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Last Serviced</div>\n                        <div class=\"progress-info-text\">\n                            {{ progressDropdownData.row.lastService ?? '/' }}\n                        </div>\n                    </div>\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Odometer</div>\n                        <div class=\"progress-info-text\">\n                            {{ progressDropdownData.row.textOdometer ?? '/' }}\n                        </div>\n                    </div>\n                </div>\n                <div class=\"progress-info-container\">\n                    <div class=\"progress-info-title\">Repair Shop</div>\n                    <div class=\"progress-info-text\">\n                        {{ progressDropdownData.row.textRepairShop ?? '/' }}\n                    </div>\n                </div>\n                <div\n                    class=\"progress-dual-info-container d-flex align-items-center\"\n                >\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Invoice</div>\n                        <div class=\"progress-info-text\">\n                            {{ progressDropdownData.row.textInv ?? '/' }}\n                        </div>\n                    </div>\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Cost</div>\n                        <div class=\"progress-info-text\">\n                            {{ progressDropdownData.row?.cost ?? '/' }}\n                        </div>\n                    </div>\n                </div>\n            }\n            @if (type === 'credit') {\n                <div\n                    class=\"progress-dual-info-container d-flex align-items-center\"\n                >\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Total Credit</div>\n                        <div class=\"progress-info-text\">\n                            {{\n                                progressDropdownData.row.creditLimit\n                                    ? (progressDropdownData.row.creditLimit\n                                      | formatCurrency)\n                                    : '/'\n                            }}\n                        </div>\n                    </div>\n                    <div class=\"progress-info-container\">\n                        <div class=\"progress-info-title\">Pay Term</div>\n                        <div class=\"progress-info-text\">\n                            {{\n                                progressDropdownData.row.broker!.payTerm\n                                    ?.name ?? '/'\n                            }}\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n    </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    Input,\n    Output,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\n// modules\nimport {\n    ControlValueAccessor,\n    FormsModule,\n    NG_VALUE_ACCESSOR,\n    ReactiveFormsModule,\n} from '@angular/forms';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-note',\n    templateUrl: './ca-input-note.component.html',\n    styleUrls: ['./ca-input-note.component.scss'],\n    animations: [accordionAnimation('showHideCardBody')],\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        NgbModule,\n        AngularSvgIconModule,\n        // Component\n        CaNoteContainerComponent,\n        CaSpinnerComponent,\n        // Pipe\n        SafeHtmlPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => CaInputNoteComponent),\n            multi: true,\n        },\n    ],\n})\nexport class CaInputNoteComponent implements ControlValueAccessor {\n    @ViewChild('main_editor', { static: true }) public noteRef:\n        | ElementRef\n        | undefined;\n    @ViewChild('noteContainer', { static: true })\n    public noteContainer!: CaNoteContainerComponent;\n\n    @Input() set note(value: string) {\n        if (\n            (value && value != '' && value != 'null' && !this.isValue) ||\n            this.isBlankNote\n        ) {\n            this.showNote = value;\n            this.value = value;\n        }\n    }\n    @Input() set isVisibleNote(value: boolean) {\n        this.noActive = value ? 'active' : 'innactive';\n        this._isVisibleNote = !!value;\n    }\n    @Input() isBlankNote: boolean = false;\n    @Input() noteType: string = '';\n    @Input() entityId: number = 0;\n    @Input() entityType: string = '';\n    @Input() hasDefArrow: boolean = true;\n    @Input() isVisibleArrow: boolean = true;\n    @Input() noteLabel: string = 'Note';\n    @Input() placeholder: string = 'Type Something...';\n    @Input() isReadOnly: boolean = false;\n    @Input() customClass: string = '';\n\n    @Output() styledValueEmitter = new EventEmitter<string>();\n    @Output() saveNoteEmitter = new EventEmitter<string>();\n    //note properties\n    public _isVisibleNote: boolean | string = 'null';\n    public selectionTaken!: Selection;\n    public range!: Range;\n    private isValue: boolean = false;\n    public showNote!: string;\n    public value: string = '';\n    public isFocused: boolean = false;\n    private blurNoteTimeout!: ReturnType<typeof setTimeout>;\n    public noActive!: string;\n\n    //saving\n    public isSavingNote: boolean = false;\n    private saveInterval: number | undefined;\n    private isSaveIntervalStarted!: boolean;\n    public savedValue: string = '';\n\n    // ControlValueAccessor callbacks\n    private onChange: (value: any) => void = () => {};\n    private onTouched: () => void = () => {};\n\n    constructor() {}\n\n    writeValue(value: any): void {\n        this.value = value ?? '';\n        this.showNote = this.value;\n    }\n\n    registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: any): void {\n        this.onTouched = fn;\n    }\n\n    setDisabledState?(isDisabled: boolean): void {\n        this.isReadOnly = isDisabled;\n    }\n\n    public openNote(): void {\n        this.noActive = '';\n        this._isVisibleNote = !this._isVisibleNote;\n\n        if (this._isVisibleNote) {\n            this.checkActiveItems();\n        }\n    }\n\n    public checkFocus(): void {\n        this.isFocused = true;\n        if (!this._isVisibleNote) {\n            setTimeout(() => {\n                this.checkActiveItems();\n            }, 150);\n        }\n    }\n\n    public changeValue(event: Event): void {\n        this.isValue = true;\n        const target = event.target as HTMLElement;\n        this.value = target.innerHTML;\n        this.checkActiveItems();\n\n        this.onChange(this.value);\n        this.onTouched();\n    }\n\n    public saveNote(allowSave?: boolean): void {\n        if (this.value == '<br>') {\n            this.value = this.value.replace('<br>', '');\n        }\n        if (allowSave) {\n            this.savedValue = this.value;\n        }\n        if (\n            this.noteType == 'details-card' &&\n            this.entityId &&\n            this.entityType != ''\n        ) {\n            this.isSavingNote = true;\n            setTimeout(() => {\n                this.isSavingNote = false;\n            }, 700);\n            this.updateNote();\n        }\n\n        this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n        this.onChange(this.value);\n    }\n\n    public stopBlurRemoveTimeout(): void {\n        clearTimeout(this.blurNoteTimeout);\n    }\n\n    public checkActiveItems(): void {\n        if (this.noteContainer?.checkActiveItems) {\n            this.noteContainer.checkActiveItems();\n        }\n    }\n    public prepareForTextRange(): void {\n        this.isFocused = false;\n        this.selectionTaken = window.getSelection()!;\n        if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n            this.range = this.selectionTaken.getRangeAt(0);\n            this.selectionTaken.removeAllRanges();\n            this.selectionTaken.addRange(this.range);\n\n            this.blurNoteTimeout = setTimeout(() => {\n                this.selectionTaken.removeAllRanges();\n            }, 100);\n        }\n        this.isSaveIntervalStarted = false;\n        clearInterval(this.saveInterval);\n        if (this.savedValue != this.value) {\n            this.saveNote(true);\n        }\n\n        this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n        this.onTouched();\n    }\n\n    public updateNote(): void {\n        this.showNote = this.value;\n        this.saveNoteEmitter.emit(this.value);\n    }\n\n    public onPaste(event: ClipboardEvent): void {\n        CopyPasteHelper.onPaste(event);\n    }\n\n    public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n        return SvgRoutes[propertyName] as string;\n    }\n}\n","<div class=\"note-container {{ customClass }}\">\n    <!-- Header -->\n    <div\n        class=\"note-header d-flex align-items-center\"\n        [class.pointer]=\"isVisibleArrow\"\n    >\n        <div\n            class=\"d-flex align-items-center note-label\"\n            [ngStyle]=\"{ color: _isVisibleNote ? '#424242' : '#6C6C6C' }\"\n            (click)=\"isVisibleArrow ? openNote() : ''\"\n        >\n            {{ noteLabel }}\n        </div>\n\n        <div\n            class=\"note_tools_container\"\n            (click)=\"isVisibleArrow && !_isVisibleNote ? openNote() : ''\"\n        >\n            <app-ca-note-container\n                #noteContainer\n                [isExpanded]=\"_isVisibleNote && _isVisibleNote != 'null'\"\n                [range]=\"range\"\n                [selectionTaken]=\"selectionTaken\"\n                [value]=\"value\"\n                [isPopoverNote]=\"false\"\n                [selectedEditor]=\"noteRef?.nativeElement\"\n                [isVisibleArrow]=\"isVisibleArrow\"\n                (stopBlurRemoveTimeout)=\"stopBlurRemoveTimeout()\"\n            ></app-ca-note-container>\n        </div>\n\n        @if (isVisibleArrow) {\n            <div class=\"p-4\">\n                <svg-icon\n                    class=\"note-arrow d-flex justify-content-center align-items-center\"\n                    [ngClass]=\"{\n                        rotate: _isVisibleNote && _isVisibleNote != 'null',\n                    }\"\n                    [style.width.px]=\"18\"\n                    [style.height.px]=\"18\"\n                    [src]=\"\n                        hasDefArrow\n                            ? getSvgPath('downArrow')\n                            : getSvgPath('upArrow')\n                    \"\n                    (click)=\"openNote()\"\n                ></svg-icon>\n            </div>\n        }\n    </div>\n\n    <!-- Body -->\n\n    <div\n        class=\"note-body\"\n        [ngClass]=\"noActive\"\n        #noteBody\n        [@showHideCardBody]=\"{\n            value: _isVisibleNote.toString(),\n            params: {\n                marginTop: '0px',\n                marginBottom: '0px',\n            },\n        }\"\n    >\n        <div\n            #main_editor\n            id=\"main_editor\"\n            class=\"note-textarea\"\n            [class.details_textarea]=\"noteType == 'details-card'\"\n            contenteditable=\"true\"\n            [attr.data-text]=\"placeholder\"\n            spellcheck=\"false\"\n            (input)=\"changeValue($event)\"\n            (focus)=\"checkFocus()\"\n            (blur)=\"prepareForTextRange()\"\n            [innerHTML]=\"showNote | safeHtml\"\n            (paste)=\"onPaste($event)\"\n        ></div>\n\n        <!-- Spinner -->\n        @if (isSavingNote && noteType == 'details-card') {\n            <div class=\"spinner d-flex\">\n                <app-ca-spinner\n                    [size]=\"'small'\"\n                    [color]=\"'blueDark'\"\n                ></app-ca-spinner>\n            </div>\n        }\n    </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n    selector: 'app-ca-period-content-extra-info',\n    imports: [CommonModule],\n    templateUrl: './ca-period-content-extra-info.component.html',\n    styleUrls: ['./ca-period-content-extra-info.component.scss']\n})\nexport class CaPeriodContentExtraInfoComponent {\n  @Input() title!: string;\n  @Input() amount: number | undefined;\n  @Input() stopsCount: number | undefined;\n}","<div class=\"mileage-pay d-flex justify-content-between align-items-center\">\n    <div\n        class=\"stop-container d-flex align-items-center justify-content-between\"\n    >\n        <span class=\"payment-title ca-font-extra-bold text-color-black user-select-none\">{{\n            title\n        }}</span>\n        @if (stopsCount) {\n            <span\n                class=\"round d-flex justify-content-center align-items-center ca-font-bold text-color-white\"\n                >{{ stopsCount }}</span\n            >\n        }\n    </div>\n    <span\n        class=\"total-money-closed ca-font-semi-bold d-flex justify-content-center align-items-center text-color-black\"\n        >${{ amount }}</span\n    >\n</div>\n","export class PeriodContentSvgRoutes {\n    static active: string =\n        'assets/ca-components/svg/period-content/status-active-lite.svg';\n    static pending: string =\n        'assets/ca-components/svg/period-content/status-pending-lite.svg';\n    static warning: string =\n        'assets/ca-components/svg/period-content/status-warning-lite.svg';\n    static plus: string = 'assets/ca-components/svg/period-content/plus.svg';\n    static dolarSign: string =\n        'assets/ca-components/svg/period-content/dollar-sign.svg';\n    static semiTruck: string =\n        'assets/ca-components/svg/period-content/semi-truck.svg';\n    static userAvatar: string = 'assets/png/user-avatar.png';\n    static dragging: string =\n        'assets/ca-components/svg/period-content/dragging.svg';\n    static infinityIcon: string =\n        'assets/ca-components/svg/period-content/infinity.svg';\n    static previewArrows: string =\n        'assets/ca-components/svg/common/ic_two_arrows.svg';\n}\n","export enum PayrollTypeEnum {\n    MILEAGE = 'MILEAGE',\n    COMMISSION = 'COMMISSION',\n    FLAT_RATE = 'FLAT_RATE',\n    OWNER_COMMISSION = 'OWNER',\n}\n\nexport enum userInfoEnum {\n    SHORT_PAID = 'SHORT PAID',\n    CLOSED_UNPAID = 'CLOSED UNPAID',\n    PAID_IN_FULL = 'PAID IN FULL',\n    READY_IN_DAYS = 'READY IN 444 DAYS',\n    READY_TO_PROCESS = 'READY TO PROCESS',\n    DAYS_OVERDUE = '444 DAYS OVERDUE',\n}\n","export enum ePeriodTitleType {\n  FUEL = 'Fuel',\n  CREDIT = 'Credit',\n  DEDUCTION = 'Deduction',\n  PAYMENT = 'Payment',\n  BONUS = 'Bonus'\n}","//enum\nimport { userInfoEnum } from '../../enums';\n\n//svg-routes\nimport { PeriodContentSvgRoutes } from '../svg-routes';\n\nexport class PayrollPeriodContentHelper {\n  public static getIcon(status: { numberOfDays: number; period: string }): {\n    title: string;\n    url: string;\n  } {\n    if (status?.period == \"Pending\") {\n      return {\n        title: `READY IN ${status.numberOfDays} DAYS`,\n        url: PeriodContentSvgRoutes.pending,\n      };\n    } else if (status?.period === 'Ready') {\n      return {\n        title: userInfoEnum.READY_TO_PROCESS,\n        url: PeriodContentSvgRoutes.active,\n      };\n    } else {\n      return {\n        title: `${status?.numberOfDays} DAYS OVERDUE`,\n        url: PeriodContentSvgRoutes.warning,\n      };\n    }\n  }\n\n  public static getSvgPath(\n    propertyName: keyof typeof PeriodContentSvgRoutes\n  ): string {\n    return PeriodContentSvgRoutes[propertyName] as string;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PayrollReportTableResponse } from '../models/payroll-report-tables.type';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n  standalone: true,\n  name: 'includedCount',\n  pure: false,\n})\nexport class IncludedCountPipe implements PipeTransform {\n  constructor(private currencyPipe: CurrencyPipe) {}\n  transform(\n    includedArray: PayrollReportTableResponse[],\n    isOpen: boolean\n  ): string | null {\n    const totalCount = includedArray.reduce((current, next) => {\n      return (current += +next.subtotal!);\n    }, 0);\n    if (!totalCount && !isOpen) return null;\n    return this.currencyPipe.transform(totalCount);\n  }\n}\n","import { ePeriodTitleType } from \"../../enums\";\n\nexport const titleColorClassMap: Map<ePeriodTitleType | string, string> = new Map([\n  [ePeriodTitleType.FUEL, 'text-color-purple'],\n  [ePeriodTitleType.CREDIT, 'text-color-green'],\n  [ePeriodTitleType.DEDUCTION, 'text-color-red-10'],\n  [ePeriodTitleType.PAYMENT, 'text-color-black'],\n  [ePeriodTitleType.BONUS, 'text-color-yellow']\n]);","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// svg routes\nimport { PeriodContentSvgRoutes } from '../../utils/svg-routes';\n\n// modules\nimport {\n    CdkDragDrop,\n    DragDropModule,\n    moveItemInArray,\n    transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaDropdownMenuComponent } from '../../../ca-dropdown-menu/ca-dropdown-menu.component';\n\n// helpers\nimport { PayrollPeriodContentHelper } from '../../utils/helpers';\nimport {\n    DropdownMenuContentHelper,\n    MethodsCalculationsHelper,\n} from '../../../../utils/helpers';\n\n// models\nimport { PayrollReportTableResponse } from '../../models/payroll-report-tables.type';\nimport {\n    IDropdownMenuItem,\n    IDropdownMenuOptionEmit,\n} from '../../../ca-dropdown-menu/interfaces';\n\n// pipes\nimport { IncludedCountPipe } from '../../pipes/included_count.pipe';\nimport { FormatCurrencyPipe } from '../../../../pipes/format-currency.pipe';\n\n// constants\nimport { titleColorClassMap } from '../../utils/constants/color-map';\n\n// enums\nimport { ePeriodTitleType } from '../../enums';\n\n@Component({\n    selector: 'app-ca-period-content-payment',\n    providers: [FormatCurrencyPipe],\n    imports: [\n        //Modules\n        CommonModule,\n        AngularSvgIconModule,\n        DragDropModule,\n        //Components\n        CaDropdownMenuComponent,\n        //Pipes\n        IncludedCountPipe,\n    ],\n    templateUrl: './ca-period-content-payment.component.html',\n    styleUrls: ['./ca-period-content-payment.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaPeriodContentPaymentComponent implements OnInit {\n    public _included: PayrollReportTableResponse[] = [];\n    public _excluded: PayrollReportTableResponse[] = [];\n\n    @Input() disableReorder: boolean = false;\n\n    @Input() set included(included: PayrollReportTableResponse[] | undefined) {\n        if (included) {\n            this._included = JSON.parse(JSON.stringify(included));\n        }\n    }\n\n    @Input() set excluded(excluded: PayrollReportTableResponse[] | undefined) {\n        if (excluded) {\n            this._excluded = JSON.parse(JSON.stringify(excluded));\n        }\n    }\n\n    @ViewChild('dropdownMenu', { static: false })\n    public dropdownMenu!: CaDropdownMenuComponent;\n\n    _isOpen: boolean = false;\n    public dropdownOptions: IDropdownMenuItem[] = [];\n\n    @Input() set isOpen(open: boolean) {\n        this._isOpen = open;\n\n        this.dropdownOptions =\n            DropdownMenuContentHelper.getPayrollDropdownContent(this._isOpen);\n    }\n\n    public get isOpen() {\n        return this._isOpen;\n    }\n\n    @Input() title!: string | ePeriodTitleType;\n    @Input() hideTotal: boolean = false;\n\n    @Output() openAddNewModalEmiter = new EventEmitter<string>();\n    @Output() openEditEntryItem = new EventEmitter<{\n        $event: IDropdownMenuOptionEmit;\n        data: any;\n        title: string;\n    }>();\n\n    @Output() reorderedDataEmiter = new EventEmitter<{\n        _included: PayrollReportTableResponse[];\n        _title: string;\n    }>();\n\n    // dropdown\n    public dropdownHoverIndex: number = -1;\n    public dropdownMenuActionType: string = '';\n\n    // icons\n    public periodContentSvgRoutes: PeriodContentSvgRoutes =\n        PeriodContentSvgRoutes;\n\n    titleColorClassMap = titleColorClassMap;\n\n    constructor(private cdr: ChangeDetectorRef) {}\n\n    ngOnInit() {}\n\n    public handleDropdownMenuHover(\n        hoverIndex: number = this.dropdownHoverIndex\n    ): void {\n        this.dropdownHoverIndex =\n            hoverIndex !== this.dropdownHoverIndex ||\n            this.dropdownMenu?.isDropdownMenuActive\n                ? hoverIndex\n                : this.dropdownHoverIndex;\n    }\n\n    public onDrop(event: CdkDragDrop<PayrollReportTableResponse[]>): void {\n        if (event.previousContainer === event.container) {\n            moveItemInArray(\n                event.container.data!,\n                event.previousIndex,\n                event.currentIndex\n            );\n        } else {\n            transferArrayItem(\n                event.previousContainer.data,\n                event.container.data!,\n                event.previousIndex,\n                event.currentIndex\n            );\n        }\n\n        this.cdr.detectChanges();\n\n        this.reorderedDataEmiter.emit({\n            _title: this.title,\n            _included: this._included,\n        });\n    }\n\n    public getSvgPath(\n        propertyName: keyof typeof PeriodContentSvgRoutes\n    ): string {\n        return PayrollPeriodContentHelper.getSvgPath(propertyName);\n    }\n\n    public formatDate(date: string): string {\n        return MethodsCalculationsHelper.convertDateFromBackend(date);\n    }\n\n    public identity(index: number): number {\n        return index;\n    }\n\n    public openAddNewModal(): void {\n        if (!this.isOpen) return;\n        this.openAddNewModalEmiter.emit(this.title);\n    }\n\n    public handleMenuOpen(event: {\n        $event: IDropdownMenuOptionEmit;\n        data: PayrollReportTableResponse;\n        title: string;\n    }): void {\n        this.dropdownMenuActionType = event.$event.type ?? '';\n        this.openEditEntryItem.emit(event);\n    }\n}\n","@let periodColorClass = titleColorClassMap.get(title) || 'text-color-black';\n\n<div class=\"main-container\">\n    <ng-container>\n        <div\n            class=\"wrapper d-flex flex-column align-items-center justify-content-start\"\n        >\n            <div\n                class=\"title-container container d-flex flex-column justify-content-center\"\n            >\n                <div\n                    class=\"text-value d-flex justify-content-between align-items-center\"\n                >\n                    <div\n                        class=\"payment-count d-flex align-items-center justify-content-start user-select-none\"\n                    >\n                        <span\n                            class=\"text ca-font-extra-bold text-color-black\"\n                            >{{ title }}</span\n                        >\n                        @if (_included?.length) {\n                            <span\n                                class=\"round ca-font-bold d-flex align-items-center justify-content-center\"\n                            >\n                                {{ _included.length }}\n                            </span>\n                        }\n                    </div>\n                    <span\n                        class=\"value d-flex align-items-center add_new_item\"\n                        (click)=\"openAddNewModal()\"\n                        [class.value-hover]=\"isOpen\"\n                    >\n                        @if (isOpen) {\n                            <svg-icon\n                                class=\"d-flex icon svg-size-18\"\n                                [src]=\"getSvgPath('plus')\"\n                            ></svg-icon>\n                        }\n                    </span>\n                </div>\n            </div>\n            <div class=\"included_excluded_holder\">\n                <div\n                    cdkDropList\n                    #includedList=\"cdkDropList\"\n                    [cdkDropListConnectedTo]=\"[excludedList]\"\n                    [cdkDropListData]=\"_included\"\n                    class=\"component-data-container d-flex justify-content-center flex-column\"\n                    [class.empty_list_ex_in]=\"!_included.length\"\n                    (cdkDropListDropped)=\"onDrop($event)\"\n                >\n                    @for (data of _included; let i = $index; track i) {\n                        <ng-container>\n                            <div\n                                cdkDrag\n                                cdkDragLockAxis=\"y\"\n                                cdkDragPreviewContainer=\"parent\"\n                                [cdkDragDisabled]=\"!isOpen || disableReorder\"\n                            >\n                                <ng-container *cdkDragPlaceholder>\n                                    <div class=\"drag-placeholder\"></div>\n                                </ng-container>\n                                <ng-template cdkDragPreview matchSize>\n                                    <div class=\"custom-drag-preview\">\n                                        <ng-container\n                                            *ngTemplateOutlet=\"\n                                                paymentListItem;\n                                                context: {\n                                                    $implicit: data,\n                                                    index: i + 1,\n                                                    isDragPreview: true,\n                                                }\n                                            \"\n                                        ></ng-container>\n                                    </div>\n                                </ng-template>\n                                <ng-container\n                                    *ngTemplateOutlet=\"\n                                        paymentListItem;\n                                        context: {\n                                            $implicit: data,\n                                            index: i + 1,\n                                        }\n                                    \"\n                                ></ng-container>\n                            </div>\n                        </ng-container>\n                    }\n                </div>\n                @if (!hideTotal) {\n                    <ng-container\n                        *ngTemplateOutlet=\"paymentListTotal\"\n                    ></ng-container>\n                }\n                <div\n                    cdkDropList\n                    [cdkDropListConnectedTo]=\"[includedList]\"\n                    [cdkDropListData]=\"_excluded\"\n                    #excludedList=\"cdkDropList\"\n                    class=\"component-data-container d-flex justify-content-center flex-column exclude_list\"\n                    [class.empty_list_ex_in]=\"!_excluded.length\"\n                    (cdkDropListDropped)=\"onDrop($event)\"\n                >\n                    @for (data of _excluded; let i = $index; track i) {\n                        @if (data.reorderItem) {\n                            <ng-container\n                                *ngTemplateOutlet=\"paymentListTotal\"\n                            ></ng-container>\n                        } @else {\n                            <div\n                                cdkDrag\n                                cdkDragLockAxis=\"y\"\n                                cdkDragPreviewContainer=\"parent\"\n                                [cdkDragDisabled]=\"!isOpen || disableReorder\"\n                            >\n                                <ng-container *cdkDragPlaceholder>\n                                    <div class=\"drag-placeholder\"></div>\n                                </ng-container>\n                                <ng-template cdkDragPreview matchSize>\n                                    <div class=\"custom-drag-preview\">\n                                        <ng-container\n                                            *ngTemplateOutlet=\"\n                                                paymentListItem;\n                                                context: {\n                                                    $implicit: data,\n                                                    index:\n                                                        i +\n                                                        _included.length +\n                                                        1,\n                                                    isDragPreview: true,\n                                                }\n                                            \"\n                                        ></ng-container>\n                                    </div>\n                                </ng-template>\n                                <ng-container\n                                    *ngTemplateOutlet=\"\n                                        paymentListItem;\n                                        context: {\n                                            $implicit: data,\n                                            index: i + _included.length + 1,\n                                            isExcluded: true,\n                                        }\n                                    \"\n                                ></ng-container>\n                            </div>\n                        }\n                    }\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <ng-template #emptyComponentData>\n        <div class=\"title-container container-empty d-flex flex-column\">\n            <div class=\"text-value d-flex justify-content-between\">\n                <div\n                    class=\"payment-count d-flex align-items-center justify-content-start user-select-none\"\n                >\n                    <span\n                        class=\"text ca-font-extra-bold text-color-black\"\n                        [ngStyle]=\"{ color: isOpen ? '#424242' : '#aaaaaa' }\"\n                        >{{ title }}</span\n                    >\n                </div>\n                <span class=\"value d-flex align-items-center\">\n                    @if (isOpen) {\n                        <svg-icon\n                            class=\"d-flex icon svg-size-18\"\n                            (click)=\"openAddNewModal()\"\n                            [src]=\"getSvgPath('plus')\"\n                        ></svg-icon>\n                    } @else {\n                        <span class=\"total-money-closed ca-font-semi-bold\"\n                            >$0.00</span\n                        >\n                    }\n                </span>\n            </div>\n        </div>\n    </ng-template>\n</div>\n\n<!-- CA PERIOD TEMPLATES -->\n\n<ng-template #paymentListTotal>\n    @let includedCount = _included | includedCount: isOpen;\n    @if (includedCount) {\n        <div\n            class=\"total-money-title d-flex justify-content-between align-items-center\"\n        >\n            <div class=\"icon-total d-flex align-items-center\">\n                <span\n                    class=\"dolar-icon d-flex align-items-center\"\n                    [ngClass]=\"periodColorClass\"\n                >\n                    <svg-icon\n                        class=\"d-flex align-items-center svg-size-18\"\n                        [src]=\"getSvgPath('dolarSign')\"\n                    ></svg-icon>\n                </span>\n                <span\n                    class=\"total-title ca-font-bold text-color-black user-select-none\"\n                    >Total</span\n                >\n            </div>\n            <span\n                class=\"total-money d-flex justify-content-end align-items-center ca-font-semi-bold\"\n                [ngClass]=\"periodColorClass\"\n                >{{ includedCount }}</span\n            >\n        </div>\n    }\n</ng-template>\n\n<ng-template\n    #paymentListItem\n    let-data\n    let-i=\"index\"\n    let-isDragPreview=\"isDragPreview\"\n    let-isExcluded=\"isExcluded\"\n>\n    <div\n        class=\"d-flex justify-content-between align-items-center information\"\n        [class.excluded]=\"isExcluded\"\n    >\n        <div\n            class=\"number-date-location-holder d-flex justify-content-between\"\n            (mouseenter)=\"handleDropdownMenuHover(i)\"\n            (mouseleave)=\"handleDropdownMenuHover(-1)\"\n        >\n            @if (isDragPreview) {\n                <div class=\"drag-preview-icon\">\n                    <svg-icon\n                        class=\"svg-size-14\"\n                        [svgStyle]=\"{\n                            color: '#DADADA',\n                        }\"\n                        [src]=\"getSvgPath('previewArrows')\"\n                    ></svg-icon>\n                </div>\n            } @else {\n                <span\n                    class=\"number d-flex justify-content-center align-items-center ca-font-medium text-color-muted\"\n                >\n                    @let isDropdownMenuOpen = dropdownMenuActionType === 'Open';\n                    @if (i === dropdownHoverIndex || isDropdownMenuOpen) {\n                        <ca-dropdown-menu\n                            #dropdownMenu\n                            [type]=\"'dots-menu-type'\"\n                            [placement]=\"'bottom-right'\"\n                            [options]=\"dropdownOptions\"\n                            (dropdownOptionEmitter)=\"\n                                handleMenuOpen({ $event, data, title })\n                            \"\n                        >\n                        </ca-dropdown-menu>\n                    } @else {\n                        {{ i }}\n                    }\n                </span>\n            }\n\n            <div\n                class=\"date-location d-flex flex-column justify-content-start align-items-start text-ellipsis\"\n            >\n                @if (title === 'Fuel') {\n                    <span\n                        class=\"ca-font-semi-bold location d-flex align-items-center text-color-black w-100\"\n                        >{{ data.fuelStop.businessName }}\n                        {{\n                            data.fuelStop.store\n                                ? '- ' + data.fuelStop.store\n                                : ''\n                        }}</span\n                    >\n                } @else {\n                    <span\n                        class=\"ca-font-semi-bold location d-flex align-items-center text-color-black w-100\"\n                        >{{ data.description }}</span\n                    >\n                }\n\n                <span\n                    class=\"date ca-font-medium d-flex align-items-center text-color-muted\"\n                    >{{ formatDate(data.date) }}</span\n                >\n            </div>\n        </div>\n        <div\n            [ngClass]=\"{\n                'justify-content-between':\n                    title === 'Deduction' || title === 'Fuel',\n                'justify-content-end':\n                    title !== 'Deduction' && title !== 'Fuel',\n            }\"\n            class=\"icon-money-holder d-flex\"\n        >\n            @if (title === 'Deduction') {\n                <span\n                    class=\"recurring d-flex align-items-center justify-content-center\"\n                >\n                    @if (data.recurring && !data.allRecurrance) {\n                        <svg-icon\n                            class=\"d-flex align-items-center svg-size-18\"\n                            [src]=\"getSvgPath('infinityIcon')\"\n                        ></svg-icon>\n                    }\n                    @if (data.recurring && data.allRecurrance) {\n                        <div class=\"recurring-count d-flex align-items-center\">\n                            {{ data.currentRecurrance }}/{{\n                                data.allRecurrance\n                            }}\n                        </div>\n                    }\n                </span>\n            }\n\n            @if (title === 'Fuel') {\n                <span\n                    class=\"recurring d-flex align-items-center justify-content-center text-color-black-2\"\n                >\n                    {{ data.galons }}\n                </span>\n            }\n\n            <span\n                class=\"money d-flex justify-content-end align-items-center ca-font-regular text-color-black-2\"\n            >\n                {{ (data.subtotal || data.total | currency: 'USD') ?? '$0.00' }}\n            </span>\n        </div>\n    </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PayrollPeriodContentHelper } from '../utils/helpers';\nimport { userInfoEnum } from '../enums';\nimport { PeriodContentSvgRoutes } from '../utils/svg-routes';\nimport { PayrollReport } from '../models/payroll-report.type';\n\n@Pipe({\n  standalone: true,\n  name: 'periodStatus',\n})\nexport class PeriodStatusPipe implements PipeTransform {\n  transform(\n    isOpen: boolean,\n    payroll: PayrollReport\n  ): { title: string; url: string } {\n    if (isOpen) {\n      const { title, url } = PayrollPeriodContentHelper.getIcon(\n        payroll.payrollDeadLine\n      );\n      return { url, title };\n    } else if (payroll?.status?.name) {\n      const paymentStatus = payroll?.status?.name;\n      if (\n        paymentStatus.toLocaleLowerCase() ===\n          userInfoEnum.SHORT_PAID.toLocaleLowerCase() ||\n        paymentStatus.toLocaleLowerCase() ===\n          userInfoEnum.CLOSED_UNPAID.toLocaleLowerCase()\n      ) {\n        return {\n          title: paymentStatus,\n          url: PeriodContentSvgRoutes.pending,\n        };\n      } else if (\n        paymentStatus.toLocaleLowerCase() ===\n        userInfoEnum.PAID_IN_FULL.toLocaleLowerCase()\n      ) {\n        return {\n          title: paymentStatus,\n          url: PeriodContentSvgRoutes.active,\n        };\n      } else {\n        return {\n          title: paymentStatus,\n          url: PeriodContentSvgRoutes.warning,\n        };\n      }\n    }\n\n    return { title: '', url: '' };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PayrollReport } from '../models/payroll-report.type';\n\nconst payrollStatusClasses = {\n  pending: 'incomplete',\n  'paid in full': 'paidInFull',\n  'not paid': 'overdue',\n  'short paid': 'overdue'\n};\n\n@Pipe({\n  name: 'payrollStatusClass',\n  standalone: true,\n})\nexport class PayrollStatusClassPipe implements PipeTransform {\n  transform(isOpen: boolean, payroll: PayrollReport): string {\n\n    if( !payroll.status?.name && !payroll.payrollDeadLine?.period ) return \"\";\n    const payrollStatus = isOpen\n      ? payroll.payrollDeadLine.period.toLocaleLowerCase()\n      : payroll.status.name.toLocaleLowerCase();\n\n    return payrollStatusClasses[\n      payrollStatus as keyof typeof payrollStatusClasses\n    ];\n  }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    Input,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Svg routes\nimport { PeriodContentSvgRoutes } from '../../utils/svg-routes';\n\n// Enum\nimport { PayrollTypeEnum } from '../../enums';\n//helper\nimport { PayrollPeriodContentHelper } from '../../utils/helpers';\n\n// Components\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// Pipes\nimport { PeriodStatusPipe } from '../../pipes/period_status.pipe';\nimport { UserNameInitialsPipe } from '../../../../pipes/user-initials.pipe';\nimport { PayrollReport } from '../../models/payroll-report.type';\nimport { PayrollStatusClassPipe } from '../../pipes/payroll-status-class.pipe';\n\n@Component({\n    selector: 'app-ca-period-content-user-info',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        CaProfileImageComponent,\n        PeriodStatusPipe,\n        UserNameInitialsPipe,\n        PayrollStatusClassPipe,\n    ],\n    templateUrl: './ca-period-content-user-info.component.html',\n    styleUrls: ['./ca-period-content-user-info.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaPeriodContentUserInfoComponent {\n    @Input() componentData!: PayrollReport;\n    @Input() type!: PayrollTypeEnum;\n    @Input() isOpen!: boolean;\n\n    public getSvgPath(\n        propertyName: keyof typeof PeriodContentSvgRoutes\n    ): string {\n        return PayrollPeriodContentHelper.getSvgPath(propertyName);\n    }\n}\n","<div class=\"title d-flex align-items-center\">\n    @if (componentData) {\n        <div class=\"container_period_content_user d-flex align-items-start\">\n            @if (type !== 'OWNER') {\n                <div class=\"profile_image_holder\">\n                    <app-ca-profile-image\n                        [isRound]=\"false\"\n                        [isHoverEffect]=\"false\"\n                        [textShortName]=\"\n                            componentData.fullName | userNameInitials\n                        \"\n                        size=\"74\"\n                        height=\"82\"\n                        [fontSize]=\"'28'\"\n                        [avatarImg]=\"componentData.avatar!\"\n                    ></app-ca-profile-image>\n                </div>\n            }\n            <div\n                class=\"user-information d-flex flex-column justify-content-center\"\n            >\n                <span\n                    class=\"user-detail ca-font-extra-bold user-name text-color-black\"\n                >\n                    {{ componentData.fullName }}\n                </span>\n                <span\n                    class=\"user-detail d-flex align-items-center ca-font-medium payroll-number-content text-color-black\"\n                >\n                    {{ componentData.payrollNumber }}\n                </span>\n                <span\n                    class=\"user-detail d-flex align-items-center ca-font-bold icon-row\"\n                    [ngClass]=\"isOpen | payrollStatusClass: componentData\"\n                >\n                    <svg-icon\n                        class=\"d-flex icon align-items-center svg-size-18\"\n                        [src]=\"\n                            (isOpen | periodStatus: componentData)?.url || ''\n                        \"\n                    ></svg-icon>\n                    <span class=\"status-text text-color-black user-select-none\">\n                        {{\n                            (isOpen | periodStatus: componentData)?.title ?? ''\n                        }}\n                    </span>\n                </span>\n            </div>\n            @if (type == 'OWNER') {\n                <div class=\"semi-div d-flex align-items-end\">\n                    <img\n                        class=\"img-frame-semi\"\n                        [src]=\"getSvgPath('semiTruck')\"\n                        alt=\"User Avatar\"\n                    />\n                </div>\n            }\n        </div>\n    }\n</div>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport {\n  CaPeriodContentPaymentComponent,\n  CaPeriodContentExtraInfoComponent,\n  CaPeriodContentUserInfoComponent,\n} from './components';\n\n//enum\nimport { PayrollTypeEnum } from './enums';\n//Interface\nimport { DriverInfo, ExtraPayments } from './models';\n\n//pipes\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\nimport { PayrollReport } from './models/payroll-report.type';\nimport { PayrollReportTableResponse } from './models/payroll-report-tables.type';\n\n@Component({\n    selector: 'app-ca-period-content',\n    providers: [FormatCurrencyPipe],\n    imports: [\n        //Modules\n        CommonModule,\n        AngularSvgIconModule,\n        //Components\n        CaPeriodContentPaymentComponent,\n        CaPeriodContentUserInfoComponent,\n        CaPeriodContentExtraInfoComponent,\n        //pipes\n        FormatCurrencyPipe,\n    ],\n    templateUrl: './ca-period-content.component.html',\n    styleUrls: ['./ca-period-content.component.scss'],\n})\nexport class CaPeriodContentComponent {\n  @Input() isOpen!: boolean;\n  @Input() type!: PayrollTypeEnum;\n  @Input() componentData!: PayrollReport;\n  @Output() reorderedDataEmiter = new EventEmitter<{\n    _included: PayrollReportTableResponse[];\n    _title: string;\n  }>();\n  @Output() openModalEmiter = new EventEmitter<string>();\n\n  @Output() openActionEditItems = new EventEmitter<any>();\n\n  @Output() proccessPayroll = new EventEmitter<PayrollReport>();\n\n  public salary!: number;\n  public totalEarnings!: number;\n  public debt!: number;\n  public debtTitle!: string;\n  public isInDebt?: boolean;\n  public paymentStatus!: string;\n  public driverInfo!: DriverInfo;\n  public extraPayments!: ExtraPayments;\n\n  ngOnInit(): void {}\n\n  constructor() {}\n\n  public processPayment(): void {\n    this.proccessPayroll.emit(this.componentData);\n  }\n\n  public addPayment(): void {\n    this.proccessPayroll.emit(this.componentData);\n  }\n\n  public getReorderedData(data: {\n    _included: PayrollReportTableResponse[];\n    _title: string;\n  }): void {\n    this.reorderedDataEmiter.emit(data);\n  }\n\n  public openAddNewModal(type: any): void {\n    this.openModalEmiter.emit(type);\n  }\n\n  public handleOpenEditEntryItem(item: any): void {\n    this.openActionEditItems.emit(item);\n  }\n}\n","@if (componentData) {\n    <div class=\"main-container\">\n        <!-- User info -->\n        <app-ca-period-content-user-info\n            [componentData]=\"componentData\"\n            [type]=\"type\"\n            [isOpen]=\"isOpen\"\n        ></app-ca-period-content-user-info>\n\n        <!-- Bonues, salary... -->\n        <div class=\"payment-container d-flex flex-column align-items-center\">\n            <div\n                class=\"extra-info-holder d-flex flex-column align-items-center\"\n            >\n                @if (type === 'MILEAGE') {\n                    <div class=\"component-holder\">\n                        <app-ca-period-content-extra-info\n                            title=\"Mileage pay\"\n                            [amount]=\"componentData.mileagePay\"\n                        ></app-ca-period-content-extra-info>\n                        <app-ca-period-content-extra-info\n                            title=\"Extra stop\"\n                            [amount]=\"componentData.extraStopPay || 0\"\n                            [stopsCount]=\"componentData.extraStopCount\"\n                        ></app-ca-period-content-extra-info>\n                    </div>\n                }\n                @if (type === 'FLAT_RATE') {\n                    <ng-container #flatRate>\n                        <div class=\"component-holder\">\n                            <app-ca-period-content-extra-info\n                                title=\"Load pay\"\n                                [amount]=\"componentData?.flatPay\"\n                            ></app-ca-period-content-extra-info>\n                        </div>\n                    </ng-container>\n                }\n            </div>\n\n            <!-- BONUS -->\n            @if (type === 'MILEAGE' || type === 'FLAT_RATE') {\n                <div class=\"component-holder with-border-top\">\n                    <app-ca-period-content-payment\n                        (reorderedDataEmiter)=\"getReorderedData($event)\"\n                        (openAddNewModalEmiter)=\"openAddNewModal($event)\"\n                        (openEditEntryItem)=\"handleOpenEditEntryItem($event)\"\n                        [title]=\"'Bonus'\"\n                        [isOpen]=\"isOpen\"\n                        [included]=\"componentData?.includedBonuses!\"\n                        [excluded]=\"componentData?.excludedBonuses!\"\n                        [disableReorder]=\"true\"\n                    ></app-ca-period-content-payment>\n                </div>\n            }\n\n            <div\n                class=\"salary d-flex justify-content-between align-items-center\"\n            >\n                <span class=\"salary-title ca-font-extra-bold text-color-black user-select-none\">\n                    SALARY\n                </span>\n                <span class=\"salary-value ca-font-bold text-color-black\">\n                    {{ componentData.salary! | formatCurrency }}\n                </span>\n            </div>\n\n            <!-- CREDIT -->\n            <div class=\"component-holder\">\n                <app-ca-period-content-payment\n                    (openAddNewModalEmiter)=\"openAddNewModal($event)\"\n                    (openEditEntryItem)=\"handleOpenEditEntryItem($event)\"\n                    [title]=\"'Credit'\"\n                    [isOpen]=\"isOpen\"\n                    (reorderedDataEmiter)=\"getReorderedData($event)\"\n                    [included]=\"componentData?.includedCredits!\"\n                    [excluded]=\"[]\"\n                ></app-ca-period-content-payment>\n            </div>\n\n            <!-- FUEL -->\n            @if (type === 'OWNER') {\n                <div class=\"component-holder\">\n                    <app-ca-period-content-payment\n                        (openAddNewModalEmiter)=\"openAddNewModal($event)\"\n                        (openEditEntryItem)=\"handleOpenEditEntryItem($event)\"\n                        [title]=\"'Fuel'\"\n                        [isOpen]=\"isOpen\"\n                        (reorderedDataEmiter)=\"getReorderedData($event)\"\n                        [included]=\"componentData?.includedFuels!\"\n                        [excluded]=\"componentData?.excludedFuels!\"\n                    ></app-ca-period-content-payment>\n                </div>\n            }\n\n            <!-- DEDUCTION -->\n            <div class=\"component-holder with-border-top\">\n                <app-ca-period-content-payment\n                    (openAddNewModalEmiter)=\"openAddNewModal($event)\"\n                    (openEditEntryItem)=\"handleOpenEditEntryItem($event)\"\n                    [title]=\"'Deduction'\"\n                    [isOpen]=\"isOpen\"\n                    (reorderedDataEmiter)=\"getReorderedData($event)\"\n                    [included]=\"componentData?.includedDeductions!\"\n                    [excluded]=\"componentData?.excludedDeductions!\"\n                ></app-ca-period-content-payment>\n            </div>\n\n            <div\n                class=\"earnings d-flex justify-content-between align-items-center\"\n            >\n                <span\n                    class=\"ca-font-extra-bold earnings-tlitle text-color-blue-13 user-select-none\"\n                >\n                    EARNINGS\n                </span>\n                @if (componentData) {\n                    <span class=\"ca-font-bold money text-color-blue-13\">\n                        {{ componentData!.earnings! | formatCurrency }}\n                    </span>\n                }\n            </div>\n\n            @if (componentData.payments) {\n                <div class=\"component-holder with-border-top\">\n                    <app-ca-period-content-payment\n                        [title]=\"'Transaction'\"\n                        [isOpen]=\"isOpen\"\n                        (reorderedDataEmiter)=\"getReorderedData($event)\"\n                        (openEditEntryItem)=\"handleOpenEditEntryItem($event)\"\n                        [included]=\"componentData.payments\"\n                        [excluded]=\"[]\"\n                        [hideTotal]=\"true\"\n                    ></app-ca-period-content-payment>\n                </div>\n            }\n\n            <!-- PROCESS BUTTON -->\n            @if (componentData!.debt && !isOpen) {\n                <div\n                    class=\"earnings d-flex justify-content-between align-items-center debth\"\n                >\n                    <span\n                        class=\"ca-font-extra-bold earnings-tlitle text-color-red-11 user-select-none\"\n                    >\n                        DEBT\n                    </span>\n                    @if (componentData) {\n                        <span class=\"ca-font-bold money text-color-red-11\">\n                            {{ componentData!.debt! | formatCurrency }}\n                        </span>\n                    }\n                </div>\n            }\n\n            @if (isOpen) {\n                <div\n                    class=\"button-cnt process-btn d-flex justify-content-between align-items-center\"\n                >\n                    <button\n                        (click)=\"processPayment()\"\n                        class=\"earnings process-button ca-font-bold user-select-none\"\n                        [class.incomplete-status]=\"\n                            componentData.payrollDeadLine?.period == 'Pending'\n                        \"\n                        [class]=\"{\n                            'text-color-blue-13':\n                                componentData.payrollDeadLine?.period ===\n                                'Pending',\n                            'text-color-white-2':\n                                componentData.payrollDeadLine?.period !==\n                                'Pending',\n                        }\"\n                    >\n                        {{\n                            componentData.payrollDeadLine?.period == 'Pending'\n                                ? 'Process Early'\n                                : 'Process'\n                        }}\n                    </button>\n                </div>\n            } @else {\n                @if (componentData.status?.id === 4) {\n                    <div\n                        [ngStyle]=\"{\n                            backgroundColor:\n                                componentData.status.id == 4\n                                    ? '#F7F7F7'\n                                    : '#FBE9E9',\n                            color:\n                                componentData.status.id == 4\n                                    ? '#259F94'\n                                    : '#DF3C3C',\n                        }\"\n                        class=\"earnings paid-in-full d-flex justify-content-between align-items-center\"\n                    >\n                        <span class=\"ca-font-extra-bold text-color-green-2 user-select-none\">\n                            PAID IN FULL\n                        </span>\n                        <span class=\"ca-font-bold money text-color-green-2\">\n                            {{ componentData!.earnings! | formatCurrency }}\n                        </span>\n                    </div>\n                }\n                @if (componentData.status?.id != 4) {\n                    <div\n                        class=\"button-cnt d-flex justify-content-between align-items-center\"\n                    >\n                        <button\n                            class=\"earnings process-button ca-font-bold user-select-none\"\n                            (click)=\"addPayment()\"\n                        >\n                            Add payment\n                        </button>\n                    </div>\n                }\n            }\n\n            <!-- PROCESS BUTTON END -->\n        </div>\n    </div>\n}\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\nexport const inputDropdownAnimation = (type: string) =>\n    trigger(type, [\n        state(\n            'true',\n            style({\n                height: '*',\n                overflow: 'hidden',\n                opacity: '1',\n            })\n        ),\n        state(\n            'false',\n            style({ height: '0px', overflow: 'hidden', opacity: '0' })\n        ),\n        transition('false <=> true', [animate('0.15s ease-in-out')]),\n    ]);\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'caDropdownCount',\n  standalone: true,\n})\nexport class DropdownCountPipe implements PipeTransform {\n  transform(options: any, template: string): any {\n    if (template === 'groups') {\n      let groups: number = 0;\n      options.forEach((item: any) => {\n        groups++;\n        if (item.groups) {\n          groups += item.groups.length;\n        }\n      });\n      return groups > 20;\n    } else {\n      return options.length > 7;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { OptionModel } from '../models';\nimport { ICaInput } from '../../ca-input/config';\n\n@Pipe({\n  name: 'inputDropdownSvgtextTemplateIcon',\n  standalone: true,\n})\nexport class InputDropdownSvgtextTemplateIconPipe implements PipeTransform {\n  transform(\n    option: OptionModel,\n    activeItem: OptionModel | null,\n    inputConfig: ICaInput\n  ): { [key: string]: boolean | undefined } {\n    return {\n      active: option.id === activeItem?.id,\n      'no-svg': !option?.logoName,\n      'hazardous-svg': option?.logoName?.includes('hazardous'),\n      'truck-trailer-logo':\n        inputConfig.customClass === 'truck-trailer-dropdown',\n      'state-logo': inputConfig.customClass === 'state-dropdown',\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { OptionModel } from '../models';\n\n@Pipe({\n    name: 'inputDropdownSvgtextTemplateContainer',\n    standalone: true,\n})\nexport class InputDropdownSvgtextTemplateContainerPipe\n    implements PipeTransform\n{\n    transform(\n        option: OptionModel,\n        options: OptionModel[],\n        activeItem: OptionModel | null\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n            'all-assigned': option?.name?.toLowerCase() === 'all assigned',\n            trailerContainer: option?.name === 'Container',\n            lowboyrgn: option?.name === 'Low Boy / RGN',\n        };\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { OptionModel } from '../models';\n\n@Pipe({\n  name: 'inputDropdownLoadBrokerContainer',\n  standalone: true,\n})\nexport class InputDropdownLoadBrokerContainerPipe\n  implements PipeTransform\n{\n  transform(\n    option: OptionModel,\n    options: OptionModel[],\n    activeItem: OptionModel | null\n  ): { [key: string]: boolean | undefined } {\n    return {\n      disabled:\n        option?.disabled ||\n        option?.dnu ||\n        option?.ban ||\n        option?.availableCreditType?.name === 'Empty',\n      'no-result': options.length === 1 && options[0].type === 'no-resutls',\n      'add-new': option.type === 'add-new',\n      active: option.id === activeItem?.id,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../../ca-input/config';\nimport { OptionModel } from '../models';\n\n@Pipe({\n  name: 'inputDropdownMultiselectClass',\n  standalone: true,\n})\nexport class InputDropdownMultiselectClassPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    multiselectItems: OptionModel[],\n    isMultiSelectInputFocus: boolean\n  ): { [key: string]: boolean | undefined } {\n    return {\n      'multiselect-dropdown':\n        inputConfig.multiselectDropdown && multiselectItems.length > 0,\n      'multiselect-focus-out':\n        !isMultiSelectInputFocus && !inputConfig.isDisabled,\n      'multiselect-focus-in':\n        isMultiSelectInputFocus && !inputConfig.isDisabled,\n      'multiselect-disabled': inputConfig.isDisabled,\n      'merge-dropdown-body-with-input': inputConfig.mergeDropdownBodyWithInput,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../../ca-input/config';\nimport { OptionModel } from '../models';\n\n@Pipe({\n    name: 'inputDropdownDefaultTemplateClass',\n    standalone: true,\n})\nexport class InputDropdownDefaultTemplateClassPipe implements PipeTransform {\n    transform(\n        option: OptionModel,\n        options: OptionModel[],\n        activeItem: OptionModel | null,\n        inputConfig: ICaInput\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active:\n                option.id ===\n                (activeItem?.duplicateId\n                    ? activeItem?.duplicateId\n                    : activeItem?.id),\n            'active-repair-truck-trailer': option?.status === 1,\n            routing_dropdown: inputConfig?.name === 'RoutingAddress',\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../../ca-input/config';\nimport { OptionModel } from '../models';\n\n@Pipe({\n    name: 'inputDropdownLabelClass',\n    standalone: true,\n})\nexport class InputDropdownLabelClassPipe implements PipeTransform {\n    transform(\n        option: OptionModel,\n        options: OptionModel[],\n        activeItem: OptionModel | null,\n        labelMode: string,\n        inputConfig: ICaInput\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled: option?.disabled,\n            'add-new': option?.type === 'add-new',\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'active-label':\n                option.id === activeItem?.id &&\n                labelMode === 'Label' &&\n                inputConfig.customClass !== 'input-dropdown-table',\n            'active-dark':\n                option.id === activeItem?.id &&\n                labelMode === 'Label' &&\n                inputConfig.customClass === 'input-dropdown-table',\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { OptionModel } from '../models';\n\n@Pipe({\n  name: 'inputDropdownFuelFranchiseClass',\n  standalone: true,\n})\nexport class InputDropdownFuelFranchiseClassPipe implements PipeTransform {\n  transform(\n    option: OptionModel,\n    options: OptionModel[]\n  ): { [key: string]: boolean | undefined } {\n    return {\n      disabled: option?.disabled,\n      'no-result': options.length === 1 && options[0]?.name === 'No Results',\n      'active-stores': option?.open,\n      'active-stores-header-hover': option?.hover && option?.open,\n    };\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownLoadBrokerContainerPipe } from '../../pipes';\n\n// component\nimport { CaLoadModalProgressBarComponent } from '../../../ca-load-modal-progress-bar/ca-load-modal-progress-bar.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-broker',\n    templateUrl: './ca-input-dropdown-load-broker.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaLoadModalProgressBarComponent,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownLoadBrokerContainerPipe\n    ]\n})\nexport class CaInputDropdownLoadBrokerComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option | inputDropdownLoadBrokerContainer: options : activeItem\n        \"\n        class=\"dropdown-option load-broker-template\"\n    >\n        <div class=\"load-broker-status-text\">\n            @if (option.name !== 'ADD NEW' && option.logoName) {\n                <svg-icon\n                    [ngClass]=\"{\n                        'dnu-status': option.dnu,\n                    }\"\n                    [src]=\"option.logoName\"\n                    class=\"load-broker-status\"\n                ></svg-icon>\n            }\n\n            <div\n                [innerHtml]=\"\n                    option.name\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n                [ngStyle]=\"{\n                    overflow: 'hidden',\n                    'text-overflow': 'ellipsis',\n                    'white-space': 'nowrap',\n                }\"\n                class=\"load-broker-text\"\n            ></div>\n        </div>\n        <div\n            class=\"load-broker-progress-status\"\n            [ngStyle]=\"{\n                visibility:\n                    (!['ADD NEW', 'No Results'].includes(option.name!) &&\n                        option.availableCreditType?.name !== 'Unlimited') ||\n                    option.dnu ||\n                    option.ban\n                        ? 'visible'\n                        : 'hidden',\n            }\"\n        >\n            <ca-load-modal-progress-bar\n                [availableCredit]=\"option.availableCredit ?? 0\"\n                [disable]=\"option.dnu || option.ban || option.status === 0\"\n                [totalAmount]=\"option.creditLimit!\"\n            ></ca-load-modal-progress-bar>\n        </div>\n    </div>\n}\n","export class InputDropdownSvgRoutes {\n  static trailersSvgRoute: string = 'assets/ca-components/svg/common/trailers/';\n  static trucksSvgRoute: string = 'assets/ca-components/svg/common/trucks/';\n  static repairPmSvgRoute: string = 'assets/ca-components/svg/common/repair-pm/';\n  static inputDropdownArrowSvg: string =\n    'assets/ca-components/svg/input/ic_arrow_input.svg';\n  static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n  static plusSvg: string = 'assets/ca-components/svg/common/ic_plus.svg';\n  static dynamicLabelSvg: string = 'assets/ca-components/svg/input/ic_dynamic_label.svg';\n  static ownerBadgeBlackSvg: string = 'assets/ca-components/svg/input/owner-badge-black.svg';\n  static arrowDownUpdatedSvg: string = 'assets/ca-components/svg/common/ic_arrow_down_updated.svg';\n  static specConfirmSvg: string = 'assets/ca-components/svg/common/ic_spec-confirm.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatches-ttd',\n    templateUrl: './ca-input-dropdown-load-dispatches-ttd.component.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatches-ttd.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadDispatchesTtdComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.name === 'No Results',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option dropdown-double-column load-dispatches-ttd-template\"\n    >\n        <!-- No Results -->\n        @if (options.length === 1 && options[0]?.name === 'No Results') {\n            <div\n                [innerHtml]=\"\n                    option?.name\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n            ></div>\n        }\n\n        <!-- Truck -->\n        @if (options[0]?.name !== 'No Results') {\n            <div\n                class=\"load-dispatches-container  {{\n                    option?.truck?.subFolder\n                }} {{\n                    option?.truck?.truckType?.name\n                        ?.trim()\n                        ?.replace(' ', '')\n                        ?.toLowerCase()\n                }}\"\n            >\n                <svg-icon\n                    class=\"load-dispatches-svg\"\n                    [src]=\"\n                        option.truck?.logoName\n                            ? inputDropdownSvgRoutes.trucksSvgRoute +\n                              option.truck?.logoName\n                            : ''\n                    \"\n                ></svg-icon>\n                <div\n                    [innerHtml]=\"\n                        option?.truck?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    class=\"load-dispatch-truck\"\n                ></div>\n                <!-- Percentage is driver owner -->\n                @if (option.driver?.owner && option?.payType) {\n                    <span\n                        [ngClass]=\"{\n                            'driver-owner': option.driver?.owner,\n                            active: indx === activeItem?.itemIndex,\n                        }\"\n                        class=\"load-dispatch-driver-rate\"\n                    >\n                        {{ option?.payType }}\n                    </span>\n                }\n            </div>\n        }\n\n        <!-- Trailer -->\n        @if (options[0]?.name !== 'No Results') {\n            <div\n                class=\"load-dispatches-container  {{\n                    option?.trailer?.subFolder\n                }} {{\n                    option?.trailer?.trailerType?.name\n                        ?.trim()\n                        ?.replace(' ', '')\n                        ?.toLowerCase()\n                }}\"\n                [ngClass]=\"{\n                    trailerContainer: option?.trailer?.logoType\n                        ? option?.trailer?.logoType\n                              ?.trim()\n                              ?.replace(' ', '') === 'Container'\n                        : false,\n                    lowboyrgn: option?.trailer?.logoType\n                        ? option?.trailer?.logoType\n                              ?.trim()\n                              ?.replace(' ', '') === 'Low Boy / RGN'\n                        : false,\n                }\"\n            >\n                <svg-icon\n                    class=\"load-dispatches-svg\"\n                    [src]=\"\n                        option?.trailer?.logoName\n                            ? inputDropdownSvgRoutes.trailersSvgRoute +\n                              option?.trailer?.logoName\n                            : ''\n                    \"\n                ></svg-icon>\n                <div\n                    [innerHtml]=\"\n                        option?.trailer?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    class=\"load-dispatch-trailer\"\n                ></div>\n            </div>\n        }\n\n        <!-- Driver -->\n        @if (options[0]?.name !== 'No Results') {\n            <div class=\"load-dispatches-container\">\n                @if (option?.driver?.logoName) {\n                    <img\n                        [alt]=\"option?.driver?.name\"\n                        [ngClass]=\"{\n                            active:\n                                option.driver?.id === activeItem?.driver?.id,\n                        }\"\n                        [src]=\"option?.driver?.logoName\"\n                        class=\"svg-template-logo\"\n                    />\n                } @else {\n                    <div class=\"no-profile-image\">\n                        <app-ca-profile-image\n                            [indx]=\"0\"\n                            [name]=\"option.driver?.name!\"\n                            [size]=\"'small'\"\n                        ></app-ca-profile-image>\n                    </div>\n                }\n                @if (\n                    options[0]?.name !== 'No Results' && option.driver?.owner\n                ) {\n                    <img\n                        alt=\"avatar\"\n                        [src]=\"inputDropdownSvgRoutes.ownerBadgeBlackSvg\"\n                        class=\"owner-avatar\"\n                    />\n                }\n                <div\n                    [innerHtml]=\"\n                        option.driver?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    class=\"load-dispatch-driver\"\n                ></div>\n            </div>\n        }\n\n        <!-- Percentage is not driver owner -->\n        @if (options[0]?.name !== 'No Results' && option?.payType) {\n            <span\n                [ngClass]=\"{ active: indx === activeItem?.itemIndex }\"\n                class=\"load-dispatch-driver-rate\"\n            >\n                {{ option?.payType }}\n            </span>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatcher',\n    templateUrl: './ca-input-dropdown-load-dispatcher.component.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatcher.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadDispatcherComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","<div class=\"scrollable-element pb-0\">\n    @for (option of options; let indx = $index; track indx) {\n        <div\n            (click)=\"onActiveItemEmit(option)\"\n            [ngClass]=\"{\n                disabled: option?.disabled,\n                'no-result':\n                    options.length === 1 && options[0]?.name === 'No Results',\n                active: option.id === activeItem?.id,\n            }\"\n            class=\"dropdown-option load-dispatcher-template\"\n        >\n            @if (\n                option.logoName &&\n                !(options.length === 1 && options[0]?.name === 'No Results')\n            ) {\n                <img\n                    [alt]=\"option?.name\"\n                    [ngClass]=\"{\n                        active: option.id === activeItem?.id,\n                    }\"\n                    [src]=\"option.logoName\"\n                    class=\"svg-template-logo\"\n                />\n            }\n            @if (\n                !option.logoName &&\n                !(options.length === 1 && options[0]?.name === 'No Results')\n            ) {\n                <div class=\"no-profile-image\">\n                    <app-ca-profile-image\n                        [indx]=\"0\"\n                        [name]=\"option?.name!\"\n                        [size]=\"'small'\"\n                    >\n                    </app-ca-profile-image>\n                </div>\n            }\n\n            <div\n                [innerHtml]=\"\n                    option?.name\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n            ></div>\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svg-template',\n    templateUrl: './ca-input-dropdown-svg-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svg-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownSvgTemplateComponent{\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option\"\n    >\n        @if (option.logoName) {\n            <svg-icon\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n                [src]=\"option.logoName\"\n                class=\"svg-template-logo\"\n            ></svg-icon>\n        }\n\n        <div\n            [innerHtml]=\"\n                option?.name\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n        ></div>\n    </div>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'loadStatusStringClass',\n  standalone: true,\n})\nexport class LoadStatusStringClassPipe implements PipeTransform {\n  transform(\n    value: string,\n    index: number,\n    displayString: string[],\n    isDetailsLayout?: boolean,\n    isDispatchHistoryModalLayout?: boolean,\n    isDarkColor?: boolean | undefined\n  ): any {\n    return {\n      'd-flex justify-content-center align-items-center load-status-badge':\n        value.length === 1,\n      'm-r-4': value.length === 1 && index === 0,\n      'm-l-4': value.length === 1 && index === displayString.length - 1,\n      'details-layout': isDetailsLayout,\n      'dispatch-history-modal-layout': isDispatchHistoryModalLayout,\n      'd-repair':\n        displayString.length > 1 && displayString[0] === 'D' && !isDarkColor,\n      'd-repair-dark':\n        displayString.length > 1 && displayString[0] === 'D' && isDarkColor,\n      'l-dark':\n        displayString.length > 1 && displayString[0] === 'L' && isDarkColor,\n    };\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnInit } from '@angular/core';\n\n// Models\nimport { SelectedStatus, StatusOrder } from '../ca-input-dropdown/models';\n\n// Pipes\nimport { LoadStatusStringClassPipe } from './pipes/load-status-string-class.pipe';\nimport { LoadStatusColorPipe } from '../../pipes/load-status-color.pipe';\nimport { DropdownLoadStatusColorPipe } from '../../pipes/dropdown-load-status-color.pipe';\nimport { DispatchStatusColorPipe } from '../../pipes/dispatch-status-color.pipe';\n\n@Component({\n    selector: 'ca-load-status-string',\n    templateUrl: './ca-load-status-string.component.html',\n    styleUrls: ['./ca-load-status-string.component.scss'],\n    imports: [\n        CommonModule,\n        // Pipes\n        LoadStatusColorPipe,\n        DropdownLoadStatusColorPipe,\n        DispatchStatusColorPipe,\n        LoadStatusStringClassPipe,\n    ]\n})\nexport class CaLoadStatusStringComponent implements OnInit, OnChanges {\n    @Input() status!: SelectedStatus;\n    @Input() justifyStart?: boolean;\n    @Input() isDetailsLayout?: boolean;\n    @Input() isDispatchHistoryModalLayout?: boolean;\n    @Input() isDropdownColor?: boolean;\n    @Input() statusOrder?: StatusOrder;\n    @Input() isDispatch?: boolean = false;\n    @Input() isDarkColor?: boolean = false;\n\n    public displayString: string[] = [];\n    public className!: string;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.generateDisplayString();\n    }\n\n    ngOnChanges() {\n        this.generateDisplayString();\n    }\n\n    private generateDisplayString(): void {\n        this.displayString = this.status?.name?.split(' ') as string[];\n        this.className = this.status.valueForRequest?.toLowerCase() as string;\n    }\n}\n","<div\n    [className]=\"\n        (justifyStart ? 'justify-content-start' : 'justify-content-center') +\n        ' ' +\n        className +\n        ' d-flex align-items-center'\n    \"\n>\n    @for (value of displayString; let index = $index; track index) {\n        <span\n            [ngStyle]=\"\n                value.length > 1\n                    ? isDropdownColor\n                        ? (status.valueForRequest! | dropdownLoadStatusColor)\n                        : isDispatch\n                          ? (status.valueForRequest!\n                            | dispatchStatusColor: isDarkColor!)\n                          : (status.valueForRequest! | loadStatusColor)\n                    : value.length === 1 && index === displayString.length - 1\n                      ? isDropdownColor\n                          ? (status.valueForRequest!\n                            | dropdownLoadStatusColor: true)\n                          : isDispatch\n                            ? (status.valueForRequest!\n                              | dispatchStatusColor: isDarkColor!)\n                            : (status.valueForRequest! | loadStatusColor: true)\n                      : {}\n            \"\n            [class]=\"\n                'text-uppercase ca-font-bold load-status load-status-' +\n                className +\n                '-' +\n                value.toLowerCase() +\n                ' load-status-' +\n                value.toLowerCase()\n            \"\n            [ngClass]=\"\n                value\n                    | loadStatusStringClass\n                        : index\n                        : displayString\n                        : isDetailsLayout\n                        : isDispatchHistoryModalLayout\n                        : isDarkColor\n            \"\n        >\n            {{ value }}\n        </span>\n    }\n\n    @if (statusOrder?.stopOrder) {\n        <div\n            class=\"d-flex justify-content-center align-items-center load-status-badge\"\n            [ngClass]=\"{\n                pickup: statusOrder?.type === 'Pickup',\n                delivery: statusOrder?.type === 'Delivery',\n            }\"\n        >\n            {{ statusOrder?.stopOrder }}\n        </div>\n    }\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ImageBase64Service {\n  constructor(private domSanitizer: DomSanitizer) {}\n\n  public sanitizer(url: string): SafeResourceUrl {\n    return this.domSanitizer.bypassSecurityTrustResourceUrl(\n      `data:image/*;base64,${url}`\n    );\n  }\n\n  public getStringFromBase64(url: string): string {\n    return url.split(',')[1];\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { LoadStatusColorPipe } from '../../../../pipes/load-status-color.pipe';\nimport {\n  InputDropdownSvgtextTemplateContainerPipe,\n  InputDropdownSvgtextTemplateIconPipe,\n} from '../../pipes';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\nimport { CaLoadStatusStringComponent } from '../../../ca-load-status-string/ca-load-status-string.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\nimport { ICaInput } from '../../../ca-input/config';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n// services\nimport { ImageBase64Service } from '../../../../services/image-base64.service';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svgtext-template',\n    templateUrl: './ca-input-dropdown-svgtext-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svgtext-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        CaLoadStatusStringComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n        LoadStatusColorPipe,\n        InputDropdownSvgtextTemplateIconPipe,\n        InputDropdownSvgtextTemplateContainerPipe,\n    ]\n})\nexport class CaInputDropdownSvgtextTemplateComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() inputConfig!: ICaInput;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor(public imageBase64Service: ImageBase64Service) {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option | inputDropdownSvgtextTemplateContainer: options : activeItem\n        \"\n        class=\"dropdown-option svg-text-template {{ option?.subFolder }} {{\n            option?.name?.trim()?.replace(' ', '')?.toLowerCase()\n        }} {{ inputConfig.customClass }}\"\n    >\n        @if (!option?.isDriver) {\n            <svg-icon\n                [ngClass]=\"\n                    option\n                        | inputDropdownSvgtextTemplateIcon\n                            : activeItem\n                            : inputConfig\n                \"\n                [src]=\"\n                    option?.logoName | caSvg: option?.folder : option?.subFolder : option\n                \"\n                class=\"svgtext-template-logo {{\n                    option?.name?.trim()?.replace(' ', '')?.toLowerCase()\n                }}\"\n            ></svg-icon>\n        }\n\n        @if (option.logoName && option?.isDriver) {\n            <img\n                [alt]=\"option?.name\"\n                [ngClass]=\"{ active: option.id === activeItem?.id }\"\n                [src]=\"this.imageBase64Service.sanitizer(option.logoName)\"\n                [ngStyle]=\"{ 'margin-right': '6px' }\"\n                class=\"svg-template-logo\"\n            />\n        }\n\n        @if (!option.logoName && option?.isDriver) {\n            <div class=\"no-profile-image\" [ngStyle]=\"{ 'margin-right': '6px' }\">\n                <app-ca-profile-image\n                    [indx]=\"0\"\n                    [name]=\"option?.name!\"\n                    [size]=\"'small'\"\n                ></app-ca-profile-image>\n            </div>\n        }\n\n        <!-- Text -->\n        @if (inputConfig.statusStyle) {\n            <ca-load-status-string [status]=\"option\"></ca-load-status-string>\n        }\n\n        @if (!inputConfig.statusStyle) {\n            <div\n                [innerHtml]=\"\n                    option?.number\n                        ? (option.number\n                          | caHighlight\n                              : [\n                                    {\n                                        index: 45632,\n                                        text: getSuperControl?.value,\n                                    },\n                                ])\n                        : (option?.name\n                          | caHighlight\n                              : [\n                                    {\n                                        index: 45632,\n                                        text: getSuperControl?.value,\n                                    },\n                                ])\n                \"\n                [ngClass]=\"{\n                    'truck-text': option?.subFolder === 'trucks',\n                    'flex-1': option?.additionalText,\n                }\"\n                [ngStyle]=\"true ? (option?.name! | loadStatusColor) : {}\"\n                class=\"svgtext-template-text\"\n            ></div>\n        }\n\n        <!-- Additional Text -->\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n                class=\"svgtext-template-text additional-text\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n        @if (option?.type === 'add-new') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\nimport { ICaInput } from '../../../ca-input/config';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n// services\nimport { ImageBase64Service } from '../../../../services/image-base64.service';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svgtext-dispatch-template',\n    templateUrl: './ca-input-dropdown-svgtext-dispatch-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svgtext-dispatch-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n    ]\n})\nexport class CaInputDropdownSvgtextDispatchTemplateComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() inputConfig!: ICaInput;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor(public imageBase64Service: ImageBase64Service) {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        class=\"dropdown-option svg-text-template {{ option?.subFolder }} {{\n            option?.name?.trim()?.replace(' ', '')?.toLowerCase()\n        }} {{ inputConfig.customClass }}\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result': option?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n            'all-assigned': option?.name?.toLowerCase() === 'all assigned',\n            trailerContainer: option?.name === 'Container',\n            lowboyrgn: option?.name === 'Low Boy / RGN',\n        }\"\n        (click)=\"onActiveItemEmit(option)\"\n    >\n        @if (!option?.isDriver) {\n            <svg-icon\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                    'no-svg': !option?.logoName,\n                    'hazardous-svg': option?.logoName?.includes('hazardous'),\n                    'truck-trailer-logo':\n                        inputConfig.customClass === 'truck-trailer-dropdown',\n                    blue: option.class === 'blue',\n                    yellow: option.class === 'yellow',\n                    green: option.class === 'green',\n                    red: option.class === 'red',\n                }\"\n                [src]=\"\n                    option?.logoName | caSvg: option?.folder : option?.subFolder\n                \"\n                class=\"icon svgtext-template-logo {{\n                    option?.name?.trim()?.replace(' ', '')?.toLowerCase()\n                }}\"\n            ></svg-icon>\n        }\n        @if (option.logoName && option?.isDriver) {\n            <img\n                [alt]=\"option?.name\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n                [src]=\"imageBase64Service.sanitizer(option.logoName)\"\n                [ngStyle]=\"{ 'margin-right': '6px' }\"\n                class=\"svg-template-logo\"\n            />\n        }\n        @if (!option.logoName && option?.isDriver) {\n            <div class=\"no-profile-image\" [ngStyle]=\"{ 'margin-right': '6px' }\">\n                <app-ca-profile-image\n                    [indx]=\"0\"\n                    [name]=\"option?.name!\"\n                    [size]=\"'small'\"\n                >\n                </app-ca-profile-image>\n            </div>\n        }\n\n        <!-- Text -->\n        @let additionalText = option?.additionalText;\n        <div\n            [innerHtml]=\"\n                option?.number\n                    ? (option.number\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: getSuperControl?.value,\n                                },\n                            ])\n                    : (option?.name\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: getSuperControl?.value,\n                                },\n                            ])\n            \"\n            [ngClass]=\"{\n                'truck-text': option?.subFolder === 'trucks',\n                'flex-1': additionalText,\n            }\"\n            class=\"svgtext-template-text\"\n        ></div>\n\n        <!-- Additional Text -->\n        @if (additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n            ></div>\n        }\n        <!-- Plus Icon -->\n        @if (option?.type === 'add-new') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-groups',\n    templateUrl: './ca-input-dropdown-groups.component.html',\n    styleUrls: ['./ca-input-dropdown-groups.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownGroupsComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let i = $index; track i) {\n    <div\n        [ngClass]=\"{ 'last-group': i === options.length - 1 }\"\n        class=\"dropdown-groups\"\n    >\n        @if (options.length !== 1 && options[0]?.name !== 'No Results') {\n            <p class=\"dropdown-group-header\">\n                {{ option.groupName }}\n            </p>\n        }\n        @for (item of option.items; let indx = $index; track indx) {\n            <div\n                class=\"dropdown-subgroup-options\"\n                (click)=\"onActiveItemEmit(item)\"\n                [ngClass]=\"{\n                    'no-result':\n                        options.length === 1 && item?.name === 'No Results',\n                }\"\n            >\n                <div\n                    [innerHtml]=\"\n                        item?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    [ngClass]=\"{\n                        active: item.id === activeItem?.id,\n                        'no-result':\n                            options.length === 1 && item?.name === 'No Results',\n                    }\"\n                    class=\"dropdown-subgroup-text\"\n                ></div>\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-multiselect',\n    templateUrl: './ca-input-dropdown-multiselect.component.html',\n    styleUrls: ['./ca-input-dropdown-multiselect.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownMultiselectComponent {\n  @Input() options!: OptionModel[];\n  @Input() lastActiveMultiselectItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onMultiselectSelect = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onMultiselectSelectEmit(option: OptionModel) {\n    this.onMultiselectSelect.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onMultiselectSelectEmit(option)\"\n        [innerHtml]=\"\n            option?.name\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: getSuperControl?.value,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.name === 'No Results',\n            active: option?.active,\n            'last-active': lastActiveMultiselectItem?.id === option.id,\n        }\"\n        class=\"dropdown-option\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownLabelClassPipe } from '../../pipes';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\nimport { ICaInput } from '../../../ca-input/config';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n// directives\nimport { HoverSvgDirective } from '../../../../directives/hover-svg-directives';\n\n@Component({\n    selector: 'app-ca-input-dropdown-labels',\n    templateUrl: './ca-input-dropdown-labels.component.html',\n    styleUrls: ['./ca-input-dropdown-labels.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownLabelClassPipe,\n        // Directive\n        HoverSvgDirective\n    ]\n})\nexport class CaInputDropdownLabelsComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() inputConfig!: ICaInput;\n  @Input() labelMode!: 'Label' | 'Color';\n  @Input() canAddNew!: boolean;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option\n                | inputDropdownLabelClass\n                    : options\n                    : activeItem\n                    : labelMode\n                    : inputConfig\n        \"\n        class=\"dropdown-option labels-template\"\n    >\n        @let isOptionNameIncluded =\n            ['No Results', 'ADD NEW'].includes(option?.name!);\n        @if (!isOptionNameIncluded) {\n            <div class=\"labels-template-left-side\">\n                <svg-icon\n                    [fillHover]=\"option?.hoverCode ?? null\"\n                    [fill]=\"option?.code ? option?.code?.toString() : '#b7b7b7'\"\n                    appHoverSvg\n                    class=\"labels-template-logo\"\n                    [src]=\"inputDropdownSvgRoutes.dynamicLabelSvg\"\n                ></svg-icon>\n                <div class=\"labels-template-vertical-divider\"></div>\n            </div>\n        }\n\n        <div class=\"labels-template-right-side\">\n            <div\n                [innerHtml]=\"\n                    option?.name\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n                [ngClass]=\"{\n                    'add-new': option?.type === 'add-new',\n                    'no-result':\n                        options.length === 1 &&\n                        options[0]?.type === 'no-results',\n                    'lable-text-wrap':\n                        inputConfig.customClass === 'input-dropdown-table',\n                }\"\n                class=\"labels-template-text\"\n            ></div>\n            @if (!isOptionNameIncluded) {\n                <div\n                    [ngClass]=\"{\n                        'dont-show-counter':\n                            !canAddNew &&\n                            inputConfig.customClass === 'input-dropdown-table',\n                    }\"\n                    class=\"labels-template-counter\"\n                >\n                    {{ option.count }}\n                </div>\n            }\n        </div>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-broker-contact',\n    templateUrl: './ca-input-dropdown-load-broker-contact.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-contact.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerContactComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let i = $index; track i) {\n    <div\n        [ngClass]=\"{ 'last-group': i === options.length - 1 }\"\n        class=\"load-broker-contact-groups\"\n    >\n        @if (options[0]?.name !== 'No Results') {\n            <p\n                (click)=\"onActiveItemEmit(option)\"\n                [ngClass]=\"{\n                    'add-new': option?.type === 'add-new',\n                }\"\n                class=\"dropdown-group-header\"\n            >\n                {{\n                    option?.type === 'add-new'\n                        ? option?.name\n                        : option?.department?.name\n                }}\n            </p>\n        }\n        @for (item of option?.contacts; let indx = $index; track indx) {\n            <div\n                (click)=\"onActiveItemEmit(item)\"\n                [ngClass]=\"{\n                    'no-result':\n                        options.length === 1 && item?.name === 'No Results',\n                }\"\n                class=\"dropdown-subgroup-options\"\n            >\n                <!-- Left Side -->\n                <div\n                    [innerHtml]=\"\n                        item?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    [ngClass]=\"{\n                        'no-result':\n                            options.length === 1 && item?.name === 'No Results',\n                        active: item.id === activeItem?.id,\n                    }\"\n                    class=\"dropdown-subgroup-text\"\n                ></div>\n                <!-- Right Side -->\n                <div\n                    [innerHtml]=\"\n                        item.phone\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    [ngClass]=\"{\n                        active: item.id === activeItem?.id,\n                    }\"\n                    class=\"dropdown-subgroup-text dropdown-subgroup-additional-text\"\n                ></div>\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-shipper',\n    templateUrl: './ca-input-dropdown-load-broker-shipper.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-shipper.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerShipperComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled || option.status === 0,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option load-shipper-template\"\n    >\n        <div class=\"load-shipper-status-text\">\n            @if (option?.type !== 'add-new' && option.logoName) {\n                <svg-icon\n                    [src]=\"option.logoName\"\n                    class=\"load-shipper-status\"\n                ></svg-icon>\n            }\n            <div\n                [innerHtml]=\"\n                    option?.name\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n                [ngStyle]=\"{\n                    overflow: 'hidden',\n                    'text-overflow': 'ellipsis',\n                    'white-space': 'nowrap',\n                }\"\n                class=\"load-shipper-text\"\n            ></div>\n        </div>\n        @if (!['add-new', 'no-resutls'].includes(option?.type!)) {\n            <div\n                [innerHtml]=\"\n                    option.address\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n                [ngClass]=\"{ active: option.id === activeItem?.id }\"\n            ></div>\n        }\n        @if (!['add-new', 'no-results'].includes(option?.type!)) {\n            <div\n                [ngClass]=\"{ active: option.id === activeItem?.id }\"\n                class=\"load-shipper-load-counter\"\n            >\n                {{ option.loadsCount }}\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-text-counter',\n    templateUrl: './ca-input-dropdown-text-counter.component.html',\n    styleUrls: ['./ca-input-dropdown-text-counter.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe\n    ]\n})\nexport class CaInputDropdownTextCounterComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active:\n                option.id ===\n                (activeItem?.duplicateId\n                    ? activeItem?.duplicateId\n                    : activeItem?.id),\n        }\"\n        class=\"dropdown-option dropdown-option-text-counter\"\n    >\n        <span\n            [innerHtml]=\"\n                option?.name\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n        >\n        </span>\n        @if (option?.name !== 'ADD NEW' && option?.name !== 'No Results') {\n            <span [innerHtml]=\"option.count\" class=\"option-counter\"> </span>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-double-text-template',\n    templateUrl: './ca-input-dropdown-double-text-template.component.html',\n    styleUrls: ['./ca-input-dropdown-double-text-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownDoubleTextTemplateComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            'all-assigned': option?.name?.toLowerCase() === 'all assigned',\n        }\"\n        class=\"dropdown-option dropdown-double-text-option\"\n    >\n        <!-- First Text -->\n        <div\n            [innerHtml]=\"\n                option?.name\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n            class=\"svgtext-template-text\"\n        ></div>\n\n        <!-- Additional Text -->\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n        @if (option?.type === 'add-new') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-triple-text-template',\n    templateUrl: './ca-input-dropdown-triple-text-template.component.html',\n    styleUrls: ['./ca-input-dropdown-triple-text-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownTripleTextTemplateComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            'dropdown-triple-column-option-add-new': option?.type === 'add-new',\n        }\"\n        class=\"dropdown-option dropdown-triple-column-option\"\n    >\n        <div\n            [innerHtml]=\"\n                option.number\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-option-text\"\n        ></div>\n\n        <div\n            [innerHtml]=\"\n                option.brand\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-text\"\n        ></div>\n\n        <div\n            [innerHtml]=\"\n                option.account\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-text\"\n        ></div>\n\n        <!-- Plus Icon -->\n        <svg-icon\n            class=\"plus-icon svg-size-14\"\n            [src]=\"inputDropdownSvgRoutes.plusSvg\"\n        ></svg-icon>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { ICaInput } from '../../../ca-input/config';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { InputDropdownDefaultTemplateClassPipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-default-template',\n    templateUrl: './ca-input-dropdown-default-template.component.html',\n    styleUrls: ['./ca-input-dropdown-default-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownDefaultTemplateClassPipe,\n    ]\n})\nexport class CaInputDropdownDefaultTemplateComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() inputConfig!: ICaInput;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [innerHtml]=\"\n            option?.name\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: getSuperControl?.value,\n                          },\n                      ]\n        \"\n        [ngClass]=\"\n            option\n                | inputDropdownDefaultTemplateClass\n                    : options\n                    : activeItem\n                    : inputConfig\n        \"\n        class=\"dropdown-option\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownFuelFranchiseClassPipe } from '../../pipes';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-fuel-franchise',\n    templateUrl: './ca-input-dropdown-fuel-franchise.component.html',\n    styleUrls: ['./ca-input-dropdown-fuel-franchise.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownFuelFranchiseClassPipe,\n    ]\n})\nexport class CaInputDropdownFuelFranchiseComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() toggleNestedList = new EventEmitter<OptionModel>();\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n  @Output() onActiveItemGroup = new EventEmitter<{\n    option: OptionModel;\n    group: any;\n  }>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemGroupEmit(option: OptionModel, store: any): void {\n    this.onActiveItemGroup.emit({ option, group: store });\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n\n  public toggleNestedListEmit(option: OptionModel): void {\n    this.toggleNestedList.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        [ngClass]=\"option | inputDropdownFuelFranchiseClass: options\"\n        class=\"dropdown-option dropdown-option-fuel-franchise\"\n    >\n        <!-- Hover Container -->\n        <div class=\"helper-hover-container\"></div>\n\n        <!-- Franchise Header -->\n        <div\n            (click)=\"onActiveItemEmit(option); toggleNestedListEmit(option)\"\n            (mouseenter)=\"option.hover = true\"\n            (mouseleave)=\"option.hover = false\"\n            class=\"fuel-franchise-header\"\n        >\n            <span\n                [innerHtml]=\"\n                    option.businessName\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n                class=\"fuel-franchise-main-header\"\n            ></span>\n            @if (option.isFranchise) {\n                <div class=\"fuel-franchise-header-right-side\">\n                    @if (\n                        option?.name !== 'ADD NEW' &&\n                        option?.name !== 'No Results'\n                    ) {\n                        <span class=\"option-counter\">\n                            {{ option.count }}\n                        </span>\n                    }\n                    <svg-icon\n                        [ngClass]=\"{ rotate: option.open }\"\n                        class=\"header-arrow\"\n                        [src]=\"inputDropdownSvgRoutes.arrowDownUpdatedSvg\"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n\n        <!-- Franchise Stores -->\n        @if (option.isFranchise && option.open) {\n            <div\n                [ngClass]=\"{ scroll: option!.stores!.length > 7 }\"\n                class=\"fuel-franchise-stores\"\n            >\n                @for (store of option.stores; let indx = $index; track indx) {\n                    <div\n                        (click)=\"onActiveItemGroupEmit(option, store)\"\n                        [ngClass]=\"{ active: activeItem?.id === store?.id }\"\n                        class=\"fuel-franchise-single-store\"\n                    >\n                        <span\n                            [innerHtml]=\"\n                                store?.name\n                                    | caHighlight\n                                        : [\n                                              {\n                                                  index: 45632,\n                                                  text: getSuperControl?.value,\n                                              },\n                                          ]\n                            \"\n                            class=\"fuel-franchise-store-name\"\n                        ></span>\n                        <span\n                            [innerHtml]=\"\n                                store?.address\n                                    | caHighlight\n                                        : [\n                                              {\n                                                  index: 45632,\n                                                  text: getSuperControl?.value,\n                                              },\n                                          ]\n                            \"\n                            class=\"fuel-franchise-store-address\"\n                        ></span>\n                    </div>\n                }\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-dispatch',\n    templateUrl: './ca-input-dropdown-dispatch.component.html',\n    styleUrls: ['./ca-input-dropdown-dispatch.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe\n    ]\n})\nexport class CaInputDropdownDispatchComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  // For Dispatchboard hover options\n  public hoveredOption: number = -1;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        (mouseleave)=\"hoveredOption = -1\"\n        (mouseover)=\"hoveredOption = indx\"\n        [innerHtml]=\"\n            option?.name\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: getSuperControl?.value,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n            'active-repair-truck-trailer': option?.status === 1,\n        }\"\n        [ngStyle]=\"{\n            'background-color':\n                hoveredOption == indx ? '#' + option.colorD : 'inherit',\n            color: hoveredOption != indx ? '#' + option.colorD : '#fff',\n        }\"\n        class=\"dropdown-option\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// component\nimport { CaLoadStatusStringComponent } from '../../../ca-load-status-string/ca-load-status-string.component';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-details-template',\n    templateUrl: './ca-input-dropdown-details-template.component.html',\n    styleUrls: ['./ca-input-dropdown-details-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaLoadStatusStringComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n    ]\n})\nexport class CaInputDropdownDetailsTemplateComponent{\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() sort!: string;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  // For Dispatchboard hover options\n  public hoveringIndex!: number;\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let i = $index; track i) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        (mouseenter)=\"hoveringIndex = i\"\n        (mouseleave)=\"hoveringIndex = -1\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            'all-assigned': option?.name?.toLowerCase() === 'all assigned',\n            'load-details-template': option?.status?.statusString,\n        }\"\n        class=\"dropdown-option details-template\"\n    >\n        <div\n            [innerHtml]=\"\n                option?.name\n                    | caHighlight\n                        : [{ index: 45632, text: getSuperControl?.value }]\n            \"\n            [ngClass]=\"{\n                active: sort === 'active-drivers' && option?.status === 1,\n            }\"\n            class=\"details-template-text\"\n        ></div>\n\n        <!-- Svg -->\n        @if (option?.svg) {\n            <svg-icon\n                [src]=\"option?.svg | caSvg: option?.folder\"\n                class=\"details-template-logo\"\n            ></svg-icon>\n        }\n\n        @if (option?.status?.statusString) {\n            <p class=\"m-0 additional-text\">\n                @if (i === hoveringIndex) {\n                    ${{ option?.totalBill }}K\n                } @else {\n                    {{ option?.referenceNumber }}\n                }\n            </p>\n        }\n\n        <!-- Driver & Load Details Template -->\n        @if (option?.address?.address || option?.status?.statusString) {\n            <div\n                class=\"d-flex align-items-center driver-details-template-container\"\n            >\n                <div class=\"d-flex align-items-center left-box\">\n                    <p class=\"m-0\">\n                        @if (i === hoveringIndex) {\n                            @if (option?.address?.address) {\n                                {{ option?.totalMiles }} mi\n                            }\n                        } @else {\n                            @if (option?.address?.address) {\n                                {{ option?.address?.city }},\n                                {{ option?.address?.stateShortName }}\n                            }\n                        }\n                    </p>\n                </div>\n\n                <div class=\"d-flex align-items-center right-box\">\n                    <p class=\"m-0\">\n                        @if (i === hoveringIndex) {\n                            ${{ option?.totalEarnings }}K\n                        } @else {\n                            <ng-container\n                                *ngTemplateOutlet=\"notHoveringRight\"\n                            ></ng-container>\n                        }\n                    </p>\n                </div>\n            </div>\n        }\n\n        <ng-template #notHoveringRight>\n            @if (option?.address?.address) {\n                {{ option?.hiredAt }}\n            } @else {\n                <ca-load-status-string\n                    [isDropdownColor]=\"true\"\n                    [status]=\"{\n                        name: option?.status?.statusString,\n                        valueForRequest: option?.status?.statusValue?.name,\n                    }\"\n                    [statusOrder]=\"{\n                        type: option.stopType!,\n                        stopOrder: option?.status?.statusCheckInNumber,\n                    }\"\n                ></ca-load-status-string>\n            }\n        </ng-template>\n\n        <!-- Additional Text -->\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [{ index: 45632, text: getSuperControl?.value }]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{ active: option.id === activeItem?.id }\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n        @if (option?.type === 'add-new') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n\n@Component({\n    selector: 'app-ca-input-dropdown-payroll-trucks',\n    templateUrl: './ca-input-dropdown-payroll-trucks.component.html',\n    styleUrls: ['./ca-input-dropdown-payroll-trucks.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownPayrollTrucksComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n\n}\n","@for (option of options; let indx = $index; track indx) {\n    @let noResult = options.length === 1 && options[0].name === 'No Results';\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result': noResult,\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option dropdown-double-text-option load-dispatches-ttd-template payroll-trucks\"\n    >\n        <!-- No Results -->\n        @if (noResult) {\n            <div\n                [innerHtml]=\"\n                    option?.name\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n            ></div>\n        }\n        @if (options[0].name !== 'No Results') {\n            <!-- Truck -->\n            <div\n                class=\"load-dispatches-container d-flex {{\n                    option?.subFolder\n                }} {{\n                    option?.truckType?.name\n                        ?.trim()\n                        ?.replace(' ', '')\n                        ?.toLowerCase()\n                }}\"\n            >\n                <svg-icon\n                    class=\"load-dispatches-svg\"\n                    [src]=\"\n                        option?.logoName\n                            ? inputDropdownSvgRoutes.trucksSvgRoute +\n                              option?.logoName\n                            : ''\n                    \"\n                ></svg-icon>\n                <div\n                    [innerHtml]=\"\n                        option?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: getSuperControl?.value,\n                                      },\n                                  ]\n                    \"\n                    class=\"load-dispatch-truck\"\n                ></div>\n            </div>\n        }\n\n        <!-- Additional Text -->\n        @if (option?.suffix) {\n            <div\n                [innerHtml]=\"\n                    option?.suffix\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: getSuperControl?.value,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n            ></div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { ICaInput } from '../../../ca-input/config';\n\n// models\nimport { OptionModel } from '../../models/input-dropdown-option.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { InputDropdownDefaultTemplateClassPipe } from '../../pipes';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// enums\nimport { eColor, ePosition } from '../../../../enums';\n\n@Component({\n    selector: 'app-ca-input-dropdown-parking',\n    templateUrl: './ca-input-dropdown-parking.component.html',\n    styleUrls: ['./ca-input-dropdown-parking.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownDefaultTemplateClassPipe,\n        NgbTooltip,\n        // Components\n        CaAppTooltipV2Component\n    ]\n})\nexport class CaInputDropdownParkingComponent {\n  @Input() options!: OptionModel[];\n  @Input() activeItem!: OptionModel | null;\n  @Input() getSuperControl!: AbstractControl<any, any> | null;\n  @Input() inputConfig!: ICaInput;\n\n  @Output() onActiveItem = new EventEmitter<OptionModel>();\n\n  public eColor = eColor;\n  public ePosition = ePosition;\n\n  constructor() {}\n\n  public identity(index: number, item: OptionModel): number | undefined {\n    return item.id;\n  }\n\n  public onActiveItemEmit(option: OptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; let indx = $index; track indx) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        class=\"dropdown-option d-flex align-items-center\"\n    >\n        <div\n            [innerHtml]=\"\n                option?.name\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: getSuperControl?.value,\n                              },\n                          ]\n            \"\n            [ngClass]=\"\n                option\n                    | inputDropdownDefaultTemplateClass\n                        : options\n                        : activeItem\n                        : inputConfig\n            \"\n            class=\"flex-1 text-truncate\"\n        ></div>\n\n        @if (option.parkingAddress?.length) {\n            <div\n                class=\"w-12 h-12 text-color-black background-light-grey-2 background-hover-bw-9 c-pointer text-size-11 d-flex align-items-center justify-content-center br-2 ca-font-extra-bold m-l-4\"\n                ngbTooltip\n                [tooltipBackground]=\"eColor.LIGHT_GREY\"\n                [tooltipColor]=\"eColor.DARK_GREY\"\n                [mainCaTooltip]=\"option.parkingAddress[0]?.name\"\n                [position]=\"ePosition.BOTTOM\"\n            >\n                P\n            </div>\n        }\n    </div>\n}\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Renderer2,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    AfterViewInit,\n    Component,\n    EventEmitter,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Output,\n    Self,\n    SimpleChanges,\n    ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { debounceTime, skip, Subject, takeUntil } from 'rxjs';\n\n// bootstrap\nimport {\n    NgbPopover,\n    NgbPopoverModule,\n    NgbModule,\n} from '@ng-bootstrap/ng-bootstrap';\n\n// animation\nimport { inputDropdownAnimation } from './animations';\n\n// config\nimport { ICaInput } from '../ca-input/config';\n\n// components\nimport { CaInputComponent } from '../ca-input/ca-input.component';\nimport { CaInputDropdownLoadBrokerComponent } from './components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component';\nimport { CaInputDropdownLoadDispatchesTtdComponent } from './components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component';\nimport { CaInputDropdownLoadDispatcherComponent } from './components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component';\nimport { CaInputDropdownSvgTemplateComponent } from './components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component';\nimport { CaInputDropdownSvgtextTemplateComponent } from './components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component';\nimport { CaInputDropdownSvgtextDispatchTemplateComponent } from './components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component';\nimport { CaInputDropdownGroupsComponent } from './components/ca-input-dropdown-groups/ca-input-dropdown-groups.component';\nimport { CaInputDropdownMultiselectComponent } from './components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component';\nimport { CaInputDropdownLabelsComponent } from './components/ca-input-dropdown-labels/ca-input-dropdown-labels.component';\nimport { CaInputDropdownLoadBrokerContactComponent } from './components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component';\nimport { CaInputDropdownLoadBrokerShipperComponent } from './components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component';\nimport { CaInputDropdownTextCounterComponent } from './components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component';\nimport { CaInputDropdownDoubleTextTemplateComponent } from './components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component';\nimport { CaInputDropdownTripleTextTemplateComponent } from './components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component';\nimport { CaInputDropdownDefaultTemplateComponent } from './components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component';\nimport { CaInputDropdownFuelFranchiseComponent } from './components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component';\nimport { CaInputDropdownDispatchComponent } from './components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component';\nimport { CaInputDropdownDetailsTemplateComponent } from './components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component';\nimport { CaInputDropdownPayrollTrucksComponent } from './components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component';\nimport { CaInputDropdownParkingComponent } from './components/ca-input-dropdown-parking/ca-input-dropdown-parking.component';\n\n// pipes\nimport { FormControlPipe } from '../ca-input/pipes';\nimport { DropdownCountPipe, InputDropdownMultiselectClassPipe } from './pipes';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// directives\nimport {\n    ControlValueAccessor,\n    FormsModule,\n    NgControl,\n    ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { CommandsEvent } from '../ca-input/models';\nimport { OptionModel } from './models/input-dropdown-option.model';\n\n// services\nimport { ImageBase64Service } from '../../services/image-base64.service';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from './utils/svg-routes/input-dropdown-svg-routes';\n\n// enums\nimport { DropdownStringEnum, DropdownTemplateTypeEnum } from './enums';\n\n// helpers\nimport { uuidv4 } from '../../utils/helpers';\n\n@Component({\n    selector: 'app-ca-input-dropdown',\n    templateUrl: './ca-input-dropdown.component.html',\n    styleUrls: ['./ca-input-dropdown.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [FormControlPipe],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    animations: [inputDropdownAnimation('showHideDropdownOptions')],\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        NgbPopoverModule,\n        ReactiveFormsModule,\n        NgbModule,\n        AngularSvgIconModule,\n        // Component\n        CaInputComponent,\n        CaInputDropdownSvgTemplateComponent,\n        CaInputDropdownSvgtextTemplateComponent,\n        CaInputDropdownSvgtextDispatchTemplateComponent,\n        CaInputDropdownGroupsComponent,\n        CaInputDropdownMultiselectComponent,\n        CaInputDropdownLabelsComponent,\n        CaInputDropdownLoadBrokerComponent,\n        CaInputDropdownLoadDispatchesTtdComponent,\n        CaInputDropdownLoadDispatcherComponent,\n        CaInputDropdownLoadBrokerContactComponent,\n        CaInputDropdownLoadBrokerShipperComponent,\n        CaInputDropdownTextCounterComponent,\n        CaInputDropdownDoubleTextTemplateComponent,\n        CaInputDropdownTripleTextTemplateComponent,\n        CaInputDropdownDefaultTemplateComponent,\n        CaInputDropdownFuelFranchiseComponent,\n        CaInputDropdownDispatchComponent,\n        CaInputDropdownDetailsTemplateComponent,\n        CaInputDropdownPayrollTrucksComponent,\n        CaInputDropdownParkingComponent,\n        // Pipes\n        FormControlPipe,\n        DropdownCountPipe,\n        InputDropdownMultiselectClassPipe,\n    ]\n})\nexport class CaInputDropdownComponent\n    implements OnInit, AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor\n{\n    @ViewChild('input') inputRef!: CaInputComponent;\n    @ViewChild('t2') public popoverRef!: NgbPopover;\n\n    // different templates for body rendering\n    public _template!: string;\n    _canAddNew: boolean = false;\n    @Input() set template(value: string) {\n        this._template = value;\n        if (value === 'details-template' && this.isDetailsPages) {\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.inputRef.setInputCursorAtTheEnd(\n                    this.inputRef.input.nativeElement\n                );\n                const option = this._options.find((item) => item.active);\n                this._activeItem = option || null;\n                this.getSuperControl?.setValue(option?.name);\n\n                const timeout2 = setTimeout(() => {\n                    this.popoverRef.open();\n                    clearTimeout(timeout2);\n                }, 150);\n            });\n        }\n    }\n\n    @Input() multiselectTemplate!: string;\n    @Input() inputConfig!: ICaInput;\n    @Input() set canAddNew(value: boolean) {\n        this._canAddNew = value;\n    } // ADD NEW item in options\n    @Input() canOpenModal!: boolean; // open modal with ADD NEW button\n    @Input() isAddressDropdown!: boolean; // only for address dropdown\n\n    // sort-template for different options\n    public _sort!: string;\n    @Input() set sort(value: string) {\n        this._sort = value;\n    }\n\n    // currently active item\n    public _activeItem!: OptionModel | null;\n    @Input() set activeItem(value: OptionModel | null) {\n        this.inputConfig = {\n            ...this.inputConfig,\n            blackInput: true,\n        };\n        this._activeItem = value;\n\n        // With address\n        if (\n            this.inputConfig.name &&\n            this.inputConfig.name.toLowerCase().includes('address') &&\n            this._activeItem\n        ) {\n            if (Object.keys(this._activeItem).length > 0) {\n                this.getSuperControl?.patchValue(\n                    value?.address ? value?.address : null\n                );\n            }\n\n            if (!this.inputConfig.hideColorValidations) {\n                this.clearTimeoutDropdown = setTimeout(() => {\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        blackInput: false,\n                    };\n                    this.cdRef.detectChanges();\n                }, 150);\n            }\n        }\n        // Without address\n        else {\n            if (this._activeItem) {\n                this.clearTimeoutDropdown = setTimeout(() => {\n                    this.getSuperControl!.patchValue(\n                        value?.number\n                            ? value?.number\n                            : value?.name\n                              ? value?.name\n                              : (value?.companyName ?? null)\n                    );\n\n                    if (!this.inputConfig.hideColorValidations) {\n                        this.inputConfig = {\n                            ...this.inputConfig,\n                            blackInput: false,\n                        };\n                    }\n                    this.cdRef.detectChanges();\n                }, 150);\n            }\n        }\n    }\n\n    @Input() activeItemColor!: OptionModel | null; // currently active color in dropdown\n    @Input() labelMode!: 'Label' | 'Color';\n\n    // when send SVG, please premmaped object: add 'folder' | 'subfolder'\n    public _options: OptionModel[] = [];\n    @Input() set options(values: OptionModel[]) {\n        if (values) this._options = [...values];\n\n        switch (this._sort) {\n            case 'active-drivers': {\n                this._options = values.sort(\n                    (x, y) => Number(y.status) - Number(x.status)\n                );\n\n                this.originalOptions = [...this._options];\n                break;\n            }\n            default: {\n                setTimeout(() => {\n                    if (\n                        this._canAddNew &&\n                        !this._options.find((item) => item.id === 7655)\n                    ) {\n                        this._options.unshift({\n                            id: 7655,\n                            name: DropdownStringEnum.ADD_NEW,\n                        });\n                    }\n\n                    this.originalOptions = this._options;\n                }, 100);\n                break;\n            }\n        }\n    }\n\n    // MultiSelect Selected Items From Backend\n    @Input() set preloadMultiselectItems(values: OptionModel[]) {\n        if (this.inputConfig.multiselectDropdown) {\n            if (!values) {\n                this.deleteAllMultiSelectItems(this.inputConfig.label);\n                return;\n            }\n\n            if (values?.length) {\n                values.forEach((item) => {\n                    this.onMultiselectSelect(item);\n                });\n            }\n        }\n    }\n\n    @Input() isDetailsPages!: boolean; // only for details pages\n    @Input() isIncorrectValue!: boolean; // applicant review option\n\n    @Output() selectedItem: EventEmitter<OptionModel | null> =\n        new EventEmitter<OptionModel | null>();\n    @Output() selectedItems: EventEmitter<OptionModel[] | null> =\n        new EventEmitter<OptionModel[] | null>();\n    @Output() selectedItemColor: EventEmitter<OptionModel | null> =\n        new EventEmitter<OptionModel | null>();\n    @Output() selectedLabelMode: EventEmitter<string> =\n        new EventEmitter<string>();\n    @Output() closeDropdown: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output() saveItem: EventEmitter<{\n        data: OptionModel | null;\n        action: string;\n    }> = new EventEmitter<{ data: OptionModel | null; action: string }>();\n    @Output() incorrectEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output() placeholderIconEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('pagination') paginationEvent: EventEmitter<number> =\n        new EventEmitter<number>();\n    @Output('activeGroup') activeGroupEvent: EventEmitter<OptionModel> =\n        new EventEmitter<OptionModel>();\n    @Output('clearInputEvent') clearInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    // Copy of Options\n    public originalOptions: OptionModel[] = [];\n\n    // Pagination\n    public paginationNumber: number = 0;\n\n    // Multiselect dropdown options\n    public multiselectItems: OptionModel[] = [];\n    public isMultiSelectInputFocus: boolean = false;\n    public multiSelectLabel!: string | undefined;\n    public lastActiveMultiselectItem!: OptionModel | null;\n\n    // Add mode\n    public isInAddMode: boolean = false;\n\n    // Dropdown navigation with keyboard\n    private dropdownPosition: number = -1;\n\n    // Dropdown Cleartimeout\n    public clearTimeoutDropdown: string | number | ReturnType<typeof setTimeout> | undefined;\n\n    public hoveringIndex!: number;\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n    public dropdownTemplateTypeEnum = DropdownTemplateTypeEnum;\n\n    public originalInputConfig!: ICaInput;\n\n    // Destroy\n    private destroy$ = new Subject<void>();\n\n    constructor(\n        @Self() public superControl: NgControl,\n        public imageBase64Service: ImageBase64Service,\n        private cdRef: ChangeDetectorRef,\n        private renderer: Renderer2\n    ) {\n        this.superControl.valueAccessor = this;\n    }\n\n    get getSuperControl() {\n        return this.superControl.control;\n    }\n\n    writeValue(_: any): void {}\n\n    registerOnChange(_: any): void {}\n\n    registerOnTouched(_: any): void {}\n\n    ngOnInit(): void {\n        // Multiselect\n        if (this.inputConfig.multiselectDropdown) {\n            this.multiSelectLabel = this.inputConfig.label;\n        }\n\n        // Search\n        this.getSuperControl!.valueChanges.pipe(\n            debounceTime(50),\n            takeUntil(this.destroy$),\n            skip(1)\n        ).subscribe((searchText) => {\n            if (this.labelMode === 'Color') {\n                return;\n            }\n            this.search(searchText);\n        });\n\n        this.originalInputConfig = structuredClone(this.inputConfig);\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (changes['options'] && changes['options'].currentValue) {\n            this.originalOptions = changes['options'].currentValue;\n        }\n    }\n\n    ngAfterViewInit() {\n        if (this.inputConfig.autoFocus) {\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.popoverRef.open();\n            }, 450);\n        }\n    }\n\n    public onScrollDropdown(event: EventTarget | null) {\n        const target = event as HTMLElement;\n\n        if (target.scrollTop + target.offsetHeight === target.scrollHeight) {\n            this.paginationNumber += 1;\n\n            this.paginationEvent.emit(this.paginationNumber);\n        }\n    }\n\n    public onActiveItem(option: OptionModel, group?: any): void {\n        // Prevent user to pick franchise, without group\n        if (\n            this._template === 'fuel-franchise' &&\n            option?.isFranchise &&\n            !group\n        ) {\n            return;\n        }\n        // Disable to picking banned or dnu user\n        if (option?.dnu || option?.ban) {\n            return;\n        }\n        // No Result\n        if (option.id === 7654 || option.id === 7656) {\n            return;\n        }\n        // ADD NEW\n        else if (option.id === 7655) {\n            // Open New Modal\n            if (this.canOpenModal) {\n                this.selectedItem.emit({ ...option, canOpenModal: true });\n            }\n            // Work with current modal\n            else {\n                // DropDown label\n                if (this.inputConfig.dropdownLabel) {\n                    this.inputConfig.dropdownLabelNew = true;\n                    this.inputRef.isEditInput = true;\n                    this.selectedLabelMode.emit('Color');\n                    this.inputConfig.commands!.active = true;\n                    this.inputRef.setInputCursorAtTheEnd(\n                        this.inputRef.input.nativeElement\n                    );\n                    this.selectedItem.emit(option);\n                }\n                // Normal Dropdown\n                else {\n                    this.addNewConfig();\n                }\n            }\n        }\n        // Pick the item\n        else {\n            this.inputConfig.selectedDropdown = true;\n            // Dropdown labels option selected\n            if (this.inputConfig.dropdownLabel) {\n                if (this.labelMode === 'Label') {\n                    this._activeItem = option;\n                    this.getSuperControl?.setValue(option.name);\n                    this._options = this.originalOptions;\n                    this.selectedItem.emit(option);\n                }\n\n                if (this.labelMode === 'Color') {\n                    this.activeItemColor = option;\n\n                    this.selectedItemColor.emit(this.activeItemColor);\n                }\n            }\n            // Normal Dropdown option selected\n            else {\n                this._activeItem = option;\n\n                this._options = this.originalOptions;\n\n                if (this.inputConfig.name !== 'RoutingAddress') {\n                    this.getSuperControl?.patchValue(\n                        option?.number ? option.number : option.name\n                    );\n\n                    if (this._template === 'fuel-franchise') {\n                        this.getSuperControl!.patchValue(\n                            group ? option.name : option.businessName\n                        );\n                        const { id } = option;\n                        group\n                            ? this.selectedItem.emit({\n                                  ...option,\n                                  ...group,\n                                  storeId: id,\n                              })\n                            : this.selectedItem.emit(option);\n                    } else {\n                        group\n                            ? this.selectedItem.emit({\n                                  ...option,\n                                  ...group,\n                              })\n                            : this.selectedItem.emit(option);\n                    }\n                }\n            }\n            this.getSuperControl?.markAsDirty();\n\n            this.popoverRef.close();\n        }\n\n        if (this._template === 'fuel-franchise') {\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.popoverRef.close();\n            }, 100);\n        }\n    }\n\n    public onActiveItemGroup(event: { option: OptionModel; group: any }) {\n        this.onActiveItem(event.option, event.group);\n    }\n\n    public onClearSearch(): void {\n        this._options = this.originalOptions;\n        this._activeItem = null;\n        this.inputConfig.selectedDropdown = false;\n        this.getSuperControl?.patchValue(null);\n        this.inputConfig = {\n            ...this.inputConfig,\n            placeholder: this.inputConfig.placeholderWithLabel\n                ? this.originalInputConfig.placeholder\n                : '',\n            dropdownImageInput: null,\n        };\n        this.selectedItem.emit(null);\n    }\n\n    public clearDropdownLabel() {\n        this._activeItem = null;\n        this.activeItemColor = null;\n        this.selectedItem.emit(null);\n        this.selectedItemColor.emit(null);\n        this.selectedLabelMode.emit('Label');\n    }\n\n    public commandEvent(event: CommandsEvent) {\n        if (event.action === 'Edit Input') {\n            this.selectedLabelMode.emit('Color');\n            this.inputConfig.dropdownLabelNew = false;\n        }\n        if (event.action === 'Toggle Dropdown') {\n            this.popoverRef.toggle();\n        }\n        if (event.action === 'confirm' && event.mode === 'new') {\n            this.addNewItem();\n        }\n\n        if (event.action === 'confirm' && event.mode === 'edit') {\n            this.updateItem();\n        }\n\n        if (event.action === 'Placeholder Icon Event') {\n            this.placeholderIconEvent.emit(true);\n        }\n\n        if (event.action === 'cancel') {\n            this.saveItem.emit({\n                data: this._activeItem,\n                action: 'cancel',\n            });\n            this.selectedLabelMode.emit('Label');\n        }\n    }\n\n    public addNewItem(): void {\n        this._activeItem = {\n            id: parseInt(uuidv4()),\n            name: this.getSuperControl!.value,\n        };\n        this.inputConfig.commands!.active = false;\n        this.inputRef.isVisibleCommands = false;\n        this.inputRef.isFocusInput = false;\n\n        this.saveItem.emit({ data: this._activeItem, action: 'new' });\n\n        if (this.inputConfig.dropdownLabel) {\n            this.selectedLabelMode.emit('Label');\n            this.inputRef.isTouchedInput = true;\n        }\n    }\n\n    public updateItem(): void {\n        if (this.inputConfig.dropdownLabel) {\n            this._activeItem = {\n                ...this._activeItem,\n                name: this.getSuperControl?.value,\n                colorId: this.activeItemColor\n                    ? this.activeItemColor.id\n                    : this._activeItem?.colorId,\n                color: this.activeItemColor\n                    ? this.activeItemColor.name\n                    : this._activeItem?.color,\n                code: this.activeItemColor\n                    ? this.activeItemColor.code\n                    : this._activeItem?.code,\n            };\n\n            this.selectedLabelMode.emit('Label');\n        } else {\n            this._activeItem = {\n                ...this._activeItem,\n                name: this.getSuperControl?.value,\n            };\n        }\n\n        this.saveItem.emit({\n            data: this._activeItem,\n            action: 'edit',\n        });\n    }\n\n    public addNewConfig() {\n        this.inputConfig = {\n            ...this.inputConfig,\n            commands: {\n                active: true,\n                type: 'confirm-cancel',\n                firstCommand: {\n                    popup: {\n                        name: 'Confirm',\n                        backgroundColor: '#3074d3',\n                    },\n                    name: 'confirm',\n                    svg: InputDropdownSvgRoutes.specConfirmSvg,\n                },\n                secondCommand: {\n                    popup: {\n                        name: 'Cancel',\n                        backgroundColor: '#2f2f2f',\n                    },\n                    name: 'cancel',\n                    svg: InputDropdownSvgRoutes.xClearSvg,\n                },\n            },\n            placeholder: '',\n        };\n\n        this.popoverRef.close();\n\n        this.isInAddMode = true;\n        this.clearTimeoutDropdown = setTimeout(() => {\n            this.isInAddMode = false;\n        }, 200);\n    }\n\n    public onIncorrectInput(event: boolean) {\n        this.incorrectEvent.emit(event);\n    }\n\n    public identity(index: number, item: OptionModel): number | undefined {\n        return item.id;\n    }\n\n    public toggleNestedList(option: OptionModel): void {\n        if (option.open) {\n            option.open = false;\n            return;\n        }\n        this._options.filter((item) => (item.open = false));\n\n        option.open = !option.open;\n\n        if (option.open) {\n            this.activeGroupEvent.emit(option);\n        }\n    }\n\n    public onBlurInput(event: boolean) {\n        this.closeDropdown.emit(event);\n    }\n\n    public onClearInputEvent(event: boolean) {\n        this.clearInputEvent.emit(event);\n\n        if (event) {\n            this.popoverRef.close();\n            // label dropdown\n            if (this.inputConfig.dropdownLabel) {\n                this.clearDropdownLabel();\n            }\n            // normal dropdown\n            else {\n                this.onClearSearch();\n            }\n        }\n    }\n\n    public showHideDropdown(action: boolean) {\n        if (this.inputConfig.multiselectDropdown) {\n            this.isMultiSelectInputFocus = action;\n        }\n\n        if (this.labelMode !== 'Color') {\n            // Focus Out\n            if (!action) {\n                if (this._template !== 'fuel-franchise') {\n                    this.popoverRef.open();\n                }\n\n                // Prevent user to typing dummmy data if _activeItem doesn't exist\n                if (this._activeItem) {\n                    this.getSuperControl!.setValue(this._activeItem.name);\n                } else {\n                    const index = this.originalOptions.findIndex(\n                        (item) => item.name === this.getSuperControl!.value\n                    );\n\n                    if (index === -1) {\n                        this.onClearSearch();\n                    }\n                }\n                if (this._template !== 'fuel-franchise') {\n                    this.popoverRef.close();\n                }\n            }\n            // Focus In\n            else {\n                this.inputConfig = {\n                    ...this.inputConfig,\n                    placeholder: this.getSuperControl!.value\n                        ? this.getSuperControl!.value\n                        : this.inputConfig.placeholderWithLabel\n                          ? this.originalInputConfig.placeholder\n                          : this._activeItem?.name,\n                };\n\n                this.getSuperControl!.setValue(null);\n\n                if (this.popoverRef) {\n                    this.popoverRef.close();\n                }\n\n                if (this.isInAddMode) {\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        placeholder: '',\n                    };\n                }\n            }\n        }\n\n        // Details pages\n        if (\n            this.inputConfig.customClass?.includes('details-pages') &&\n            !action\n        ) {\n            this.selectedItem.emit(this._activeItem);\n        }\n    }\n\n    public dropDownKeyNavigation({\n        keyCode,\n        data,\n    }: {\n        keyCode: number;\n        data: any;\n    }) {\n        // Navigate down\n        if (keyCode === 40) {\n            this.dropdownNavigation(1);\n        }\n        // Navigate up\n        if (keyCode === 38) {\n            this.dropdownNavigation(-1);\n        }\n\n        // Press Escape\n        if (keyCode === 27) {\n            if (this.inputConfig?.commands?.active) {\n                this.inputConfig.commands = undefined;\n                this.inputRef.isVisibleCommands = false;\n                this.inputRef.isFocusInput = false;\n            }\n\n            if (this.inputConfig.dropdownLabel) {\n                this.getSuperControl?.setErrors(null);\n                this.inputConfig.dropdownLabelNew = false;\n                this.inputConfig.commands!.active = false;\n                if (!this.inputConfig.hideColorValidations) {\n                    this.inputConfig.blackInput = false;\n                }\n                this.inputRef.isFocusInput = false;\n                this.inputRef.isEditInput = false;\n                this.inputRef.input.nativeElement.blur();\n                if (this.labelMode === 'Color') {\n                    this.getSuperControl!.patchValue(null);\n                    this.selectedLabelMode.emit('Label');\n                }\n            }\n        }\n        // Press 'enter'\n        if (keyCode === 13) {\n            let selectedItem = this.renderer.selectRootElement(\n                '.dropdown-option-hovered',\n                true\n            );\n\n            // // Open New Modal\n            if (this.canOpenModal && selectedItem.toLowerCase() === 'add new') {\n                this.selectedItem.emit({\n                    id: 7655,\n                    name: DropdownStringEnum.ADD_NEW,\n                    canOpenModal: true,\n                });\n            } else {\n                if (this._options.length === 1 && !selectedItem) {\n                    if (this._template === 'fuel-franchise') {\n                        selectedItem = this._options[0]?.businessName\n                            ? this._options[0]?.businessName\n                            : this._options[0]?.name || '';\n                    } else {\n                        selectedItem = this._options[0]?.number\n                            ? this._options[0]?.number.toString().trim()\n                            : this._options[0].name?.toString().trim();\n                    }\n                }\n\n                this.pickupElementWithKeyboard(selectedItem, data);\n            }\n        }\n\n        if (keyCode === 9) {\n            if (\n                this._options.length === 1 &&\n                this._options[0].id !== 7655 &&\n                this._options[0].id !== 7654\n            ) {\n                let selectedItem = null;\n\n                if (this._template === 'fuel-franchise') {\n                    selectedItem = this._options[0]?.businessName\n                        ? this._options[0]?.businessName\n                        : this._options[0]?.name;\n                } else {\n                    selectedItem = this._options[0]?.number\n                        ? this._options[0]?.number.toString().trim()\n                        : this._options[0].name!.toString().trim();\n                }\n\n                this.pickupElementWithKeyboard(selectedItem, data);\n            } else {\n                this.popoverRef.open();\n            }\n        }\n    }\n\n    // ----------------------------------  Multiselect Dropdown ----------------------------------\n    public onMultiselectSelect(option: OptionModel): void {\n        this.isMultiSelectInputFocus = false;\n        this.inputConfig.label = undefined;\n\n        if (this.multiselectItems.some((item) => item.id === option.id)) {\n            return;\n        }\n\n        this._options = this._options.map((item) => {\n            if (item.id === option.id) {\n                return {\n                    ...item,\n                    active: true,\n                };\n            } else {\n                if (!item.active) {\n                    return {\n                        ...item,\n                        active: false,\n                    };\n                } else {\n                    return {\n                        ...item,\n                        active: true,\n                    };\n                }\n            }\n        });\n\n        this.multiselectItems = this._options.filter((item) => item.active);\n\n        this.selectedItems.emit(this.multiselectItems);\n\n        this._options = this._options.sort(\n            (x, y) => Number(y.active) - Number(x.active)\n        );\n        this.originalOptions = [...this._options];\n\n        this.lastActiveMultiselectItem = this._options\n            .filter((item) => item.active)\n            .slice(-1)[0];\n\n        if (this.inputRef) {\n            this.inputRef.isFocusInput = false;\n            this.inputRef.input.nativeElement.blur();\n        }\n\n        this.inputConfig = {\n            ...this.inputConfig,\n            multiSelectDropdownActive: true,\n        };\n    }\n\n    public removeMultiSelectItem(index: number) {\n        this._options = this.originalOptions.map((item) => {\n            if (item.id === this.multiselectItems[index].id) {\n                return {\n                    ...this.multiselectItems[index],\n                    active: false,\n                };\n            }\n            return item;\n        });\n\n        this._options = this._options.sort(\n            (x, y) => Number(y.active) - Number(x.active)\n        );\n\n        this.originalOptions = this._options;\n        this.multiselectItems.splice(index, 1);\n\n        if (!this.multiselectItems.length) {\n            this.inputConfig = {\n                ...this.inputConfig,\n                multiSelectDropdownActive: undefined,\n            };\n\n            this.lastActiveMultiselectItem = null;\n            this.inputConfig.label = this.multiSelectLabel;\n        } else {\n            this.lastActiveMultiselectItem = this._options\n                .filter((item) => item.active)\n                .slice(-1)[0];\n        }\n\n        this.selectedItems.emit(\n            this.multiselectItems.map((item) => {\n                return { ...item };\n            })\n        );\n    }\n\n    public deleteAllMultiSelectItems(currentLabel?: string) {\n        this.multiselectItems = [];\n        this.inputConfig = {\n            ...this.inputConfig,\n            multiSelectDropdownActive: undefined,\n        };\n\n        this.inputConfig.label = currentLabel\n            ? currentLabel\n            : this.multiSelectLabel;\n        this._options = this._options.map((item) => {\n            return {\n                ...item,\n                active: false,\n            };\n        });\n        this.originalOptions = this._options;\n        this.selectedItems.emit(null);\n\n        this.lastActiveMultiselectItem = null;\n    }\n\n    public toggleMultiselectDropdown() {\n        if (this.inputConfig.isDisabled) {\n            return;\n        }\n        this.isMultiSelectInputFocus = !this.isMultiSelectInputFocus;\n\n        if (this.isMultiSelectInputFocus) {\n            this.inputRef.setInputCursorAtTheEnd(\n                this.inputRef.input.nativeElement\n            );\n\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.popoverRef.open();\n            }, 150);\n        } else {\n            this.inputRef.isFocusInput = false;\n            this.popoverRef.close();\n        }\n    }\n    // ----------------------------------  End ----------------------------------\n\n    private pickupElementWithKeyboard(\n        selectedItem: string | undefined,\n        data: any\n    ) {\n        // Address Select\n        if (\n            (this.inputConfig.name == 'Address' ||\n                this.inputConfig.name == 'RoutingAddress') &&\n            (!selectedItem || selectedItem == '')\n        ) {\n            selectedItem = this._options[0].name;\n        }\n\n        // Input Dropdown Bank Name\n        if (\n            !selectedItem &&\n            this.inputConfig.name === 'Input Dropdown Bank Name'\n        ) {\n            this.addNewItem();\n        }\n\n        // Input Dropdown Label\n        if (!selectedItem && this.inputConfig.dropdownLabel) {\n            this.commandEvent({\n                data: this.getSuperControl!.value,\n                action: 'confirm',\n                mode: data.dropdownLabelNew ? 'new' : 'edit',\n            });\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.getSuperControl!.setErrors(null);\n                this.inputConfig.dropdownLabelNew = false;\n                this.inputConfig.commands!.active = false;\n                if (!this.inputConfig.hideColorValidations) {\n                    this.inputConfig.blackInput = false;\n                }\n                this.inputRef.isFocusInput = false;\n                this.inputRef.isEditInput = false;\n                this.inputRef.input.nativeElement.blur();\n            }, 150);\n        }\n\n        // ADD NEW Option\n        if (selectedItem === DropdownStringEnum.ADD_NEW) {\n            this.addNewConfig();\n\n            if (this.inputConfig.dropdownLabel) {\n                // DropDown label\n                if (this.inputConfig.dropdownLabel) {\n                    this.inputConfig.dropdownLabelNew = true;\n                    this.inputRef.isEditInput = true;\n                    this.selectedLabelMode.emit('Color');\n                    this.inputConfig.commands!.active = true;\n                    this.inputRef.setInputCursorAtTheEnd(\n                        this.inputRef.input.nativeElement\n                    );\n                    this.inputConfig.blackInput = true;\n                    this.selectedItem.emit({\n                        id: 7655,\n                        name: DropdownStringEnum.ADD_NEW,\n                    });\n                }\n            }\n            selectedItem = undefined;\n        }\n        // Normal Pick Dropdown\n        else {\n            const existItem = this._options\n                .map((item) => {\n                    // Address\n                    if (\n                        item.name &&\n                        (this.inputConfig.name == 'Address' ||\n                            this.inputConfig.name == 'RoutingAddress')\n                    ) {\n                        return {\n                            id: item.id,\n                            name: item.name,\n                            address: item.address,\n                            longLat: item.longLat,\n                        };\n                    }\n\n                    // Load Dispatches TTD\n                    else if (\n                        [\n                            'load-dispatches-ttd',\n                            'load-broker',\n                            'load-shipper',\n                        ].includes(this._template)\n                    ) {\n                        return { ...item };\n                    }\n\n                    // Image (must be before type code, because color has same prop like other dropdown pop)\n                    else if (item.logoName) {\n                        return { ...item };\n                    }\n\n                    // Code\n                    else if (item.code && item.description) {\n                        return {\n                            id: item.id,\n                            name: item.code.concat(' - ', item.description),\n                        };\n                    }\n                    // Dropdown Labels\n                    else if (\n                        item?.dropLabel ||\n                        this.inputConfig.dropdownLabel\n                    ) {\n                        return { ...item };\n                    }\n                    // Default\n                    else {\n                        if (item.name) {\n                            return {\n                                id: item.id,\n                                name: item.name,\n                            };\n                        }\n                    }\n                    return { ...item };\n                })\n                .find((item) => {\n                    // Dropdown Label\n                    if (\n                        (item?.dropLabel || this.inputConfig.dropdownLabel) &&\n                        selectedItem!.substring(\n                            0,\n                            selectedItem!.lastIndexOf(' ')\n                        ) === item?.name!.toLowerCase()\n                    ) {\n                        return item;\n                    }\n\n                    // Dropdown Load Dispatcher, Broker\n                    if (item?.name)\n                        if (\n                            [\n                                'load-broker',\n                                'load-dispatcher',\n                                'load-shipper',\n                            ].includes(this._template) &&\n                            selectedItem\n                                ?.toLowerCase()\n                                .includes(item?.name?.toLowerCase())\n                        ) {\n                            return item;\n                        }\n                    // Dropdown Load Dispatches\n                    if (\n                        item?.trailer?.trailerNumber &&\n                        item?.truck?.truckNumber &&\n                        item?.driver?.firstName &&\n                        item?.driver?.lastName\n                    )\n                        if (\n                            this._template === 'load-dispatches-ttd' &&\n                            selectedItem\n                                ?.toLowerCase()\n                                .includes(\n                                    item?.trailer?.trailerNumber.toLowerCase()\n                                ) &&\n                            selectedItem\n                                ?.toLowerCase()\n                                .includes(\n                                    item?.truck?.truckNumber.toLowerCase()\n                                ) &&\n                            selectedItem\n                                ?.toLowerCase()\n                                .includes(\n                                    item?.driver?.firstName\n                                        .concat(' ', item?.driver?.lastName)\n                                        .toLowerCase()\n                                )\n                        ) {\n                            return item;\n                        }\n\n                    // Default\n                    if (\n                        !this.inputConfig.dropdownLabel &&\n                        this._template !== 'load-dispatches-ttd' &&\n                        selectedItem?.toLowerCase() ===\n                            item?.name!.toLowerCase()\n                    ) {\n                        return item;\n                    }\n                    return item;\n                }) as OptionModel;\n\n            // MultiSelect Dropdown\n            if (this.inputConfig.multiselectDropdown) {\n                this.onMultiselectSelect(existItem);\n            }\n\n            // Dropdown labels option selected\n            if (this.inputConfig.dropdownLabel) {\n                if (this.labelMode === 'Label') {\n                    this._activeItem = existItem || null;\n                    this.getSuperControl!.setValue(existItem!.name);\n                    this._options = this.originalOptions;\n                    this.selectedItem.emit(existItem);\n                    this.inputRef.isDropdownToggler = false;\n                    this.inputRef.isFocusInput = false;\n                    this.inputRef.input.nativeElement.blur();\n                }\n\n                if (this.labelMode === 'Color') {\n                    this.activeItemColor = existItem || null;\n\n                    this.selectedItemColor.emit(this.activeItemColor);\n                }\n            }\n            // Normal\n            else {\n                this.getSuperControl!.setValue(existItem?.name);\n                this.selectedItem.emit(existItem);\n                this._activeItem = existItem || null;\n                this.inputRef.isFocusInput = false;\n                this.inputRef.input.nativeElement.blur();\n            }\n            this.popoverRef.close();\n        }\n    }\n\n    private search(searchText: string): void {\n        // Single Dropdown\n        if (\n            ![\n                'groups',\n                'load-broker-contact',\n                'fuel-franchise',\n                'load-dispatches-ttd',\n            ].includes(this._template)\n        ) {\n            if (\n                searchText?.length &&\n                this.getSuperControl?.value &&\n                this._activeItem?.name !== this.getSuperControl?.value\n            ) {\n                this._options = this.originalOptions.filter((item) => {\n                    if (item.name === DropdownStringEnum.ADD_NEW) return true;\n                    return item.name\n                        ? item.name\n                              .toLowerCase()\n                              .includes(searchText.toLowerCase())\n                        : item.code\n                          ? item.code\n                                .concat(' - ', item.description!)\n                                .toLowerCase()\n                                .includes(searchText.toLowerCase())\n                          : searchText.toLowerCase();\n                });\n\n                if (\n                    this._template !==\n                        this.dropdownTemplateTypeEnum\n                            .SVGTEXT_DISPATCH_TEMPLATE &&\n                    !this.isAddressDropdown\n                ) {\n                    if (!this._options.length) {\n                        this.getSuperControl!.setErrors({ invalid: true });\n                        this.inputConfig.isInvalidSearchInDropdown = true;\n                    } else {\n                        this.getSuperControl!.setErrors(null);\n                        this.inputConfig.isInvalidSearchInDropdown = false;\n                    }\n                }\n\n                if (\n                    ['truck', 'trailer'].includes(\n                        this.inputConfig?.dropdownImageInput?.template!\n                    )\n                ) {\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        dropdownImageInput: {\n                            ...this.inputConfig.dropdownImageInput!,\n                            remove: true,\n                        },\n                    };\n                }\n\n                const emptyOptionsWihAddNew =\n                    this._options.length === 1 &&\n                    this._options[0].name === DropdownStringEnum.ADD_NEW;\n\n                if (!this._options.length || emptyOptionsWihAddNew) {\n                    if (\n                        this._template === 'svgtext-dispatch-template' &&\n                        !this.inputConfig.isDispatchLocationDropdown &&\n                        !emptyOptionsWihAddNew\n                    ) {\n                        this._options.push({\n                            id: 7655,\n                            name: DropdownStringEnum.ADD_NEW,\n                        });\n                    }\n\n                    this._options.push({\n                        id: 7654,\n                        name: DropdownStringEnum.NO_RESULTS,\n                    });\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        hideAllItemsInInputDropdown: true,\n                    };\n                    if (\n                        (this.inputConfig.name === 'Address' ||\n                            this.inputConfig.name === 'RoutingAddress') &&\n                        this.inputRef.isFocusInput\n                    ) {\n                        this.popoverRef?.open();\n                    }\n                }\n            } else {\n                this._options = this.originalOptions;\n                if (\n                    ['truck', 'trailer'].includes(\n                        this.inputConfig?.dropdownImageInput?.template!\n                    )\n                ) {\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        dropdownImageInput: {\n                            ...this.inputConfig?.dropdownImageInput!,\n                            remove: false,\n                        },\n                    };\n                }\n\n                this.inputConfig = {\n                    ...this.inputConfig,\n                    hideAllItemsInInputDropdown: false,\n                };\n            }\n        }\n        // Group Dropdown Items\n        else {\n            if (\n                searchText?.length &&\n                this.getSuperControl?.value?.toLowerCase()\n            ) {\n                if (this._template === 'groups') {\n                    this._options = this.originalOptions\n                        .map((element) => {\n                            const filteredGroups = element.groups!.filter(\n                                (subElement) =>\n                                    subElement?.name\n                                        ?.toLowerCase()\n                                        .includes(searchText.toLowerCase())\n                            );\n                            return {\n                                ...element,\n                                groups: filteredGroups,\n                                items: filteredGroups,\n                            };\n                        })\n                        .filter((item) => item.groups.length);\n\n                    if (!this._options.length) {\n                        this._options.push({\n                            items: [\n                                {\n                                    id: 7654,\n                                    name: DropdownStringEnum.NO_RESULTS,\n                                },\n                            ],\n                            groups: [\n                                {\n                                    id: 7654,\n                                    name: DropdownStringEnum.NO_RESULTS,\n                                },\n                            ],\n                        });\n                    }\n                }\n\n                if (this._template === 'load-broker-contact') {\n                    this._options = this.originalOptions.map((element) => {\n                        return {\n                            ...element,\n                            contacts: element?.contacts?.filter(\n                                (subElement) => {\n                                    return subElement\n                                        ?.fullName!.toLowerCase()\n                                        .includes(searchText?.toLowerCase());\n                                }\n                            ),\n                        };\n                    });\n                }\n\n                if (this._template === 'fuel-franchise') {\n                    this._options = this.originalOptions.map((element) => {\n                        return {\n                            ...element,\n                            stores: element?.stores?.filter((subElement) =>\n                                subElement\n                                    .name!.toString()\n                                    .toLowerCase()\n                                    .includes(searchText.toLowerCase())\n                            ),\n                        };\n                    });\n                }\n\n                if (this._template === 'load-dispatches-ttd') {\n                    this._options = this.originalOptions.filter((item) => {\n                        if (\n                            item.fullName\n                                ?.toLowerCase()\n                                .includes(searchText.toLowerCase())\n                        ) {\n                            return item;\n                        }\n\n                        return false;\n                    });\n\n                    if (!this._options.length) {\n                        this._options.push({\n                            id: 7654,\n                            name: DropdownStringEnum.NO_RESULTS,\n                        });\n                    }\n                }\n            } else {\n                this._options = this.originalOptions;\n            }\n        }\n    }\n\n    /**\n     * Navigate through dropdown with keyboard arrows\n     */\n    private dropdownNavigation(step: number) {\n        this.dropdownPosition += step;\n\n        if (this.dropdownPosition > this._options.length - 1) {\n            this.dropdownPosition = 0;\n        }\n\n        if (this.dropdownPosition < 0) {\n            this.dropdownPosition = this._options.length - 1;\n        }\n\n        let cssClass = 'dropdown-option-hovered';\n        let dropdownContainer = this.renderer.selectRootElement(\n            '.dropdown-options',\n            true\n        );\n\n        let dropdownOption = this.renderer.selectRootElement(\n            '.dropdown-option',\n            true\n        );\n\n        let elOffset =\n            dropdownOption.height()! * this.dropdownPosition +\n            (this.dropdownPosition !== 0 ? this.dropdownPosition * 6 : 0);\n\n        let viewport =\n            dropdownContainer.scrollTop()! + dropdownContainer.height()!;\n\n        if (\n            elOffset < dropdownContainer.scrollTop()! ||\n            elOffset + dropdownOption.height()! > viewport\n        )\n            dropdownContainer.scrollTop(elOffset);\n\n        dropdownOption\n            .removeClass(cssClass)\n            .eq(this.dropdownPosition)\n            .addClass(cssClass);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n        clearTimeout(this.clearTimeoutDropdown as ReturnType<typeof setTimeout>);\n    }\n}\n","<div\n    class=\"application-dropdown\"\n    [ngClass]=\"\n        inputConfig\n            | inputDropdownMultiselectClass\n                : multiselectItems\n                : isMultiSelectInputFocus\n    \"\n>\n    @if (multiselectItems.length) {\n        <p class=\"multiselect-label\">\n            {{ multiSelectLabel }}\n        </p>\n    }\n    <!-- Multiselect arrow -->\n    @if (inputConfig.multiSelectDropdownActive) {\n        <svg-icon\n            class=\"multiselect-arrow\"\n            [src]=\"inputDropdownSvgRoutes.inputDropdownArrowSvg\"\n            (click)=\"toggleMultiselectDropdown()\"\n        ></svg-icon>\n    }\n    <!-- Multiselect clear all -->\n    @if (multiselectItems.length && !inputConfig.isDisabled) {\n        <div\n            class=\"input-clear multiselect-clear\"\n            mainTooltip=\"Clear All\"\n            ngbTooltip\n            position=\"top\"\n            tooltipBackground=\"#2f2f2f\"\n            (click)=\"deleteAllMultiSelectItems()\"\n        >\n            <svg-icon\n                class=\"input-clear-x\"\n                [src]=\"inputDropdownSvgRoutes.xClearSvg\"\n            ></svg-icon>\n        </div>\n    }\n    <!-- Multiselect items -->\n    @if (\n        inputConfig.multiselectDropdown &&\n        multiselectItems.length &&\n        _template === 'multiselect'\n    ) {\n        <div class=\"multiselect-items {{ multiselectTemplate }}\">\n            @for (\n                multiSelect of multiselectItems;\n                let ind = $index;\n                track ind\n            ) {\n                <span class=\"multiselect-item\">\n                    {{ multiSelect?.name }}\n                    <!-- Active - Total Counter -->\n                    @if (\n                        inputConfig.multiSelectItemRange &&\n                        multiSelect?.totalCounter\n                    ) {\n                        <span>\n                            {{ multiSelect?.activeCounter }} of\n                            {{ multiSelect?.totalCounter }}\n                        </span>\n                    }\n\n                    <!-- Active Counter -->\n                    @if (\n                        inputConfig.multiSelectItemRange &&\n                        !multiSelect?.totalCounter\n                    ) {\n                        <span>\n                            {{ multiSelect?.activeCounter }}\n                        </span>\n                    }\n                    @if (!inputConfig.isDisabled) {\n                        <div\n                            (click)=\"removeMultiSelectItem(ind)\"\n                            class=\"multiselect-item-clear\"\n                            mainTooltip=\"Clear\"\n                            ngbTooltip\n                            position=\"top\"\n                            tooltipBackground=\"#2f2f2f\"\n                        >\n                            <svg-icon\n                                [src]=\"inputDropdownSvgRoutes.xClearSvg\"\n                            ></svg-icon>\n                        </div>\n                    }\n                </span>\n            }\n        </div>\n    }\n\n    <!-- Dropdown search -->\n    @if (inputConfig.isIconInput) {\n        <div\n            class=\"d-flex justify-content-center align-items-center input-icon-container\"\n            [ngClass]=\"{\n                valid:\n                    inputConfig.isValidIcon &&\n                    !inputConfig.inputIcon?.includes('custom'),\n                active: popoverRef?.isOpen(),\n            }\"\n        >\n            <svg-icon\n                #t2=\"ngbPopover\"\n                [ngbPopover]=\"caInputDropdownPopover\"\n                popoverClass=\"ca-input-dropdown\"\n                [autoClose]=\"'outside'\"\n                [container]=\"'body'\"\n                [placement]=\"['bottom-left']\"\n                class=\"input-icon\"\n                [src]=\"\n                    inputDropdownSvgRoutes.repairPmSvgRoute +\n                    inputConfig.inputIcon\n                \"\n            ></svg-icon>\n        </div>\n    } @else {\n        <app-ca-input\n            #t2=\"ngbPopover\"\n            [ngbPopover]=\"caInputDropdownPopover\"\n            popoverClass=\"ca-input-dropdown\"\n            [autoClose]=\"'outside'\"\n            [container]=\"'body'\"\n            [placement]=\"\n                _template == 'svgtext-dispatch-template'\n                    ? ['bottom-left', 'top-left']\n                    : ['bottom-left']\n            \"\n            #input\n            [formControl]=\"getSuperControl! | formControl\"\n            [incorrectValue]=\"isIncorrectValue\"\n            [inputConfig]=\"inputConfig\"\n            [selectedDropdownLabelColor]=\"\n                inputConfig.dropdownLabel\n                    ? _activeItem\n                        ? _activeItem\n                        : activeItemColor\n                    : null\n            \"\n            [template]=\"_template\"\n            (blurInput)=\"onBlurInput($event)\"\n            (clear)=\"onClearInputEvent($event)\"\n            (commandEvent)=\"commandEvent($event)\"\n            (showHideDropdown)=\"showHideDropdown($event)\"\n            (dropDownKeyNavigation)=\"dropDownKeyNavigation($event)\"\n            (incorrectEvent)=\"onIncorrectInput($event)\"\n        ></app-ca-input>\n    }\n\n    <!-- Dropdown icon instead of input -->\n</div>\n\n<ng-template #caInputDropdownPopover>\n    <!--------------------------- Dropdown options --------------------------->\n    @if (inputConfig?.mergeDropdownBodyWithInput && _options?.length) {\n        <div\n            class=\"dropdown-options-divider {{\n                inputConfig.dropdownWidthClass\n            }}\"\n            [class.dispatch_dropdown]=\"_template == 'svgtext-dispatch-template'\"\n        ></div>\n    }\n\n    @if (\n        (inputConfig?.name != 'Address' &&\n            inputConfig?.name != 'RoutingAddress' &&\n            !inputConfig.isDisabled) ||\n        ((inputConfig?.name == 'Address' ||\n            inputConfig?.name == 'RoutingAddress') &&\n            !inputConfig.isDisabled &&\n            _options?.length)\n    ) {\n        <div\n            (scroll)=\"onScrollDropdown($event.target)\"\n            [ngClass]=\"{\n                scroll: _options | caDropdownCount: _template,\n                'dropdown-options-groups':\n                    _template === 'groups' ||\n                    _template === 'load-broker-contact',\n                'dropdown-options-fuel-franchise':\n                    _template === 'fuel-franchise',\n                'merge-dropdown-body-with-input':\n                    inputConfig.mergeDropdownBodyWithInput,\n                'no-result-container': _options[0]?.name === 'No Results',\n                'svgtext-dispatch-template':\n                    _template == 'svgtext-dispatch-template',\n            }\"\n            class=\"dropdown-options  {{ inputConfig.dropdownWidthClass }}\"\n        >\n            <div>\n                @switch (_template) {\n                    @case (dropdownTemplateTypeEnum.SVG_TEMPLATE) {\n                        <app-ca-input-dropdown-svg-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-svg-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.SVGTEXT_TEMPLATE) {\n                        <app-ca-input-dropdown-svgtext-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [inputConfig]=\"inputConfig\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-svgtext-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.SVGTEXT_DISPATCH_TEMPLATE) {\n                        <app-ca-input-dropdown-svgtext-dispatch-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [inputConfig]=\"inputConfig\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-svgtext-dispatch-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.DETAILS_TEMPLATE) {\n                        <app-ca-input-dropdown-details-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [sort]=\"_sort\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-details-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.GROUPS) {\n                        <app-ca-input-dropdown-groups\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-groups>\n                    }\n                    @case (dropdownTemplateTypeEnum.MULTISELECT) {\n                        <app-ca-input-dropdown-multiselect\n                            [options]=\"_options\"\n                            [lastActiveMultiselectItem]=\"\n                                lastActiveMultiselectItem\n                            \"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onMultiselectSelect)=\"onMultiselectSelect($event)\"\n                        >\n                        </app-ca-input-dropdown-multiselect>\n                    }\n                    @case (dropdownTemplateTypeEnum.LABELS) {\n                        <app-ca-input-dropdown-labels\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [inputConfig]=\"inputConfig\"\n                            [labelMode]=\"labelMode\"\n                            [canAddNew]=\"_canAddNew\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-labels>\n                    }\n                    @case (dropdownTemplateTypeEnum.DISPATCH) {\n                        <app-ca-input-dropdown-dispatch\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-dispatch>\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_DISPATCHER) {\n                        <app-ca-input-dropdown-load-dispatcher\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-load-dispatcher>\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD) {\n                        <app-ca-input-dropdown-load-dispatches-ttd\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-load-dispatches-ttd>\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_BROKER) {\n                        <app-ca-input-dropdown-load-broker\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-load-broker>\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_BROKER_CONTACT) {\n                        <app-ca-input-dropdown-load-broker-contact\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-load-broker-contact>\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_SHIPPER) {\n                        <app-ca-input-dropdown-load-shipper\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-load-shipper>\n                    }\n                    @case (dropdownTemplateTypeEnum.TEXT_COUNTER) {\n                        <app-ca-input-dropdown-text-counter\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-text-counter>\n                    }\n                    @case (dropdownTemplateTypeEnum.FUEL_FRANCHISE) {\n                        <app-ca-input-dropdown-fuel-franchise\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                            (toggleNestedList)=\"toggleNestedList($event)\"\n                            (onActiveItemGroup)=\"onActiveItemGroup($event)\"\n                        >\n                        </app-ca-input-dropdown-fuel-franchise>\n                    }\n                    @case (dropdownTemplateTypeEnum.DOUBLE_TEXT_TEMPLATE) {\n                        <app-ca-input-dropdown-double-text-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-double-text-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.DOUBLE_COLUMN_TEMPLATE) {\n                        <app-ca-input-dropdown-double-text-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-double-text-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.TRIPLE_COLUMN_TEMPLATE) {\n                        <app-ca-input-dropdown-triple-text-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-triple-text-template>\n                    }\n                    @case (dropdownTemplateTypeEnum.PAYROLL_TRUCKS) {\n                        <app-ca-input-dropdown-payroll-trucks\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-payroll-trucks>\n                    }\n                    @case (dropdownTemplateTypeEnum.PARKING) {\n                        <app-ca-input-dropdown-parking\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [inputConfig]=\"inputConfig\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-parking>\n                    }\n                    @default {\n                        <app-ca-input-dropdown-default-template\n                            [options]=\"_options\"\n                            [activeItem]=\"_activeItem\"\n                            [getSuperControl]=\"getSuperControl\"\n                            [inputConfig]=\"inputConfig\"\n                            (onActiveItem)=\"onActiveItem($event)\"\n                        >\n                        </app-ca-input-dropdown-default-template>\n                    }\n                }\n            </div>\n        </div>\n    }\n</ng-template>\n","export enum InputAddressCommandsStringEnum {\n    CONFIRM = 'confirm',\n    CANCEL = 'cancel',\n    ENTER = 'Enter',\n    ESCAPE = 'Escape',\n}\n","export enum InputAddressStopTypesStringEnum {\n    EMPTY = 'EMPTY',\n    LOADED = 'LOADED',\n}\n","export enum InputAddressTypeStringEnum {\n    LONG_ADDRESS = 'longAddress',\n    SHORT_ADDRESS = 'shortAddress',\n    ROUTING_ADDRESS = 'RoutingAddress',\n}\n","export enum InputAddressLayersStringEnum {\n    ADDRESS = 'Address',\n    LOCALITY = 'Locality',\n}\n","export enum eInputBasicString {\n    SMALL = 'small',\n    WHITE = 'white',\n}","import { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Self,\n    ViewChild,\n    ViewEncapsulation,\n    ChangeDetectorRef,\n    HostListener,\n} from '@angular/core';\nimport {\n    catchError,\n    debounceTime,\n    distinctUntilChanged,\n    filter,\n    of,\n    Subject,\n    switchMap,\n    takeUntil,\n    tap,\n} from 'rxjs';\nimport {\n    UntypedFormGroup,\n    NgControl,\n    ControlValueAccessor,\n    FormsModule,\n} from '@angular/forms';\n\n// Config\nimport { ICaInput } from '../ca-input/config/ca-input.config';\n\n// Components\nimport { CaInputDropdownComponent } from '../ca-input-dropdown/ca-input-dropdown.component';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// enums\nimport { InputAddressCommandsStringEnum } from './enums/input-address-commands-string.enum';\nimport { InputAddressStopTypesStringEnum } from './enums/input-address-stop-types-string.enum';\nimport { InputAddressTypeStringEnum } from './enums/input-address-type-string.enum';\nimport { InputAddressLayersStringEnum } from './enums/input-address-layers-string.enum';\nimport { eInputBasicString } from './enums/input-address-basic-string.enum';\nimport { eSharedString } from '../../enums';\n\n// models\nimport { AddressData } from './models/address-data.model';\nimport { AddressList } from './models/address-list.model';\nimport { CommandsHandler } from './models/commands-handler.model';\nimport { AutocompleteSearchLayer } from '../../models/autocomplete-search-layer.model';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { InputAddressCommandsString } from './models/input-address-commands-string.model';\nimport { SentAddressData } from './models/sent-address-data.model';\nimport { AddressListResponse } from '../../models/address-list-response.model';\n\n@Component({\n    selector: 'app-ca-input-address-dropdown',\n    templateUrl: './ca-input-address-dropdown.component.html',\n    styleUrls: [\n        './ca-input-address-dropdown.component.scss',\n        '../ca-input/ca-input.component.scss',\n    ],\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // Modules\n        CommonModule,\n        FormsModule,\n        NgbModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        // Components\n        CaInputDropdownComponent,\n        CaAppTooltipV2Component,\n    ]\n})\nexport class CaInputAddressDropdownComponent\n    implements OnInit, ControlValueAccessor, OnDestroy\n{\n    @ViewChild('inputDropdown') inputDropdown!: CaInputDropdownComponent;\n\n    @Input() set placeholderType(value: string) {\n        this.checkSearchLayers(value);\n    }\n\n    @Input() public set activeAddress(value: AddressList | null) {\n        if (value) {\n            this._activeAddress = value;\n            let isValid = true;\n            if (\n                this.searchLayers?.[0] === InputAddressLayersStringEnum.ADDRESS\n            ) {\n                const address = value?.address;\n                if (address) isValid = this.checkAddressValidation(address);\n            }\n\n            if (!value || !isValid)\n                this.getSuperControl!.setErrors({ invalid: true });\n            else this.getSuperControl!.setErrors(null);\n        }\n    }\n\n    @Input() public set receivedAddressData(value: AddressData | null) {\n        if (value) {\n            this.currentAddressData = {\n                address: value.address!,\n                valid: value.address && value.longLat ? true : false,\n                longLat: value.longLat,\n                isParking: this.isParkingAddressSelected,\n            };\n\n            if (this.currentAddressData!.valid) {\n                this.getSuperControl!.setErrors(null);\n            }\n\n            this.selectedAddress.emit(this.currentAddressData!);\n        }\n    }\n    @Input() public set receivedAddressList(value: AddressListResponse | null) {\n        this._receivedAddressList = value;\n\n        if (value?.addresses) {\n            let parkingAddressesList: any = [];\n            this.addresList = value.addresses.map(\n                (item: string, indx: number) => {\n                    const parkingAddress =\n                        this.template === eSharedString.PARKING_LOWERCASE &&\n                        this._parkingList?.length\n                            ? this.filterParkingByCity(item)\n                            : null;\n\n                    if (parkingAddress?.length)\n                        parkingAddressesList.push({\n                            name: item,\n                            id: indx,\n                            parkingAddress,\n                        });\n                    return {\n                        name: item,\n                        id: indx,\n                    };\n                }\n            );\n\n            this.addresList = [...parkingAddressesList, ...this.addresList];\n        }\n    }\n\n    @Input() public set parkingList(value: any[]) {\n        // leave any need backend for this\n        this._parkingList = value;\n    }\n\n    @Output() public sentAddressValue: EventEmitter<string> =\n        new EventEmitter<string>();\n\n    @Input() public inputConfig!: ICaInput;\n    @Input() public commandHandler!: CommandsHandler;\n    @Input() public isRouting: boolean = false;\n    @Input() public closedBorder: boolean = false;\n    @Input() public incorrectValue!: boolean;\n    @Input() public hideEmptyLoaded: boolean = false;\n    @Input() public addresList!: AddressList[];\n    @Input() public template!: string;\n\n    @Output() selectedAddress: EventEmitter<AddressData> =\n        new EventEmitter<AddressData>();\n    @Output() sentAddressData: EventEmitter<SentAddressData> =\n        new EventEmitter<SentAddressData>();\n\n    @Output()\n    closeDropdown: EventEmitter<boolean> = new EventEmitter<boolean>();\n    @Output() commandEvent: EventEmitter<AddressData | {}> = new EventEmitter<\n        AddressData | {}\n    >();\n    @Output() changeFlag: EventEmitter<boolean> = new EventEmitter<boolean>();\n    @Output() incorrectEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    @HostListener('document:keydown', ['$event'])\n    handleKeyboardEvent(event: KeyboardEvent) {\n        const key = event.key;\n        if (\n            this.inputConfig.name == InputAddressTypeStringEnum.ROUTING_ADDRESS\n        ) {\n            if (key === InputAddressCommandsStringEnum.ENTER) {\n                if (this.currentAddressData) {\n                    this.onCommands(\n                        event,\n                        InputAddressCommandsStringEnum.CONFIRM\n                    );\n                }\n            } else if (key === InputAddressCommandsStringEnum.ESCAPE) {\n                this.clearInput(event);\n            }\n        }\n    }\n\n    //Address data\n    private searchLayers!: AutocompleteSearchLayer[];\n    public currentAddressData: AddressData | null = null;\n\n    //Confg\n    public addressExpanded: boolean = false;\n    public chosenFromDropdown: boolean = false;\n    private allowValidation: boolean = false;\n    public stopType: string = InputAddressStopTypesStringEnum.EMPTY;\n    private requestSent: boolean = false;\n    public _receivedAddressList: AddressListResponse | null = null;\n    public _activeAddress: AddressList | null = null;\n    public _parkingList: any = null; //leave any for now\n    private destroy$ = new Subject<void>();\n    public addressForm!: UntypedFormGroup;\n    public isParkingAddressSelected: boolean = false;\n\n    constructor(\n        @Self() public superControl: NgControl,\n        private ref: ChangeDetectorRef\n    ) {\n        this.superControl.valueAccessor = this;\n    }\n\n    writeValue(_: any): void {}\n\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    public onChange(_: any): void {}\n\n    public registerOnTouched(_: any): void {}\n\n    ngOnInit(): void {\n        this.initChangesListener();\n        this.inputConfig = {\n            ...this.inputConfig,\n            textTransform: 'capitalizedcase',\n        };\n    }\n\n    public initChangesListener(): void {\n        this.getSuperControl?.valueChanges\n            ?.pipe(\n                distinctUntilChanged(),\n                takeUntil(this.destroy$),\n                tap((term) => {\n                    this.inputConfig = {\n                        ...this.inputConfig,\n                        loadingSpinner: {\n                            ...this.inputConfig.loadingSpinner,\n                            isLoading: true,\n                            size: eInputBasicString.SMALL,\n                            color: eInputBasicString.WHITE,\n                        },\n                    };\n\n                    if (!term) {\n                        this.inputConfig = {\n                            ...this.inputConfig,\n                            loadingSpinner: {\n                                ...this.inputConfig.loadingSpinner,\n                                isLoading: false,\n                            },\n                        };\n                        this.addresList = [];\n                    } else if (\n                        term !== this.currentAddressData?.address.address &&\n                        this.inputConfig.name ===\n                            InputAddressTypeStringEnum.ROUTING_ADDRESS\n                    ) {\n                        this.currentAddressData = null;\n                    }\n                    if (\n                        this.inputConfig.name !==\n                            InputAddressTypeStringEnum.ROUTING_ADDRESS &&\n                        this.allowValidation &&\n                        this.inputDropdown.inputRef.isFocusInput\n                    ) {\n                        this.requestSent = false;\n                        const addressData = {\n                            address: {},\n                            valid: false,\n                            longLat: {},\n                        };\n                        this.selectedAddress.emit(addressData);\n                    }\n\n                    this.allowValidation = true;\n                }),\n                filter((term: string) => {\n                    return term?.length >= 3;\n                }),\n                debounceTime(500),\n                switchMap((query: string) => {\n                    const params = {\n                        query: query,\n                        searchLayers: this.searchLayers,\n                        closedBorder: this.closedBorder,\n                    };\n\n                    this.sentAddressData.next(params);\n\n                    return of(this.receivedAddressList).pipe(\n                        catchError(() => of([]))\n                    );\n                })\n            )\n            .subscribe(() => {\n                let isValid = true;\n                if (\n                    this.searchLayers?.[0] ===\n                    InputAddressLayersStringEnum.ADDRESS\n                ) {\n                    const address = this._activeAddress?.address;\n                    if (address) isValid = this.checkAddressValidation(address);\n                }\n\n                if (!this._activeAddress || !isValid)\n                    this.getSuperControl!.setErrors({ invalid: true });\n                else this.getSuperControl!.setErrors(null);\n\n                this.inputConfig = {\n                    ...this.inputConfig,\n                    loadingSpinner: {\n                        ...this.inputConfig.loadingSpinner,\n                        isLoading: false,\n                    },\n                };\n\n                this.ref.detectChanges();\n            });\n    }\n\n    get getSuperControl() {\n        return this.superControl.control as FormControl;\n    }\n\n    public onCloseDropdown(event: boolean): void {\n        let isValid = true;\n        setTimeout(() => {\n            if (\n                this.searchLayers?.[0] === InputAddressLayersStringEnum.ADDRESS\n            ) {\n                const address = this._activeAddress?.address;\n                if (address) isValid = this.checkAddressValidation(address);\n\n                if (!isValid)\n                    this.getSuperControl!.setErrors({ invalid: true });\n            }\n            if (!this.requestSent && isValid)\n                this.getSuperControl!.setErrors({ invalid: true });\n            if (\n                this.getSuperControl!.value === this._activeAddress?.address &&\n                isValid\n            )\n                this.getSuperControl!.setErrors(null);\n        }, 200);\n        this.closeDropdown.emit(event);\n    }\n\n    public getAddressData(address: string): void {\n        this.requestSent = true;\n\n        this.sentAddressValue.emit(address);\n    }\n\n    public onSelectDropdown(event: AddressList | null): void {\n        this._activeAddress = event ? { ...event, address: event?.name } : null;\n\n        this.isParkingAddressSelected = this._activeAddress?.parkingAddress?.length ? true : false;\n\n        if (event?.name) {\n            if (\n                this.searchLayers?.[0] === InputAddressLayersStringEnum.ADDRESS\n            ) {\n                const isValid = this.checkAddressValidation(event.name);\n\n                if (isValid) {\n                    this.getAddressData(event.name);\n                    this.getSuperControl!.setValue(event.name);\n                    this.getSuperControl!.setErrors(null);\n                } else {\n                    this.getSuperControl!.setErrors({\n                        invalid: true,\n                    });\n                }\n            } else {\n                this.getAddressData(event.name);\n                this.getSuperControl!.setValue(event.name);\n                this.getSuperControl!.setErrors(null);\n            }\n\n            this.chosenFromDropdown = true;\n        } else {\n            this.onClearInputEvent();\n            this.currentAddressData = null;\n            this.addresList = [];\n        }\n        this.inputDropdown?.popoverRef?.close();\n    }\n\n    public onCommands(\n        event: KeyboardEvent,\n        type: InputAddressCommandsString\n    ): void {\n        event.preventDefault();\n        event.stopPropagation();\n\n        if (\n            (type === InputAddressCommandsStringEnum.CONFIRM &&\n                this.currentAddressData) ||\n            type === InputAddressCommandsStringEnum.CANCEL\n        ) {\n            this.currentAddressData!.type = type;\n            this.commandEvent.emit(this.currentAddressData ?? {});\n\n            this.closeAddress();\n            this.clearInput(event);\n        }\n    }\n\n    public addressExpand(): void {\n        if (!this.addressExpanded) this.addressExpanded = true;\n    }\n\n    public closeAddress(): void {\n        this.addressExpanded = false;\n    }\n\n    public clearInput(event: KeyboardEvent): void {\n        this.currentAddressData = null;\n        this.addresList = [];\n        this.getSuperControl!.setValue(null);\n        this._activeAddress = null;\n        this.inputDropdown?.inputRef?.clearInput(event);\n        this.chosenFromDropdown = false;\n    }\n\n    private checkSearchLayers(value: string): void {\n        this.searchLayers =\n            value === InputAddressTypeStringEnum.LONG_ADDRESS\n                ? [InputAddressLayersStringEnum.ADDRESS]\n                : value === InputAddressTypeStringEnum.SHORT_ADDRESS\n                  ? [InputAddressLayersStringEnum.LOCALITY]\n                  : [];\n    }\n\n    public changeStopType(): void {\n        let flag = false;\n        if (this.stopType === InputAddressStopTypesStringEnum.EMPTY) {\n            this.stopType = InputAddressStopTypesStringEnum.LOADED;\n            flag = true;\n        } else {\n            this.stopType = InputAddressStopTypesStringEnum.EMPTY;\n        }\n\n        this.changeFlag.emit(flag);\n\n        if (!this.chosenFromDropdown) {\n            this.inputDropdown?.inputRef?.input.nativeElement.focus();\n            setTimeout(() => {\n                this.inputDropdown.inputRef.isFocusInput = true;\n            }, 500);\n        }\n    }\n\n    public onIncorrectInput(event: boolean): void {\n        this.incorrectEvent.emit(event);\n    }\n\n    public onClearInputEvent(): void {\n        if (this.inputConfig.isRequired) {\n            setTimeout(() => {\n                this.getSuperControl!.setErrors({ required: true });\n            }, 300);\n        }\n        const addressData = {\n            address: {},\n            valid: false,\n            longLat: {},\n        };\n        this.selectedAddress.emit(addressData);\n    }\n\n    private checkAddressValidation(address: string): boolean {\n        const streetNum = /\\d/;\n\n        return streetNum.test(address) ? true : false;\n    }\n\n    private filterParkingByCity(searchString: string): any {\n        const formattedSearchString = searchString\n            .trim()\n            .replace(/\\s*,\\s*/g, ', ');\n\n        const isParking = this._parkingList.filter((parking: any) => {\n            const { city, stateShortName, country } = parking.address || {};\n            const formattedAddress = `${city}, ${stateShortName}, ${country}`;\n            if (formattedAddress === formattedSearchString) parking.address.isParking = true;\n            return formattedAddress === formattedSearchString;\n        });\n\n        return isParking;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"address_holder d-flex align-items-center\" (click)=\"addressExpand()\">\n    <div\n        class=\"main_address_holder\"\n        [ngClass]=\"{\n            input_for_routing: isRouting,\n            not_expanded: isRouting && !addressExpanded,\n            expanded_address: isRouting && addressExpanded,\n        }\"\n    >\n        <app-ca-input-dropdown\n            #inputDropdown\n            [formControl]=\"getSuperControl\"\n            [inputConfig]=\"inputConfig\"\n            [options]=\"addresList\"\n            [activeItem]=\"_activeAddress\"\n            [isIncorrectValue]=\"incorrectValue\"\n            [template]=\"template\"\n            (incorrectEvent)=\"onIncorrectInput($event)\"\n            (selectedItem)=\"onSelectDropdown($event)\"\n            (closeDropdown)=\"onCloseDropdown($event)\"\n            (clearInputEvent)=\"onClearInputEvent()\"\n        ></app-ca-input-dropdown>\n        @if (isRouting && addressExpanded && !hideEmptyLoaded) {\n            <div\n                class=\"stop_hold d-flex justify-content-center align-items-center\"\n                (click)=\"changeStopType()\"\n            >\n                <div class=\"stop_text\">{{ stopType }}</div>\n            </div>\n        }\n    </div>\n    @if (isRouting && addressExpanded) {\n        <div class=\"ca-input-commands address-flag d-flex align-items-center\">\n            <div\n                class=\"main-commands ca-input-command-first\"\n                ngbTooltip\n                [mainCaTooltip]=\"\n                    commandHandler.commands?.firstCommand?.popup?.name\n                \"\n                [tooltipBackground]=\"\n                    commandHandler.commands?.firstCommand?.popup\n                        ?.backgroundColor\n                \"\n                [disableTooltip]=\"!commandHandler.commands?.firstCommand?.popup\"\n                position=\"top\"\n            >\n                <svg-icon\n                    class=\"ca-input-command-svg-first\"\n                    [class.allow_confirm]=\"chosenFromDropdown\"\n                    [src]=\"commandHandler.commands.firstCommand.svg\"\n                    (keydown)=\"onCommands($event, 'confirm')\"\n                ></svg-icon>\n            </div>\n            <div\n                class=\"main-commands ca-input-command-second\"\n                ngbTooltip\n                [mainCaTooltip]=\"\n                    commandHandler.commands?.secondCommand?.popup?.name\n                \"\n                [tooltipBackground]=\"\n                    commandHandler.commands?.secondCommand?.popup\n                        ?.backgroundColor\n                \"\n                [disableTooltip]=\"\n                    !commandHandler.commands?.secondCommand?.popup\n                \"\n                position=\"top\"\n            >\n                <svg-icon\n                    class=\"ca-input-command-svg-second\"\n                    [src]=\"commandHandler.commands.secondCommand.svg\"\n                    (keydown)=\"onCommands($event, 'cancel')\"\n                ></svg-icon>\n            </div>\n        </div>\n    }\n</div>\n","export class RatingReviewsRoutes {\n    static likesButton: string =\n        'assets/ca-components/svg/rating-reviews/likes.svg';\n    static dislikeButton: string =\n        'assets/ca-components/svg/rating-reviews/dislikes.svg';\n    static reviewButton: string = 'assets/ca-components/svg/rating-reviews/reviews.svg';\n    static trash: string = 'assets/ca-components/svg/rating-reviews/trash.svg';\n    static pen: string = 'assets/ca-components/svg/rating-reviews/pen.svg';\n    static colaps: string = 'assets/ca-components/svg/rating-reviews/colaps-button.svg';\n    static removeSelectedValue: string = 'assets/ca-components/svg/truckassist-table/x.svg';\n    static add: string = 'assets/ca-components/svg/dropdown/add.svg';\n    static sortIcon: string = 'assets/ca-components/svg/rating-reviews/sort_icon.svg';\n    static confirm: string ='assets/ca-components/svg/comment/confirm.svg';\n    static cancel: string = 'assets/ca-components/svg/comment/cancel.svg';\n\n}\n","export enum RatingReviewsTypeEnum {\n    All = \"All\",\n    RATING = \"RATING\",\n    REVIEW = \"REVIEW\",\n  }\n  export enum RatingReviewsEnum {\n    REVIEW_MESSAGE = \"reviewMessage\",\n    REACTION = \"reaction\",\n    SAVE = \"save\",\n    DELETE = \"delete\",\n    LIKES = \"likes\",\n    DISLIKES = \"dislikes\",\n    REVIEWS = \"reviews\",\n\n  }\n  ","\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n    Component,\n    Input,\n    ViewChild,\n    ChangeDetectorRef,\n    ElementRef,\n    QueryList,\n    ViewChildren,\n    OnInit,\n    Output,\n    EventEmitter,\n} from '@angular/core';\nimport { NgbModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    FormsModule,\n    FormGroup,\n    FormBuilder,\n    FormControl,\n    ReactiveFormsModule,\n} from '@angular/forms';\n\n//routes\nimport { RatingReviewsRoutes } from '../../utils/svg-routes/ratings-reviews.routes';\n\n//components\n\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n//models\nimport { RatingReviewModel } from '../../models/rating-review.model';\n\n//enums\nimport { RatingReviewsEnum } from '../../enums/rating-reviews-type.enums';\n\n//pipes \nimport { DateFormatPipe } from '../../../../pipes/date.pipe';\n\n@Component({\n    selector: 'app-ca-rating-review-user',\n    templateUrl: './ca-rating-review-user.component.html',\n    styleUrls: ['./ca-rating-review-user.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        NgbModule,\n        FormsModule,\n        AngularSvgIconModule,\n        NgbTooltipModule,\n        ReactiveFormsModule,\n        //components\n        CaAppTooltipV2Component,\n        CaProfileImageComponent,\n        //pipes\n        DateFormatPipe,\n    ]\n})\nexport class CaRatingReviewUserComponent implements OnInit {\n    @ViewChildren('reviewMessage') reviewMessageRef!: QueryList<ElementRef>;\n    @ViewChild('content') contentElement!: ElementRef;\n    @Input() isRating?: boolean;\n    @Input() isNewReview?: boolean;\n    @Input() isFilter?: boolean;\n    @Input() data!: RatingReviewModel;\n    @Output() ratingReviewData = new EventEmitter<any>();\n\n    public reviewForm!: FormGroup;\n    public isEdit!: boolean;\n    public isExpanded: boolean = false;\n    public isOverflowing: boolean = false;\n\n    constructor(private cdr: ChangeDetectorRef, private fb: FormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n    }\n\n    ngAfterViewInit() {\n        this.checkOverflow();\n    }\n\n    public createForm(): void {\n        this.reviewForm = this.fb.group({\n            reviewMessage: new FormControl(this.data?.comment || ''),\n            reaction: new FormControl(this.data?.thumb || null),\n        });\n    }\n\n    public getSvgPath(propertyName: keyof typeof RatingReviewsRoutes): string {\n        return RatingReviewsRoutes[propertyName] as string;\n    }\n\n    get reviewMessageControl(): FormControl {\n        return this.reviewForm.get(\n            RatingReviewsEnum.REVIEW_MESSAGE\n        ) as FormControl;\n    }\n\n    get reactionControl(): FormControl {\n        return this.reviewForm.get(RatingReviewsEnum.REACTION) as FormControl;\n    }\n\n    public checkOverflow(): void {\n        if (this.data?.comment) {\n            const content = this.contentElement.nativeElement;\n            this.isOverflowing = content.scrollWidth > content.clientWidth;\n            this.cdr.detectChanges();\n        }\n    }\n\n    public toggleExpand(): void {\n        this.isExpanded = !this.isExpanded;\n    }\n\n    public toggleReaction(reactionValue: number): void {\n        const currentReaction = this.reactionControl.value;\n\n        if (currentReaction === reactionValue) {\n            this.reactionControl.setValue(null);\n        } else {\n            this.reactionControl.setValue(reactionValue);\n        }\n    }\n\n    public editData(): void {\n        this.isEdit = !this.isEdit;\n\n        if (this.isEdit) {\n            this.reviewForm.patchValue({\n                reviewMessage: this.data?.comment || '',\n                reaction: this.data?.thumb || null,\n            });\n        }\n\n        this.ratingReviewData.emit({\n            action: RatingReviewsEnum.SAVE,\n            data: this.data,\n        });\n    }\n\n    public saveReview(): void {\n        if (this.reviewForm.valid) {\n            const updatedData = this.reviewForm.value;\n            this.data.comment = updatedData.reviewMessage;\n            this.data.thumb = updatedData.reaction;\n            this.data.updatedAt = new Date();\n            this.isEdit = false;\n            this.ratingReviewData.emit({\n                action: RatingReviewsEnum.SAVE,\n                data: this.data,\n            });\n        }\n    }\n\n    public deleteReview(): void {\n        this.ratingReviewData.emit({\n            action: RatingReviewsEnum.DELETE,\n            data: this.data,\n        });\n    }\n\n    public cancelReview(): void {\n        if (this.data.id) {\n            this.isEdit = false;\n        }\n    }\n\n    public saveComment(): void {\n        this.isEdit = false;\n    }\n}\n","<div\n    class=\"ta-user-review d-flex flex-column\"\n    [ngClass]=\"{\n        expanded: isOverflowing,\n        edit: (isEdit || isNewReview) && !isFilter,\n        'edit-dark': (isEdit || isNewReview) && isFilter,\n        darkText: isFilter,\n        whiteTex: !isFilter,\n    }\"\n    (click)=\"toggleExpand()\"\n>\n    <div\n        class=\"ta-user-information d-flex align-items-center justify-content-between\"\n    >\n        <div class=\"no-profile-image\">\n            <app-ca-profile-image\n                [avatarImg]=\"data?.user?.avatarImage\"\n                [size]=\"'small'\"\n                [isHoverEffect]=\"false\"\n            ></app-ca-profile-image>\n        </div>\n\n        <div class=\"ta-user-data d-flex\">\n            <div\n                class=\"ta-user-name-rating\"\n                [ngClass]=\"{ 'justify-content-between': isEdit }\"\n            >\n                <p\n                    class=\"ta-user-fullname\"\n                    [ngClass]=\"{\n                        'ta-user-fullname-edit': isEdit && !isFilter,\n                        darkText: isFilter && !isEdit,\n                        'edit-dark': (isEdit || isNewReview) && isFilter,\n                    }\"\n                >\n                    {{ data?.user?.name }}\n                    @if (data?.owner && !isEdit && !isNewReview) {\n                        <span class=\"current-user\">(Me)</span>\n                    }\n                </p>\n\n                @if (!isEdit && !isNewReview && data?.thumb) {\n                    <svg-icon\n                        class=\"ta-user-reaction\"\n                        [ngClass]=\"{\n                            like: data?.thumb === 1,\n                            dislike: data?.thumb === -1,\n                        }\"\n                        [src]=\"\n                            data?.thumb === -1\n                                ? getSvgPath('dislikeButton')\n                                : getSvgPath('likesButton')\n                        \"\n                    ></svg-icon>\n                }\n            </div>\n            <div class=\"ta-user-datetime\">\n                @if (isEdit || isNewReview) {\n                    <p class=\"edit-review\">\n                        {{ isEdit ? 'Edit Review' : 'Posting Publicly' }}\n                    </p>\n                } @else {\n                    <div class=\"ta-user-date\">\n                        {{ data?.updatedAt! | dateFormat }}\n                    </div>\n                }\n            </div>\n        </div>\n\n        @if (\n            (data?.owner &&\n                ((isExpanded && isOverflowing) || !isOverflowing)) ||\n            isNewReview\n        ) {\n            <div\n                class=\"ta-user-actions d-flex align-items-center justify-content-center\"\n                [ngClass]=\"{ 'd-flex': isEdit || isNewReview }\"\n            >\n                @if (isEdit || isNewReview) {\n                    <div\n                        class=\"ta-user-actions-reaction d-flex justify-content-between\"\n                    >\n                        <div\n                            class=\"ta-user-reaction\"\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                reactionControl.value === 1\n                                    ? ' Remove Like'\n                                    : ' like'\n                            \"\n                            position=\"top\"\n                            tooltipBackground=\"#CCCCCC\"\n                            [ngClass]=\"{ like: reactionControl.value === 1 }\"\n                        >\n                            <svg-icon\n                                [src]=\"getSvgPath('likesButton')\"\n                                (click)=\"toggleReaction(1)\"\n                            ></svg-icon>\n                        </div>\n                        <div\n                            class=\"ta-user-reaction\"\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                reactionControl.value === -1\n                                    ? 'Remove Dislike'\n                                    : ' Dislike'\n                            \"\n                            position=\"top\"\n                            tooltipBackground=\"#CCCCCC\"\n                            [ngClass]=\"{\n                                dislike: reactionControl.value === -1,\n                            }\"\n                        >\n                            <svg-icon\n                                [src]=\"getSvgPath('dislikeButton')\"\n                                (click)=\"toggleReaction(-1)\"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                }\n                <div\n                    ngbTooltip\n                    [mainCaTooltip]=\"isEdit ? 'Post Review' : 'Edit'\"\n                    position=\"top\"\n                    tooltipBackground=\"#CCCCCC\"\n                    class=\"action-edit\"\n                >\n                    <svg-icon\n                        [src]=\"\n                            isEdit || isNewReview\n                                ? getSvgPath('confirm')\n                                : getSvgPath('pen')\n                        \"\n                        (click)=\"\n                            isEdit || isNewReview ? saveReview() : editData()\n                        \"\n                    ></svg-icon>\n                </div>\n                <div\n                    ngbTooltip\n                    [mainCaTooltip]=\"\n                        isNewReview || isEdit ? 'Cancel' : 'Delete'\n                    \"\n                    position=\"top\"\n                    [tooltipBackground]=\"\n                        isNewReview || isEdit ? '#CCCCCC' : '#EF5350'\n                    \"\n                    [ngClass]=\"\n                        isEdit || isNewReview\n                            ? 'action-cancel'\n                            : 'action-delete'\n                    \"\n                >\n                    <svg-icon\n                        [src]=\"\n                            isEdit || isNewReview\n                                ? getSvgPath('cancel')\n                                : getSvgPath('trash')\n                        \"\n                        (click)=\"\n                            isEdit || isNewReview\n                                ? cancelReview()\n                                : deleteReview()\n                        \"\n                    ></svg-icon>\n                </div>\n            </div>\n        }\n        @if (isOverflowing) {\n            <svg-icon\n                class=\"colaps\"\n                [ngStyle]=\"{\n                    transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)',\n                }\"\n                [src]=\"getSvgPath('colaps')\"\n            ></svg-icon>\n        }\n    </div>\n\n    @if (isEdit || isNewReview) {\n        <div class=\"textarea\">\n            <textarea\n                #reviewMessage\n                class=\"review-textarea\"\n                [ngClass]=\"{ 'edit-dark': (isEdit || isNewReview) && isFilter }\"\n                [formControl]=\"reviewMessageControl\"\n            ></textarea>\n        </div>\n    } @else {\n        @if (data.comment) {\n            <div\n                class=\"review d-flex\"\n                [ngClass]=\"{ expanded: isExpanded, darkText: isFilter }\"\n                [style.height]=\"isExpanded ? 'auto' : '18px'\"\n                #content\n            >\n                {{ data.comment }}\n            </div>\n        }\n    }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n//models\nimport  { RatingReviewModel } from '../../models/rating-review.model';\n\n@Pipe({\n  name: 'filterByTitle',\n  standalone:true\n})\nexport class FilterByTitlePipe implements PipeTransform {\n\n  transform(items: RatingReviewModel[], filterTitle: string): any[] {\n    if (!items || !filterTitle) {\n      return items;\n    }\n\n    return items.filter(item =>\n      item?.comment?.toLowerCase().includes(filterTitle.toLowerCase()) || item?.user?.name?.toLowerCase().includes(filterTitle.toLowerCase())\n    );\n  }\n}\n","import type { ICaInput } from \"../../../ca-input/config/ca-input.config\";\n\nexport class getRatingReviewSearch {\n  static getRatingReviewSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Find Title',\n      placeholderIcon: 'ic_search',\n      customClass: 'filter-search-input',\n      placeholderInsteadOfLabel: true,\n      isDisabled: false,\n      blackInput: true,\n    };\n  }\n}\n","import type { RatingReviewModel } from \"../../models/rating-review.model\";\n\nexport class RatingReviewHelper {\n\n    static sortByDate(isSortedByDate:boolean,ratingReviewList:RatingReviewModel[]): void {\n        if (isSortedByDate) {\n            ratingReviewList.sort((a: any, b: any) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());\n        } else {\n            ratingReviewList.sort((a: any, b: any) => new Date(a.updatedAt).getTime() - new Date(b.updatedAt).getTime());\n        }\n    }\n\n}","\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n    FormsModule,\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Component, Input, Output, OnInit, EventEmitter } from '@angular/core';\nimport { NgbModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//enums\nimport { RatingReviewsTypeEnum } from '../../enums/rating-reviews-type.enums';\n\n//components\nimport { CaRatingReviewUserComponent } from '../ca-rating-review-user/ca-rating-review-user.component';\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\n\n//pipes\nimport { FilterByTitlePipe } from '../../utils/pipe/filter-title.pipe';\n\n//configs\nimport { getRatingReviewSearch } from '../../utils/config/rating-review-search.config';\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\n\n// models\nimport { RatingReviewModel } from '../../models/rating-review.model';\n\n//routes\nimport { RatingReviewsRoutes } from '../../utils/svg-routes/ratings-reviews.routes';\nimport { RatingReviewHelper } from '../../utils/helpers/sort-data.helper';\n\n@Component({\n    selector: 'app-ca-ratings-reviews-popup',\n    templateUrl: './ca-ratings-reviews-popup.component.html',\n    styleUrls: ['./ca-ratings-reviews-popup.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        HttpClientModule,\n        NgbModule,\n        FormsModule,\n        NgbTooltipModule,\n        AngularSvgIconModule,\n        ReactiveFormsModule,\n        // components\n        CaRatingReviewUserComponent,\n        CaInputComponent,\n        // pipes\n        FilterByTitlePipe\n    ]\n})\nexport class CaRatingsReviewsPopupComponent implements OnInit {\n    @Input() ratingsReviews!: RatingReviewModel[];\n    @Input() newReviewRating!: RatingReviewModel;\n    @Input() focusedTab!: RatingReviewsTypeEnum;\n    @Output() emitData = new EventEmitter<any>();\n\n    public tabs: RatingReviewsTypeEnum[] = Object.values(RatingReviewsTypeEnum);\n    public likesDislikesData: any;\n    public searchForm!: UntypedFormGroup;\n    public isSortedByDate: boolean = false;\n    public isNewReview: boolean = false;\n    public isCurentUserLeaveReview!: boolean;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n\n        this.isCurentUserLeaveReview = this.ratingsReviews.some(\n            (ratingsReviews: RatingReviewModel) => ratingsReviews.owner\n        );\n    }\n\n    public createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n    }\n\n    public getSvgPath(propertyName: keyof typeof RatingReviewsRoutes): string {\n        return RatingReviewsRoutes[propertyName] as string;\n    }\n\n    get ratingReviewSearch(): ICaInput {\n        return getRatingReviewSearch.getRatingReviewSearch();\n    }\n\n    public setFocusedTab(tab: RatingReviewsTypeEnum): void {\n        this.focusedTab = tab;\n        if (this.focusedTab === RatingReviewsTypeEnum.RATING) {\n            this.likesDislikesData = this.ratingsReviews.filter(\n                (ratingsReview: RatingReviewModel) => {\n                    return ratingsReview.thumb && !ratingsReview.comment;\n                }\n            );\n        } else if (this.focusedTab === RatingReviewsTypeEnum.REVIEW) {\n            this.likesDislikesData = this.ratingsReviews.filter(\n                (ratingsReview: RatingReviewModel) => {\n                    return ratingsReview.comment;\n                }\n            );\n        }\n    }\n\n    public newReview(): void {\n        this.isNewReview = true;\n    }\n\n    public addNewReview(newReviewData: RatingReviewModel): void {\n        this.emitData.emit(newReviewData);\n        this.isNewReview = false;\n    }\n\n    public sortByDate(): void {\n        this.isSortedByDate = !this.isSortedByDate;\n        RatingReviewHelper.sortByDate(this.isSortedByDate, this.ratingsReviews);\n    }\n\n    public ratingData(event: any): void {\n        this.emitData.emit(event);\n    }\n}\n","<div class=\"rating-review-component\">\n    <div\n        class=\"rating-review-component-header d-flex align-items-center justify-content-between\"\n    >\n        <div\n            class=\"assigned-load-holder d-flex justify-content-between align-items-center\"\n        >\n            <span class=\"ca-font-extra-bold\">Rating & Review</span>\n            <span\n                class=\"round-number d-flex justify-content-center align-items-center\"\n            >\n                {{ ratingsReviews?.length ?? 0 }}\n            </span>\n        </div>\n        @if (ratingsReviews?.length) {\n            <div\n                class=\"sort-date d-flex justify-content-center align-items-center\"\n            >\n                <p (click)=\"sortByDate()\">Date</p>\n                <svg-icon\n                    class=\"svg-size-16\"\n                    [src]=\"getSvgPath('sortIcon')\"\n                    (click)=\"sortByDate()\"\n                ></svg-icon>\n            </div>\n        }\n    </div>\n\n    @if (ratingsReviews?.length || isNewReview) {\n        @if (ratingsReviews?.length) {\n            <div class=\"search-input-header\" [formGroup]=\"searchForm\">\n                <app-ca-input\n                    class=\"input-form-holder\"\n                    formControlName=\"search\"\n                    [inputConfig]=\"ratingReviewSearch\"\n                ></app-ca-input>\n            </div>\n\n            <div class=\"statusBar d-flex justify-content-evenly\">\n                @for (tab of tabs; let indx = $index; track indx) {\n                    <button\n                        class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n                        (click)=\"setFocusedTab(tab)\"\n                        [class.active]=\"focusedTab === tab\"\n                    >\n                        {{ tab }}\n                    </button>\n                }\n            </div>\n            @if (!isCurentUserLeaveReview && !isNewReview) {\n                <div\n                    (click)=\"newReview()\"\n                    class=\"add d-flex justify-content-between align-items-center\"\n                >\n                    <p>ADD REVIEW</p>\n                    <svg-icon\n                        class=\"svg-size-14\"\n                        [src]=\"getSvgPath('add')\"\n                    ></svg-icon>\n                </div>\n            }\n        }\n\n        @if (isNewReview) {\n            <app-ca-rating-review-user\n                [isNewReview]=\"true\"\n                [data]=\"newReviewRating\"\n                (ratingReviewData)=\"addNewReview($event)\"\n            ></app-ca-rating-review-user>\n        }\n\n        @if (ratingsReviews?.length) {\n            <div>\n                <div>\n                    @switch (focusedTab) {\n                        @case ('All') {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    ratingReviewTemplate;\n                                    context: {\n                                        data: ratingsReviews,\n                                        isRating: false,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n                        @case ('RATING') {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    ratingReviewTemplate;\n                                    context: {\n                                        data: likesDislikesData,\n                                        isRating: true,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n                        @case ('REVIEW') {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    ratingReviewTemplate;\n                                    context: {\n                                        data: likesDislikesData,\n                                        isRating: false,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n                    }\n                </div>\n            </div>\n        }\n    } @else {\n        <ng-container *ngTemplateOutlet=\"noComments\"></ng-container>\n    }\n</div>\n\n<ng-template #noComments>\n    <div class=\"no-comments-container\">\n        <p>\n            subtle <br />\n            illustration\n        </p>\n    </div>\n</ng-template>\n\n<ng-template #ratingReviewTemplate let-data=\"data\" let-isRating=\"isRating\">\n    <div class=\"ratingInformation\">\n        @if (data.length) {\n            @let filteredData =\n                data | filterByTitle: searchForm.get('search')?.value;\n            @for (item of filteredData; let indx = $index; track indx) {\n                <app-ca-rating-review-user\n                    (ratingReviewData)=\"ratingData($event)\"\n                    [data]=\"item\"\n                    [isRating]=\"isRating\"\n                ></app-ca-rating-review-user>\n            }\n        }\n    </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { RatingReviewsRoutes } from './utils/svg-routes/ratings-reviews.routes';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n  FormsModule,\n  ReactiveFormsModule,\n  UntypedFormBuilder,\n  UntypedFormGroup,\n} from '@angular/forms';\n\n//components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaRatingsReviewsPopupComponent } from './components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component';\nimport { CaRatingReviewUserComponent } from './components/ca-rating-review-user/ca-rating-review-user.component';\nimport { CaInputComponent } from '../ca-input/ca-input.component';\n\n//enums\nimport {\n  RatingReviewsEnum,\n  RatingReviewsTypeEnum,\n} from './enums/rating-reviews-type.enums';\n\n//config\nimport { ICaInput } from '../ca-input/config/ca-input.config';\nimport { getRatingReviewSearch } from './utils/config/rating-review-search.config';\n\n//models\nimport { RatingReviewModel } from './models/rating-review.model';\n\n//pipes\nimport { FilterByTitlePipe } from './utils/pipe/filter-title.pipe';\n\n//helpers\nimport { RatingReviewHelper } from './utils/helpers/sort-data.helper';\n\n@Component({\n    selector: 'lib-ca-rating-review',\n    templateUrl: './ca-rating-review.component.html',\n    styleUrls: ['./ca-rating-review.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        NgbModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        NgbModule,\n        FormsModule,\n        ReactiveFormsModule,\n        // Components\n        CaAppTooltipV2Component,\n        CaRatingsReviewsPopupComponent,\n        CaInputComponent,\n        CaRatingReviewUserComponent,\n        //pipes\n        FilterByTitlePipe,\n    ]\n})\nexport class CaRatingReviewComponent implements OnInit {\n  @Input() ratingReviewList: RatingReviewModel[] = [];\n  @Input() companyUser!: RatingReviewModel;\n  @Input() isFilter: boolean = false;\n  @Input() isSeaarch: boolean = false;\n  @Input() isNewReview: boolean = false;\n  @Output() ratingReviewData = new EventEmitter<{\n    data: RatingReviewModel;\n    action: string;\n  }>();\n\n  public likes: number = 0;\n  public disLikes: number = 0;\n  public reviews: number = 0;\n  public filterList: RatingReviewModel[] = [];\n  public isPopoverOpen: boolean = false;\n  public RatingReviewsType: RatingReviewsTypeEnum = RatingReviewsTypeEnum.All;\n  public isLikeClicked: boolean = false;\n  public isDisLikesClicked: boolean = false;\n  public isReviewsClicked: boolean = false;\n  public isSortedByDate: boolean = false;\n  public searchForm!: UntypedFormGroup;\n\n  constructor(private formBuilder: UntypedFormBuilder) {}\n\n  ngOnInit(): void {\n    this.createForm();\n\n    this.getListDate();\n  }\n\n  public createForm(): void {\n    this.searchForm = this.formBuilder.group({\n      search: null,\n    });\n  }\n\n  public getListDate(): void {\n    this.filterList = this.ratingReviewList;\n\n    if (this.ratingReviewList?.length) {\n      this.checkLikesReviewNumner();\n    }\n  }\n\n  public getSvgPath(propertyName: keyof typeof RatingReviewsRoutes): string {\n    return RatingReviewsRoutes[propertyName] as string;\n  }\n\n  get ratingReviewSearch(): ICaInput {\n    return getRatingReviewSearch.getRatingReviewSearch();\n  }\n\n  public data(event: { data: RatingReviewModel; action: string }): void {\n    if (event.action === RatingReviewsEnum.DELETE) {\n      this.ratingReviewList = this.ratingReviewList.filter(\n        (ratingsReviews: RatingReviewModel) =>\n          ratingsReviews.id !== event.data.id\n      );\n      this.filterList = this.ratingReviewList;\n      this.ratingReviewData.emit(event);\n    } else {\n      if (!this.companyUser?.user) {\n        this.ratingReviewList?.map((ratingReview: RatingReviewModel) => {\n          if (ratingReview.id === event.data.id) {\n            ratingReview = {\n              ...ratingReview,\n              ...event.data,\n            };\n          }\n        });\n      } else {\n        this.ratingReviewList?.push(event.data);\n      }\n      this.ratingReviewData.emit(event);\n    }\n    this.isNewReview = false;\n    this.checkLikesReviewNumner();\n  }\n\n  public checkLikesReviewNumner(): void {\n    this.likes = this.ratingReviewList.filter(\n      (ratingsReview: RatingReviewModel) => {\n        return ratingsReview.thumb === 1;\n      }\n    ).length;\n    this.disLikes = this.ratingReviewList.filter(\n      (ratingsReview: RatingReviewModel) => {\n        return ratingsReview.thumb === -1;\n      }\n    ).length;\n    this.reviews = this.ratingReviewList.filter(\n      (ratingsReview: RatingReviewModel) => {\n        return ratingsReview.comment;\n      }\n    ).length;\n  }\n\n  public sortByDate(): void {\n    this.isSortedByDate = !this.isSortedByDate;\n    RatingReviewHelper.sortByDate(this.isSortedByDate, this.ratingReviewList);\n  }\n\n  public openPopover(t2: NgbPopover): void {\n    t2.open();\n    this.isPopoverOpen = true;\n  }\n\n  public closePopover(t2: NgbPopover): void {\n    this.isPopoverOpen = false;\n    t2.close();\n  }\n\n  public removeFilters(): void {\n    this.isLikeClicked = false;\n    this.isDisLikesClicked = false;\n    this.isReviewsClicked = false;\n    this.filterList = this.ratingReviewList;\n  }\n\n  public showFilters(filter: string): void {\n    this.isLikeClicked = false;\n    this.isDisLikesClicked = false;\n    this.isReviewsClicked = false;\n\n    if (filter === RatingReviewsEnum.LIKES) {\n      this.filterList = this.ratingReviewList.filter(\n        (ratingsReview: RatingReviewModel) => {\n          return ratingsReview.thumb === 1;\n        }\n      );\n      this.isLikeClicked = true;\n    } else if (filter === RatingReviewsEnum.DISLIKES) {\n      this.filterList = this.ratingReviewList.filter(\n        (ratingsReview: RatingReviewModel) => {\n          return ratingsReview.thumb === -1;\n        }\n      );\n      this.isDisLikesClicked = true;\n    } else if (filter === RatingReviewsEnum.REVIEWS) {\n      this.filterList = this.ratingReviewList.filter(\n        (ratingsReview: RatingReviewModel) => {\n          return ratingsReview.comment;\n        }\n      );\n      this.isReviewsClicked = true;\n    }\n  }\n}\n","@if (isFilter) {\n    <div\n        class=\"ratings-filter-container d-flex flex-column justify-content-between\"\n    >\n        @if (isSeaarch) {\n            <div\n                class=\"filter-list-container search-input-header\"\n                [formGroup]=\"searchForm\"\n            >\n                <app-ca-input\n                    class=\"input-form-holder\"\n                    formControlName=\"search\"\n                    [inputConfig]=\"ratingReviewSearch\"\n                ></app-ca-input>\n            </div>\n        }\n\n        <div\n            class=\"filter-ratings-container d-flex justify-content-between align-items-center\"\n        >\n            <div\n                class=\"filter-container d-flex justify-content-flex align-items-center\"\n            >\n                <div\n                    class=\"ratings-filter\"\n                    ngbTooltip\n                    [tooltipBackground]=\"'#424242'\"\n                    [mainCaTooltip]=\"\n                        isLikeClicked ? 'Remove Filter' : 'Filter Likes'\n                    \"\n                    position=\"bottom\"\n                    (click)=\"\n                        isLikeClicked ? removeFilters() : showFilters('likes')\n                    \"\n                >\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            ratingTemplate;\n                            context: {\n                                icon: 'likesButton',\n                                class: 'ratings-filter d-flex align-items-center',\n                                filterIcons: isLikeClicked,\n                                count: likes,\n                                showRemoveIcon: true,\n                                conditions: {\n                                    'most-likes': likes > disLikes,\n                                    'has-ratings':\n                                        likes > 0 && disLikes >= likes,\n                                },\n                            }\n                        \"\n                    >\n                    </ng-container>\n                </div>\n                <div\n                    class=\"ratings-filter\"\n                    ngbTooltip\n                    [tooltipBackground]=\"'#424242'\"\n                    [mainCaTooltip]=\"\n                        isDisLikesClicked ? 'Remove Filter' : 'Filter Dislikes'\n                    \"\n                    position=\"bottom\"\n                    (click)=\"\n                        isDisLikesClicked\n                            ? removeFilters()\n                            : showFilters('dislikes')\n                    \"\n                >\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            ratingTemplate;\n                            context: {\n                                icon: 'dislikeButton',\n                                class: 'ratings-filter d-flex align-items-center',\n                                count: disLikes,\n                                filterIcons: isDisLikesClicked,\n                                showRemoveIcon: true,\n                                conditions: {\n                                    'most-dislikes': disLikes > likes,\n                                    'has-ratings':\n                                        likes >= disLikes && disLikes > 0,\n                                },\n                            }\n                        \"\n                    >\n                    </ng-container>\n                </div>\n                <div\n                    class=\"ratings-filter\"\n                    ngbTooltip\n                    [tooltipBackground]=\"'#424242'\"\n                    [mainCaTooltip]=\"\n                        isDisLikesClicked ? 'Remove Filter' : 'Filter Reviews'\n                    \"\n                    position=\"bottom\"\n                    (click)=\"\n                        isReviewsClicked\n                            ? removeFilters()\n                            : showFilters('reviews')\n                    \"\n                >\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            ratingTemplate;\n                            context: {\n                                icon: 'reviewButton',\n                                class: 'ratings-filter d-flex align-items-center',\n                                count: reviews,\n                                filterIcons: isReviewsClicked,\n                                showRemoveIcon: true,\n                                conditions: {\n                                    'has-ratings': reviews > 0,\n                                },\n                            }\n                        \"\n                    >\n                    </ng-container>\n                </div>\n            </div>\n            @if (ratingReviewList?.length) {\n                <div\n                    class=\"sort-date d-flex justify-content-betweenalign-items-center\"\n                >\n                    <p (click)=\"sortByDate()\">Date</p>\n                    <svg-icon\n                        class=\"svg-size-16\"\n                        [src]=\"getSvgPath('sortIcon')\"\n                        (click)=\"sortByDate()\"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n\n        <div\n            class=\"filter-list-container d-flex justify-content-center flex-column\"\n        >\n            @if (ratingReviewList?.length) {\n                @let filteredList =\n                    filterList | filterByTitle: searchForm.get('search')?.value;\n                @for (item of filteredList; let indx = $index; track indx) {\n                    <app-ca-rating-review-user\n                        [isFilter]=\"true\"\n                        (ratingReviewData)=\"data($event)\"\n                        [data]=\"item\"\n                    >\n                    </app-ca-rating-review-user>\n                }\n            }\n\n            @if (isNewReview) {\n                <app-ca-rating-review-user\n                    [isNewReview]=\"true\"\n                    [isFilter]=\"true\"\n                    [data]=\"companyUser\"\n                    (ratingReviewData)=\"data($event)\"\n                >\n                </app-ca-rating-review-user>\n            }\n        </div>\n    </div>\n} @else {\n    <div\n        class=\"ratings-container\"\n        #t2=\"ngbPopover\"\n        [ngClass]=\"{ popoverOpen: isPopoverOpen }\"\n        [ngbPopover]=\"ratingReviewPopover\"\n        triggers=\"manual\"\n        [autoClose]=\"'outside'\"\n        container=\"body\"\n        [placement]=\"'bottom'\"\n        (click)=\"openPopover(t2)\"\n        (hidden)=\"closePopover(t2)\"\n        (shown)=\"isPopoverOpen = true\"\n    >\n        <div\n            class=\"ratings-container\"\n            [ngClass]=\"{ active: isPopoverOpen }\"\n            ngbTooltip\n            [tooltipBackground]=\"'#424242'\"\n            [mainCaTooltip]=\"'Rating & Review'\"\n            position=\"bottom\"\n            [disableTooltip]=\"isPopoverOpen\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"\n                    ratingTemplate;\n                    context: {\n                        icon: 'likesButton',\n                        class: 'ratings d-flex align-items-center',\n                        count: likes,\n                        showRemoveIcon: false,\n                        filterIcons: false,\n                        conditions: {\n                            'most-likes': likes > disLikes,\n                            'has-ratings': likes > 0 && disLikes >= likes,\n                        },\n                    }\n                \"\n            >\n            </ng-container>\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    ratingTemplate;\n                    context: {\n                        icon: 'dislikeButton',\n                        class: 'ratings d-flex align-items-center',\n                        count: disLikes,\n                        showRemoveIcon: false,\n                        filterIcons: false,\n                        conditions: {\n                            'most-dislikes': disLikes > likes,\n                            'has-ratings': likes >= disLikes && disLikes > 0,\n                        },\n                    }\n                \"\n            >\n            </ng-container>\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    ratingTemplate;\n                    context: {\n                        icon: 'reviewButton',\n                        class: 'ratings d-flex align-items-center',\n                        count: reviews,\n                        showRemoveIcon: false,\n                        filterIcons: false,\n                        conditions: {\n                            'has-ratings': reviews > 0,\n                        },\n                    }\n                \"\n            >\n            </ng-container>\n\n            <ng-template #ratingReviewPopover>\n                <app-ca-ratings-reviews-popup\n                    (emitData)=\"data($event)\"\n                    [focusedTab]=\"RatingReviewsType\"\n                    [newReviewRating]=\"companyUser\"\n                    [ratingsReviews]=\"ratingReviewList\"\n                ></app-ca-ratings-reviews-popup>\n            </ng-template>\n        </div>\n    </div>\n}\n<ng-template\n    #ratingTemplate\n    let-icon=\"icon\"\n    let-class=\"class\"\n    let-removeIcon=\"showRemoveIcon\"\n    let-filterIcon=\"filterIcons\"\n    let-count=\"count\"\n    let-conditions=\"conditions\"\n>\n    <div [ngClass]=\"[class, filterIcon ? 'selected-icon' : '']\">\n        <svg-icon\n            class=\"svg-size-16\"\n            [src]=\"getSvgPath(icon)\"\n            [ngClass]=\"conditions\"\n        ></svg-icon>\n        <p>{{ count }}</p>\n        @if (removeIcon) {\n            <svg-icon\n                class=\"remove-icon svg-size-10\"\n                [src]=\"getSvgPath('removeSelectedValue')\"\n            ></svg-icon>\n        }\n    </div>\n</ng-template>\n","export class TodoSvgRoute {\n  static web: string = 'assets/ca-components/svg/todo/web.svg';\n  static attachment: string = 'assets/ca-components/svg/todo/attachment.svg';\n  static comments: string = 'assets/ca-components/svg/todo/comments.svg';\n  static dropdown: string = 'assets/ca-components/svg/todo/dropdown.svg';\n  static plus: string = 'assets/ca-components/svg/todo/plus.svg';\n  static upload: string = 'assets/ca-components/svg/todo/upload.svg';\n}\n","// abs.pipe.ts\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'progressExpirationAbs',\n    standalone: true,\n})\nexport class ProgressExpirationAbsPipe implements PipeTransform {\n    transform(value: number): number {\n        return Math.abs(value);\n    }\n}\n","// progress-width.pipe.ts\nimport { Pipe, PipeTransform } from '@angular/core';\n\n//Moment library\nimport moment from 'moment';\n\n@Pipe({\n    standalone: true,\n    name: 'progressExpirationWidth',\n})\nexport class ProgressExpirationWidthPipe implements PipeTransform {\n    transform(\n        expireDate: Date,\n        startDate?: Date,\n        completedDate?: Date\n    ): string {\n        const today = moment();\n        const expireMoment = moment(expireDate);\n        const completedMoment = completedDate ? moment(completedDate) : null;\n        const startTaskDate = moment(startDate);\n\n        const totalDays = expireMoment.diff(moment(startTaskDate), 'days');\n        const daysLeft = expireMoment.diff(today, 'days');\n        const diffTotalandDay = totalDays - daysLeft;\n\n        let percentage: number;\n\n        if (\n            completedMoment &&\n            completedMoment.isBefore(today) &&\n            expireMoment\n        ) {\n            percentage = 100;\n        } else if (diffTotalandDay !== 0) {\n            if (!completedMoment || !completedMoment.isValid()) {\n                percentage = (daysLeft / totalDays) * 100;\n            } else if (completedMoment && completedMoment.isValid()) {\n                percentage = 100 - (daysLeft / totalDays) * 100;\n            } else {\n                percentage = (daysLeft / 365) * 100;\n            }\n        } else {\n            const timeDifference = today.diff(moment(), 'hours');\n            if (timeDifference > 0) {\n                const daysProgress =\n                    totalDays !== 0 ? (1 / totalDays) * 100 : (1 / 365) * 100;\n                percentage = daysProgress / (24 / timeDifference);\n            } else {\n                percentage = 0;\n            }\n        }\n\n        if (!percentage) {\n            percentage = totalDays > 0 ? (daysLeft / totalDays) * 100 : 0;\n        }\n\n        return `${percentage}%`;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: true,\n  name: 'currencyFormat',\n})\nexport class CurrencyFormatPipe implements PipeTransform {\n  transform(value: number): string {\n    if (value === null || value === undefined) {\n      return '';\n    }\n    return `${value.toFixed(2)}$`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({\n  standalone: true,\n  name: 'timeFormat',\n})\nexport class TimeFormatPipe implements PipeTransform {\n  transform(expireDate: Date | string): string {\n    if (!expireDate) {\n      return 'Invalid date';\n    }\n\n    const expireMoment = moment(expireDate).utc();\n\n    if (!expireMoment.isValid()) {\n      return 'Invalid date';\n    }\n\n    const now = moment().utc();\n\n    const daysUntilExpiration = expireMoment.diff(now, 'days');\n    const hoursUntilExpiration = expireMoment.diff(now, 'hours');\n\n    if (daysUntilExpiration > 1) {\n      return `${daysUntilExpiration} day${daysUntilExpiration === 1 ? '' : 's'} ${daysUntilExpiration < 0 ? 'ago' : 'to go'}`;\n    } else if (daysUntilExpiration < 1) {\n      return `${Math.abs(hoursUntilExpiration)} hour${Math.abs(hoursUntilExpiration) === 1 ? '' : 's'} ${hoursUntilExpiration < 0 ? 'ago' : 'to go'}`;\n    } else {\n      return '1 day to go';\n    }\n  }\n}\n","export const HexToRgbaHelper = (hex: string, opacity: number): string => {\n    let r = 0,\n        g = 0,\n        b = 0;\n    // 3 digits\n    if (hex.length === 4) {\n        r = parseInt(hex[1] + hex[1], 16);\n        g = parseInt(hex[2] + hex[2], 16);\n        b = parseInt(hex[3] + hex[3], 16);\n    }\n    // 6 digits\n    else if (hex.length === 7) {\n        r = parseInt(hex[1] + hex[2], 16);\n        g = parseInt(hex[3] + hex[4], 16);\n        b = parseInt(hex[5] + hex[6], 16);\n    }\n    return `rgba(${r},${g},${b},${opacity})`;\n};\n","//Helpers\nimport { HexToRgbaHelper } from '../../helpers/hex-to-rgba.helper';\n\n//Models\nimport { ProgressExpirationColor } from '../../models/progress-expiration-color.model';\nimport { ProgressExpirationColorType } from '../../models/progress-expiration-color-type.model';\nimport { ProgressExpirationTemplate } from '../../models/progress-expiration-template.model';\nimport { ProgressExpirationTheme } from '../../models/progress-expiration-theme.model';\nimport { ProgressExpirationType } from '../../models/progress-expiration-type.model';\n\nexport class ProgressExpirationConstants {\n    public static readonly allowedTemplates: ProgressExpirationTemplate[] = [\n        'todo-list',\n        'details',\n        'settings-insurance-policy',\n        'settings-parking',\n    ];\n\n    public static readonly allowedTheme: ProgressExpirationTheme[] = [\n        'light',\n        'dark',\n    ];\n\n    public static readonly allowedType: ProgressExpirationType[] = [\n        'small',\n        'big',\n    ];\n\n    public static readonly ProgressExpirationColors: Record<\n        ProgressExpirationColorType,\n        ProgressExpirationColor\n    > = {\n        LONG_DURATION: {\n            primary: HexToRgbaHelper('#919191', 0.2),\n            secondary: '#919191',\n        },\n        MEDIUM_DURATION: {\n            primary: HexToRgbaHelper('#F89B2E', 0.2),\n            secondary: '#FAB15C',\n        },\n        SHORT_DURATION: {\n            primary: HexToRgbaHelper('#DF3C3C', 0.2),\n            secondary: '#E66767',\n        },\n        IN_TIME_DURATION: {\n            primary: HexToRgbaHelper('#259F94', 0.2),\n            secondary: '#56B4AC',\n        },\n        EXPIRED_DURATION: {\n            primary: HexToRgbaHelper('#E66767', 1),\n            secondary: '#E66767',\n        },\n    };\n}\n","export enum TimeUnits {\n    DAYS = 'days',\n    DAY = 'day',\n    HOURS = 'hours',\n    HOUR = 'hour',\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: '[templateContainer]',\n  })\n  export class TemplateContainerDirective {\n    @Input() id!: string;\n    constructor(public template: TemplateRef<any>) {}\n  } ","import moment from 'moment';\nimport { TimeUnits } from '../enums';\nimport { ProgressExpiration, ProgressExpirationTitle } from '../models';\n\nexport class ProgressExpirationHelper {\n  // Default value type and theme\n  static initializeConfigDefaults(\n    config: ProgressExpiration\n  ): ProgressExpiration {\n    config.startDate = config.startDate ?? new Date();\n    config.type = config.type ?? 'small';\n    config.theme = config.theme ?? 'light';\n    return config;\n  }\n\n  // total days between start, expire, and optionally completed date\n  static calculateTotalDays(\n    startDate: Date,\n    expireDate: Date,\n    completedDate?: Date\n  ): number {\n    if (completedDate) {\n      return moment\n        .utc(expireDate)\n        .diff(moment.utc(completedDate), TimeUnits.DAYS);\n    } else {\n      return moment.utc(expireDate).diff(moment.utc(startDate), TimeUnits.DAYS);\n    }\n  }\n\n  // Left days\n  static calculateLeftDays(expireDate: Date, completedDate?: Date): number {\n    const today = moment().utc();\n    const expireMoment = moment.utc(expireDate);\n    const completedMoment = completedDate ? moment.utc(completedDate) : null;\n\n    if (completedMoment && completedMoment.isBefore(expireMoment)) {\n      return expireMoment.diff(completedMoment, TimeUnits.DAYS);\n    } else if (completedMoment && completedMoment.isSame(expireMoment)) {\n      return 0;\n    } else if (completedMoment && completedMoment.isAfter(expireMoment)) {\n      return expireMoment.diff(completedMoment, TimeUnits.DAYS);\n    }\n\n    return expireMoment.diff(today, TimeUnits.DAYS);\n  }\n\n  // Hours between start and expire date\n  static calculateHours(expireDate: Date, startDate: Date): number {\n    const startDay = moment(startDate);\n    const expireDay = moment(expireDate);\n\n    return expireDay.diff(startDay, TimeUnits.HOURS);\n  }\n\n  // The number of days in the current month\n  static calculateDaysInCurrentMonth(): number {\n    const today = new Date();\n    const year = today.getFullYear();\n    const month = today.getMonth();\n\n    return new Date(year, month + 1, 0).getDate();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  QueryList,\n  TemplateRef,\n  ViewChildren,\n} from '@angular/core';\nimport moment from 'moment';\n\n//Pipes\nimport {\n  CurrencyFormatPipe,\n  ProgressExpirationAbsPipe,\n  ProgressExpirationWidthPipe,\n  TimeFormatPipe,\n} from './pipes';\n\n//Utils\nimport { ProgressExpirationConstants } from './utils';\n\n//Models\nimport {\n  ProgressExpiration,\n  ProgressExpirationColor,\n  ProgressExpirationTitle,\n} from './models';\n\n//Enum\nimport { TimeUnits } from './enums';\n\n//Directives\nimport { TemplateContainerDirective } from '../ca-upload-files/components/ca-upload-dropzone/directives';\n\n//Helpers\nimport { ProgressExpirationHelper } from './helpers';\n\n@Component({\n    imports: [\n        //Modules\n        CommonModule,\n        //Pipes\n        CurrencyFormatPipe,\n        TimeFormatPipe,\n        //Directive\n        TemplateContainerDirective\n    ],\n    providers: [ProgressExpirationWidthPipe, ProgressExpirationAbsPipe],\n    selector: 'lib-ca-progress-expiration',\n    templateUrl: './ca-progress-expiration.component.html',\n    styleUrls: ['./ca-progress-expiration.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaProgressExpirationComponent {\n  @ViewChildren(TemplateContainerDirective)\n  templateRef!: QueryList<TemplateContainerDirective>;\n\n  @Input() set config(data: ProgressExpiration[]) {\n    setTimeout(() => {\n      this._configArray = data;\n      if (this._configArray.length > 0) {\n        this._config = this._configArray[0];\n      }\n\n      // Default title\n      this.setTitleBasedOnConfig();\n\n      // Calculate the total days\n      this.calculateDays();\n\n      this.setProgressWidth();\n\n      // set backgroundColor\n      this.setBackgroundColor();\n\n      // set title\n      this.setTitle(this._config);\n\n      this.cdr.markForCheck();\n    }, 0);\n  }\n\n  public _config!: ProgressExpiration;\n  public title!: ProgressExpirationTitle;\n  public _configArray: ProgressExpiration[] = [];\n  public totalDays: number = 0;\n  public leftDays: number = 0;\n  public progressWidth: string = '0%';\n  public progressBackgroundColor!: ProgressExpirationColor;\n\n  constructor(\n    private progressExpirationWidthPipe: ProgressExpirationWidthPipe,\n    private progressExpirationAbsPipe: ProgressExpirationAbsPipe,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  private calculateDays(): void {\n    this.totalDays = ProgressExpirationHelper.calculateTotalDays(\n      this._config.startDate ?? new Date(),\n      this._config.expireDate,\n      this._config?.completedDate\n    );\n\n    this.leftDays = ProgressExpirationHelper.calculateLeftDays(\n      this._config.expireDate,\n      this._config?.completedDate\n    );\n  }\n\n  private setProgressWidth(): void {\n    this.progressWidth = this.progressExpirationWidthPipe.transform(\n      this._config.startDate ?? new Date(),\n      this._config.expireDate,\n      this._config?.completedDate\n    );\n  }\n\n  private setTitleBasedOnConfig(): void {\n    if (this._config?.customTitle) {\n      this.title = {\n        ...this.title,\n        before: this._config.customTitle,\n      };\n    } else {\n      this.setTitle(this._config);\n    }\n  }\n\n  private generateTitle(\n    data: ProgressExpiration,\n    leftDays: number\n  ): ProgressExpirationTitle {\n    let before: string = '';\n    let after: string = '';\n    let days: string = '';\n\n    if (data.template === 'location') {\n      const now = moment().utc();\n      const expireDate = moment(data.expireDate).utc();\n\n      const daysUntilExpiration = expireDate.diff(now, 'days');\n\n      before = daysUntilExpiration <= 7 ? 'Weekly Rent' : 'Monthly Rent';\n    } else if (data.completedDate) {\n      if (moment(data.completedDate).utc().isBefore(data.expireDate)) {\n        before = 'Completed';\n        after = `before deadline`;\n        this.progressBackgroundColor =\n          ProgressExpirationConstants.ProgressExpirationColors[\n            'IN_TIME_DURATION'\n          ];\n      } else if (moment(data.completedDate).utc().isSame(data.expireDate)) {\n        before = 'Completed';\n        this.progressBackgroundColor =\n          ProgressExpirationConstants.ProgressExpirationColors[\n            'IN_TIME_DURATION'\n          ];\n      } else {\n        before = 'Completed';\n        after = `past deadline`;\n        this.progressBackgroundColor =\n          ProgressExpirationConstants.ProgressExpirationColors[\n            'EXPIRED_DURATION'\n          ];\n      }\n    } else {\n      if (data.template === 'todo-list') {\n        before = moment(data.expireDate).utc().isAfter(moment().utc())\n          ? 'Deadline in'\n          : 'Deadline was';\n        after = before === 'Deadline in' ? '' : 'ago';\n      } else {\n        before = moment(data.expireDate).utc().isAfter(moment().utc())\n          ? 'Exp. in'\n          : 'Exp. was';\n        after = before === 'Exp. in' ? '' : 'ago';\n      }\n    }\n\n    if (leftDays) {\n      days = `${leftDays} ${leftDays > 1 ? TimeUnits.DAYS : TimeUnits.DAY}`;\n    } else {\n      const hours = ProgressExpirationHelper.calculateHours(\n        data.expireDate,\n        data.startDate!\n      );\n      days = `${hours} ${hours > 1 ? TimeUnits.HOURS : TimeUnits.HOUR}`;\n    }\n\n    return {\n      before,\n      days,\n      after,\n    };\n  }\n\n  private setTitle(data: ProgressExpiration): void {\n    const leftDaysFormatted = this.progressExpirationAbsPipe.transform(\n      this.leftDays\n    );\n    this.title = this.generateTitle(data, leftDaysFormatted);\n  }\n\n  private setBackgroundColor(): void {\n    // Checking if the time has expired\n    if (this.leftDays <= 0) {\n      this.progressBackgroundColor =\n        ProgressExpirationConstants.ProgressExpirationColors[\n          'EXPIRED_DURATION'\n        ];\n      this.progressWidth = '0%';\n      return;\n    }\n\n    let percentageLeft: number = 0;\n\n    if (this._config.template === 'location') {\n      const daysInMonth =\n        ProgressExpirationHelper.calculateDaysInCurrentMonth();\n      percentageLeft =\n        this.leftDays < 7\n          ? (this.leftDays / 7) * 100 // Weekly\n          : (this.leftDays / daysInMonth) * 100; // Monthly\n    } else {\n      percentageLeft = (this.leftDays / this.totalDays) * 100; // For other templates\n    }\n\n    if (percentageLeft > 50) {\n      this.progressBackgroundColor =\n        ProgressExpirationConstants.ProgressExpirationColors['LONG_DURATION'];\n    } else if (percentageLeft > 20) {\n      this.progressBackgroundColor =\n        ProgressExpirationConstants.ProgressExpirationColors['MEDIUM_DURATION'];\n    } else {\n      this.progressBackgroundColor =\n        ProgressExpirationConstants.ProgressExpirationColors['SHORT_DURATION'];\n    }\n\n    this.progressWidth = `${percentageLeft}%`;\n  }\n\n  //Template\n  public getTemplate<T>(template: string): TemplateRef<T> {\n    const templateRef: TemplateContainerDirective | undefined =\n      this.templateRef?.find((temp) => temp.id === template);\n\n    if (!templateRef) {\n      throw new Error('Unavailable template!');\n    }\n\n    return templateRef?.template as TemplateRef<T>;\n  }\n\n  public identify(index: number): number {\n    return index;\n  }\n}\n","<div class=\"progress-expiration d-flex flex-column\">\n    @for (item of _configArray; let indx = $index; track indx) {\n        <ng-container\n            *ngTemplateOutlet=\"\n                getTemplate(item.template);\n                context: { $implicit: item }\n            \"\n        >\n        </ng-container>\n    }\n</div>\n\n<!--ToDo template-->\n<ng-template templateContainer id=\"todo-list\" let-config>\n    <ng-container\n        *ngTemplateOutlet=\"\n            progressExpirationTemplate;\n            context: { $implicit: config }\n        \"\n    >\n    </ng-container>\n</ng-template>\n\n<!--Details template-->\n<ng-template templateContainer id=\"details\" let-config>\n    <ng-container\n        *ngTemplateOutlet=\"\n            progressExpirationTemplate;\n            context: { $implicit: config }\n        \"\n    >\n    </ng-container>\n</ng-template>\n\n<!--Location template-->\n<ng-template templateContainer id=\"location\" let-config>\n    <div\n        class=\"progress-expiration-header d-flex align-items-center justify-content-between\"\n    >\n        <div class=\"header-left-side d-flex flex-row align-items-center\">\n            <p class=\"title\" [ngClass]=\"{ dark: _config?.theme === 'dark' }\">\n                {{ title.before }} -\n                <span class=\"days\">{{\n                    _config.rent ?? 0 | currencyFormat\n                }}</span>\n            </p>\n        </div>\n\n        <p class=\"expires-time-date location\">\n            {{ _config.expireDate | timeFormat }}\n        </p>\n    </div>\n    <div\n        class=\"progress-expiration-container\"\n        [ngClass]=\"{ big: _config?.type === 'big' }\"\n        [ngStyle]=\"{ 'background-color': progressBackgroundColor.primary }\"\n    >\n        <div\n            class=\"line\"\n            [ngStyle]=\"{\n                'background-color': progressBackgroundColor.secondary,\n                width: progressWidth,\n            }\"\n        ></div>\n    </div>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n<!--ToDo, Details -->\n<ng-template #progressExpirationTemplate let-config>\n    <div\n        class=\"progress-expiration-header d-flex align-items-center justify-content-between\"\n    >\n        <div class=\"header-left-side d-flex flex-row align-items-center\">\n            <p class=\"title\" [ngClass]=\"{ dark: _config?.theme === 'dark' }\">\n                {{ title.before }} <span class=\"days\">{{ title.days }}</span>\n                {{ title.after }}\n            </p>\n        </div>\n        @let isInTemplatedIncluded =\n            _config?.template &&\n            !['settings-parking'].includes(_config.template);\n        @if (isInTemplatedIncluded) {\n            <p class=\"expires-time-date\">\n                {{ _config?.expireDate | date: 'HH:mm a' }}\n                {{ _config?.expireDate | date: 'MM/dd/yyyy' }}\n            </p>\n        }\n    </div>\n    <div\n        class=\"progress-expiration-container\"\n        [ngClass]=\"{ big: _config?.type === 'big' }\"\n        [ngStyle]=\"{ 'background-color': progressBackgroundColor.primary }\"\n    >\n        <div\n            class=\"line\"\n            [ngStyle]=\"{\n                'background-color': progressBackgroundColor.secondary,\n                width: progressWidth,\n            }\"\n        ></div>\n    </div>\n</ng-template>\n","export enum CommentAction {\n    CONFIRM = 'CONFIRM',\n    CANCEL = 'CANCEL',\n    EDIT = 'EDIT',\n    DELETE = 'DELETE'\n}\n","import { CommentAction } from '../../enums';\n\nexport class CommentConstants {\n    public static readonly ICON_URLS: Record<CommentAction, string> = {\n        [CommentAction.EDIT]: 'assets/ca-components/svg/comment/edit.svg',\n        [CommentAction.DELETE]: 'assets/ca-components/svg/comment/delete.svg',\n        [CommentAction.CONFIRM]: 'assets/ca-components/svg/comment/confirm.svg',\n        [CommentAction.CANCEL]: 'assets/ca-components/svg/comment/cancel.svg',\n    };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CommentAction } from '../enums';\nimport { CommentConstants } from '../utils';\n\n@Pipe({\n    standalone: true,\n    name: 'iconPipe',\n})\n\nexport class IconUrlPipe implements PipeTransform {\n    transform(action: CommentAction): string {\n        const url = CommentConstants.ICON_URLS[action];\n        if (!url) {\n            throw new Error(`Unallowed svg`);\n        }\n        return url;\n    }\n}\n","import {\n    Directive,\n    ElementRef,\n    HostListener,\n    AfterViewInit,\n} from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: '[appAutoResize]',\n})\nexport class AutoResizeDirective implements AfterViewInit {\n    constructor(private el: ElementRef) {}\n\n    ngAfterViewInit(): void {\n        this.autoresize();\n    }\n\n    @HostListener('input')\n    onInput(): void {\n        this.autoresize();\n    }\n\n    private autoresize(): void {\n        const textarea = this.el.nativeElement as HTMLTextAreaElement;\n        const container = textarea.closest('.comment-container') as HTMLElement;\n\n        if (textarea.value === '') {\n            textarea.style.height = '24px';\n            if (container) {\n                container.style.height = '54px';\n            }\n        } else {\n            textarea.style.height = '24px';\n            textarea.style.height = textarea.scrollHeight + 'px';\n            if (container) {\n                container.style.height = textarea.scrollHeight + 30 + 'px';\n            }\n        }\n    }\n}\n","export class ModalRouteSvg {\n    static exclamation: string = \"assets/ca-components/svg/comment/exclamation-mark.svg\"\n    static trash: string = \"assets/ca-components/svg/comment/trash.svg\"\n}","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n//Models\nimport { CommentConfig } from '../../models';\n\n//Routes\nimport { ModalRouteSvg } from './svg-routes';\n\n@Component({\n    selector: 'ca-comment-modal',\n    imports: [CommonModule, AngularSvgIconModule, HttpClientModule],\n    templateUrl: './comment-modal.component.html',\n    styleUrls: ['./comment-modal.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class CommentModalComponent {\n  @Input() set config(data: CommentConfig) {\n    this.modalConfig = data;\n  }\n  @Output() itemEvent = new EventEmitter<void>();\n\n  public modalSvgExclamation = ModalRouteSvg.exclamation;\n  public trash = ModalRouteSvg.trash;\n  public modalConfig!: CommentConfig;\n\n  constructor(private activeModal: NgbActiveModal) {}\n\n  public onSubmit(): void {\n    this.itemEvent.emit();\n    this.activeModal.close('confirm');\n  }\n\n  public onCancel(): void {\n    this.activeModal.dismiss('cancel');\n  }\n}\n","<div class=\"modal-container\">\n  <!--MODAL HEADER-->\n  <div class=\"modal-header d-flex align-content-center\">\n    <div class=\"modal-header-content flex-column d-flex align-items-center\">\n      <div class=\"modal-header-content top d-flex\">\n        <svg-icon\n          class=\"exclamation-svg d-flex\"\n          [src]=\"modalSvgExclamation\"\n        ></svg-icon>\n        <h3 class=\"modal-title\">Delete Comment</h3>\n      </div>\n      <div class=\"modal-header-content bottom\">\n        <span class=\"line d-block\"></span>\n      </div>\n    </div>\n  </div>\n\n  <svg-icon class=\"trash-icon\" [src]=\"trash\"></svg-icon>\n\n  <!--BODY-->\n  <div class=\"modal-body\">\n    <div class=\"modal-body-content flex-column\">\n      <div class=\"modal-body-content-comment d-inline-block\">\n        <p class=\"title\">{{ modalConfig.content }}</p>\n        <p class=\"date\">{{ modalConfig.createdAt | date: 'M/d/yy, h:mm a' }}</p>\n      </div>\n      <div class=\"load-id\">\n        <div class=\"modal-body-content-id d-flex justify-content-center\">\n          <p class=\"id-title d-flex align-items-center\">\n            IVS-{{ modalConfig.id }}\n          </p>\n        </div>\n      </div>\n      <div class=\"modal-body-content information\">\n        <p class=\"information-title\">\n          Are you sure you want to delete selected comment?\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!--FOOTER-->\n  <div class=\"modal-footer d-flex justify-content-center\">\n    <div class=\"model-footer-content\">\n      <span class=\"line-footer d-block\"></span>\n      <div class=\"btn-container d-flex\">\n        <button class=\"btn-cancel\" (click)=\"onCancel()\">No</button>\n        <button class=\"btn-confirm\" (click)=\"onSubmit()\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Injectable, Type } from '@angular/core';\nimport {\n  NgbModal,\n  NgbModalOptions,\n  NgbModalRef,\n} from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AppModalService {\n  constructor(private modalService: NgbModal) {}\n\n  public modalRef: NgbModalRef | null = null;\n\n  public open<T>(component: Type<T>): NgbModalRef {\n    const options: NgbModalOptions = {\n      animation: true,\n      windowClass: 'custom-modal',\n      backdrop: 'static',\n      keyboard: false,\n    };\n\n    this.modalRef = this.modalService.open(component, options);\n    return this.modalRef;\n  }\n\n  public close(): void {\n    this.modalService.dismissAll();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { from } from 'rxjs';\n\n//Pipe\nimport { IconUrlPipe } from './pipes';\nimport { DateFormatPipe } from '../../pipes/date.pipe';\n\n//Model\nimport {\n  CommentConfig,\n  DeleteCommentData,\n  SaveCommentData,\n  UpdateCommentData,\n} from './models';\n\n//Directive\nimport { AutoResizeDirective } from './directives';\n\n//Enum\nimport { CommentAction } from './enums';\n\n//Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n//Modal\nimport { CommentModalComponent } from './modals/comment-modal/comment-modal.component';\n\n//Services\nimport { AppModalService } from './services';\n\n@Component({\n    selector: 'app-ca-comment',\n    imports: [\n        //modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbTooltip,\n        //pipes\n        DateFormatPipe,\n        IconUrlPipe,\n        //components\n        CaAppTooltipV2Component,\n        //directive\n        AutoResizeDirective,\n    ],\n    templateUrl: './ca-comment.component.html',\n    styleUrls: ['./ca-comment.component.scss']\n})\nexport class CaCommentComponent {\n  constructor(private modalService: AppModalService) {}\n  @ViewChild('commentTextarea')\n  commentTextarea!: ElementRef<HTMLTextAreaElement>;\n\n  @Input() set config(data: CommentConfig) {\n    this.commentConfig = data;\n\n    if (!data.id) {\n      this.isEditMode = true;\n    }\n  }\n\n  @Output() onSave = new EventEmitter<SaveCommentData>();\n  @Output() onUpdate = new EventEmitter<UpdateCommentData>();\n  @Output() onDelete = new EventEmitter<DeleteCommentData>();\n\n  public action = CommentAction;\n  public commentConfig!: CommentConfig;\n  public isEditMode: boolean = false;\n\n  ngAfterViewInit(): void {\n    this.commentTextarea.nativeElement.value = this.commentConfig.content;\n  }\n\n  public onAction(action: CommentAction): void {\n    switch (action) {\n      case CommentAction.CANCEL: {\n        if (this.commentConfig.id) {\n          this.isEditMode = false;\n        }\n        this.commentTextarea.nativeElement.value = this.commentConfig.content;\n        break;\n      }\n      case CommentAction.CONFIRM: {\n        const textareaContent = this.commentTextarea.nativeElement.value;\n        // update comment\n        if (this.commentConfig.id && this.commentConfig.owner) {\n          this.onUpdate.emit({\n            id: this.commentConfig.id,\n            content: textareaContent,\n          });\n        }\n\n        // save new comment\n        if (!this.commentConfig.id) {\n          this.onSave.emit({\n            content: textareaContent,\n          });\n        }\n\n        this.isEditMode = false;\n        break;\n      }\n\n      case CommentAction.DELETE: {\n        if (this.commentConfig.id && this.commentConfig.owner) {\n          const modalRef = this.modalService.open(CommentModalComponent);\n          modalRef.componentInstance.config = this.commentConfig;\n          from(modalRef.result).subscribe({\n            next: (result) => {\n              if (result === 'confirm') {\n                if (this.commentConfig.id) {\n                  this.onDelete.emit({ id: this.commentConfig.id });\n                }\n              }\n            },\n            error: (err) => {\n              console.log(err);\n            },\n          });\n        }\n        break;\n      }\n\n      case CommentAction.EDIT: {\n        this.isEditMode = true;\n        this.commentTextarea.nativeElement.focus();\n        break;\n      }\n      default: {\n        new Error('Unsupported action');\n      }\n    }\n  }\n}\n","<div\n    class=\"comment-container d-flex flex-column\"\n    [ngClass]=\"{ 'is-editing': isEditMode }\"\n>\n    <div\n        class=\"comment-container-content d-flex flex-column\"\n        [ngClass]=\"{ 'is-editing': isEditMode }\"\n    >\n        <!-- Comment Header -->\n        <div\n            class=\"comment-container-content-top d-flex justify-content-between\"\n        >\n            <div class=\"content-header-left-side d-flex flex-row\">\n                <img [src]=\"commentConfig.user.avatarImage\" />\n                <p class=\"user-name\" [ngClass]=\"{ 'is-editing': isEditMode }\">\n                    {{ commentConfig.user.name }}\n                </p>\n                <p\n                    class=\"title\"\n                    [ngClass]=\"{ 'title-owner': commentConfig.owner }\"\n                >\n                    {{\n                        commentConfig.owner && commentConfig.id && !isEditMode\n                            ? '(Me)'\n                            : null\n                    }}\n                </p>\n                <p\n                    class=\"title\"\n                    [ngClass]=\"{\n                        'title-dot': commentConfig.createdAt && !isEditMode,\n                    }\"\n                >\n                    {{\n                        isEditMode\n                            ? !commentConfig.id\n                                ? 'New Comment'\n                                : 'Edit Comment'\n                            : (commentConfig.createdAt! | dateFormat)\n                    }}\n                </p>\n                @if (\n                    !isEditMode &&\n                    commentConfig.createdAt &&\n                    commentConfig?.updatedAt &&\n                    commentConfig.createdAt! < commentConfig.updatedAt!\n                ) {\n                    <p class=\"title title-edit title-dot\">Edited</p>\n                }\n            </div>\n            <div class=\"svg-wrapper d-flex justify-content-center\">\n                <!-- Save/Update Comment or Cancel -->\n                @if (commentConfig.owner && isEditMode) {\n                    <div\n                        [tooltipBackground]=\"'#424242'\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"\n                            commentConfig.id ? 'Confirm Edit' : 'Confirm'\n                        \"\n                        position=\"top\"\n                    >\n                        <svg-icon\n                            class=\"svg-icon d-flex justify-content-center align-items-center\"\n                            [ngClass]=\"{ 'is-editing': isEditMode }\"\n                            [src]=\"action.CONFIRM | iconPipe\"\n                            (click)=\"onAction(action.CONFIRM)\"\n                        ></svg-icon>\n                    </div>\n                    <div\n                        [tooltipBackground]=\"'#424242'\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Cancel'\"\n                        position=\"top\"\n                    >\n                        <svg-icon\n                            class=\"svg-icon d-flex justify-content-center align-items-center\"\n                            [ngClass]=\"{ 'is-editing': isEditMode }\"\n                            [src]=\"action.CANCEL | iconPipe\"\n                            (click)=\"onAction(action.CANCEL)\"\n                        ></svg-icon>\n                    </div>\n                }\n                <!-- Edit/Delete Comment -->\n                @if (commentConfig.owner && commentConfig.id && !isEditMode) {\n                    <div\n                        [tooltipBackground]=\"'#424242'\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Edit'\"\n                        position=\"top\"\n                    >\n                        <svg-icon\n                            class=\"svg-icon icon-edit d-flex justify-content-center align-items-center\"\n                            [src]=\"action.EDIT | iconPipe\"\n                            (click)=\"onAction(action.EDIT)\"\n                        ></svg-icon>\n                    </div>\n                    <div\n                        [tooltipBackground]=\"'#424242'\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"'Delete'\"\n                        position=\"top\"\n                    >\n                        <svg-icon\n                            class=\"svg-icon icon-delete d-flex justify-content-center align-items-center\"\n                            [src]=\"action.DELETE | iconPipe\"\n                            (click)=\"onAction(action.DELETE)\"\n                        ></svg-icon>\n                    </div>\n                }\n            </div>\n        </div>\n        <!-- Comment Body -->\n        <div class=\"comment-container-content-bottom\">\n            <textarea\n                #commentTextarea\n                class=\"message d-flex align-items-center\"\n                placeholder=\"Write Comment...\"\n                appAutoResize\n                [readonly]=\"!isEditMode\"\n                [ngClass]=\"{ 'is-editing': isEditMode }\"\n            ></textarea>\n        </div>\n    </div>\n</div>\n","export enum eCarouselAction {\n    PREV = 'prev',\n    NEXT = 'next',\n}\n","export enum eFilesCarouselSize {\n    SMALL = 'small',\n    MEDIUM = 'medium',\n    LARGE = 'large',\n    EXTRALARGE = 'extralarge',\n    MODAL_LARGE = 'modal-large',\n    MODAL_MEDIUM = 'modal-medium',\n}\n","import { eFilesCarouselSize } from '../../enums';\n\nexport class FilesBySizeConstants {\n    public static readonly FILES_SHOWN_BY_SIZE: { [key: string]: number } = {\n        [eFilesCarouselSize.LARGE]: 4,\n        [eFilesCarouselSize.MEDIUM]: 3,\n        [eFilesCarouselSize.EXTRALARGE]: 7,\n        default: 2,\n    };\n\n    public static readonly FILES_SHOWN_BY_SIZE_PREVIOUS: {\n        [key: string]: number;\n    } = {\n        [eFilesCarouselSize.LARGE]: 3,\n        [eFilesCarouselSize.MEDIUM]: 2,\n        [eFilesCarouselSize.EXTRALARGE]: 6,\n        default: 1,\n    };\n}\n","export class CarouselSvgRoute {\n    static arrow:string  = 'assets/ca-components/svg/dropzone/upload-arrow.svg';\n}","import { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Enums\nimport { eCarouselAction, eFilesCarouselSize } from './enums';\n\n//Utils\nimport { CarouselSvgRoute, FilesBySizeConstants } from './utils';\n\n//Interfaces\nimport { IFilesCarouselConfig } from './interfaces';\n\n@Component({\n    selector: 'app-ca-upload-files-carousel',\n    templateUrl: './ca-upload-files-carousel.component.html',\n    styleUrls: ['./ca-upload-files-carousel.component.scss'],\n    imports: [CommonModule, AngularSvgIconModule]\n})\nexport class CaUploadFilesCarouselComponent implements OnInit {\n    @ViewChild('fileSlider')\n    fileSlider!: ElementRef;\n    @ViewChild('fileHolder')\n    fileHolder!: ElementRef;\n\n    @Input() slideWidth: number = 180;\n    @Input() set config(data: IFilesCarouselConfig) {\n        this.carouselConfig = data;\n    }\n\n    @Output() activeSlide: EventEmitter<number> = new EventEmitter<number>();\n    @Output() hoverArrowEmit: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    public carouselConfig!: IFilesCarouselConfig;\n    public action = eCarouselAction;\n    public currentSlide: number = 0;\n    public removePointers: boolean = false;\n    public filesShown: number = 0;\n    public arrowSvg = CarouselSvgRoute.arrow;\n    public multipleCurrentSlide: number = 0;\n    public translateXMultipleSlides: number = 0;\n\n    constructor(private ref: ChangeDetectorRef) {}\n\n    ngOnInit(): void {\n        this.initializeCarousel();\n    }\n\n    private initializeCarousel(): void {\n        if (this.carouselConfig.customClass) {\n            this.filesShown = this.calculateFilesShown();\n        }\n    }\n\n    public calculateFilesShown(): number {\n        const size = this.carouselConfig.customClass.toLowerCase();\n        return (\n            FilesBySizeConstants.FILES_SHOWN_BY_SIZE[\n                size as eFilesCarouselSize\n            ] || FilesBySizeConstants.FILES_SHOWN_BY_SIZE['default']\n        );\n    }\n\n    public onAction(action: eCarouselAction): void {\n        if (!this.carouselConfig.files) return;\n\n        // Todo for both cases\n        if (\n            this.carouselConfig.customDetailsPageClass === 'todo-details' &&\n            this.carouselConfig.files.length === 3\n        ) {\n            if (action === eCarouselAction.PREV) {\n                this.multipleCurrentSlide = 0;\n                this.translateXMultipleSlides = 0;\n            } else if (action === eCarouselAction.NEXT) {\n                this.resetMultipleSlides();\n            }\n            this.updatePointerRemoval();\n            return;\n        }\n\n        // prev and next\n        switch (action) {\n            case eCarouselAction.PREV:\n                this.goToPreviousSlide();\n                this.handleSlideChange(-1, true);\n                break;\n\n            case eCarouselAction.NEXT:\n                this.goToNextSlide();\n                this.handleSlideChange(1, false);\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    private handleSlideChange(direction: number, isPrevious: boolean): void {\n        const size =\n            this.carouselConfig.customClass?.toLowerCase() as eFilesCarouselSize;\n\n        this.filesShown = isPrevious\n            ? FilesBySizeConstants.FILES_SHOWN_BY_SIZE_PREVIOUS[size] ||\n              FilesBySizeConstants.FILES_SHOWN_BY_SIZE_PREVIOUS['default']\n            : FilesBySizeConstants.FILES_SHOWN_BY_SIZE[size] ||\n              FilesBySizeConstants.FILES_SHOWN_BY_SIZE['default'];\n\n        const totalFiles = this.carouselConfig.files.length;\n\n        if (direction === -1) {\n            if (this.multipleCurrentSlide <= 0) {\n                //If we are on the first slide, go to the last set of files\n                this.multipleCurrentSlide = totalFiles - this.filesShown;\n                this.translateXMultipleSlides = -(\n                    (this.filesShown - 1) *\n                    this.slideWidth\n                );\n            } else {\n                this.multipleCurrentSlide--;\n                this.translateXMultipleSlides += this.slideWidth;\n            }\n        } else if (direction === 1) {\n            if (this.multipleCurrentSlide >= totalFiles - this.filesShown) {\n                //If we are on the last slide, go to the first set of files\n                this.multipleCurrentSlide = 0;\n                this.translateXMultipleSlides = 0;\n            } else {\n                this.multipleCurrentSlide++;\n                this.translateXMultipleSlides -= this.slideWidth;\n            }\n        }\n\n        this.updatePointerRemoval();\n    }\n\n    private goToPreviousSlide(): void {\n        const previous = this.currentSlide - 1;\n        this.currentSlide =\n            previous < 0 ? this.carouselConfig.files.length - 1 : previous;\n        this.activeSlide.emit(this.currentSlide);\n    }\n\n    private goToNextSlide(): void {\n        const next = this.currentSlide + 1;\n        this.currentSlide =\n            next === this.carouselConfig.files.length ? 0 : next;\n        this.activeSlide.emit(this.currentSlide);\n    }\n\n    private resetMultipleSlides(): void {\n        this.multipleCurrentSlide =\n            this.carouselConfig.files.length - this.filesShown;\n        this.translateXMultipleSlides = -(\n            this.fileSlider.nativeElement.clientWidth -\n            this.fileHolder.nativeElement.clientWidth\n        );\n    }\n\n    private updatePointerRemoval(): void {\n        this.removePointers = false;\n        this.fileSlider.nativeElement.scrollWidth <=\n            this.fileHolder.nativeElement.clientWidth;\n        this.ref.markForCheck();\n    }\n\n    public slideToFile(index: number): void {\n        this.currentSlide = index;\n        this.activeSlide.emit(this.currentSlide);\n        this.updatePointerRemoval();\n    }\n\n    public hoverArrow(show: boolean): void {\n        this.hoverArrowEmit.emit(show);\n    }\n\n    public identity(index: number): number {\n        return index;\n    }\n}\n","<div\n    class=\"upload-carousel inline-table {{ carouselConfig.customClass }} {{\n        carouselConfig.customDetailsPageClass\n    }}\"\n    [ngClass]=\"{ remove_pointers: removePointers }\"\n>\n    <div class=\"ta-upload-files-carousel d-grid\" #fileHolder>\n        <div\n            class=\"carousel-slider d-flex align-items-center\"\n            #fileSlider\n            [ngClass]=\"{\n                'multiple-slider': [\n                    'medium',\n                    'large',\n                    'small',\n                    'extralarge',\n                ].includes(carouselConfig.customClass.toLowerCase()),\n            }\"\n            [ngStyle]=\"{\n                transform: 'translateX(' + translateXMultipleSlides + 'px)',\n            }\"\n        >\n            <ng-content></ng-content>\n        </div>\n    </div>\n\n    <!-- Carousel Button Tabs -->\n    @if (\n        carouselConfig.hasCarouselBottomTabs && carouselConfig.files.length > 1\n    ) {\n        <div class=\"carousel-tabs-control d-flex align-items-center\">\n            @for (file of carouselConfig.files; let ind = $index; track ind) {\n                <div\n                    class=\"carousel-tab\"\n                    (click)=\"slideToFile(ind)\"\n                    [ngClass]=\"{ 'active-tab': currentSlide === ind }\"\n                ></div>\n            }\n        </div>\n    }\n\n    <!-- Carousel Buttons Left & Right -->\n    <div\n        class=\"ta-upload-carousel-control-bg prev\"\n        [hidden]=\"\n            (carouselConfig.files.length < 2 &&\n                carouselConfig.customClass === 'small') ||\n            (carouselConfig.files.length < 3 &&\n                carouselConfig.customClass === 'medium') ||\n            (carouselConfig.files.length < 4 &&\n                carouselConfig.customClass === 'large') ||\n            multipleCurrentSlide == 0\n        \"\n        [ngClass]=\"{\n            show:\n                carouselConfig.customDetailsPageClass === 'todo-details' &&\n                carouselConfig.files.length === 3 &&\n                translateXMultipleSlides < 0,\n            remove_pointers: removePointers,\n        }\"\n        (mouseenter)=\"hoverArrow(true)\"\n        (mouseleave)=\"hoverArrow(false)\"\n    >\n        <svg-icon\n            (click)=\"onAction(action.PREV)\"\n            class=\"ta-upload-files-control ta-upload-files-carousel-left d-flex\"\n            [src]=\"arrowSvg\"\n        ></svg-icon>\n    </div>\n    <div\n        class=\"ta-upload-carousel-control-bg next\"\n        [hidden]=\"\n            (carouselConfig.files.length < 2 &&\n                carouselConfig.customClass === 'small') ||\n            (carouselConfig.files.length < 3 &&\n                carouselConfig.customClass === 'medium') ||\n            (carouselConfig.files.length < 4 &&\n                carouselConfig.customClass === 'large') ||\n            (carouselConfig.files.length < 7 &&\n                carouselConfig.customClass === 'extralarge') ||\n            multipleCurrentSlide > carouselConfig.files.length - filesShown\n        \"\n        [ngClass]=\"{\n            show:\n                carouselConfig.customDetailsPageClass === 'todo-details' &&\n                carouselConfig.files.length === 3 &&\n                translateXMultipleSlides === 0,\n            remove_pointers: removePointers,\n        }\"\n        (mouseenter)=\"hoverArrow(true)\"\n        (mouseleave)=\"hoverArrow(false)\"\n    >\n        <svg-icon\n            (click)=\"onAction(action.NEXT)\"\n            class=\"ta-upload-files-control ta-upload-files-carousel-right\"\n            [src]=\"arrowSvg\"\n        ></svg-icon>\n    </div>\n</div>\n","export enum eFileDropZoneAction {\n    ADD = 'add',\n    DROP = 'drop',\n    DRAGOVER = 'dragover',\n    DRAGLEAVE = 'dragleave'\n  }","export enum eDropZoneFileType {\n    FILES = 'files',\n    MEDIA = 'media',\n    IMAGE = 'image',\n    LOGO = 'logo'\n  }","export enum eFileUploadPage {\n    LIST_LOAD = 'list_load',\n    LIST_CUSTOMER = 'list_customer',\n    LIST_DRIVER = 'list_driver',\n    CDL = 'cdl',\n    MEDICAL = 'medical',\n    MVR = 'mvr',\n    TEST = 'test',\n    LIST_TRUCK = 'list_truck',\n    REGISTRATION = 'registration',\n    INSPECTION = 'inspection',\n    TITLE = 'title',\n    LEASE_RENT = 'lease_rent',\n    LEASE_PURCHASE = 'lease_purchase',\n    LIST_REPAIR_TRUCK_TRAILER = 'list_repair_truck_trailer',\n    LIST_REPAIR_SHOP = 'list_repair_shop',\n    LIST_FUEL = 'list_fuel',\n    LIST_OWNER = 'list_owner',\n    SAFETY_ROADSIDE_INSPECTION = 'safety_roadside_inspection',\n    SAFETY_ROADSIDE_INSPECTION_CITATION = 'safety_roadside_inspection_citation',\n    SAFETY_ACCIDENT = 'safety_accident',\n    SAFETY_ACCIDENT_CITATION = 'safety_accident_citation',\n    TOOLS_TODO = 'tools_todo',\n    FAX = 'fax',\n    INSURANCE_COMPANY = 'insurance_company',\n}\n","export enum eTemplateType {\n    DOCUMENTS = 'documentsTemplate',\n    MEDIA = 'mediaTemplate',\n    IMAGE = 'imageTemplate',\n    IMAGE_CROP = 'imageCropTemplate',\n    LOGO = 'logoTemplate',\n}\n","//enums\nimport { eDropZoneFileType } from '../../enums';\n\nexport class FileIconsConstants {\n    public static readonly ICONS: Record<eDropZoneFileType, string> = {\n        [eDropZoneFileType.FILES]:\n            'assets/ca-components/svg/dropzone/documentDropzone.svg',\n        [eDropZoneFileType.MEDIA]:\n            'assets/ca-components/svg/dropzone/mediaDropzone.svg',\n        [eDropZoneFileType.IMAGE]:\n            'assets/ca-components/svg/dropzone/imageDropzone.svg',\n        [eDropZoneFileType.LOGO]:\n            'assets/ca-components/svg/dropzone/logoDropzone.svg',\n    };\n}\n\nexport class FileAnimationConstants {\n    public static readonly ANIMATIONS: Record<eDropZoneFileType, string> = {\n        [eDropZoneFileType.FILES]:\n            'assets/lottie/dropzone/animation-document.json',\n        [eDropZoneFileType.MEDIA]:\n            'assets/lottie/dropzone/animation-media.json',\n        [eDropZoneFileType.IMAGE]:\n            'assets/lottie/dropzone/animation-image.json',\n        [eDropZoneFileType.LOGO]: 'assets/lottie/dropzone/animation-logo.json',\n    };\n}\n","//enums\nimport { eDropZoneFileType } from '../../enums';\n\nexport class FileMimeTypeConstants {\n    public static readonly SUPORTED_MIME_TYPE_MAP: Record<\n        eDropZoneFileType,\n        string[]\n    > = {\n        [eDropZoneFileType.IMAGE]: ['image/jpeg', 'image/png'],\n        [eDropZoneFileType.FILES]: [\n            'application/pdf',\n            'image/jpeg',\n            'image/png',\n        ],\n        [eDropZoneFileType.LOGO]: ['image/jpeg', 'image/png'],\n        [eDropZoneFileType.MEDIA]: [\n            'image/jpeg', // JPEG/JPG image format\n            'image/png', // PNG image format\n            'video/quicktime', // MOV video format\n            'video/mp4', // MP4 video format\n            'video/avi', // AVI video format\n        ],\n    };\n\n    public static MIME_TYPE_TO_EXTENSION: Record<string, string> = {\n        'image/jpeg': 'jpeg', // JPEG/JPG image format\n        'image/png': 'png', // PNG image format\n        'application/pdf': 'pdf', // PDF document format\n        'video/quicktime': 'mov', // MOV video format\n        'video/mp4': 'mp4', // MP4 video format\n        'video/avi': 'avi', // AVI video format\n    };\n}\n","import { AnimationOptions } from 'ngx-lottie';\n\nexport class LottieAnimationConstants {\n    public static readonly DEFAULT_LOTTIE: AnimationOptions = {\n        renderer: 'svg',\n        autoplay: false,\n        loop: false,\n        path: '',\n    };\n}\n","//enums\nimport { eFileUploadPage } from '../../enums';\n\nexport class FileLimitConstants {\n    public static readonly LIMIT: { [key: string]: number } = {\n        //Load\n        [eFileUploadPage.LIST_LOAD]: 15,\n        //Customer\n        [eFileUploadPage.LIST_CUSTOMER]: 3,\n        //Driver\n        [eFileUploadPage.LIST_DRIVER]: 15,\n        [eFileUploadPage.CDL]: 3,\n        [eFileUploadPage.MEDICAL]: 1,\n        [eFileUploadPage.MVR]: 1,\n        [eFileUploadPage.TEST]: 1,\n        //Truck\n        [eFileUploadPage.LIST_TRUCK]: 15,\n        [eFileUploadPage.REGISTRATION]: 1,\n        [eFileUploadPage.INSPECTION]: 1,\n        [eFileUploadPage.TITLE]: 1,\n        [eFileUploadPage.LEASE_RENT]: 1,\n        [eFileUploadPage.LEASE_PURCHASE]: 1,\n        //Repair\n        [eFileUploadPage.LIST_REPAIR_TRUCK_TRAILER]: 3,\n        [eFileUploadPage.LIST_REPAIR_SHOP]: 3,\n        //Fuel\n        [eFileUploadPage.LIST_FUEL]: 3,\n        //Owner\n        [eFileUploadPage.LIST_OWNER]: 3,\n        //Roadside Inspection\n        [eFileUploadPage.SAFETY_ROADSIDE_INSPECTION]: 3,\n        [eFileUploadPage.SAFETY_ROADSIDE_INSPECTION_CITATION]: 1,\n        //Accident\n        [eFileUploadPage.SAFETY_ACCIDENT]: 3,\n        [eFileUploadPage.SAFETY_ACCIDENT_CITATION]: 1,\n        //Tools\n        [eFileUploadPage.TOOLS_TODO]: 3,\n        [eFileUploadPage.FAX]: 1, // TBD\n        [eFileUploadPage.INSURANCE_COMPANY]: 3,\n    };\n}\n","import { Observable } from 'rxjs';\n\nexport class FileHelper {\n    public static getBlob(file: File): Observable<Blob> {\n        return new Observable<Blob>((subscriber) => {\n            subscriber.next(file);\n            subscriber.complete();\n        });\n    }\n\n    public static getFileExtension(mimeType: string): string {\n        return mimeType.split('/')[1].toLocaleLowerCase();\n    }\n\n    public static isSupportedExtension(\n        extension: string,\n        supportedExtensionsConfig: string[]\n    ): boolean {\n        const supportedExtensions = this.getSupportedExtensions(\n            supportedExtensionsConfig\n        );\n        return supportedExtensions.includes(extension);\n    }\n\n    private static getSupportedExtensions(\n        supportedExtensionsConfig: string[]\n    ): string[] {\n        return supportedExtensionsConfig;\n    }\n}\n","export class DropzoneSvgRoute {\n    static close: string = 'assets/ca-components/svg/dropzone/x.svg';\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'urlExtension',\n  standalone: true,\n})\n@Injectable({ providedIn: 'root' })\nexport class UrlExtensionPipe implements PipeTransform {\n  transform(url: string): string {\n    if (!url) {\n      return '';\n    }\n\n    const ext = url.split('.');\n\n    return ext[ext.length - 1];\n  }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  standalone: true,\n  name: 'fileName',\n})\n@Injectable({ providedIn: 'root' })\nexport class FileNamePipe implements PipeTransform {\n  transform(url: string | undefined): string {\n    if (!url) {\n      return '';\n    }\n    const fileName = url.split('/').pop() || '';\n    const nameWithoutExtension = fileName.split('.').slice(0, -1).join('.');\n    return nameWithoutExtension;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'byteConvert',\n    standalone: true\n})\nexport class ByteConvertPipe implements PipeTransform {\n    transform(bytes: number): string {\n        if (!+bytes) return '0 Bytes';\n\n        const k = 1024;\n        const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n        const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n        return `${parseFloat((bytes / Math.pow(k, i)).toFixed(0))} ${sizes[i]}`;\n    }\n}\n","export enum eFileType {\n    MODAL = 'modal',\n    TABLE = 'table',\n    DETAILS = 'details',\n    TODO = 'todo',\n}\n","export enum eFileSize {\n    SMALL = 'small',\n    MEDIUM = 'medium',\n    LARGE = 'large',\n    MODAL_LARGE = 'modal-large',\n    MODAL_MEDIUM = 'modal-medium',\n}\n","export enum eFileAction {\n    ADD = 'add',\n    REPLACE = 'replace',\n    DELETE = 'delete',\n}\n","export enum eReviewState {\n    REVIEW_MODE = 'REVIEW_MODE',\n    FEEDBACK_MODE = 'FEEDBACK_MODE',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eReviewState } from '../../../enums';\n\n@Pipe({\n    name: 'ngClassPipe',\n    standalone: true,\n})\nexport class NgClassPipe implements PipeTransform {\n    transform(\n        config: any,\n        t2: any,\n        isArrowHovered: boolean,\n        annotationHover: boolean,\n        reviewFileConfig: any\n    ): any {\n        return {\n            modal:\n                !config.customClassName ||\n                config.customClassName === '' ||\n                config.customClassName === 'modals',\n            keep_open:\n                t2?.isOpen() ||\n                (config.customClassName === 'modals' &&\n                    isArrowHovered &&\n                    config.file?.lastHovered) ||\n                (config.customClassName !== 'modals' &&\n                    config.customClassName !== 'table-details' &&\n                    config.customClassName !== 'todo-details' &&\n                    isArrowHovered),\n            keep_open_modals:\n                (config.customClassName === 'modals' && t2?.isOpen()) ||\n                (config.customClassName === 'modals' &&\n                    isArrowHovered &&\n                    config.file?.lastHovered),\n            applicant_review: config.file?.incorrect,\n            annotation_hover: annotationHover,\n            applicant_feedback:\n                reviewFileConfig.reviewMode === eReviewState.FEEDBACK_MODE,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// constants\nimport { FileMimeTypeConstants } from '../../ca-upload-dropzone/utils/constants';\n\n@Pipe({\n    name: 'mimeTypeToExtension',\n    standalone: true,\n})\nexport class MimeTypeToExtensionPipe implements PipeTransform {\n    transform(mimeType: string): string {\n        return FileMimeTypeConstants.MIME_TYPE_TO_EXTENSION[mimeType];\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewChildren,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { FormsModule } from '@angular/forms';\nimport { catchError, from, map, Observable } from 'rxjs';\nimport { LottieComponent, provideLottieOptions } from 'ngx-lottie';\n\n//Interfaces\nimport {\n    IDropBackgroundEvent,\n    IDropZoneConfig,\n    IFileConfig,\n} from './interfaces';\n\n//Constants\nimport {\n    FileAnimationConstants,\n    FileIconsConstants,\n    FileLimitConstants,\n    FileMimeTypeConstants,\n    LottieAnimationConstants,\n} from './utils/constants';\n\n//Enum\nimport {\n    eFileDropZoneAction,\n    eDropZoneFileType,\n    eFileUploadPage,\n    eTemplateType,\n} from './enums';\n\n//Directive\nimport { TemplateContainerDirective } from './directives/template.directive';\n\n//Helper\nimport { FileHelper } from './helpers';\n\n//Router\nimport { DropzoneSvgRoute } from './utils/svg-routes/dropzone-svg.routes';\n\n//Pipes\nimport { MimeTypeToExtensionPipe } from '../ca-upload-file/pipes';\n\n//Interfaces\n\n@Component({\n    selector: 'app-ca-upload-dropzone',\n    templateUrl: './ca-upload-dropzone.component.html',\n    styleUrls: ['./ca-upload-dropzone.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        FormsModule,\n        NgTemplateOutlet,\n        TemplateContainerDirective,\n        LottieComponent,\n        MimeTypeToExtensionPipe,\n    ],\n    providers: [\n        provideLottieOptions({\n            player: () => import('lottie-web'),\n        }),\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaUploadDropzoneComponent {\n    @ViewChildren(TemplateContainerDirective)\n    templateRef!: QueryList<TemplateContainerDirective>;\n    @ViewChild('dropZone') dropZone!: ElementRef<HTMLInputElement>;\n\n    @Input() set dropZoneConfig(data: IDropZoneConfig) {\n        setTimeout(() => {\n            this._dropZoneConfig = data;\n\n            //Icons\n            this.getIcons();\n\n            //Supported files\n            this.supportedFiles();\n\n            //Dropzone text\n            this.updateDropZoneText();\n\n            //Lottie\n            this.updateLottieOptions();\n\n            this.cdr.markForCheck();\n        }, 0);\n    }\n    @Input() isDropzoneShownInCrop: boolean = false;\n    @Input() customWidth!: string;\n\n    @Input() files: IFileConfig[] = [];\n\n    @Output()\n    onFileEvent: EventEmitter<{ files: IFileConfig[]; action: string }> =\n        new EventEmitter<{ files: IFileConfig[]; action: string }>();\n    @Output() onDropBackground: EventEmitter<IDropBackgroundEvent> =\n        new EventEmitter<IDropBackgroundEvent>();\n    @Output() closeDropzone = new EventEmitter<{}>();\n\n    public _dropZoneConfig!: IDropZoneConfig;\n    public isShownDropzoneFocus: boolean = false;\n    public isFileDrop: boolean = false;\n    public isSupportedType: boolean = false;\n    public dropZoneText: string = '';\n    public isDropzoneExpanded: boolean = false;\n    public iconSrc: string = '';\n    public dropZoneAvailableFiles: string[] = [];\n    public limit: number = 0;\n\n    public lottieOptions = LottieAnimationConstants.DEFAULT_LOTTIE;\n    public dropzoneSvgRoute = DropzoneSvgRoute.close;\n\n    constructor(private cdr: ChangeDetectorRef) {}\n\n    @HostListener('body:dragleave', ['$event'])\n    public onDragLeaveWindows(event: DragEvent) {\n        event.preventDefault();\n        event.stopPropagation();\n        this.isShownDropzoneFocus = false;\n        this.isDropzoneExpanded = false;\n        this.isFileDrop = false;\n        this.onDropBackground.emit({\n            action: eFileDropZoneAction.DRAGLEAVE,\n            value: false,\n        });\n    }\n\n    @HostListener('drop', ['$event'])\n    public onDrop(event: DragEvent) {\n        event.preventDefault();\n        event.stopPropagation();\n        this.isDropzoneExpanded = false;\n        this.isShownDropzoneFocus = false;\n        this.isFileDrop = true;\n\n        this.onDropBackground.emit({\n            action: eFileDropZoneAction.DROP,\n            value: false,\n        });\n\n        if (event.dataTransfer?.files) {\n            this.onFileUpload(event.dataTransfer.files);\n            this.isFileDrop = false;\n        }\n    }\n\n    @HostListener('dragover', ['$event'])\n    public onDragOver(event: DragEvent) {\n        event.preventDefault();\n        this.isShownDropzoneFocus = true;\n        this.isDropzoneExpanded = true;\n        this.isFileDrop = true;\n        this.onDropBackground.emit({\n            action: eFileDropZoneAction.DRAGOVER,\n            value: true,\n        });\n\n        if (this.lottieOptions && !this.lottieOptions.autoplay) {\n            this.lottieOptions = {\n                ...this.lottieOptions,\n                autoplay: true,\n            };\n        }\n    }\n\n    @HostListener('dragleave', ['$event'])\n    public onDragLeave(event: DragEvent): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.isShownDropzoneFocus = false;\n        this.isFileDrop = false;\n        this.isDropzoneExpanded = true;\n        setTimeout(() => {\n            if (!this.isShownDropzoneFocus) {\n                this.isFileDrop = false;\n                this.isDropzoneExpanded = true;\n            }\n        }, 100);\n        this.onDropBackground.emit({\n            action: eFileDropZoneAction.DRAGLEAVE,\n            value: false,\n        });\n    }\n\n    @HostListener('window:dragenter', ['$event'])\n    public onWindowDragEnter(event: DragEvent): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.isFileDrop = false;\n        this.isShownDropzoneFocus = true;\n        this.isDropzoneExpanded = true;\n\n        const eFileType = this._dropZoneConfig?.config?.dropzone\n            ?.dropZoneType as eDropZoneFileType;\n        const animationPath = FileAnimationConstants.ANIMATIONS[eFileType];\n\n        if (animationPath) {\n            this.lottieOptions = {\n                renderer: 'svg',\n                autoplay: !this.isShownDropzoneFocus,\n                loop: false,\n                path: animationPath,\n            };\n        }\n    }\n\n    @HostListener('window:drop', ['$event'])\n    public onWindowDrop(event: DragEvent): void {\n        this.isDropzoneExpanded = false;\n        event.preventDefault();\n        event.stopPropagation();\n        this.onDropBackground.emit({\n            action: eFileDropZoneAction.DROP,\n            value: false,\n        });\n    }\n\n    @HostListener('click', ['$event'])\n    public triggerFileInput(event: MouseEvent): void {\n        event.stopPropagation();\n\n        if (this.isMaxCountReached()) {\n            return;\n        }\n        this.dropZone.nativeElement.click();\n    }\n\n    public getIcons() {\n        this.iconSrc =\n            FileIconsConstants.ICONS[\n                this._dropZoneConfig?.config?.dropzone\n                    ?.dropZoneType as eDropZoneFileType\n            ];\n    }\n\n    public supportedFiles() {\n        this.dropZoneAvailableFiles =\n            FileMimeTypeConstants.SUPORTED_MIME_TYPE_MAP[\n                this._dropZoneConfig?.config?.dropzone\n                    ?.dropZoneType as eDropZoneFileType\n            ];\n    }\n\n    //limit files\n    public maxFilesAllowed(): number {\n        return FileLimitConstants.LIMIT[\n            this._dropZoneConfig?.config?.dropzone\n                ?.dropZonePages as eFileUploadPage\n        ];\n    }\n\n    // TODO: Bogdan - move to getter to use property instead of method to avoid unnecessary change detection triggers\n    public isMaxCountReached(): boolean {\n        this.limit =\n            FileLimitConstants.LIMIT[\n                this._dropZoneConfig?.config?.dropzone\n                    ?.dropZonePages as eFileUploadPage\n            ] || 0;\n        return this.files.length >= this.limit;\n    }\n\n    //Files\n    public handleFileChange(event: Event): void {\n        const input = event.target as HTMLInputElement;\n        if (input.files) {\n            this.onFileUpload(input.files);\n        }\n    }\n\n    public onFileUpload(files: FileList): Observable<void> {\n        const fileArray = Array.from(files);\n\n        const uploadObservables = fileArray.map((file, index) =>\n            this.addFile(file, index === fileArray.length - 1)\n        );\n\n        return from(uploadObservables).pipe(\n            catchError((error) => {\n                console.error('Error uploading files:', error);\n                return [];\n            }),\n            map(() => {\n                console.log('All files uploaded successfully');\n            })\n        );\n    }\n\n    public resetDropzoneView(event: Event): void {\n        this.isSupportedType = false;\n\n        event?.stopPropagation();\n    }\n\n    //Template\n    public getTemplate(template: eTemplateType): TemplateRef<any> {\n        const templateRef: TemplateContainerDirective | undefined =\n            this.templateRef?.find((temp) => temp.id === template);\n\n        if (!templateRef) {\n            throw new Error('Unavailable template!');\n        }\n\n        return templateRef?.template;\n    }\n\n    private addFile(file: File, emitEvent?: boolean): void {\n        if (!file) return;\n\n        const { type } = file;\n        try {\n            //TODO: Bogdan - get file extension from metadata, not file name extension\n            const fileExtension = FileHelper.getFileExtension(type);\n            if (\n                !FileHelper.isSupportedExtension(\n                    file.type,\n                    this.dropZoneAvailableFiles\n                )\n            ) {\n                if (\n                    !this._dropZoneConfig?.config?.dropzoneOption\n                        ?.disableUnsupportedPreview\n                ) {\n                    this.isSupportedType = true;\n                }\n\n                return;\n            }\n\n            this.isSupportedType = false;\n\n            FileHelper.getBlob(file).subscribe({\n                next: (blobContent) => {\n                    const blobUrl = URL.createObjectURL(blobContent);\n                    this.files = [\n                        ...this.files,\n                        {\n                            fileName: file.name,\n                            url: blobUrl,\n                            extension: fileExtension,\n                            guid: null,\n                            size: file.size,\n                            realFile: blobContent,\n                        },\n                    ];\n\n                    if (emitEvent) {\n                        this.onFileEvent.emit({\n                            files: this.files,\n                            action: eFileDropZoneAction.ADD,\n                        });\n                    }\n                },\n                error: (error) => {\n                    console.error('Error reading file:', error);\n                },\n            });\n        } catch (err) {\n            throw new Error('Cant upload file');\n        }\n    }\n\n    //Lottie\n    private updateLottieOptions(): void {\n        const eFileType = this._dropZoneConfig?.config?.dropzone\n            ?.dropZoneType as eDropZoneFileType;\n        const animationPath = FileAnimationConstants.ANIMATIONS[eFileType];\n\n        if (animationPath) {\n            this.lottieOptions = {\n                renderer: 'svg',\n                autoplay: !this.isShownDropzoneFocus,\n                loop: false,\n                path: animationPath,\n            };\n        }\n    }\n\n    //Dropzone text\n    private updateDropZoneText(): void {\n        const dropZoneTextMap: { [key in eDropZoneFileType]?: string } = {\n            [eDropZoneFileType.FILES]: 'FILES',\n            [eDropZoneFileType.MEDIA]: 'MEDIA',\n            [eDropZoneFileType.IMAGE]: 'IMAGE',\n            [eDropZoneFileType.LOGO]: 'IMAGE',\n        };\n\n        this.dropZoneText =\n            dropZoneTextMap[\n                this._dropZoneConfig?.config?.dropzone\n                    ?.dropZoneType as eDropZoneFileType\n            ] || 'FILE IMPORT FAILED';\n    }\n}\n","<div\n    class=\"dropzone-container d-flex align-items-center justify-content-center\"\n    [ngClass]=\"{\n        'split-dropzone': isDropzoneShownInCrop,\n        unSupported: isSupportedType,\n        expanded: isDropzoneExpanded && !isSupportedType,\n        'disabled-dropzone': files.length >= this.limit && this.limit > 0,\n    }\"\n    [ngStyle]=\"{\n        width:\n            files.length === 0\n                ? customWidth || '448px'\n                : files.length === 1\n                  ? '296px'\n                  : files.length === 2\n                    ? '148px'\n                    : files.length === 3\n                      ? '148px'\n                      : '148px',\n    }\"\n>\n    <!-- @for (item of _dropZoneConfigArray; track $index) { -->\n    @if (_dropZoneConfig) {\n        <div\n            class=\"dropzone-content d-flex align-items-center justify-content-center\"\n            [ngClass]=\"{\n                'upload-dropzone-unsupported': isSupportedType,\n                expandedContent: isDropzoneExpanded,\n                'column-layout': files.length >= 2,\n            }\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"\n                    getTemplate(_dropZoneConfig.template);\n                    context: { $implicit: _dropZoneConfig?.config }\n                \"\n            ></ng-container>\n        </div>\n    }\n    <!-- } -->\n</div>\n\n<!-------------Document template-------------->\n<ng-template templateContainer id=\"documentsTemplate\" let-config>\n    <!--SVG ICON-->\n    @if (!isShownDropzoneFocus && !isDropzoneExpanded) {\n        <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n    }\n\n    <!--Lottie animation-->\n    @if ((isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"lottieAnimationTemplate\"\n        ></ng-container>\n    }\n\n    <!--Content for supported and unsupported types-->\n    <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n    <!--Supported extensions for unsupported type-->\n    @if (isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n        ></ng-container>\n    }\n\n    <!--FILE INPUT-->\n    <ng-container\n        *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n    ></ng-container>\n</ng-template>\n\n<!-------------Media template-------------->\n<ng-template templateContainer id=\"mediaTemplate\" let-config>\n    <!--SVG ICON-->\n    @if (!isShownDropzoneFocus && !isDropzoneExpanded) {\n        <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n    }\n\n    <!--Lottie animation-->\n    @if ((isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"lottieAnimationTemplate\"\n        ></ng-container>\n    }\n\n    <!--Content for supported and unsupported types-->\n    <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n    <!--Supported extensions for unsupported type-->\n    @if (isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n        ></ng-container>\n    }\n\n    <!--FILE INPUT-->\n    <ng-container\n        *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n    ></ng-container>\n</ng-template>\n\n<!-------------Image template-------------->\n<ng-template templateContainer id=\"imageTemplate\" let-config>\n    <!--SVG ICON-->\n    @if (!isShownDropzoneFocus && !isDropzoneExpanded) {\n        <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n    }\n\n    <!--Lottie animation-->\n    @if ((isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"lottieAnimationTemplate\"\n        ></ng-container>\n    }\n\n    <!--Content for supported and unsupported types-->\n    <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n    <!--Supported extensions for unsupported type-->\n    @if (isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n        ></ng-container>\n    }\n\n    <!--FILE INPUT-->\n    <ng-container\n        *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n    ></ng-container>\n</ng-template>\n\n<!-------------Image Crop template-------------->\n<ng-template templateContainer id=\"imageCropTemplate\" let-config>\n    <!--SVG ICON-->\n    @if (!isShownDropzoneFocus && !isDropzoneExpanded) {\n        <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n    }\n\n    <!--Lottie animation-->\n    @if ((isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"lottieAnimationTemplate\"\n        ></ng-container>\n    }\n\n    <!--Content for supported and unsupported types-->\n    <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n    <!--Supported extensions for unsupported type-->\n    @if (isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n        ></ng-container>\n    }\n\n    <!--FILE INPUT-->\n    <ng-container\n        *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n    ></ng-container>\n</ng-template>\n\n<!-------------Logo template-------------->\n<ng-template templateContainer id=\"logoTemplate\" let-config>\n    <!--SVG ICON-->\n    @if (!isShownDropzoneFocus && !isDropzoneExpanded) {\n        <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n    }\n\n    <!--Lottie animation-->\n    @if ((isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"lottieAnimationTemplate\"\n        ></ng-container>\n    }\n\n    <!--Content for supported and unsupported types-->\n    <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n    <!--Supported extensions for unsupported type-->\n    @if (isSupportedType) {\n        <ng-container\n            *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n        ></ng-container>\n    }\n\n    <!--FILE INPUT-->\n    <ng-container\n        *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n    ></ng-container>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n\n<!------INPUT------->\n<ng-template #fileInputTemplate let-config>\n    <input\n        #dropZone\n        [id]=\"'dropZone' + (config.dropzoneOption?.dropzoneIndex || 0)\"\n        type=\"file\"\n        [accept]=\"config.dropzone?.dropZoneAvailableFiles\"\n        [multiple]=\"config.dropzone?.multiple\"\n        (change)=\"handleFileChange($event)\"\n        style=\"display: none\"\n    />\n</ng-template>\n\n<!--DROPZONE_TEXT-->\n<ng-template #dropzoneTextTemplate>\n    <div\n        class=\"dropzone-text d-flex flex-column align-items-center justify-content-center\"\n    >\n        <p\n            class=\"upload-dropzone-text\"\n            [ngClass]=\"{\n                'unsupported-text-big': isSupportedType,\n                'max-count': isMaxCountReached(),\n            }\"\n        >\n            @if (isMaxCountReached()) {\n                MAX COUNT REACHED\n            } @else {\n                <ng-container *ngTemplateOutlet=\"normalText\"> </ng-container>\n            }\n            <ng-template #normalText>\n                {{\n                    isSupportedType\n                        ? 'INVALID FILE TYPE'\n                        : 'DRAG ' + dropZoneText\n                }}\n                {{\n                    !(isSupportedType || (files && files.length)) ? ' HERE' : ''\n                }}\n            </ng-template>\n            @if (_dropZoneConfig?.template === 'mediaTemplate') {\n                <p class=\"media-sizes\">max file size 50mb</p>\n            }\n        </p>\n        @if (!isDropzoneExpanded) {\n            <span class=\"upload-dropzone-text-small\">\n                @if (isMaxCountReached()) {\n                    {{ files.length }} FILES IMPORTED\n                } @else {\n                    <ng-container *ngTemplateOutlet=\"formatText\">\n                    </ng-container>\n                }\n                <ng-template #formatText>\n                    {{\n                        isSupportedType\n                            ? 'SUPPORTED FORMATS'\n                            : 'OR CLICK TO ADD'\n                    }}\n                </ng-template>\n            </span>\n        }\n    </div>\n</ng-template>\n\n<!------ICON-------->\n<ng-template #dropzoneIconTemplate>\n    @if (!isSupportedType && !isFileDrop) {\n        <svg-icon\n            [src]=\"iconSrc\"\n            [ngClass]=\"files.length < 2 ? 'svgIcon-document' : 'svg-small'\"\n        >\n        </svg-icon>\n    } @else {\n        <svg-icon\n            [src]=\"dropzoneSvgRoute\"\n            class=\"cancel-unsupported-zone\"\n            (click)=\"resetDropzoneView($event)\"\n        >\n        </svg-icon>\n    }\n</ng-template>\n<!-- LOTTIE_ANIMATION -->\n<ng-template #lottieAnimationTemplate>\n    <div\n        class=\"animation-container d-flex flex-column align-items-center justify-content-center\"\n        [ngClass]=\"{ expanded: isDropzoneExpanded }\"\n    >\n        <ng-lottie\n            class=\"static-lottie-animation\"\n            [options]=\"lottieOptions\"\n        ></ng-lottie>\n    </div>\n</ng-template>\n\n<!-- SUPPORTED_EXTENSIONS -->\n<ng-template #supportedExtensionsTemplate>\n    <div class=\"supported-extensions d-flex justify-content-center\">\n        @for (extension of dropZoneAvailableFiles; track $index) {\n            <span\n                class=\"extension extension-{{\n                    extension | mimeTypeToExtension\n                }} \n                d-flex justify-content-center align-items-center\"\n            >\n                {{ extension | mimeTypeToExtension }}\n            </span>\n        }\n    </div>\n</ng-template>\n","export enum eDocumentAction {\n    TAG = 'tag',\n    DOWNLOAD = 'download',\n    DELETE = 'delete',\n    CANCEL = 'cancel',\n    MARK_CORRECT = 'mark-correct',\n    MARK_INCORRECT = 'mark-incorrect',\n}\n","import { ICaInput } from '../../../../../../../lib/components/ca-input/config';\nexport class UplodFileInputConfig {\n    static UPLOAD_INPUT_CONFIG: ICaInput = {\n        name: 'File Name',\n        type: 'text',\n        placeholder: 'Type File Name',\n        blackInput: true,\n        isDisabled: false,\n    };\n}\n","export class UploadFileRoutes {\n    static icons = {\n        download: 'assets/ca-components/svg/dropzone/ic_download.svg',\n        confirm: 'assets/ca-components/svg/dropzone/ic_confirm.svg',\n        tag: 'assets/ca-components/svg/dropzone/ic_tag.svg',\n        trash: 'assets/ca-components/svg/dropzone/ic_trash.svg',\n        close: 'assets/ca-components/svg/dropzone/x.svg',\n    };\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DocumentService {\n  public documentName: string | null = null;\n\n  constructor() {}\n\n  setDocumentName(data: string): void {\n    this.documentName = data;\n  }\n}\n","import {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    OnInit,\n    Output,\n    Renderer2,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\n\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, Subject, takeUntil } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { PDFDocumentProxy, PdfViewerModule } from 'ng2-pdf-viewer';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    NgbModule,\n    NgbPopover,\n    NgbPopoverModule,\n    NgbTooltip,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxMaskModule } from 'ngx-mask';\n\n//Components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { CaSpinnerComponent } from '../../../ca-spinner/ca-spinner.component';\n\n//Interfaces\nimport {\n    IDocumentReviewInputEvent,\n    IFileOptionConfig,\n    IReviewFileConfig,\n} from '../../interfaces';\nimport { IDeleteAction, IFileActionEvent } from './interfaces';\n\n//Constants\nimport { FileMimeTypeConstants } from '../ca-upload-dropzone/utils/constants';\n\n//Enums\nimport { eDocumentAction } from './enums';\nimport { eDropZoneFileType } from '../ca-upload-dropzone/enums';\nimport { eReviewState } from '../../enums';\n\n//Pipes\nimport {\n    ByteConvertPipe,\n    FileNamePipe,\n    UrlExtensionPipe,\n    NgClassPipe,\n    MimeTypeToExtensionPipe,\n} from './pipes';\n\n//Services\nimport { DocumentService } from './services';\n\n//Routes\nimport { UplodFileInputConfig } from './utils/config';\n\n//Config\nimport { UploadFileRoutes } from './utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-upload-file',\n    templateUrl: './ca-upload-file.component.html',\n    styleUrls: ['./ca-upload-file.component.scss'],\n    imports: [\n        // modules\n        CommonModule,\n        NgbTooltip,\n        NgbModule,\n        NgbPopoverModule,\n        ReactiveFormsModule,\n        AngularSvgIconModule,\n        FormsModule,\n        NgxMaskModule,\n        // pipes\n        ByteConvertPipe,\n        PdfViewerModule,\n        NgClassPipe,\n        MimeTypeToExtensionPipe,\n        //components\n        CaSpinnerComponent,\n        CaInputComponent,\n    ],\n    encapsulation: ViewEncapsulation.Emulated\n})\nexport class CaUploadFileComponent implements OnInit, AfterViewInit {\n    @ViewChild('t2') t2!: NgbPopover;\n    @ViewChild(CaInputComponent) inputRef!: CaInputComponent;\n\n    @Input() config!: IFileOptionConfig;\n    @Input() reviewFileConfig!: IReviewFileConfig;\n\n    @Output() fileAction = new EventEmitter<IFileActionEvent>();\n    @Output() deleteAction = new EventEmitter<IDeleteAction>();\n    @Output() documentReviewInputEvent =\n        new EventEmitter<IDocumentReviewInputEvent>();\n    @Output() landscapeCheck = new EventEmitter();\n    @Output() fileHover = new EventEmitter();\n\n    public fileNewName: FormControl = new FormControl();\n    public documentReviewInputControl: FormControl = new FormControl(null);\n    public editFile: boolean = false;\n    public isFileDelete: boolean = false;\n    public documentReviewInputVisible: boolean = false;\n    public isIncorrectMarkHover: boolean = false;\n    public annotationHover: boolean = false;\n    public documentLoading: boolean = true;\n    public isArrowHovered: boolean = false;\n    public numberOfFilePages: string = '';\n    public fileName: string = '';\n    public icons = UploadFileRoutes.icons;\n    public isImageFile: boolean = false;\n    public isVideoFile: boolean = false;\n    public reviewState = eReviewState;\n    public fileInputConfig = UplodFileInputConfig.UPLOAD_INPUT_CONFIG;\n\n    public documentAction = eDocumentAction;\n\n    public videoThumbnail: string | null = null;\n\n    private destroy$ = new Subject<void>();\n\n    constructor(\n        private http: HttpClient,\n        private ref: ChangeDetectorRef,\n        private renderer: Renderer2,\n\n        //Pipe\n        private urlExt: UrlExtensionPipe,\n        private fileNamePipe: FileNamePipe,\n\n        //Service\n        private detailsDataService: DocumentService\n    ) {}\n\n    ngOnInit(): void {\n        this.getfileName();\n\n        this.onSpinner();\n\n        this.reviewInputControlChange();\n\n        this.setSavedTag();\n\n        //TODO Bogdan\n        const mimeType = this.config.file?.realFile?.type || '';\n\n        this.isImageFile =\n            FileMimeTypeConstants.SUPORTED_MIME_TYPE_MAP[\n                eDropZoneFileType.IMAGE\n            ].includes(mimeType);\n        this.isVideoFile =\n            FileMimeTypeConstants.SUPORTED_MIME_TYPE_MAP[\n                eDropZoneFileType.MEDIA\n            ].includes(mimeType);\n\n        if (this.isVideoFile) this.generateVideoThumbnail(this.config.file.url);\n    }\n\n    ngAfterViewInit(): void {\n        this.setCategoryTag();\n    }\n\n    public onBlurInput(event: boolean): void {\n        if (event) {\n            this.editFile = false;\n            if (this.fileNewName.value) {\n                this.config.file.fileName = this.fileName;\n            }\n        }\n    }\n\n    //pdf\n    public afterLoadComplete(pdf: PDFDocumentProxy): void {\n        this.documentLoading = false;\n        const numberPages = pdf._pdfInfo.numPages;\n\n        this.numberOfFilePages = `${numberPages} p.`;\n    }\n\n    public pageRendered(\n        event: any // leave any for now\n    ): void {\n        const pdf: {\n            pageNumber: number;\n            source: { width: number; height: number };\n        } = event;\n\n        if (\n            this.config.hasLandscapeOption &&\n            pdf.pageNumber === 1 &&\n            pdf.source.width > pdf.source.height\n        ) {\n            this.landscapeCheck.emit(true);\n        }\n    }\n\n    public onAction(action: string): void {\n        this.detailsDataService.setDocumentName(this.fileName);\n        switch (action) {\n            case eDocumentAction.TAG:\n                this.handleTagAction();\n                break;\n            case eDocumentAction.DOWNLOAD:\n                this.handleDownloadAction();\n                break;\n            case eDocumentAction.DELETE:\n                this.handleDeleteAction();\n                break;\n            case eDocumentAction.CANCEL:\n                this.handleCancelAction();\n                break;\n            case eDocumentAction.MARK_INCORRECT:\n                this.handleMarkIncorrectAction();\n                break;\n            case eDocumentAction.MARK_CORRECT:\n                this.handleMarkCorrectAction();\n                break;\n            default:\n                break;\n        }\n    }\n\n    public onEditFile(): void {\n        if (\n            this.config.customClassName !== 'driver-details-pdf' &&\n            this.config.customClassName !== 'landscape-details-view' &&\n            this.reviewFileConfig.reviewMode !== this.reviewState.REVIEW_MODE &&\n            !this.inputRef?.isFocusInput\n        ) {\n            this.editFile = true;\n            this.fileNewName.patchValue(this.fileName);\n            const timeout = setTimeout(() => {\n                const input = this.inputRef.input.nativeElement;\n                const selectionEnd = input.value.length;\n                if (input.setSelectionRange) {\n                    input.setSelectionRange(selectionEnd, selectionEnd);\n                }\n                const focusTimeout = setTimeout(() => {\n                    input.focus();\n                    clearTimeout(focusTimeout);\n                }, 100);\n                clearTimeout(timeout);\n            }, 100);\n        }\n    }\n\n    public getAnnotationReviewEvent(event: { type: string }): void {\n        this.documentReviewInputVisible = event.type === 'open';\n    }\n\n    public selectTag(tag: string): void {\n        this.config.tagsOptions?.forEach((item) => {\n            if (item.tagName == tag) {\n                item.checked = true;\n\n                setTimeout(() => {\n                    this.config.file.tags = item.tagName;\n                    this.config.file.tagGeneratedByUser = true;\n                    this.config.file.tagId = [item.tagId];\n                    this.config.file.tagChanged =\n                        this.config.file.savedTag != item.tagName\n                            ? true\n                            : false;\n\n                    const fileActionPayload = {\n                        file: this.config.file,\n                        action: this.documentAction.TAG,\n                    };\n\n                    if (!this.t2.isOpen()) {\n                        this.fileAction.emit(fileActionPayload);\n                    }\n                    this.ref.detectChanges();\n                }, 200);\n            } else {\n                item.checked = false;\n            }\n        });\n        this.ref.detectChanges();\n    }\n\n    public removeTag(): void {\n        setTimeout(() => {\n            this.config.file.tags = [];\n            this.config.file.tagId = [];\n            this.config.file.tagChanged = this.config.file.savedTag\n                ? true\n                : false;\n            const fileActionPayload = {\n                file: this.config.file,\n                action: this.documentAction.TAG,\n            };\n            this.fileAction.emit(fileActionPayload);\n            this.ref.detectChanges();\n        }, 200);\n    }\n\n    public openDeletePopup(name: string): void {\n        this.detailsDataService.setDocumentName(name);\n        this.isFileDelete = true;\n    }\n\n    public hoverFile(): void {\n        this.fileHover.emit(this.config.file);\n    }\n\n    public updateHover(mod: boolean): void {\n        this.config.file.lastHovered = mod;\n        this.ref.detectChanges();\n    }\n\n    public hoverArrow(mod: boolean): void {\n        this.isArrowHovered = mod;\n        this.ref.detectChanges();\n    }\n\n    public onMouseEnter(): void {\n        this.isIncorrectMarkHover = true;\n    }\n\n    public onMouseLeave(): void {\n        this.isIncorrectMarkHover = false;\n    }\n\n    //TODO: Bogdan - this functionality for creating video thumbnails should be done on the backend; for the frontend, I am waiting for the design show i could show a placeholder.\n    private generateVideoThumbnail(videoUrl: string): void {\n        this.documentLoading = true;\n\n        const video = this.renderer.createElement('video');\n        this.renderer.setAttribute(video, 'src', videoUrl);\n        this.renderer.setAttribute(video, 'crossOrigin', 'anonymous');\n        this.renderer.setAttribute(video, 'muted', 'true');\n        this.renderer.setAttribute(video, 'playsInline', 'true');\n\n        this.renderer.listen(video, 'loadeddata', () => {\n            video.currentTime = 0.5;\n        });\n\n        this.renderer.listen(video, 'seeked', () => {\n            const canvas = this.renderer.createElement('canvas');\n            const ctx = canvas.getContext('2d');\n            if (!ctx) return;\n\n            canvas.width = video.videoWidth;\n            canvas.height = video.videoHeight;\n            ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n            canvas.toBlob((blob: Blob) => {\n                if (blob) {\n                    this.videoThumbnail = URL.createObjectURL(blob);\n                    this.documentLoading = false;\n                    this.ref.detectChanges();\n                }\n            }, 'image/png');\n        });\n\n        video.load();\n    }\n\n    private getfileName(): void {\n        if (this.config.file.fileName)\n            this.fileName = this.fileNamePipe.transform(\n                this.config.file.fileName\n            );\n    }\n\n    private onSpinner(): void {\n        const isNotPdf =\n            (this.config.file.extension ||\n                this.urlExt.transform(this.config.file.url)) !== 'pdf';\n        this.documentLoading = !isNotPdf;\n    }\n\n    private reviewInputControlChange(): void {\n        if (this.reviewFileConfig.isReview) {\n            this.documentReviewInputControl.valueChanges\n                .pipe(takeUntil(this.destroy$))\n                .subscribe((value) => {\n                    this.documentReviewInputEvent.emit({\n                        file: this.config.file,\n                        message: value,\n                    });\n                });\n        }\n    }\n\n    private setSavedTag(): void {\n        if (\n            this.config.file.tags &&\n            this.config.file.tags.length &&\n            this.config.hasTagsDropdown\n        ) {\n            this.config.file.savedTag = this.config.file.tags[0];\n        }\n    }\n\n    private handleTagAction(): void {\n        this.selectTag(this.config.file.tags || 'No Tag');\n        this.t2.open();\n    }\n\n    private handleDownloadAction(): void {\n        this.downloadFile(this.config.file.url, this.fileName);\n    }\n\n    private handleDeleteAction(): void {\n        this.isFileDelete = false;\n\n        const deleteActionPayload = {\n            file: this.config.file,\n            action: this.documentAction.DELETE,\n        };\n\n        this.fileAction.emit(deleteActionPayload);\n    }\n\n    private handleCancelAction(): void {\n        this.isFileDelete = false;\n    }\n\n    private handleMarkIncorrectAction(): void {\n        this.config.file.incorrect = true;\n\n        const markIncorrectActionPayload = {\n            file: this.config.file,\n            action: this.documentAction.MARK_INCORRECT,\n        };\n\n        this.fileAction.emit(markIncorrectActionPayload);\n    }\n\n    private handleMarkCorrectAction(): void {\n        this.config.file.incorrect = false;\n\n        const markCorrectActionPayload = {\n            file: this.config.file,\n            action: this.documentAction.MARK_CORRECT,\n        };\n\n        this.fileAction.emit(markCorrectActionPayload);\n        this.documentReviewInputVisible = false;\n    }\n\n    private downloadFile(url: string, filename: string): void {\n        this.http.get(url, { responseType: 'blob' }).subscribe(\n            (blob: Blob) => {\n                const a = this.renderer.createElement('a');\n                const objectUrl = URL.createObjectURL(blob);\n\n                this.renderer.setAttribute(a, 'href', objectUrl);\n                this.renderer.setAttribute(a, 'download', filename);\n\n                this.renderer.appendChild(document.body, a);\n                a.click();\n\n                this.renderer.removeChild(document.body, a);\n                URL.revokeObjectURL(objectUrl);\n            },\n            (error) => {\n                console.error('Error downloading file:', error);\n            }\n        );\n    }\n\n    private setCategoryTag(): void {\n        if (this.config.file.tags?.length) {\n            this.reviewFileConfig.categoryTag = this.config.file.tags[0];\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"ta-upload-file-container d-grid {{ config.customClassName }}\"\n    [ngClass]=\"\n        config\n            | ngClassPipe\n                : t2\n                : isArrowHovered\n                : annotationHover\n                : reviewFileConfig\n    \"\n>\n    <!-- Review Actions -->\n    @if (reviewFileConfig.isReview) {\n        <div\n            class=\"ta-upload-file-header-review d-flex align-items-center justify-content-between\"\n        >\n            @if (reviewFileConfig.reviewMode === reviewState.REVIEW_MODE) {\n                <div\n                    ngbTooltip\n                    mainTooltip=\"Download\"\n                    tooltipBackground=\"#6c6c6c\"\n                    position=\"top\"\n                    class=\"ta-upload-action-download-review d-flex align-items-center justify-content-center\"\n                    (click)=\"onAction(documentAction.DOWNLOAD)\"\n                >\n                    <svg-icon [src]=\"icons.download\"></svg-icon>\n                </div>\n                <div\n                    ngbTooltip\n                    mainTooltip=\"\n                    config.file?.incorrect && isIncorrectMarkHover\n                    ? 'Unmark'\n                    : 'Mark Incorrect'\n                    \"\n                    tooltipBackground=\"\n                    config.file?.incorrect && isIncorrectMarkHover ? '#6c6c6c' : '#EF5350'\n                    \"\n                    position=\"top\"\n                    [ngClass]=\"{\n                        'ta-upload-action-mark-correct':\n                            config.file?.incorrect && isIncorrectMarkHover,\n                        'ta-upload-action-mark-incorrect': !(\n                            config.file?.incorrect && isIncorrectMarkHover\n                        ),\n                        incorrect: config.file?.incorrect,\n                    }\"\n                    (click)=\"\n                        onAction(\n                            config.file?.incorrect && isIncorrectMarkHover\n                                ? 'mark-correct'\n                                : 'mark-incorrect'\n                        )\n                    \"\n                    (mouseenter)=\"onMouseEnter()\"\n                    (mouseleave)=\"onMouseLeave()\"\n                >\n                    <svg-icon\n                        [src]=\"\n                            config.file?.incorrect && isIncorrectMarkHover\n                                ? icons.confirm\n                                : icons.close\n                        \"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n    }\n\n    <!-- No Review Actions -->\n    @if (\n        !isFileDelete &&\n        (!reviewFileConfig.isReview ||\n            (reviewFileConfig.isReview &&\n                reviewFileConfig.reviewMode === reviewState.FEEDBACK_MODE))\n    ) {\n        <div class=\"ta-upload-file-header d-flex justify-content-between\">\n            <!-- Left Side -->\n            @if (config.customClassName === 'company-documents') {\n                <div class=\"rightside_bar\"></div>\n            } @else {\n                <div\n                    class=\"ta-upload-file-action-leftside d-flex justify-content-center align-items-center\"\n                    tabindex=\"0\"\n                    [ngClass]=\"{\n                        'no-action-tag': !config.hasTagsDropdown,\n                        active: t2?.isOpen(),\n                    }\"\n                    #t2=\"ngbPopover\"\n                    [ngbPopover]=\"tagsPopover\"\n                    [popoverClass]=\"'tags_popover'\"\n                    [placement]=\"'right-top right-bottom'\"\n                    autoclose=\"outside\"\n                    [container]=\"'body'\"\n                    triggers=\"'manual'\"\n                >\n                    <div\n                        ngbTooltip\n                        mainTooltip=\"Tag\"\n                        tooltipBackground=\"#2F2F2F\"\n                        position=\"top\"\n                        class=\"ta-upload-action-tag d-flex justify-content-center align-items-center\"\n                        (click)=\"onAction(documentAction.TAG)\"\n                    >\n                        <svg-icon [src]=\"icons.tag\"></svg-icon>\n                    </div>\n                </div>\n            }\n            <!-- Right Side -->\n            @if (!reviewFileConfig.isActionsHidden) {\n                <div\n                    class=\"ta-upload-file-action-rightside d-flex justify-content-around align-items-center\"\n                    [ngClass]=\"{\n                        'feedback-mode':\n                            reviewFileConfig.isReview &&\n                            reviewFileConfig.reviewMode ===\n                                reviewState.FEEDBACK_MODE,\n                        small:\n                            config.type === 'details' ||\n                            config.type === 'todo' ||\n                            reviewFileConfig.reviewMode ==\n                                reviewState.REVIEW_MODE,\n                        'vertical-mode':\n                            config.customClassName == 'company-documents',\n                    }\"\n                >\n                    @if (config.customClassName === 'company-documents') {\n                        <div\n                            #t2=\"ngbPopover\"\n                            [ngbPopover]=\"tagsPopover\"\n                            [popoverClass]=\"'tags_popover_vertical'\"\n                            [placement]=\"'bottom-left'\"\n                            autoclose=\"outside\"\n                            [container]=\"'body'\"\n                            triggers=\"'manual'\"\n                            ngbTooltip\n                            mainTooltip=\"Tag\"\n                            tooltipBackground=\"#2F2F2F\"\n                            position=\"top\"\n                            class=\"ta-upload-action-tag d-flex justify-content-center align-items-center\"\n                            [ngClass]=\"{ active: t2?.isOpen() }\"\n                            (click)=\"onAction(documentAction.TAG)\"\n                        >\n                            <svg-icon [src]=\"icons.tag\"></svg-icon>\n                        </div>\n                    }\n                    <div\n                        ngbTooltip\n                        mainTooltip=\"Download\"\n                        tooltipBackground=\"#2F2F2F\"\n                        position=\"top\"\n                        class=\"ta-upload-action-download\"\n                        (click)=\"onAction(documentAction.DOWNLOAD)\"\n                    >\n                        <svg-icon [src]=\"icons.download\"></svg-icon>\n                    </div>\n                    @if (\n                        config.type != 'details' &&\n                        config.type != 'todo' &&\n                        reviewFileConfig.reviewMode !=\n                            reviewState.REVIEW_MODE &&\n                        config.file?.fileName\n                    ) {\n                        <div\n                            ngbTooltip\n                            mainTooltip=\"Delete\"\n                            tooltipBackground=\"#EF5350\"\n                            position=\"top\"\n                            class=\"ta-upload-action-delete\"\n                            (click)=\"\n                                config.file.fileName &&\n                                    openDeletePopup(config.file.fileName)\n                            \"\n                        >\n                            <svg-icon [src]=\"icons.trash\"></svg-icon>\n                        </div>\n                    }\n                </div>\n            }\n            @if (\n                reviewFileConfig.isReview &&\n                reviewFileConfig.reviewMode === reviewState.FEEDBACK_MODE\n            ) {\n                <div\n                    ngbTooltip\n                    mainTooltip=\"Marked Incorrect\"\n                    tooltipBackground=\"#EF5350\"\n                    position=\"top\"\n                    class=\"ta-upload-action-feedback-incorrect-mark d-flex justify-content-center align-items-center\"\n                    (click)=\"onAction(documentAction.MARK_INCORRECT)\"\n                >\n                    <svg-icon [src]=\"icons.close\"></svg-icon>\n                </div>\n            }\n        </div>\n    }\n\n    <!-- File Content -->\n    <div class=\"ta-upload-file-content  {{ config.customClassName }}\">\n        <!-- Pdf Content -->\n        @if (\n            config.file?.extension?.toLowerCase() === 'pdf' && config.file?.url\n        ) {\n            <pdf-viewer\n                [src]=\"config.file.url\"\n                [(page)]=\"config.activePage\"\n                class=\"pdf_viewer\"\n                [rotation]=\"0\"\n                [original-size]=\"false\"\n                [show-all]=\"true\"\n                [fit-to-page]=\"false\"\n                [zoom]=\"1\"\n                [zoom-scale]=\"'page-width'\"\n                [stick-to-page]=\"false\"\n                [render-text]=\"true\"\n                [external-link-target]=\"'blank'\"\n                [autoresize]=\"true\"\n                [show-borders]=\"false\"\n                (after-load-complete)=\"afterLoadComplete($event)\"\n                (page-rendered)=\"pageRendered($event)\"\n            ></pdf-viewer>\n        }\n\n        <!-- Media Content -->\n        <div\n            class=\"d-flex justify-content-center align-items-center image_main_holder {{\n                config.customClassName\n            }}\"\n        >\n            <!-- Image Content -->\n            @if (isImageFile && config.file?.url) {\n                <img\n                    class=\"ta-upload-file-image\"\n                    [ngClass]=\"{\n                        details_image:\n                            config.type === 'details' || config.type === 'todo',\n                    }\"\n                    [src]=\"config.file.url\"\n                    [alt]=\"config.file?.fileName\"\n                />\n            }\n            <!-- Video Tumbnail -->\n            @else if (isVideoFile && !documentLoading) {\n                <img\n                    class=\"ta-upload-file-image\"\n                    [src]=\"videoThumbnail\"\n                    [alt]=\"config.file?.fileName\"\n                />\n            } @else {\n                <div class=\"spinner\">\n                    <app-ca-spinner\n                        [size]=\"'small'\"\n                        [color]=\"'blueDark'\"\n                    ></app-ca-spinner>\n                </div>\n            }\n        </div>\n\n        <!-- Tag Content -->\n        @if (\n            (config.hasTagsDropdown ||\n                config.customClassName === 'table-details' ||\n                config.customClassName === 'driver-card-pdf') &&\n            config.file?.tags &&\n            config.file?.tags !== '' &&\n            config.file?.tags !== 'No Tag'\n        ) {\n            <div\n                class=\"ta-upload-file-tag\"\n                [ngClass]=\"{\n                    default: !config.file?.tagGeneratedByUser,\n                    tagRemoving: config.file?.tags.length === 0,\n                }\"\n            >\n                <span>{{\n                    config.file?.tags || reviewFileConfig.categoryTag || ''\n                }}</span>\n            </div>\n        }\n    </div>\n\n    <!-- File Delete Template -->\n    @if (isFileDelete) {\n        <div\n            class=\"ta-upload-file-delete-template d-flex align-items-center flex-column {{\n                config.customClassName\n            }}\"\n        >\n            <div class=\"ta-upload-file-delete-text\">\n                Are you sure you want to delete file?\n            </div>\n            <div\n                class=\"ta-upload-file-btn d-flex align-items-center justify-content-center ta-upload-file-btn-delete\"\n                (click)=\"onAction(documentAction.DELETE)\"\n            >\n                DELETE\n            </div>\n            <div\n                class=\"ta-upload-file-btn d-flex align-items-center justify-content-center ta-upload-file-btn-cancel\"\n                (click)=\"onAction(documentAction.CANCEL)\"\n            >\n                CANCEL\n            </div>\n        </div>\n    }\n\n    <!-- File Footer Information -->\n    @if (!reviewFileConfig.isFooterHidden) {\n        <div\n            class=\"ta-upload-file-footer\"\n            [ngClass]=\"{ 'edit-mode': editFile }\"\n            (click)=\"onEditFile()\"\n        >\n            <!-- No edit mode -->\n            @if (!isFileDelete) {\n                <div class=\"footer_info d-flex align-items-center\">\n                    <div\n                        class=\"ta-upload-file-ext ta-upload-file-ext-{{\n                            config.file?.extension\n                                ? (config.file?.realFile?.type\n                                  | mimeTypeToExtension\n                                  | lowercase)\n                                : ''\n                        }}\"\n                        [ngClass]=\"{ 'no-tag': !config.file?.tags }\"\n                    >\n                        <div>\n                            {{\n                                config.file?.realFile?.type\n                                    | mimeTypeToExtension\n                                    | uppercase\n                            }}\n                        </div>\n                    </div>\n                    <div class=\"document_info_hold d-flex\">\n                        @if (numberOfFilePages) {\n                            <div class=\"pdf_page_size\">\n                                {{ numberOfFilePages }}\n                            </div>\n                        }\n\n                        <div\n                            class=\"file_size\"\n                            [ngClass]=\"{\n                                has_pages: numberOfFilePages,\n                            }\"\n                        >\n                            {{ config.file?.size || 0 | byteConvert }}\n                        </div>\n                    </div>\n                </div>\n            }\n            @if (!editFile) {\n                <p\n                    class=\"ta-upload-file-name\"\n                    [ngClass]=\"{\n                        details_title: config.type === 'details',\n                        todo_title: config.type === 'todo',\n                    }\"\n                >\n                    {{ fileName }}\n                </p>\n            } @else {\n                <app-ca-input\n                    [formControl]=\"fileNewName\"\n                    [inputConfig]=\"fileInputConfig\"\n                    (blurInput)=\"onBlurInput($event)\"\n                ></app-ca-input>\n            }\n        </div>\n    }\n</div>\n\n<ng-template #tagsPopover let-data=\"data\">\n    <div class=\"tags_main_holder\">\n        @if (config.file?.tags?.length) {\n            <div class=\"remove_tag_holder\" (click)=\"removeTag()\">\n                <div class=\"remove_tag\">Remove Tag</div>\n            </div>\n            <div class=\"remove_tag_border_holder\">\n                <div class=\"remove_tag_border\"></div>\n            </div>\n        }\n        @for (\n            tag of config?.tagsOptions;\n            let i = $index,\n            first = $first,\n            last = $last;\n            track i\n        ) {\n            <div\n                class=\"tags_inner_holder d-flex align-items-center\"\n                [ngClass]=\"{\n                    firstRow: first,\n                    lastRow: last,\n                }\"\n                (click)=\"selectTag(tag?.tagName)\"\n            >\n                <div class=\"tag_options_holder d-flex align-items-center\">\n                    <div class=\"tag_name\" [ngClass]=\"{ checked: tag.checked }\">\n                        {{ tag.tagName }}\n                    </div>\n                    <div\n                        class=\"checked_icon\"\n                        [ngClass]=\"{ shown: tag.checked }\"\n                    >\n                        <svg-icon [src]=\"icons.confirm\"></svg-icon>\n                    </div>\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\n// Interfaces\nimport { IFileOptionConfig } from '../interfaces';\nimport { IFileConfig } from '../components/ca-upload-dropzone/interfaces';\n\n@Pipe({\n    standalone: true,\n    name: 'mapFile',\n})\nexport class MapFilePipe implements PipeTransform {\n    transform(config: IFileOptionConfig, file: IFileConfig): any {\n        return {\n            ...config,\n            file,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'uploadClass',\n})\nexport class UploadClassPipe implements PipeTransform {\n    transform(\n        filesLength: number | undefined,\n        carouselSize: string | undefined,\n        isReview: boolean | undefined,\n        dontUseSlider: boolean\n    ): string {\n        const classes: string[] = [];\n\n        if (filesLength)\n            if (filesLength === 1) {\n                classes.push('ta-upload-small');\n            } else if (filesLength < 2 && carouselSize === 'medium') {\n                classes.push('ta-upload-medium-file');\n            } else if (filesLength > 1 && carouselSize === 'medium') {\n                classes.push('ta-upload-medium-files');\n            } else if (filesLength < 2 && carouselSize === 'large') {\n                classes.push('ta-upload-large-file');\n            } else if (filesLength >= 2 && carouselSize === 'large') {\n                classes.push('ta-upload-large-twofiles');\n            } else if (filesLength >= 3 && carouselSize === 'large') {\n                classes.push('ta-upload-large-threefiles');\n            }\n\n        if (isReview) {\n            classes.push('ta-upload-review-mode');\n        }\n\n        if (dontUseSlider) {\n            classes.push('documents');\n        }\n\n        return classes.join(' ');\n    }\n}\n","import { Options } from '@angular-slider/ngx-slider';\nimport { CropperPosition } from 'ngx-image-cropper';\n\nexport class LogoChangeConstants {\n  static LOGO_CHANGE_SLIDER_DATA: Options = {\n    floor: 0.1,\n    ceil: 1.5,\n    step: 0.1,\n    animate: false,\n    showSelectionBar: true,\n    hideLimitLabels: true,\n  };\n\n  static INITIAL_CROPPER_POSITION: CropperPosition = {\n    x1: 0,\n    y1: 0,\n    x2: 184,\n    y2: 184,\n  };\n}\n","export enum LogoChangeEnum {\n  TEXT = 'text',\n  BOOLEAN = 'boolean',\n  EMPTY_STRING_PLACEHOLDER = '',\n  SEND_IMAGE_DATA = 'sendImageData',\n  REPLACE = 'replace',\n  CROPPED_IMAGE_PNG = 'cropped-image.png',\n}\n","export class FileHelpers {\n    static base64ToFile(base64: string, filename: string): File {\n        const arr = base64.split(',');\n        const match = arr[0].match(/:(.*?);/);\n        const mime = match ? match[1] : '';\n        const binaryString = atob(arr[1]);\n        let length = binaryString.length;\n        const u8arr = new Uint8Array(length);\n\n        while (length--) u8arr[length] = binaryString.charCodeAt(length);\n\n        return new File([u8arr], filename, { type: mime });\n    }\n}","import {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ChangeContext, Options } from '@angular-slider/ngx-slider';\nimport {\n    ImageCropperComponent,\n    ImageCroppedEvent,\n    CropperPosition,\n    ImageTransform,\n} from 'ngx-image-cropper';\n\n// modules\nimport { CommonModule } from '@angular/common';\n\n// constants\nimport { LogoChangeConstants } from './utils/constants/logo-change.constants';\n\n// components\nimport { CaNgxSliderComponent } from '../ca-ngx-slider/ca-ngx-slider.component';\n\n// interfaces\nimport { IFileConfig } from '../ca-upload-files/components/ca-upload-dropzone/interfaces';\n\n// enums\nimport { LogoChangeEnum } from './enums';\nimport { FileHelpers } from '../../utils/helpers/file.helpers';\n\n@Component({\n    selector: 'app-ca-logo-change',\n    imports: [CommonModule, CaNgxSliderComponent, ImageCropperComponent],\n    encapsulation: ViewEncapsulation.ShadowDom,\n    templateUrl: './ca-logo-change.component.html',\n    styleUrls: ['./ca-logo-change.component.scss']\n})\nexport class CaLogoChangeComponent implements OnDestroy {\n    @ViewChild('fileInput') fileInput!: ElementRef;\n    @Input() customClass: string | null = null;\n    @Input() imageToCrop!: string | undefined;\n    @Input() isRoundCropper: boolean = false;\n    @Input() imageChangedEvent: Event | null = null;\n    @Input() isDropzoneShown: boolean = false;\n    @Input() hasBlobUrl: boolean = false;\n    @Input() initialCropperPosition: CropperPosition =\n        LogoChangeConstants.INITIAL_CROPPER_POSITION;\n    @Input() containWithinAspectRatio: boolean = false;\n    @Input() aspectRatio: number[] = [1, 1];\n    @Input() customWidth!: string;\n\n    @Output() sendImageData = new EventEmitter<{\n        files: IFileConfig[];\n        action: string;\n    }>();\n\n    private destroy$ = new Subject<void>();\n    public imageUrl: string | null = null;\n    public imageScale: number = 1;\n    public hasSavedImage: boolean = false;\n\n    public croppedImage: string | null = null;\n    public cropperPosition: CropperPosition = {\n        ...this.initialCropperPosition,\n    };\n    public ngxLogoOptions: Options =\n        LogoChangeConstants.LOGO_CHANGE_SLIDER_DATA;\n    public ngxSliderPosition = 1;\n    public transform: ImageTransform = {\n        scale: 1,\n    };\n\n    public fileChangeEvent(event: Event): void {\n        this.imageChangedEvent = event;\n    }\n\n    public imageCropped(event: ImageCroppedEvent): void {\n        this.croppedImage = event.base64 || '';\n    }\n\n    public onCancel(): void {\n        this.imageChangedEvent = null;\n        this.imageUrl = null;\n        this.croppedImage = null;\n        this.imageToCrop = '';\n        this.hasSavedImage = false;\n\n        if (this.fileInput) {\n            this.fileInput.nativeElement.value = null;\n        }\n\n        this.sendImageData.emit({ files: [], action: 'delete' });\n    }\n\n    public saveImage(): void {\n        if (this.croppedImage) {\n            if (this.hasBlobUrl) {\n                const filesArray: IFileConfig[] = [];\n                const base64 = this.croppedImage;\n\n                const file = FileHelpers.base64ToFile(\n                    base64,\n                    LogoChangeEnum.CROPPED_IMAGE_PNG\n                );\n                const blobUrl = URL.createObjectURL(file);\n                this.imageToCrop = base64;\n                this.hasSavedImage = true;\n                filesArray.push({ url: blobUrl, realFile: file });\n\n                this.sendImageData.emit({\n                    files: filesArray,\n                    action: LogoChangeEnum.REPLACE,\n                });\n            } else {\n                const filesArray: IFileConfig[] = [];\n                const rawBlobUrl = this.croppedImage;\n\n                this.imageToCrop = rawBlobUrl;\n                this.hasSavedImage = true;\n                filesArray.push({ url: rawBlobUrl });\n\n                this.sendImageData.emit({\n                    files: filesArray,\n                    action: LogoChangeEnum.REPLACE,\n                });\n            }\n        } else {\n            console.error('No cropped image available to save.');\n        }\n    }\n\n    public onZoomChange(event: number | ChangeContext): void {\n        const zoomFactor = event as number;\n\n        this.transform = {\n            ...this.transform,\n            scale: zoomFactor,\n        };\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"image-cropper-container\"\n    [class.cropper-show-dropzone]=\"isDropzoneShown\"\n    [class.disable-cropper]=\"isDropzoneShown\"\n    [ngStyle]=\"{\n        width: customWidth || '456px',\n    }\"\n>\n    <div\n        class=\"ngx-cropper-container\"\n        [class.cropper-show-dropzone]=\"isDropzoneShown\"\n        [ngStyle]=\"{\n            width: customWidth || '456px',\n        }\"\n    >\n        <image-cropper\n            [imageChangedEvent]=\"imageChangedEvent\"\n            [imageURL]=\"imageToCrop\"\n            [maintainAspectRatio]=\"true\"\n            [containWithinAspectRatio]=\"containWithinAspectRatio\"\n            [aspectRatio]=\"aspectRatio[0] / aspectRatio[1]\"\n            format=\"png\"\n            (imageCropped)=\"imageCropped($event)\"\n            [roundCropper]=\"isRoundCropper\"\n            [cropper]=\"cropperPosition\"\n            [(transform)]=\"transform\"\n            [allowMoveImage]=\"true\"\n        ></image-cropper>\n    </div>\n    @if (!isDropzoneShown) {\n        <div class=\"crop-controls-container d-flex align-items-center\">\n            <div class=\"slider-container\">\n                <app-ca-ngx-slider\n                    [sliderTemplate]=\"'logo-change'\"\n                    [sliderOptions]=\"ngxLogoOptions\"\n                    [startedValue]=\"ngxSliderPosition\"\n                    (onUserValueChange)=\"onZoomChange($event)\"\n                ></app-ca-ngx-slider>\n            </div>\n\n            <div class=\"buttons-container d-flex align-items-center\">\n                <div\n                    (click)=\"onCancel()\"\n                    class=\"cancel-check\"\n                    ngbTooltip\n                    mainTooltip=\"Cancel\"\n                    tooltipBackground=\"#6c6c6c\"\n                    position=\"top\"\n                >\n                    <p class=\"ca-font-bold\">CANCEL</p>\n                </div>\n                <div\n                    (click)=\"saveImage()\"\n                    class=\"save-check\"\n                    ngbTooltip\n                    mainTooltip=\"Confirm\"\n                    tooltipBackground=\"#536bc2\"\n                    position=\"top\"\n                >\n                    <p class=\"ca-font-bold\">CROP</p>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"crop-accepted-container d-flex flex-direction-column\">\n            <div class=\"crop-message ca-font-semi-bold\">\n                Crop Confirmation Required\n            </div>\n        </div>\n    }\n</div>\n","export class FilesUploadSvgRoutes {\n    static AVATAR_RECTANGLE: string =\n        'assets/ca-components/svg/files-upload/avatar-rectangle.svg';\n    static AVATAR_CIRCLE: string =\n        'assets/ca-components/svg/files-upload/avatar-circle.svg';\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n//Interface\nimport { IFileConfig } from '../components/ca-upload-dropzone/interfaces';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class CaUploadFileService {\n    private uploadDocumentsSubject: Subject<{\n        files: IFileConfig[];\n        action: string;\n    }> = new Subject<{ files: IFileConfig[]; action: string }>();\n\n    private visibilityDropZoneSubject: Subject<boolean> =\n        new Subject<boolean>();\n\n    get visibilityDropZone$() {\n        return this.visibilityDropZoneSubject.asObservable();\n    }\n\n    public visibilityDropZone(action: boolean) {\n        this.visibilityDropZoneSubject.next(action);\n    }\n\n    get uploadedFiles$() {\n        return this.uploadDocumentsSubject.asObservable();\n    }\n\n    public uploadFiles(data: { files: IFileConfig[]; action: string }) {\n        this.uploadDocumentsSubject.next(data);\n    }\n}\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewChildren,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { provideLottieOptions } from 'ngx-lottie';\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\n\n//Components\nimport { CaUploadDropzoneComponent } from './components/ca-upload-dropzone/ca-upload-dropzone.component';\nimport { CaUploadFileComponent } from './components/ca-upload-file/ca-upload-file.component';\nimport { CaUploadFilesCarouselComponent } from './components/ca-upload-files-carousel/ca-upload-files-carousel.component';\n\n//Interfaces\nimport {\n    IDocumentReviewInputEvent,\n    IReviewFileConfig,\n    IUploadFilesConfig,\n} from './interfaces';\nimport {\n    IFileConfig,\n    IFileEvent,\n} from './components/ca-upload-dropzone/interfaces';\nimport { IFilesCarouselConfig } from './components/ca-upload-files-carousel/interfaces';\n\n//Enums\nimport { eFileAction, eFileSize, eFileType } from './enums';\nimport { eDocumentAction } from './components/ca-upload-file/enums';\n\n//Services\nimport { CaUploadFileService } from './services';\n\n//Pipe\nimport { MapFilePipe, UploadClassPipe } from './pipes';\n\n//Component\nimport { CaLogoChangeComponent } from '../ca-logo-change/ca-logo-change.component';\n\n//Svg Routes\nimport { FilesUploadSvgRoutes } from './utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-upload-files',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        NgbPopoverModule,\n        //Component\n        CaUploadDropzoneComponent,\n        CaUploadFileComponent,\n        CaUploadFilesCarouselComponent,\n        CaLogoChangeComponent,\n        //Pipe\n        UploadClassPipe,\n        MapFilePipe,\n    ],\n    providers: [\n        provideLottieOptions({\n            player: () => import('lottie-web'),\n        }),\n    ],\n    templateUrl: './ca-upload-files.component.html',\n    styleUrls: ['./ca-upload-files.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaUploadFilesComponent implements AfterViewInit {\n    @ViewChild(CaUploadFilesCarouselComponent)\n    public modalCarousel!: CaUploadFilesCarouselComponent;\n\n    @ViewChildren(CaUploadFileComponent)\n    uploadedFiles!: QueryList<CaUploadFileComponent>;\n\n    @Input() set uploadFilesConfig(value: IUploadFilesConfig) {\n        this._config = { ...value };\n\n        if (this._config.fileOptionsConfig?.type === eFileType.DETAILS)\n            this.modalCarousel?.slideToFile(0);\n    }\n\n    @Output() documentReviewInputEvent =\n        new EventEmitter<IDocumentReviewInputEvent>();\n    @Output() onFileEvent: EventEmitter<IFileEvent> =\n        new EventEmitter<IFileEvent>();\n    @Output() closeDropzone = new EventEmitter<{}>();\n    @Output() fileAdded = new EventEmitter<File>();\n\n    public currentSlide: number = 0;\n    public isDropzoneShown: boolean = true;\n\n    public filesUploadSvgRoutes = FilesUploadSvgRoutes;\n\n    private _config!: IUploadFilesConfig;\n    private destroy$ = new Subject<void>();\n\n    public get config(): IUploadFilesConfig {\n        return this._config;\n    }\n\n    public get carouselFileConfig(): IFilesCarouselConfig {\n        return { ...this._config.carouselConfig };\n    }\n\n    public get reviewFileConfig(): IReviewFileConfig {\n        return this._config.review;\n    }\n\n    constructor(\n        private uploadFileService: CaUploadFileService,\n        private http: HttpClient\n    ) {}\n\n    ngAfterViewInit(): void {\n        this.subscribeToUploadedFiles();\n    }\n\n    /**\n     *\n     * @param data - returned data from file action (one or multiple)\n     */\n\n    public onFileAction(data: { file: IFileConfig; action: string }): void {\n        switch (data.action) {\n            case eDocumentAction.TAG:\n                this.onFileEvent.emit({\n                    files: !this._config.onlyOneTagFile\n                        ? this._config.files\n                        : data.file,\n                    action: data.action,\n                });\n                break;\n\n            case eDocumentAction.DELETE:\n                let isLastDeleted = false;\n                this._config.files.forEach((item, index) => {\n                    if (\n                        item.fileName === data.file.fileName &&\n                        [\n                            this._config.files.length - 1,\n                            this._config.files.length - 2,\n                        ].includes(index)\n                    ) {\n                        isLastDeleted = true;\n                    }\n                });\n\n                this._config.files = this._config.files.filter(\n                    (item) => item.fileName !== data.file.fileName\n                );\n\n                this.onFileEvent.emit({\n                    files: this._config.files,\n                    action: data.action,\n                    deleteId: data.file['fileId'] || undefined,\n                });\n\n                this.currentSlide = this._config.files.length - 1;\n                const sizeLimits = {\n                    [eFileSize.SMALL]: 0,\n                    [eFileSize.MEDIUM]: 0,\n                    [eFileSize.LARGE]: 0,\n                    [eFileSize.MODAL_LARGE]: 4,\n                    [eFileSize.MODAL_MEDIUM]: 3,\n                };\n\n                if (this._config.files.length < sizeLimits[this._config.size]) {\n                    this.modalCarousel.currentSlide = 0;\n                    this.modalCarousel.translateXMultipleSlides = 0;\n                    this.modalCarousel.multipleCurrentSlide = 0;\n                }\n\n                if (!this._config.files.length) {\n                    this.currentSlide = 0;\n                }\n\n                if (isLastDeleted && this.modalCarousel) {\n                    const carouselSize = this.modalCarousel.carouselConfig\n                        .customClass as eFileSize;\n                    const slideTo =\n                        carouselSize === eFileSize.LARGE\n                            ? 3\n                            : carouselSize === eFileSize.MEDIUM\n                              ? 2\n                              : 1;\n\n                    const allowSlide =\n                        (carouselSize === eFileSize.LARGE &&\n                            this._config.files.length > 2) ||\n                        (carouselSize === eFileSize.MEDIUM &&\n                            this._config.files.length > 1) ||\n                        (carouselSize === eFileSize.SMALL &&\n                            this._config.files.length > 0);\n\n                    if (allowSlide) {\n                        this.modalCarousel.slideToFile(\n                            this._config.files.length - slideTo\n                        );\n                    }\n                }\n                break;\n\n            case eDocumentAction.MARK_INCORRECT:\n                let incorrectIndx: number = 0;\n                this._config.files.forEach((item, index) => {\n                    if (item.fileName === data.file.fileName) {\n                        incorrectIndx = index;\n                    }\n                });\n\n                this.onFileEvent.emit({\n                    files: this._config.files,\n                    action: data.action,\n                    index: incorrectIndx,\n                });\n                break;\n\n            case eDocumentAction.MARK_CORRECT:\n                let correctIndx: number = 0;\n                this._config.files.forEach((item, index) => {\n                    if (item.fileName === data.file.fileName) {\n                        correctIndx = index;\n                    }\n                });\n\n                this.onFileEvent.emit({\n                    files: this._config.files,\n                    action: data.action,\n                    index: correctIndx,\n                });\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    public onUploadFiles(data: { files: IFileConfig[]; action: string }): void {\n        if (\n            data.action === eFileAction.ADD &&\n            this._config.hasCrop &&\n            this._config.files.length\n        ) {\n            const uploadedFiles = [...data.files];\n            if (this._config.hasCrop) this.isDropzoneShown = true;\n\n            uploadedFiles.forEach((newFile) => {\n                const existingFileIndex = this._config.files.findIndex(\n                    (existingFile) => existingFile.url\n                );\n\n                if (existingFileIndex !== -1) {\n                    this._config.files[existingFileIndex] = newFile;\n                    this.fileAdded.emit(newFile.url);\n                } else {\n                    console.warn(\n                        `File ${newFile.fileName} to replace not found`\n                    );\n                }\n            });\n\n            this.onFileEvent.emit({ files: [], action: eFileAction.ADD });\n        }\n\n        if (data.action === eFileAction.ADD) {\n            const uploadedFiles = [...data.files];\n\n            const uniqueFiles = uploadedFiles.filter(\n                (file) =>\n                    !this._config.files.some(\n                        (existingFile) =>\n                            existingFile.fileName === file.fileName\n                    )\n            );\n            this._config.files = [\n                ...new Set([...this._config.files, ...uniqueFiles]),\n            ];\n\n            uniqueFiles.forEach((file) => {\n                this.fileAdded.emit(file.realFile);\n            });\n\n            if (this._config.hasCrop) this.isDropzoneShown = false;\n            else\n                this.onFileEvent.emit({\n                    files: this._config.files,\n                    action: eFileAction.ADD,\n                });\n\n            //  carousel\n            if (this.modalCarousel) {\n                const carouselSize = this.modalCarousel.carouselConfig\n                    .customClass as eFileSize;\n\n                const slideTo =\n                    carouselSize === eFileSize.LARGE\n                        ? 3\n                        : carouselSize === eFileSize.MEDIUM\n                          ? 2\n                          : 1;\n\n                const allowSlide =\n                    (carouselSize === eFileSize.LARGE &&\n                        this._config.files.length > 2) ||\n                    (carouselSize === eFileSize.MEDIUM &&\n                        this._config.files.length > 1) ||\n                    (carouselSize === eFileSize.SMALL &&\n                        this._config.files.length > 0);\n\n                if (allowSlide) {\n                    this.modalCarousel.slideToFile(\n                        this._config.files.length - slideTo\n                    );\n                }\n            }\n        } else if (data.action === eFileAction.REPLACE) {\n            const uploadedFiles = [...data.files];\n\n            if (this._config.hasCrop) this.isDropzoneShown = true;\n\n            uploadedFiles.forEach((newFile) => {\n                const existingFileIndex = this._config.files.findIndex(\n                    (existingFile) => existingFile.url\n                );\n\n                if (existingFileIndex !== -1) {\n                    // Replace the existing file at the found index\n                    this._config.files[existingFileIndex] = newFile;\n\n                    // Emit the new file that replaced the old one\n                    this.fileAdded.emit(newFile.url);\n                } else {\n                    console.warn(\n                        `File ${newFile.fileName} to replace not found`\n                    );\n                }\n            });\n\n            this.onFileEvent.emit({\n                files: this._config.files,\n                action: eFileAction.ADD,\n            });\n        } else if (data.action === eFileAction.DELETE) {\n            if (this._config.hasCrop) this.isDropzoneShown = true;\n            this._config.files.splice(0, this._config.files.length);\n        }\n    }\n\n    public documentReviewInputEventMethod(data: {\n        file: IFileConfig;\n        message: string;\n    }): void {\n        this.documentReviewInputEvent.emit({\n            file: data.file,\n            message: data.message,\n        });\n    }\n\n    public downloadFile(fileUrl: string, fileName: string): void {\n        this.http.get(fileUrl, { responseType: 'blob' }).subscribe(\n            (fileBlob: Blob) => {\n                const anchorElement = document.createElement('a');\n                const objectUrl = URL.createObjectURL(fileBlob);\n                anchorElement.href = objectUrl;\n                anchorElement.download = fileName;\n                anchorElement.click();\n\n                URL.revokeObjectURL(objectUrl);\n            },\n            (downloadError) => {\n                console.error('Error downloading file:', downloadError);\n            }\n        );\n    }\n\n    public onLandscapeCheck(landscape: boolean): void {\n        if (landscape)\n            this._config.fileOptionsConfig.customClassName =\n                'landscape-details-view';\n    }\n\n    public dropZoneClose(): void {\n        this.closeDropzone.emit();\n    }\n\n    public fileHover(file: IFileConfig): void {\n        if (this._config.fileOptionsConfig.customClassName === 'modals') {\n            let checkById = file?.realFile ? false : true;\n            this._config.files.forEach((item, index) => {\n                if (\n                    (checkById && file?.fileId === item.fileId) ||\n                    (!checkById && file.realFile?.name === item.realFile?.name)\n                ) {\n                    this.uploadedFiles['_results'][index].updateHover(true);\n                } else {\n                    this.uploadedFiles['_results'][index].updateHover(false);\n                }\n            });\n        }\n    }\n\n    public hoverArrow(mod: boolean): void {\n        this._config.files.forEach((item, index) => {\n            this.uploadedFiles['_results'][index].hoverArrow(mod);\n        });\n    }\n\n    private subscribeToUploadedFiles(): void {\n        this.uploadFileService.uploadedFiles$\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((data: { files: IFileConfig[]; action: string }) => {\n                if (data) {\n                    this.onUploadFiles(data);\n                }\n            });\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"ta-upload d-flex align-items-center {{\n        config.fileOptionsConfig.customClassName\n    }}\"\n    [ngClass]=\"\n        config.files?.length\n            | uploadClass\n                : config.carouselConfig.size\n                : config.review.isReview\n                : config.slider.dontUseSlider\n    \"\n>\n    <!-- Carousel Files -->\n    @if (\n        config.files?.length && !config.slider.dontUseSlider && !config.hasCrop\n    ) {\n        <app-ca-upload-files-carousel\n            [config]=\"carouselFileConfig\"\n            (activeSlide)=\"currentSlide = $event\"\n            [slideWidth]=\"config.slideWidth\"\n            (hoverArrowEmit)=\"hoverArrow($event)\"\n        >\n            @for (file of config.files; track $index) {\n                <div class=\"ta-upload-carousel-container\">\n                    <div>\n                        <app-ca-upload-file\n                            #uploadedFiles\n                            [config]=\"config.fileOptionsConfig | mapFile: file\"\n                            [reviewFileConfig]=\"reviewFileConfig\"\n                            (fileHover)=\"fileHover($event)\"\n                            (fileAction)=\"onFileAction($event)\"\n                            (landscapeCheck)=\"onLandscapeCheck($event)\"\n                            (documentReviewInputEvent)=\"\n                                documentReviewInputEventMethod($event)\n                            \"\n                        ></app-ca-upload-file>\n                    </div>\n                </div>\n            }\n        </app-ca-upload-files-carousel>\n    }\n\n    @if (config.slider.dontUseSlider && !config.hasCrop) {\n        <div class=\"documents_holder\">\n            <app-ca-upload-dropzone\n                [dropZoneConfig]=\"config.dropZoneConfig\"\n                [files]=\"config.files\"\n                (onFileEvent)=\"onUploadFiles($event)\"\n                (closeDropzone)=\"dropZoneClose()\"\n            ></app-ca-upload-dropzone>\n            @for (file of config.files; track $index) {\n                <div class=\"ta-upload-carousel-container\">\n                    <div>\n                        <app-ca-upload-file\n                            [config]=\"config.fileOptionsConfig | mapFile: file\"\n                            [reviewFileConfig]=\"reviewFileConfig\"\n                            (fileAction)=\"onFileAction($event)\"\n                            (landscapeCheck)=\"onLandscapeCheck($event)\"\n                            (documentReviewInputEvent)=\"\n                                documentReviewInputEventMethod($event)\n                            \"\n                        ></app-ca-upload-file>\n                    </div>\n                </div>\n            }\n        </div>\n    }\n\n    <!-- Image Crop Template -->\n\n    <div\n        class=\"split-crop-holder\"\n        [class.split]=\"isDropzoneShown\"\n        [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n    >\n        @if (config.hasCrop && config.files.length) {\n            @for (file of config.files; track $index) {\n                <app-ca-logo-change\n                    [hasBlobUrl]=\"config.hasBlobUrl\"\n                    [imageToCrop]=\"file?.url\"\n                    [isRoundCropper]=\"config.isRoundCrop\"\n                    [isDropzoneShown]=\"isDropzoneShown\"\n                    [initialCropperPosition]=\"config.initialCropperPosition\"\n                    [containWithinAspectRatio]=\"config.containWithinAspectRatio\"\n                    [aspectRatio]=\"config.aspectRatio\"\n                    [customWidth]=\"config.dropzoneCustomWidth\"\n                    (sendImageData)=\"onUploadFiles($event)\"\n                ></app-ca-logo-change>\n            }\n        }\n    </div>\n\n    <div\n        class=\"split-crop-holder\"\n        [class.split]=\"config.hasCrop && config.files.length && isDropzoneShown\"\n        [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n    >\n        @if (isDropzoneShown) {\n            <div class=\"d-flex w-100\">\n                @if (config.hasCrop) {\n                    <div class=\"d-flex me-2\">\n                        <svg-icon [src]=\"filesUploadSvgRoutes.AVATAR_RECTANGLE\">\n                        </svg-icon>\n                    </div>\n                }\n                <div>\n                    <app-ca-upload-dropzone\n                        [dropZoneConfig]=\"config.dropZoneConfig\"\n                        [customWidth]=\"config.dropzoneCustomWidth\"\n                        [isDropzoneShownInCrop]=\"\n                            config.hasCrop &&\n                            !!config.files.length &&\n                            isDropzoneShown\n                        \"\n                        [files]=\"config.files\"\n                        (onFileEvent)=\"onUploadFiles($event)\"\n                    ></app-ca-upload-dropzone>\n                </div>\n            </div>\n        }\n    </div>\n</div>\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n    keyframes,\n} from '@angular/animations';\n\nexport const cardComponentAnimation = (type: string, mt: string = '0px', mb: string = '0px') =>\n    trigger(type, [\n        state('true', style({\n            height: '*',\n            overflow: 'visible',\n            opacity: 1,\n            'margin-top': mt,\n            'margin-bottom': mb,\n            transform: 'translateY(0)',\n        })),\n        state('false', style({\n            height: '0px',\n            overflow: 'hidden',\n            opacity: 0,\n            'margin-top': '0px',\n            'margin-bottom': '0px',\n            transform: 'translateY(-20px)', \n        })),\n        transition(':enter', [\n            animate(\n                '200ms ease-in-out',\n                keyframes([\n                    style({\n                        opacity: 0,\n                        height: '0px',\n                        transform: 'translateY(-20px)',\n                        offset: 0\n                    }),\n                    style({\n                        opacity: 0.5,\n                        height: '10px',\n                        transform: 'translateY(10px)',\n                        offset: 0.5\n                    }),\n                    style({\n                        opacity: 1,\n                        height: '*',\n                        transform: 'translateY(0)',\n                        offset: 1\n                    })\n                ])\n            )\n        ]),\n        transition(':leave', [\n            animate(\n                '200ms ease-in-out',\n                keyframes([\n                    style({\n                        opacity: 1,\n                        height: '*',\n                        transform: 'translateY(0)',\n                        offset: 0\n                    }),\n                    style({\n                        opacity: 0.5,\n                        height: '10px',\n                        transform: 'translateY(-10px)', \n                        offset: 0.5\n                    }),\n                    style({\n                        opacity: 0,\n                        height: '0px',\n                        transform: 'translateY(-20px)', \n                        offset: 1\n                    })\n                ])\n            )\n        ])\n    ]);\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FileService {\n\n  constructor(private http: HttpClient) {}\n\n  public downloadFile(url: string): Observable<Blob> {\n    return this.http.get(url, { responseType: 'blob' });\n  }\n}\n","export enum ColumnName {\n    REQUESTED = 'requested',\n    InProgress = 'inProgress',\n    COMPLETED = 'completed'\n}","export enum DownloadLink {\n    DOWNLOAD = 'download',\n    HREF = 'href',\n    ANCHOR = 'a'\n}","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    Renderer2,\n    ViewChild,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgbModule, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { CommonModule } from '@angular/common';\n\n//Models\nimport { ToDoCardConfig } from '../models';\nimport { ProgressExpiration } from '../../ca-progress-expiration/models';\nimport { CommentConfig } from '../../ca-comment/models';\n\nimport { Subject, takeUntil } from 'rxjs';\n\n//Interfaces\nimport {\n    IFileOptionConfig,\n    IUploadFilesConfig,\n} from '../../ca-upload-files/interfaces';\nimport {\n    IFileConfig,\n    IFileEvent,\n} from '../../ca-upload-files/components/ca-upload-dropzone/interfaces';\n\n//Routes\nimport { TodoSvgRoute } from '../utils';\n\n//Components\nimport { CaProfileImageComponent } from '../../ca-profile-image/ca-profile-image.component';\nimport { CaProgressExpirationComponent } from '../../ca-progress-expiration/ca-progress-expiration.component';\nimport { CaCommentComponent } from '../../ca-comment/ca-comment.component';\nimport { CaAppTooltipV2Component } from '../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaUploadFilesCarouselComponent } from '../../ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component';\nimport { CaUploadFilesComponent } from '../../ca-upload-files/ca-upload-files.component';\n\n//Animation\nimport { cardComponentAnimation } from '../../../animations/card-component.animation';\n\n//Services\nimport { FileService } from '../services';\n\n//Enums\nimport { DownloadLink } from '../enums';\n\n@Component({\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        NgbTooltip,\n        NgbModule,\n        //Components\n        CaProfileImageComponent,\n        CaProgressExpirationComponent,\n        CaUploadFilesComponent,\n        CaAppTooltipV2Component,\n        CaCommentComponent,\n    ],\n    selector: 'app-ca-todo-card',\n    providers: [FileService],\n    templateUrl: './ca-todo-card.component.html',\n    styleUrls: ['./ca-todo-card.component.scss'],\n    animations: [cardComponentAnimation('showHideCardBody')],\n    encapsulation: ViewEncapsulation.None\n})\nexport class CaTodoCardComponent {\n    @ViewChild(CaUploadFilesCarouselComponent)\n    public modalCarousel!: CaUploadFilesCarouselComponent;\n\n    //tooltip\n    @Input() config!: ToDoCardConfig;\n\n    //Comment\n    @Input() commentConfig: CommentConfig[] = [];\n    @Input() newCommentConfig: CommentConfig[] = [];\n\n    //ProgressExpiration\n    @Input() configProgress: ProgressExpiration[] = [];\n\n    //Upload files\n    @Input() uploadFilesConfig!: IUploadFilesConfig;\n\n    @Output() onFileEvent: EventEmitter<IFileEvent> =\n        new EventEmitter<IFileEvent>();\n\n    public svgTodo = TodoSvgRoute;\n    private unsubscribe$ = new Subject<void>();\n    public link: string = '';\n    public isLinkVisible: boolean = false;\n    public commentCounter: number = 0;\n    public documentCounter: number = 0;\n    public isCommentVisible: boolean = false;\n    public isCommentsVisible: boolean = false;\n    public isDocumentVisible: boolean = false;\n    public isNewComment: boolean = false;\n    public _files: IFileConfig[] = [];\n    public _config!: IFileOptionConfig;\n\n    constructor(\n        private fileService: FileService,\n        private renderer: Renderer2\n    ) {}\n\n    ngOnInit() {\n        this.addLink();\n\n        this.getCommentCounter();\n\n        this.getDocumentCounter();\n    }\n\n    ngOnDestroy(): void {\n        this.unsubscribe$.next();\n        this.unsubscribe$.complete();\n    }\n\n    public addLink(): void {\n        if (this.config.link) {\n            this.link = this.config.link;\n            this.isLinkVisible = !this.isLinkVisible;\n        }\n    }\n\n    public toggleComments(): void {\n        this.isCommentsVisible = !this.isCommentsVisible;\n    }\n\n    public toggleDocument(): void {\n        this.isDocumentVisible = !this.isDocumentVisible;\n    }\n\n    public toggleNewComment(): void {\n        this.isNewComment = !this.isNewComment;\n    }\n\n    public getCommentCounter(): void {\n        this.commentCounter = this.commentConfig.length;\n    }\n\n    public getDocumentCounter(): void {\n        this.documentCounter = this.uploadFilesConfig.files.length;\n    }\n\n    public saveAllFiles(): void {\n        if (this.uploadFilesConfig.files && this.uploadFilesConfig.files.length)\n            this.uploadFilesConfig.files.forEach((file) =>\n                this.downloadFile(\n                    file.url,\n                    file.fileName ?? DownloadLink.DOWNLOAD\n                )\n            );\n        else console.warn('No file');\n    }\n\n    public downloadFile(url: string, filename: string): void {\n        this.fileService\n            .downloadFile(url)\n            .pipe(takeUntil(this.unsubscribe$))\n            .subscribe(\n                (blob: Blob) => {\n                    const document = this.renderer.createElement(\n                        DownloadLink.ANCHOR\n                    );\n                    const objectUrl = URL.createObjectURL(blob);\n                    this.renderer.setAttribute(\n                        document,\n                        DownloadLink.HREF,\n                        objectUrl\n                    );\n                    this.renderer.setAttribute(\n                        document,\n                        DownloadLink.DOWNLOAD,\n                        filename\n                    );\n                    document.click();\n                    URL.revokeObjectURL(objectUrl);\n                },\n                (error) => console.error('Error downloading file:', error)\n            );\n    }\n\n    public identity(index: number): number {\n        return index;\n    }\n}\n","<div class=\"todo-container\">\n    <div class=\"todo-content d-grid\">\n        <!--Header-->\n        <div\n            class=\"todo-header d-flex align-items-center justify-content-between\"\n        >\n            <div class=\"title-container\">\n                <div class=\"title\">{{ config.title }}</div>\n            </div>\n\n            <!--SVG Icons-->\n            <div class=\"svg-container d-flex\">\n                <div\n                    class=\"icon-box\"\n                    [tooltipBackground]=\"'#424242'\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"config.link ? 'Hyperlink' : 'No Hyperlink'\"\n                    position=\"bottom\"\n                    (click)=\"addLink()\"\n                    [ngClass]=\"{\n                        'icon-active': !isLinkVisible && config.link,\n                        'icon-has-link d-flex align-items-center justify-content-center':\n                            config.link,\n                        'icon-without-link': !config.link,\n                    }\"\n                >\n                    <svg-icon class=\"icon\" [src]=\"svgTodo.web\"></svg-icon>\n                </div>\n                <div\n                    class=\"icon-box\"\n                    [tooltipBackground]=\"'#424242'\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"\n                        uploadFilesConfig.files.length\n                            ? 'Attachment'\n                            : 'No Attachment'\n                    \"\n                    position=\"bottom\"\n                    (click)=\"toggleDocument()\"\n                    [ngClass]=\"{\n                        'icon-active':\n                            isDocumentVisible && uploadFilesConfig.files.length,\n                        'icon-has-link d-flex align-items-center justify-content-center':\n                            uploadFilesConfig.files.length,\n                        'icon-without-link': !uploadFilesConfig.files.length,\n                    }\"\n                    [ngStyle]=\"{\n                        'pointer-events': uploadFilesConfig.files.length\n                            ? 'auto'\n                            : 'none',\n                    }\"\n                >\n                    <svg-icon\n                        class=\"icon\"\n                        [src]=\"svgTodo.attachment\"\n                    ></svg-icon>\n                </div>\n                <div\n                    class=\"icon-box\"\n                    [tooltipBackground]=\"'#424242'\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"\n                        commentConfig.length ? 'Comment' : 'No Comment'\n                    \"\n                    position=\"bottom\"\n                    (click)=\"toggleComments()\"\n                    [ngClass]=\"{\n                        'icon-active':\n                            isCommentsVisible && commentConfig.length,\n                        'icon-has-link d-flex align-items-center justify-content-center':\n                            commentConfig.length,\n                        'icon-without-link': !commentConfig.length,\n                    }\"\n                >\n                    <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        width=\"18\"\n                        height=\"18\"\n                        viewBox=\"26 26\"\n                    >\n                        <g\n                            id=\"Comment_-_Count\"\n                            data-name=\"Comment - Count\"\n                            transform=\"translate(0.5 2.5)\"\n                        >\n                            <path\n                                id=\"Path_10563\"\n                                data-name=\"Path 10563\"\n                                d=\"M963.974,510.676H950.584a2.274,2.274,0,0,0-2.305,2.237v10.5a2.274,2.274,0,0,0,2.305,2.237h.82l1.574,2.645a.792.792,0,0,0,1.351,0l1.574-2.645h8.07a2.275,2.275,0,0,0,2.305-2.237v-10.5a2.274,2.274,0,0,0-2.305-2.237\"\n                                transform=\"translate(-948.279 -512.676)\"\n                                fill=\"#aaa\"\n                                stroke=\"rgba(0,0,0,0)\"\n                                stroke-width=\"1\"\n                            />\n                        </g>\n                        <text\n                            x=\"50%\"\n                            y=\"50%\"\n                            dominant-baseline=\"middle\"\n                            text-anchor=\"middle\"\n                            id=\"_1\"\n                            data-name=\"1\"\n                            fill=\"#fff\"\n                            font-size=\"9\"\n                            font-family=\"Montserrat-Bold, Montserrat\"\n                            font-weight=\"600\"\n                        >\n                            <tspan class=\"number-comments\">\n                                {{ commentCounter }}\n                            </tspan>\n                        </text>\n                    </svg>\n                </div>\n            </div>\n        </div>\n\n        <!--Body-->\n        <div class=\"todo-body d-flex flex-column\">\n            <div class=\"everybody-container d-flex align-items-center\">\n                @if (config.imageProfiles?.length) {\n                    <div\n                        class=\"asignee-images-container d-flex align-items-center\"\n                    >\n                        <!--Asigment-->\n                        @if (config.assigment) {\n                            @for (\n                                item of config.assigment;\n                                let indx = $index;\n                                track indx\n                            ) {\n                                <div\n                                    class=\"asignee\"\n                                    [ngClass]=\"{\n                                        'asignee-list': config.assigment,\n                                    }\"\n                                >\n                                    <p\n                                        [ngClass]=\"{\n                                            'asignee-item': config.assigment,\n                                        }\"\n                                    >\n                                        {{ item }}\n                                    </p>\n                                </div>\n                            }\n                        }\n\n                        <!--Images-->\n                        <div\n                            class=\"images-container d-flex align-items-center flex-row\"\n                        >\n                            @for (\n                                profile of config.imageProfiles;\n                                let indx = $index;\n                                track indx\n                            ) {\n                                <div class=\"image\">\n                                    <app-ca-profile-image\n                                        [indx]=\"profile.indx\"\n                                        [textShortName]=\"profile.textShortName\"\n                                        [avatarColor]=\"profile.avatarColor\"\n                                    ></app-ca-profile-image>\n                                </div>\n                            }\n                        </div>\n                    </div>\n                } @else {\n                    <div class=\"asignee-everybody\">\n                        <p class=\"asignee-everybody-p\">Everybody</p>\n                    </div>\n                }\n\n                <!--Description-->\n                <div class=\"description-container d-flex\">\n                    <p class=\"description\">{{ config.description }}</p>\n                </div>\n\n                <!--Link-->\n                @if (!isLinkVisible) {\n                    <div\n                        class=\"link-container\"\n                        [@showHideCardBody]=\"!isLinkVisible\"\n                    >\n                        <a\n                            class=\"link\"\n                            [href]=\"link\"\n                            style=\"text-decoration: none\"\n                            target=\"_blank\"\n                            >{{ link }}</a\n                        >\n                    </div>\n                }\n\n                <!--Progress expiration-->\n                <div class=\"progress-expiration\">\n                    <lib-ca-progress-expiration\n                        [config]=\"configProgress\"\n                    ></lib-ca-progress-expiration>\n                </div>\n            </div>\n\n            <!--Documents and Comments-->\n            <div class=\"todo-actions\">\n                <!--Line-->\n                @if (isDocumentVisible) {\n                    <div class=\"border-container\">\n                        <div class=\"border-line\"></div>\n                    </div>\n\n                    <!--Documents-->\n                    <div class=\"comment-header-container\">\n                        <div\n                            class=\"comment-title-content d-flex justify-content-between\"\n                        >\n                            <div\n                                class=\"comment-title d-flex align-items-center\"\n                            >\n                                <p>Documents</p>\n                                <span\n                                    class=\"counter d-flex align-items-center justify-content-center\"\n                                    >{{ documentCounter }}</span\n                                >\n                            </div>\n                            <div class=\"comment-svg\">\n                                <svg-icon\n                                    [src]=\"svgTodo.upload\"\n                                    (click)=\"saveAllFiles()\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                    </div>\n\n                    <!-- Container for carousel with all files -->\n                    <div\n                        class=\"upload-section\"\n                        [@showHideCardBody]=\"isDocumentVisible\"\n                    >\n                        <app-ca-upload-files\n                            [uploadFilesConfig]=\"uploadFilesConfig\"\n                        ></app-ca-upload-files>\n                    </div>\n                }\n\n                @if (isCommentsVisible) {\n                    <div class=\"border-container\">\n                        <div class=\"border-line\"></div>\n                    </div>\n\n                    <!--Comments-->\n                    <div class=\"comment-header-container\">\n                        <div\n                            class=\"comment-title-content d-flex justify-content-between\"\n                        >\n                            <div\n                                class=\"comment-title d-flex align-items-center\"\n                            >\n                                <p>Comment</p>\n                                <span\n                                    class=\"counter d-flex align-items-center justify-content-center\"\n                                    >{{ commentCounter }}</span\n                                >\n                            </div>\n\n                            <div class=\"comment-svg\">\n                                <svg-icon\n                                    [src]=\"svgTodo.plus\"\n                                    (click)=\"toggleNewComment()\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                    </div>\n\n                    @for (\n                        item of commentConfig;\n                        let indx = $index;\n                        track indx\n                    ) {\n                        <div\n                            class=\"comment-body\"\n                            [@showHideCardBody]=\"isCommentsVisible\"\n                        >\n                            <div class=\"comment\">\n                                <app-ca-comment\n                                    [config]=\"item\"\n                                ></app-ca-comment>\n                            </div>\n                        </div>\n                    }\n\n                    <!--New Comment-->\n                    @if (isNewComment) {\n                        @for (\n                            item of newCommentConfig;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <div\n                                class=\"comment-body\"\n                                [@showHideCardBody]=\"isCommentsVisible\"\n                            >\n                                <div class=\"comment\">\n                                    <app-ca-comment\n                                        [config]=\"item\"\n                                    ></app-ca-comment>\n                                </div>\n                            </div>\n                        }\n                    }\n                }\n            </div>\n        </div>\n    </div>\n</div>\n","// models\nimport { IToDoColumn, ToDoConfig } from '../models';\n\nexport const columnsConfig = (\n  todoConfigs: ToDoConfig[],\n  inProgressConfigs: ToDoConfig[],\n  completedConfigs: ToDoConfig[]\n): IToDoColumn[] => [\n  {\n    id: 'requested',\n    title: 'REQUESTED',\n    toDoConfigs: todoConfigs,\n  },\n  {\n    id: 'inProgress',\n    title: 'IN PROGRESS',\n    toDoConfigs: inProgressConfigs,\n  },\n  {\n    id: 'completed',\n    title: 'COMPLETED',\n    toDoConfigs: completedConfigs,\n  },\n];\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\n\nimport {\n    CdkDrag,\n    CdkDragDrop,\n    CdkDragPlaceholder,\n    CdkDropList,\n    CdkDropListGroup,\n    moveItemInArray,\n    transferArrayItem,\n} from '@angular/cdk/drag-drop';\n\n//Modules\nimport { CommonModule } from '@angular/common';\n\n//Components\nimport { CaTodoCardComponent } from './components/ca-todo-card.component';\n\n//Models\nimport { IToDoColumn, ToDoConfig } from './models';\n\n//Enums\nimport { ColumnName } from './enums';\n\n//Config\nimport { columnsConfig } from './config';\n\n//Services\nimport { FileService } from './services';\n\n@Component({\n    imports: [\n        CommonModule,\n        CaTodoCardComponent,\n        CdkDropList,\n        CdkDrag,\n        CdkDropListGroup,\n        CdkDragPlaceholder,\n    ],\n    selector: 'app-ca-todo',\n    providers: [FileService],\n    templateUrl: './ca-todo-component.html',\n    styleUrls: ['./ca-todo-component.scss']\n})\nexport class CaTodoComponent {\n    @Input() todoConfigs: ToDoConfig[] = [];\n    @Input() inProgressConfigs: ToDoConfig[] = [];\n    @Input() completedConfigs: ToDoConfig[] = [];\n\n    public columns: IToDoColumn[] = [];\n\n    constructor(private cdr: ChangeDetectorRef) {}\n\n    ngOnInit() {\n        this.initializeColumn();\n    }\n\n    public onDrop(event: CdkDragDrop<any[]>): void {\n        const previousContainer = event.previousContainer;\n        const currentContainer = event.container;\n\n        if (previousContainer === currentContainer) {\n            moveItemInArray(\n                currentContainer.data,\n                event.previousIndex,\n                event.currentIndex\n            );\n        } else {\n            transferArrayItem(\n                previousContainer.data,\n                currentContainer.data,\n                event.previousIndex,\n                event.currentIndex\n            );\n        }\n\n        this.updateTodoStates();\n    }\n\n    private initializeColumn(): void {\n        this.columns = columnsConfig(\n            this.todoConfigs,\n            this.inProgressConfigs,\n            this.completedConfigs\n        );\n    }\n\n    private updateTodoStates(): void {\n        this.todoConfigs = [\n            ...(this.columns.find(\n                (column) => column.id === ColumnName.REQUESTED\n            )?.toDoConfigs || []),\n        ];\n        this.inProgressConfigs = [\n            ...(this.columns.find(\n                (column) => column.id === ColumnName.InProgress\n            )?.toDoConfigs || []),\n        ];\n        this.completedConfigs = [\n            ...(this.columns.find(\n                (column) => column.id === ColumnName.COMPLETED\n            )?.toDoConfigs || []),\n        ];\n\n        setTimeout(() => {\n            this.cdr.detectChanges();\n        });\n    }\n}\n","<div class=\"todo-container d-flex flex-row align-items-start\" cdkDropListGroup>\n    @for (column of columns; track column.id) {\n        <div\n            class=\"todo-column d-flex flex-column\"\n            cdkDropList\n            [cdkDropListData]=\"column.toDoConfigs\"\n            (cdkDropListDropped)=\"onDrop($event)\"\n        >\n            <div class=\"heading d-flex align-items-center\">\n                <h3 class=\"title\">\n                    {{ column.title }} ({{ column.toDoConfigs.length }})\n                </h3>\n            </div>\n            @for (item of column.toDoConfigs; track $index) {\n                @if (item) {\n                    <div class=\"todo-card\" cdkDrag>\n                        <app-ca-todo-card\n                            [config]=\"item.config\"\n                            [commentConfig]=\"item.commentConfig || []\"\n                            [newCommentConfig]=\"item.newCommentConfig || []\"\n                            [configProgress]=\"item?.configProgress || []\"\n                            [uploadFilesConfig]=\"item.uploadFilesConfig\"\n                        ></app-ca-todo-card>\n\n                        <ng-template cdkDragPlaceholder>\n                            <div\n                                class=\"todo-placeholder d-flex align-items-center justify-content-center\"\n                            ></div>\n                        </ng-template>\n                    </div>\n                }\n            }\n        </div>\n    }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ColumnConfig } from '../../models/main-table.model';\n\n@Pipe({\n    name: 'caMainTableHiddenRows',\n    standalone: true,\n})\nexport class CaMainTableHiddenRowsPipe implements PipeTransform {\n    transform(\n        columns: ColumnConfig[],\n        hideHiddenFields: boolean\n    ): ColumnConfig[] {\n        if (!hideHiddenFields && columns?.length) {\n            return columns.filter((column) => !column.hiddeOnTableReduce);\n        }\n        return columns;\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Injector,\n  Input,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n  CdkDrag,\n  CdkDragDrop,\n  CdkDragPreview,\n  CdkDropList,\n  CdkDropListGroup,\n  moveItemInArray\n} from '@angular/cdk/drag-drop';\n\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n// Pipes\nimport { CaMainTableHiddenRowsPipe } from './pipes/ca-main-table-hidden-rows/ca-main-table-hidden-rows.pipe';\n// Models\nimport { ColumnConfig } from './models/main-table.model';\n\n@Component({\n  selector: 'app-ca-main-table',\n  templateUrl: './ca-main-table.component.html',\n  standalone: true,\n  imports: [\n    CdkDropListGroup,\n    CdkDropList,\n    CdkDrag,\n    CdkDragPreview,\n    CommonModule,\n    ScrollingModule,\n    CaMainTableHiddenRowsPipe,\n  ],\n  styleUrls: ['./ca-main-table.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaMainTableComponent<T = any> implements OnInit {\n  public tableData: T = {} as T;\n  public selectedRowIndex: number | null = null;\n\n  // Outputs\n  @Output() onPressEvent: EventEmitter<any> = new EventEmitter<any>();\n  @Output() onReorder: EventEmitter<CdkDragDrop<any[] | null, any, any>> =\n    new EventEmitter<CdkDragDrop<any[] | null, any, any>>();\n\n\n  // Inputs\n  @Input() truckTemplate!: TemplateRef<any>;\n  @Input() reorderTemplate!: TemplateRef<any>;\n  @Input() reorderTemplatePreview!: TemplateRef<any>;\n  @Input() transparentTable: boolean = false;\n  @Input() sortPredicate: (index: number, item: CdkDrag<number>) => boolean = (\n    _: number,\n    __: CdkDrag<number>\n  ) => {\n    return true;\n  };\n\n  // Inputs\n  @Input() hideFieldsToHide: boolean = false;\n  @Input() reorderItems: boolean = false;\n  @Input() disableReorderRow: boolean = false;\n  @Input() columns: ColumnConfig[] = [];\n  @Input() data$!: Observable<any[]>; // Accepts the data as an observable\n  constructor(\n    private injector: Injector,\n    private cdRef: ChangeDetectorRef\n  ) { }\n\n  public onPressRow(rowData: any, rowIndex: number): void {\n    this.selectedRowIndex = rowIndex;\n    this.onPressEvent.emit(rowData);\n  }\n\n  ngOnInit() {\n    this.data$?.subscribe((data) => {\n      // Trigger change detection to update the view when data changes\n      this.tableData = JSON.parse(JSON.stringify(data));\n      this.cdRef.detectChanges();\n    });\n  }\n\n  public createInjector(\n    inputs: { [key: string]: any }\n  ): Injector {\n    const inputProviders = Object.keys(inputs || {}).map((key) => ({\n      provide: key,\n      useValue: inputs[key],\n    }));\n    return Injector.create({\n      providers: inputProviders,\n      parent: this.injector,\n    });\n  }\n\n  public attachOutputs(\n    componentRef: any,\n    outputs: { [key: string]: (event: any) => void }\n  ): void {\n    Object.keys(outputs).forEach((outputKey) => {\n      if (componentRef.instance[outputKey]) {\n        componentRef.instance[outputKey].subscribe(outputs[outputKey]);\n      }\n    });\n  }\n\n  public dropHeader(event: CdkDragDrop<string[]>): void {\n    moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\n  }\n\n  public drop(event: CdkDragDrop<any[] | null, any, any>): void {\n    moveItemInArray(\n      event.container.data!,\n      event.previousIndex,\n      event.currentIndex\n    );\n\n    this.onReorder.emit(event);\n  }\n}\n","<!-- Main Table -->\n@let tableData = data$ | async;\n<div class=\"ca-main-table-holder\">\n    <table\n        class=\"ca-main-table\"\n        [class.transparent]=\"transparentTable\"\n        cdkDropListGroup\n    >\n        <thead>\n            <tr\n                cdkDropList\n                cdkDropListOrientation=\"horizontal\"\n                [cdkDropListDisabled]=\"!reorderItems\"\n                (cdkDropListDropped)=\"dropHeader($event)\"\n                class=\"table-body-list th-table-body-list\"\n            >\n                @let filteredColumns =\n                    columns | caMainTableHiddenRows: hideFieldsToHide;\n                @for (col of filteredColumns; let indx = $index; track indx) {\n                    <div\n                        cdkDragLockAxis=\"x\"\n                        cdkDrag\n                        cdkDragPreviewContainer=\"parent\"\n                        class=\"cdk_th_div table-tr\"\n                        [class]=\"col.cellCustomClasses\"\n                    >\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                headerThTemplate;\n                                context: { $implicit: col, index: indx }\n                            \"\n                        ></ng-container>\n                    </div>\n                }\n            </tr>\n        </thead>\n        <tbody\n            #tableMainBody\n            cdkScrollable\n            cdkDropList\n            [cdkDropListData]=\"tableData\"\n            [cdkDropListSortPredicate]=\"sortPredicate\"\n            (cdkDropListDropped)=\"drop($event)\"\n            class=\"table-body-list\"\n        >\n            @for (row of tableData; track $index; let rowIndex = $index) {\n                @let isSelected = selectedRowIndex === rowIndex;\n                @if (row.rowType === 'reorder') {\n                    <tr\n                        cdkDragLockAxis=\"y\"\n                        cdkDrag\n                        cdkDragPreviewContainer=\"parent\"\n                        cdkDragBoundary=\".table-body-list\"\n                        class=\"table-tr table-preview-row\"\n                        [cdkDragDisabled]=\"disableReorderRow\"\n                    >\n                        <ng-template cdkDragPreview matchSize>\n                            <tr class=\"table-tr\">\n                                <ng-container\n                                    *ngTemplateOutlet=\"\n                                        reorderTemplatePreview;\n                                        context: { row: row, index: rowIndex }\n                                    \"\n                                ></ng-container>\n                            </tr>\n                        </ng-template>\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                reorderTemplate;\n                                context: { row: row, index: rowIndex }\n                            \"\n                        ></ng-container>\n                    </tr>\n                } @else if (row.rowType === 'truck') {\n                    <tr \n                    cdkDragLockAxis=\"y\"\n                    cdkDrag\n                    cdkDragPreviewContainer=\"parent\"\n                    cdkDragBoundary=\".table-body-list\"\n                    class=\"table-tr table-preview-row\"\n                    [cdkDragDisabled]=\"true\"\n                    class=\"table-tr\">\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                truckTemplate;\n                                context: { row: row, index: rowIndex }\n                            \"\n                        ></ng-container>\n                    </tr>\n                } @else {\n                    <tr\n                        cdkDragLockAxis=\"y\"\n                        cdkDrag\n                        cdkDragPreviewContainer=\"parent\"\n                        cdkDragBoundary=\".table-body-list\"\n                        [cdkDragDisabled]=\"!reorderItems\"\n                        class=\"table-tr\"\n                        (click)=\"onPressRow(row, rowIndex)\"\n                        [class]=\"{'selected-row': isSelected}\"\n                    >\n                        @for (\n                            (col of columns | caMainTableHiddenRows: hideFieldsToHide);\n                            track $index\n                        ) {\n                            <td [class]=\"col.cellCustomClasses\">\n                                <ng-container\n                                    *ngTemplateOutlet=\"\n                                        rowTemplate;\n                                        context: {\n                                            row: row,\n                                            col: col,\n                                            index: rowIndex,\n                                        }\n                                    \"\n                                ></ng-container>\n                            </td>\n                        }\n                    </tr>\n                }\n            }\n        </tbody>\n    </table>\n</div>\n\n<!-- Header Template -->\n<ng-template #headerThTemplate let-col let-indx=\"index\">\n    <th>\n        @switch (col.headerCellType) {\n            @case ('template') {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        col.headerTemplate;\n                        context: { $implicit: col.header, index: indx }\n                    \"\n                ></ng-container>\n            }\n            @default {\n                <div class=\"th-content-container text-color-bw6-2 user-select-none\">\n                    {{ col.header }}\n                </div>\n            }\n        }\n    </th>\n</ng-template>\n\n<!-- Row Template -->\n<ng-template #rowTemplate let-row=\"row\" let-col=\"col\" let-index=\"index\">\n    <div class=\"td-container\">\n        <div class=\"td-content-container\">\n            @switch (col.cellType) {\n                @case ('template') {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            col.template;\n                            context: {\n                                $implicit: col.row ? row : row[col.field],\n                                index: index,\n                                field: col.field,\n                            }\n                        \"\n                    ></ng-container>\n                }\n                @case ('component') {\n                    <ng-container\n                        *ngComponentOutlet=\"\n                            col.component;\n                            injector: createInjector(col.inputs)\n                        \"\n                    ></ng-container>\n                }\n                @default {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            customTextTemplate;\n                            context: {\n                                $implicit: {\n                                    field: row[col.field],\n                                    pipeType: col.pipeType,\n                                    pipeString: col.pipeString,\n                                    textCustomClasses: col.textCustomClasses,\n                                    index: index,\n                                },\n                            }\n                        \"\n                    ></ng-container>\n                }\n            }\n        </div>\n    </div>\n</ng-template>\n\n<!-- Default Text Template -->\n<ng-template #customTextTemplate let-data let-index>\n    @switch (data.pipeType) {\n        @case ('date') {\n            <div\n                [ngClass]=\"data.textCustomClasses\"\n                class=\"text text-color-black\"\n            >\n                {{ data.field | date: data.pipeString }}\n            </div>\n        }\n        @case ('currency') {\n            <div\n                [ngClass]=\"data.textCustomClasses\"\n                class=\"text text-color-black\"\n            >\n                {{ data.field | currency: data.pipeString }}\n            </div>\n        }\n        @default {\n            <div\n                [ngClass]=\"data.textCustomClasses\"\n                class=\"text text-color-black\"\n            >\n                {{ data.field }}\n            </div>\n        }\n    }\n</ng-template>\n","export enum ActionLogTypeTitleText {\n  CREATED = 'Created',\n  EDITED = 'Edited',\n  ACTIVATED = 'Activated',\n}\n","export enum ActionLogType {\n  CREATED = 'Created',\n  EDITED = 'Edited',\n  DELETED = 'Deleted',\n  DEACTIVATED = 'Deactivated',\n  ACTIVATED = 'Activated',\n}\n","export enum ActivityEntityType {\n  TRUCK = 'Truck',\n  DRIVER = 'Driver',\n}\n","export enum ActivityLogUtils {\n  NONE = '',\n  STRING = 'string',\n}\n","export enum RightSidePanelCurrentTab {\n  PERSONAL = 'personal',\n  ALL = 'All',\n}\n","export enum SelectedModule {\n  COMPANY_INFO = 'Company Info',\n  DIVISION_INFO = 'Division Info',\n  DOCUMENT = 'Document',\n  LOCATION = 'Location',\n  INSURANCE_POLICY = 'Insurance Policy',\n  FACTORING_COMPANY = 'Factoring Company',\n  CHAT = 'Chat',\n  WIDGET = 'Widget',\n  NOTES = 'Notes',\n  ACTIVITY_LOG = 'Activity Log',\n  NOTIFICATIONS = 'Notifications',\n}\n","export enum FilterType {\n  USER = 'userFilter',\n  MODULE = 'moduleFilter',\n  ACTION = 'actionFilter',\n  TIME = 'timeFilter',\n}\n","export enum ActivityLogSortType {\n  ASCENDING = 'Ascending',\n  DESCENDING = 'Descending',\n}\n","export enum TimeFilterType {\n  TODAY = 'Today',\n  YESTERDAY = 'Yesterday',\n  THIS_WEEK = 'WTD',\n  LAST_WEEK = 'Last Week',\n  THIS_MONTH = 'MTD',\n  LAST_MONTH = 'Last Month',\n  CUSTOM = 'Custom',\n}\n","export enum ModulesFilterItemLabel {\n    LIST = 'List',\n  }\n  ","export enum CompanyFontSize {\n  FOURTY_TWO = 'fourty-two',\n  THIRTY_TWO = 'thirty-two',\n  EIGHTEEN = 'eighteen',\n}\n","export enum CompanyInfoTitle {\n  PHONE = 'Phone',\n  FAX = 'Fax',\n  EMAIL = 'Email',\n  WEBSITE = 'Website',\n  ADDRESS = 'Address',\n  USDOT = 'USDOT',\n  EIN = 'EIN',\n  MC = 'MC',\n  IRP = 'IRP',\n  IFTA = 'IFTA',\n  TOLL = 'Toll',\n  SCAC = 'SCAC',\n  TIME_ZONE = 'Time Zone',\n  CURRENCY = 'Currency',\n}\n","export enum PreferredLoadType {\n  FTL = 'FTL',\n  LTL = 'LTL',\n}\n","export enum FleetType {\n  SOLO = 'Solo',\n  TEAM = 'Team',\n  COMBINED = 'Combined',\n}\n","export enum BankAccountStatus {\n  UNVERIVIED = 'Unverivied',\n  VERIFIED = 'Verified',\n  PENDING = 'Pending',\n  DECLINED = 'Declined',\n}\n","export enum BankCardTypesStringEnum {\n  VISA = 'visa',\n  AMERICAN = 'amex',\n  MASTERCARD = 'mastercard',\n  DISCOVER = 'discover',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'actionLogNameTransform',\n  standalone: true,\n})\nexport class ActionLogNameTransformPipe implements PipeTransform {\n  transform(value: string): string {\n    return value === 'Created' ? 'Added' : value;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// models\nimport { ActivityLogItem } from '../../models';\n\n@Pipe({\n  name: 'activityLogDateTransform',\n  standalone: true,\n})\nexport class ActivityLogDateTransformPipe implements PipeTransform {\n  transform(item: ActivityLogItem): Date | null | undefined {\n    return item.actionLog.name === 'Created' ? item.createdAt : item.updatedAt;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { RightSidePanelCurrentTab } from '../../../ca-right-side-panel/enums';\n\n@Pipe({\n  name: 'tabTitleTransform',\n  standalone:true\n})\nexport class TabTitleTransformPipe implements PipeTransform {\n\n  transform(value: RightSidePanelCurrentTab): string {\n    return value === RightSidePanelCurrentTab.PERSONAL ? 'Personal' : 'All User';\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'companyUserNameTransform',\n  standalone: true,\n})\nexport class CompanyUserNameTransformPipe implements PipeTransform {\n  transform(value: string): string {\n    if (!value) return '';\n    const [firstName, lastName] = value.trim().split(' ');\n    return (firstName?.[0] || '') + (lastName?.[0] || '').toUpperCase();\n  }\n}\n","import { ICaInput } from '../../ca-input/config';\n\nexport class ActivityLogSearchFilterConfig {\n  static getActivityLogSearch(): ICaInput {\n    return {\n      name: 'search',\n      type: 'text',\n      label: 'Search in Activity Log',\n      placeholderIcon: 'ic_search',\n      placeholderInsteadOfLabel: true,\n      isDisabled: false,\n    };\n  }\n\n  static getSearchButtonSvg(): string {\n    return 'assets/ca-components/svg/search-multiple-states/search-button.svg';\n  }\n}\n","import {\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { HttpClientModule } from '@angular/common/http';\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\n\n// models\nimport { ActivityLogItem } from './models';\n\n// enums\nimport { ActivityLogUtils } from './enums';\nimport { RightSidePanelCurrentTab } from '../ca-right-side-panel/enums';\nimport { eStringPlaceholder } from '../../enums';\n\n// pipes\nimport {\n    ActionLogNameTransformPipe,\n    ActivityLogDateTransformPipe,\n    CompanyUserNameTransformPipe,\n    TabTitleTransformPipe,\n} from './utils/pipes';\nimport { CaSvgPipe } from '../../pipes';\n\n// components\nimport { CaProfileImageComponent } from '../ca-profile-image/ca-profile-image.component';\nimport { CaInputComponent } from '../ca-input/ca-input.component';\n\n// configs\nimport { ICaInput } from '../ca-input/config';\nimport { ActivityLogSearchFilterConfig } from './config';\n\n@Component({\n    selector: 'app-ca-activity-log-list',\n    templateUrl: './ca-activity-log-list.component.html',\n    styleUrls: ['./ca-activity-log-list.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        ReactiveFormsModule,\n        // components\n        CaProfileImageComponent,\n        CaInputComponent,\n        // pipes\n        ActionLogNameTransformPipe,\n        ActivityLogDateTransformPipe,\n        CaSvgPipe,\n        TabTitleTransformPipe,\n        CompanyUserNameTransformPipe,\n    ]\n})\nexport class CaActivityLogListComponent implements OnInit, OnDestroy {\n    public RightSidePanelCurrentTab = RightSidePanelCurrentTab;\n    public activityLogSearchConfig!: ICaInput;\n    public searchForm!: UntypedFormGroup;\n    public searchButtonSvg!: string;\n    public showSearch: boolean = false;\n    public hoveredItemId: number = 0;\n    public hoveredUserName?: string;\n    public focusedItemId: number = 0;\n    public _selectedTab!: RightSidePanelCurrentTab;\n    private destroy$ = new Subject<void>();\n    public _activityLogList!: ActivityLogItem[];\n\n    @Input() set activityLogList(value: ActivityLogItem[]) {\n        this.filterActivityLogListDate(value);\n    }\n\n    @Input() set selectedTab(value: RightSidePanelCurrentTab) {\n        this._selectedTab = value;\n        this.focusedItemId = 0;\n    }\n\n    @Output() searchText: EventEmitter<string> = new EventEmitter();\n    @Output() resetFilters: EventEmitter<boolean> = new EventEmitter();\n\n    constructor(\n        private formBuilder: UntypedFormBuilder,\n        private cdr: ChangeDetectorRef\n    ) {}\n\n    ngOnInit(): void {\n        this.createForm();\n        this.setActivityLogSearch();\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n        this.watchSearchFormValueChanges();\n    }\n\n    private filterActivityLogListDate(\n        activityLogList: ActivityLogItem[]\n    ): void {\n        activityLogList.forEach((item: ActivityLogItem, index, array) => {\n            const currentDate = item.createdAt\n                ? new Date(item.createdAt).toDateString()\n                : ActivityLogUtils.NONE;\n            const previousItem = array[index - 1];\n            const previousDate =\n                index && previousItem?.createdAt\n                    ? new Date(previousItem.createdAt).toDateString()\n                    : ActivityLogUtils.NONE;\n            item.isFirstInDay = currentDate !== previousDate;\n            if (typeof item.description === ActivityLogUtils.STRING)\n                item.description = JSON.parse(item.description as string);\n        });\n        this._activityLogList = activityLogList;\n        this.cdr.detectChanges();\n    }\n\n    private setActivityLogSearch(): void {\n        this.activityLogSearchConfig =\n            ActivityLogSearchFilterConfig.getActivityLogSearch();\n        this.searchButtonSvg =\n            ActivityLogSearchFilterConfig.getSearchButtonSvg();\n    }\n\n    public openSearchInput(): void {\n        this.showSearch = true;\n    }\n\n    public hoverItem(activityLogItem: ActivityLogItem): void {\n        this.hoveredItemId = activityLogItem.id;\n        this.setHoveredUserName(activityLogItem.companyUser.fullName);\n    }\n\n    public leaveItem(): void {\n        this.hoveredItemId = 0;\n    }\n\n    private setHoveredUserName(fullName: string): void {\n        const [name, surname] = fullName.split(eStringPlaceholder.WHITESPACE);\n        this.hoveredUserName = `${name[0]}. ${surname}`;\n    }\n\n    public activityLogItemFocus(activityLogItemId: number): void {\n        if (this.focusedItemId === activityLogItemId) this.focusedItemId = 0;\n        else this.focusedItemId = activityLogItemId;\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$), debounceTime(500))\n            .subscribe((changes) => {\n                const inputValue: string = changes.search?.toLowerCase() || '';\n                this.searchText.emit(inputValue);\n            });\n    }\n\n    public resetFiltersClick(): void {\n        this.resetFilters.emit(true);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (_activityLogList) {\n    <div class=\"activity-log-container\">\n        <div class=\"title-type-container d-flex justify-content-between\">\n            <p class=\"title-type ca-font-extra-bold d-flex align-items-center\">\n                {{ _selectedTab | tabTitleTransform }}\n            </p>\n            @if (showSearch) {\n                <p\n                    class=\"activity-log-results ca-font-bold d-flex align-items-center\"\n                >\n                    {{ _activityLogList.length }} Results\n                </p>\n            } @else {\n                <div class=\"activity-log-search-btn\">\n                    <svg-icon\n                        class=\"svg-size-28\"\n                        [src]=\"searchButtonSvg\"\n                        (click)=\"openSearchInput()\"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n        @if (showSearch) {\n            <div class=\"search-container\" [formGroup]=\"searchForm\">\n                <app-ca-input\n                    class=\"input-form-holder\"\n                    formControlName=\"search\"\n                    [inputConfig]=\"activityLogSearchConfig\"\n                ></app-ca-input>\n            </div>\n        }\n        <div class=\"activity-log-list-container\">\n            @if (_activityLogList.length) {\n                <div class=\"activity-log-list\">\n                    @for (\n                        activityLogItem of _activityLogList;\n                        let indx = $index;\n                        track activityLogItem.id\n                    ) {\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                activityLogItemTemplate;\n                                context: {\n                                    activityLogItem,\n                                }\n                            \"\n                        ></ng-container>\n                    }\n                </div>\n            } @else {\n                <div class=\"no-data-container-box d-flex flex-column\">\n                    <div class=\"subtle-illustration-container\"></div>\n                    <div\n                        class=\"no-data-container d-flex flex-column justify-content-center align-items-center\"\n                    >\n                        <h1 class=\"no-data-title ca-font-extra-bold\">\n                            No results\n                        </h1>\n                        <p class=\"no-data-text ca-font-medium\">\n                            No entries match your criteria.<br />\n                            Please revise your filters and search again.\n                        </p>\n                        <div\n                            class=\"no-data-button button-secondary\"\n                            (click)=\"resetFiltersClick()\"\n                        >\n                            <p\n                                class=\"button-text ca-font-bold d-flex align-items-center justify-content-center\"\n                            >\n                                Reset Filters\n                            </p>\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n    </div>\n\n    <ng-template #activityLogItemTemplate let-activityLogItem=\"activityLogItem\">\n        <div class=\"activity-log-item-container\">\n            @if (activityLogItem.isFirstInDay) {\n                <p class=\"title-text ca-font-medium\">\n                    <span>{{\n                        activityLogItem\n                            | activityLogDateTransform\n                            | date: 'dd/MM/yyyy'\n                    }}</span>\n                </p>\n            } @else {\n                @if (activityLogItem.id !== hoveredItemId) {\n                    <div class=\"horizontal-line\"></div>\n                }\n            }\n\n            <div\n                class=\"activity-log-item\"\n                [ngClass]=\"{\n                    'm-t-8': activityLogItem.isFirstInDay,\n                    'activity-hovered':\n                        activityLogItem.id === hoveredItemId &&\n                        !activityLogItem.isFirstInDay,\n                    'activity-focused': activityLogItem.id === focusedItemId,\n                }\"\n                (mouseover)=\"hoverItem(activityLogItem)\"\n                (mouseleave)=\"leaveItem()\"\n                (click)=\"activityLogItemFocus(activityLogItem.id)\"\n            >\n                <div\n                    class=\"activity-log-item-header d-flex justify-content-center align-items-center\"\n                >\n                    <div\n                        class=\"action-log-title d-flex align-items-center\"\n                        [class]=\"\n                            'action-log-title-' +\n                            activityLogItem.actionLog.name.toLowerCase()\n                        \"\n                        [ngClass]=\"{\n                            'action-log-title-hovered':\n                                activityLogItem.id === hoveredItemId ||\n                                activityLogItem.id === focusedItemId,\n                        }\"\n                    >\n                        <svg-icon\n                            [src]=\"\n                                activityLogItem.entityTypeActivity.name.toLowerCase()\n                                    | caSvg: 'common'\n                            \"\n                            class=\"type-icon d-flex align-items-center svg-size-18\"\n                        ></svg-icon>\n                        <p class=\"title-type-icon-text ca-font-bold\">\n                            {{\n                                activityLogItem.actionLog.name\n                                    | actionLogNameTransform\n                                    | uppercase\n                            }}\n                        </p>\n                    </div>\n                    @if (\n                        activityLogItem.id === hoveredItemId ||\n                        activityLogItem.id === focusedItemId\n                    ) {\n                        <div>\n                            <p\n                                class=\"activity-log-date ca-font-medium d-flex align-items-center\"\n                            >\n                                {{\n                                    activityLogItem\n                                        | activityLogDateTransform\n                                        | date: 'hh:mm a'\n                                }}\n                            </p>\n                        </div>\n                    }\n\n                    <div class=\"activity-log-date-container d-flex\">\n                        @if (\n                            activityLogItem.id === hoveredItemId ||\n                            activityLogItem.id === focusedItemId\n                        ) {\n                            <p class=\"hovered-user-name ca-font-bold\">\n                                {{ hoveredUserName }}\n                            </p>\n                        } @else {\n                            <p\n                                class=\"activity-log-date ca-font-medium d-flex align-items-center\"\n                            >\n                                {{\n                                    activityLogItem\n                                        | activityLogDateTransform\n                                        | date: 'HH:mm a'\n                                }}\n                            </p>\n                        }\n\n                        @if (_selectedTab === RightSidePanelCurrentTab.ALL) {\n                            <div class=\"d-flex align-items-center\">\n                                @if (activityLogItem.companyUser.avatarFile) {\n                                    <app-ca-profile-image\n                                        [indx]=\"activityLogItem.companyUser.id\"\n                                        [avatarImg]=\"\n                                            activityLogItem.companyUser\n                                                .avatarFile.url\n                                        \"\n                                        [size]=\"14\"\n                                    >\n                                    </app-ca-profile-image>\n                                } @else {\n                                    <app-ca-profile-image\n                                        [indx]=\"activityLogItem.companyUser.id\"\n                                        [textShortName]=\"\n                                            activityLogItem.companyUser.fullName\n                                                | companyUserNameTransform\n                                        \"\n                                        [size]=\"14\"\n                                    >\n                                    </app-ca-profile-image>\n                                }\n                            </div>\n                        }\n                    </div>\n                </div>\n                @if (activityLogItem.id === focusedItemId) {\n                    <div class=\"activity-log-item-title-container-focused\">\n                        <p class=\"activity-log-item-title ca-font-semi-bold\">\n                            {{ activityLogItem.description.Title }}\n                        </p>\n                        <p class=\"activity-log-item-subtitle\">\n                            {{ activityLogItem.description.SubTitle }}\n                        </p>\n                    </div>\n                } @else {\n                    <div\n                        class=\"activity-log-item-title-container d-flex align-items-center\"\n                    >\n                        <p class=\"activity-log-item-title ca-font-semi-bold\">\n                            {{ activityLogItem.description.Title }}\n                        </p>\n                        <div class=\"vertical-line\"></div>\n                        <p class=\"activity-log-item-subtitle\">\n                            {{ activityLogItem.description.SubTitle }}\n                        </p>\n                    </div>\n                }\n            </div>\n        </div>\n    </ng-template>\n}\n","// models\nimport { NavigationItem } from '../models';\n\n// enums\nimport { SelectedModule } from '../enums';\n\nexport class CaRightSidePanelConfig {\n  static getNavigationItems(): NavigationItem[] {\n    return [\n      {\n        icon: 'assets/ca-components/svg/common/ic_document.svg',\n        title: SelectedModule.DOCUMENT,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/common/ic_location_map.svg',\n        title: SelectedModule.LOCATION,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/right-side-panel/ic_accident_insurance_policy.svg',\n        title: SelectedModule.INSURANCE_POLICY,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/common/ic_debtor.svg',\n        title: SelectedModule.FACTORING_COMPANY,\n        companyName: null,\n        isLastInList: true,\n      },\n      {\n        icon: 'assets/ca-components/svg/right-side-panel/ic_chat.svg',\n        title: SelectedModule.CHAT,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/right-side-panel/ic_widget.svg',\n        title: SelectedModule.WIDGET,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/note/Note.svg',\n        title: SelectedModule.NOTES,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/right-side-panel/ic_activity_log.svg',\n        title: SelectedModule.ACTIVITY_LOG,\n        companyName: null,\n        isLastInList: false,\n      },\n      {\n        icon: 'assets/ca-components/svg/right-side-panel/ic_notification.svg',\n        title: SelectedModule.NOTIFICATIONS,\n        companyName: null,\n        isLastInList: false,\n      },\n    ];\n  }\n}\n","export class RightSidePanelTopBarSvgRoutes {\n  static icons = {\n    sortArrowFilter: 'assets/ca-components/svg/common/sortArrow_filter.svg',\n  };\n\n   static folders = {\n    common: 'assets/ca-components/svg/common/',\n    actions: 'assets/ca-components/svg/common/actions/',\n  };\n}\n","export class SidePanelCompanySvgRoutes {\n  static icons = {\n    mainCompany: 'assets/ca-components/svg/right-side-panel/ic_company.svg',\n    divisionCompany: 'assets/ca-components/svg/right-side-panel/ic_company_division.svg',\n  };\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { HostListener } from '@angular/core';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// models\nimport { CompanyNavigationData, NavigationItem } from '../../models';\n\n// enums\nimport { SelectedModule } from '../../enums';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// configs\nimport { CaRightSidePanelConfig } from '../../config/ca-right-side-panel.config';\n\n// routes\nimport { SidePanelCompanySvgRoutes } from '../../utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-right-side-panel-menu',\n    templateUrl: './ca-right-side-panel-menu.component.html',\n    styleUrls: ['./ca-right-side-panel-menu.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        NgbModule,\n        // Components\n        CaAppTooltipV2Component,\n        // pipes\n        CaSvgPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class CaRightSidePanelMenuComponent {\n    public isPopupListShown: boolean = false;\n    public isPopupModuleShown: boolean = false;\n    public selectedModuleItem!: NavigationItem;\n    public isHamburgerMenuFocused: boolean = false;\n    public isPinFocused: boolean = false;\n    public isNavShown: boolean = false;\n    public haveMenu: boolean = false;\n    public itemList: NavigationItem[] = [];\n\n    constructor(private elementRef: ElementRef) {}\n\n    @Input() set companyList(value: CompanyNavigationData[]) {\n        if (value) this.setItemList(value);\n    }\n    @Input() set selectedCompany(value: number) {\n        if (value) this.setSelectedCompany(value);\n    }\n\n    @Output() selectedNav: EventEmitter<SelectedModule> = new EventEmitter();\n    @Output() isPinned: EventEmitter<boolean> = new EventEmitter();\n    @Output() isNavOpen: EventEmitter<boolean> = new EventEmitter();\n    @Output() selectedCompanyId: EventEmitter<number> = new EventEmitter();\n\n    private setItemList(companies: CompanyNavigationData[]): void {\n        if (companies) {\n            const mainCompany = companies.find(\n                (company) => !company.isDivision\n            );\n            const otherCompanies = companies.filter(\n                (company) => company.isDivision\n            );\n\n            this.itemList = [\n                {\n                    icon: SidePanelCompanySvgRoutes.icons.mainCompany,\n                    title: SelectedModule.COMPANY_INFO,\n                    companyName: mainCompany?.companyName || '',\n                    companyId: mainCompany?.id,\n                    isLastInList: otherCompanies.length === 0,\n                },\n                ...otherCompanies.map((company, index, array) => ({\n                    icon: SidePanelCompanySvgRoutes.icons.divisionCompany,\n                    title: SelectedModule.DIVISION_INFO,\n                    companyName: company.companyName,\n                    companyId: company.id,\n                    isLastInList: index === array.length - 1,\n                })),\n            ];\n        }\n\n        CaRightSidePanelConfig.getNavigationItems().map(\n            (item: NavigationItem) => {\n                this.itemList.push(item);\n            }\n        );\n    }\n\n    @HostListener('document:click', ['$event'])\n    public onDocumentClick(event: MouseEvent): void {\n        if (!this.elementRef.nativeElement.contains(event.target)) {\n            this.closeMenu();\n        }\n    }\n\n    public openMenu(): void {\n        this.isPopupListShown = true;\n        this.isNavOpen.emit(true);\n    }\n\n    public closeMenu(): void {\n        if(this.isPopupListShown) \n            this.isPopupListShown = false;\n    }\n\n    public onToggleMenu(): void {\n        this.isPopupListShown ? this.closeMenu() : this.openMenu();\n    }\n\n    public itemClickEvent(item: NavigationItem): void {\n        this.selectedModuleItem = item;\n        this.isPopupListShown = !this.isPopupListShown;\n        this.isPopupModuleShown = !this.isPopupModuleShown;\n        this.selectedNav.emit(item.title);\n        this.selectedCompanyId.emit(item.companyId);\n        this.setSettings();\n    }\n\n    public navItemClickEvent(item: NavigationItem): void {\n        this.selectedModuleItem = item;\n        this.isNavShown = false;\n        this.selectedNav.emit(item.title);\n        this.selectedCompanyId.emit(item.companyId);\n        this.setSettings();\n    }\n\n    public closeModule(): void {\n        if (this.isNavShown) {\n            this.isNavShown = false;\n            this.isHamburgerMenuFocused = false;\n        } else {\n            this.isPopupListShown = false;\n            this.isPopupModuleShown = false;\n            this.isNavShown = false;\n            this.isHamburgerMenuFocused = false;\n            this.isPinFocused = false;\n            this.selectedNav.emit();\n            this.isPinned.emit(false);\n        }\n    }\n\n    public toggleNav(): void {\n        this.isNavShown = !this.isNavShown;\n    }\n\n    public hamburgerMenuClickEvent(): void {}\n\n    public pinClickEvent(): void {\n        this.isHamburgerMenuFocused = false;\n        this.isPinFocused = !this.isPinFocused;\n        this.isPinned.emit(this.isPinFocused);\n    }\n\n    private setSettings(): void {\n        switch (this.selectedModuleItem?.title) {\n            case SelectedModule.ACTIVITY_LOG:\n                this.haveMenu = false;\n                break;\n            case SelectedModule.COMPANY_INFO:\n                this.haveMenu = false;\n                break;\n            case SelectedModule.DIVISION_INFO:\n                this.haveMenu = false;\n                break;\n            default:\n                this.haveMenu = true;\n                break;\n        }\n    }\n\n    private setSelectedCompany(companyId: number): void {\n        const selectedModuleItem = this.itemList.find(\n            (item) => item.companyId === companyId\n        );\n        if (selectedModuleItem) this.selectedModuleItem = selectedModuleItem;\n    }\n}\n","<div class=\"side-panel-right-container-box\">\n    @if (!isPopupModuleShown) {\n        <div\n            class=\"side-panel-right-button-container-box d-flex flex-column justify-content-center align-items-center\"\n            [ngClass]=\"\n                isPopupListShown && !isPopupModuleShown\n                    ? 'side-panel-right-button-container-box-active'\n                    : ''\n            \"\n        >\n            @if (isPopupListShown && !isPopupModuleShown) {\n                <div\n                    class=\"side-panel-list-container-box d-flex flex-column align-items-center gap-px-4\"\n                >\n                    @for (item of itemList; track item.title) {\n                        <div class=\"side-panel-list-container\">\n                            <div\n                                class=\"item-container d-flex\"\n                                (click)=\"itemClickEvent(item)\"\n                                [mainCaTooltip]=\"item.companyName ?? item.title\"\n                                ngbTooltip\n                                position=\"left\"\n                                tooltipBackground=\"#424242\"\n                                tooltipTextAlign=\"center\"\n                                [tooltipMarginRight]=\"'6px'\"\n                            >\n                                <svg-icon\n                                    [src]=\"item.icon\"\n                                    class=\"item-icon d-flex align-items-center justify-content-center svg-size-18\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                        @if (item.isLastInList) {\n                            <div class=\"horizontal-line\"></div>\n                        }\n                    }\n                </div>\n            }\n            <div class=\"side-panel-right-container\" (click)=\"onToggleMenu()\">\n                <svg-icon\n                    class=\"side-panel-right-icon d-flex align-items-center justify-content-center svg-size-18\"\n                    [src]=\"'ic_side-panel-right' | caSvg: 'common'\"\n                ></svg-icon>\n            </div>\n        </div>\n    }\n\n    @if (isNavShown) {\n        <div class=\"side-panel-nav-container-box d-flex flex-column\">\n            @for (item of itemList; track item.title) {\n                <div class=\"nav-list-container\">\n                    <div\n                        class=\"nav-item-container d-flex align-items-center\"\n                        (click)=\"navItemClickEvent(item)\"\n                        [ngClass]=\"{\n                            'selected-item':\n                                selectedModuleItem?.title == item.title &&\n                                selectedModuleItem?.companyName ==\n                                    item.companyName,\n                        }\"\n                    >\n                        <svg-icon\n                            class=\"nav-item-icon d-flex align-items-center justify-content-center svg-size-18\"\n                            [src]=\"item.icon\"\n                        ></svg-icon>\n                        <p\n                            class=\"nav-item-title ca-font-medium\"\n                            [ngClass]=\"{\n                                'ca-font-bold':\n                                    selectedModuleItem?.title == item.title &&\n                                    selectedModuleItem?.companyName ==\n                                        item.companyName,\n                            }\"\n                        >\n                            {{ item.companyName ?? item.title }}\n                        </p>\n                    </div>\n                </div>\n                @if (item.isLastInList) {\n                    <div class=\"horizontal-line\"></div>\n                }\n            }\n        </div>\n    }\n\n    @if (isPopupModuleShown && !isPopupListShown) {\n        <div\n            class=\"side-panel-right-module-container d-flex justify-content-between\"\n            [ngClass]=\"{ 'nav-open': isNavShown }\"\n        >\n            <div\n                class=\"module-title-container d-flex\"\n                (click)=\"toggleNav()\"\n                [ngClass]=\"{ 'nav-open': isNavShown }\"\n            >\n                <div class=\"module-icon-container\">\n                    <svg-icon\n                        class=\"module-icon svg-size-16\"\n                        [src]=\"selectedModuleItem.icon\"\n                    >\n                    </svg-icon>\n                </div>\n                <p class=\"module-title-text ca-font-extra-bold\">\n                    {{ selectedModuleItem?.title }}\n                </p>\n            </div>\n            <div class=\"module-icons-container d-flex align-items-center\">\n                @if (!isNavShown) {\n                    @if (haveMenu) {\n                        <div\n                            class=\"icon\"\n                            ngbTooltip\n                            mainCaTooltip=\"{{\n                                isNavShown ? 'Close menu' : 'Open menu'\n                            }}\"\n                            position=\"top\"\n                            tooltipBackground=\"{{\n                                isNavShown ? '#CCCCCC' : '#2F2F2F'\n                            }}\"\n                            tooltipColor=\"{{\n                                isNavShown ? '#2F2F2F' : '#FFFFFF'\n                            }}\"\n                            tooltipTextAlign=\"center\"\n                        >\n                            <svg-icon\n                                class=\"module-right-icon d-flex align-items-center justify-content-center svg-size-16\"\n                                [src]=\"\n                                    'ic_hamburger_menu'\n                                        | caSvg: 'right-side-panel'\n                                \"\n                                [ngClass]=\"{ focused: isHamburgerMenuFocused }\"\n                                (click)=\"hamburgerMenuClickEvent()\"\n                            ></svg-icon>\n                        </div>\n                    }\n                    <div\n                        class=\"icon\"\n                        ngbTooltip\n                        mainCaTooltip=\"{{\n                            isPinFocused ? 'Unpin Sidebar' : 'Pin Sidebar'\n                        }}\"\n                        position=\"top\"\n                        tooltipBackground=\"#424242\"\n                        tooltipColor=\"#FFFFFF\"\n                        tooltipTextAlign=\"center\"\n                    >\n                        <svg-icon\n                            class=\"module-right-icon d-flex align-items-center justify-content-center svg-size-16\"\n                            [src]=\"'ic_pin' | caSvg: 'right-side-panel'\"\n                            [ngClass]=\"{ focused: isPinFocused }\"\n                            (click)=\"pinClickEvent()\"\n                        ></svg-icon>\n                    </div>\n                    <div class=\"vertical-line\"></div>\n                }\n\n                <div\n                    class=\"icon\"\n                    ngbTooltip\n                    mainCaTooltip=\"Close\"\n                    position=\"top\"\n                    tooltipBackground=\"#424242\"\n                    tooltipColor=\"#FFFFFF\"\n                    tooltipTextAlign=\"center\"\n                >\n                    <svg-icon\n                        class=\"module-right-icon d-flex align-items-center justify-content-center svg-size-16\"\n                        [src]=\"\n                            (isNavShown\n                                ? 'ic_arrow_primary_up'\n                                : 'ic_arrow_primary_right'\n                            ) | caSvg: 'right-side-panel'\n                        \"\n                        (click)=\"closeModule()\"\n                    ></svg-icon>\n                </div>\n            </div>\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// enums\nimport {\n    ActivityLogSortType,\n    FilterType,\n    ModulesFilterItemLabel,\n    RightSidePanelCurrentTab,\n    SelectedModule,\n    TimeFilterType,\n} from '../../enums';\n\n// models\nimport {\n    ActionFilterInputData,\n    ActivityLogFilter,\n    ActivityLogFilterParams,\n    CompanyNavigationData,\n    ModuleFilterInputData,\n    TimeFilterEvent,\n    UserFilterData,\n    UserFilterInputData,\n} from '../../models';\nimport {\n    UserData,\n    UserGroup,\n} from '../../../ca-filters/components/ca-user-filter/models';\nimport { ArrayStatus } from '../../../../../lib/models/array-status.model';\nimport { filterOutputWithParams } from '../../../../../lib/models/filter-output-params.model';\nimport { filterOutput } from '../../../../../lib/models/filter-output.model';\n\n// components\nimport {\n    CaAppTooltipV2Component,\n    CaFilterComponent,\n} from '../../../../../public-api';\n\n// routes\nimport { RightSidePanelTopBarSvgRoutes } from '../../utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-right-side-panel-top-bar',\n    templateUrl: './ca-right-side-panel-top-bar.component.html',\n    styleUrls: ['./ca-right-side-panel-top-bar.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        HttpClientModule,\n        NgbModule,\n        // components\n        CaFilterComponent,\n        CaAppTooltipV2Component,\n        // pipes\n        CaSvgPipe,\n    ]\n})\nexport class CaRightSidePanelTopBarComponent {\n    public currentTabActivityLog: RightSidePanelCurrentTab =\n        RightSidePanelCurrentTab.PERSONAL;\n    public hoveredActivityLogTab: RightSidePanelCurrentTab | null = null;\n    public RightSidePanelCurrentTab = RightSidePanelCurrentTab;\n    public currentTabCompany: number = 0;\n    public hoveredCompanyId: number = 0;\n    public _usersFilter: UserGroup[] = [];\n    public _modulesFilter: UserGroup[] = [];\n    public _actionsFilter: ArrayStatus[] = [];\n    public _companyList: CompanyNavigationData[] = [];\n    public SelectedModule = SelectedModule;\n    public activitySortOrderAsc: boolean = true;\n    public RightSidePanelTopBarSvgRoutes = RightSidePanelTopBarSvgRoutes;\n    public _activityLogFilterParams: ActivityLogFilterParams = {\n        companyUserIds: [],\n        actionLogIds: [],\n        entityTypeActivityIds: [],\n        sort: ActivityLogSortType.DESCENDING,\n        userFilterType: RightSidePanelCurrentTab.PERSONAL,\n        dateFrom: null,\n        dateTo: null,\n        search: null,\n        reloadFilters: true,\n    };\n    public ActivityLogSortType = ActivityLogSortType;\n    @Input() selectedModule!: SelectedModule;\n    @Input() set usersFilter(value: UserFilterInputData[]) {\n        if (value) this.transformUsersFilter(value);\n    }\n    @Input() set modulesFilter(value: ModuleFilterInputData[]) {\n        if (value) this.transformModulesFilter(value);\n    }\n    @Input() set actionsFilter(value: ActionFilterInputData[]) {\n        if (value) this.transformActionsFilter(value);\n    }\n    @Input() set resetFilters(value: boolean) {\n        if (value) this.resetActivityLogFilters();\n    }\n    @Input() set companyList(value: CompanyNavigationData[]) {\n        if (value) this.setCompanyList(value);\n    }\n    @Input() set selectedCompanyId(value: number) {\n        if (value) this.currentTabCompany = value;\n    }\n\n    @Output() selectedTab: EventEmitter<RightSidePanelCurrentTab> =\n        new EventEmitter();\n\n    @Output() activityLogFilterParams: EventEmitter<ActivityLogFilterParams> =\n        new EventEmitter();\n\n    @Output() selectedDivisionId: EventEmitter<number> = new EventEmitter();\n    @Output() selectedMainCompanyId: EventEmitter<number> = new EventEmitter();\n\n    constructor(private cdr: ChangeDetectorRef) {}\n\n    public switchTab(tab: RightSidePanelCurrentTab): void {\n        this.currentTabActivityLog = tab;\n        this.selectedTab.emit(this.currentTabActivityLog);\n        this._activityLogFilterParams.userFilterType =\n            this.currentTabActivityLog;\n        this._activityLogFilterParams.reloadFilters = false;\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n        this.cdr.detectChanges();\n    }\n\n    public switchTabCompany(companyId: number, isDivision: boolean): void {\n        this.currentTabCompany = companyId;\n        if (isDivision) this.selectedDivisionId.emit(companyId);\n        else this.selectedMainCompanyId.emit(companyId);\n    }\n\n    private transformUsersFilter(usersFilter: UserFilterInputData[]): void {\n        this._usersFilter = [];\n        usersFilter.forEach((filter: UserFilterInputData) => {\n            const userDataItems: UserData[] = filter.users.map(\n                (user: UserFilterData) => ({\n                    id: user.id,\n                    name: user.fullName,\n                    avatar: user.avatarFile.url,\n                    count: user.count,\n                })\n            );\n            const userFilterItem: UserGroup = {\n                label: filter.name,\n                isOpen: false,\n                items: userDataItems,\n            };\n            this._usersFilter.push(userFilterItem);\n        });\n        this.cdr.detectChanges();\n    }\n\n    private transformModulesFilter(\n        modulesFilter: ModuleFilterInputData[]\n    ): void {\n        const moduleDataItems: UserData[] = modulesFilter.map(\n            (moduleFilter: ModuleFilterInputData) => ({\n                id: moduleFilter.activityLogType.id,\n                name: moduleFilter.activityLogType.name,\n                icon:\n                    RightSidePanelTopBarSvgRoutes.folders.common +\n                    moduleFilter.activityLogType.logoName,\n                count: moduleFilter.count,\n            })\n        );\n        const modulesFilterItem: UserGroup = {\n            label: ModulesFilterItemLabel.LIST,\n            isOpen: true,\n            items: moduleDataItems,\n        };\n        this._modulesFilter = [];\n        this._modulesFilter.push(modulesFilterItem);\n    }\n\n    private transformActionsFilter(\n        actionsFilter: ActionFilterInputData[]\n    ): void {\n        this._actionsFilter = [];\n        actionsFilter.forEach((filter: ActionFilterInputData) => {\n            const actionFilterItem: ArrayStatus = {\n                name: filter.name,\n                id: filter.actionLogs.id,\n                count: filter.count,\n                icon:\n                    RightSidePanelTopBarSvgRoutes.folders.actions +\n                    filter.logoName,\n            };\n            this._actionsFilter.push(actionFilterItem);\n        });\n    }\n\n    // this any will be changed soon\n    public setUserFilters(filter: ActivityLogFilter | any): void {\n        if (filter)\n            this._activityLogFilterParams.companyUserIds = filter.queryParams;\n        else this._activityLogFilterParams.companyUserIds = [];\n        this._activityLogFilterParams.reloadFilters = false;\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n    }\n\n    // this any will be changed soon\n    public setModuleFilters(filter: ActivityLogFilter | any): void {\n        if (filter)\n            this._activityLogFilterParams.entityTypeActivityIds =\n                filter.queryParams;\n        else this._activityLogFilterParams.entityTypeActivityIds = [];\n        this._activityLogFilterParams.reloadFilters = false;\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n    }\n\n    // this any will be changed soon\n    public setTimeFilters(filter: TimeFilterEvent | any): void {\n        if (filter) {\n            let dateFrom = new Date();\n            let dateTo = new Date();\n            const dayOfWeek = dateFrom.getDay();\n            const setStartOfDay = (date: Date) => date.setHours(0, 0, 0, 0);\n            const setEndOfDay = (date: Date) => date.setHours(23, 59, 59, 999);\n\n            switch (filter.queryParams.timeSelected) {\n                case TimeFilterType.TODAY:\n                    setStartOfDay(dateFrom);\n                    setEndOfDay(dateTo);\n                    break;\n                case TimeFilterType.YESTERDAY:\n                    dateFrom.setDate(dateFrom.getDate() - 1);\n                    setStartOfDay(dateFrom);\n\n                    dateTo.setDate(dateTo.getDate() - 1);\n                    setEndOfDay(dateTo);\n                    break;\n                case TimeFilterType.THIS_WEEK:\n                    const diffToMonday = dayOfWeek === 0 ? -6 : 1 - dayOfWeek;\n\n                    dateFrom.setDate(dateFrom.getDate() + diffToMonday);\n                    setStartOfDay(dateFrom);\n\n                    dateTo.setFullYear(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth(),\n                        dateFrom.getDate() + 6\n                    );\n                    setEndOfDay(dateTo);\n                    break;\n                case TimeFilterType.LAST_WEEK:\n                    const diffToLastMonday =\n                        dayOfWeek === 0 ? -13 : -6 - dayOfWeek;\n\n                    dateFrom.setDate(dateFrom.getDate() + diffToLastMonday);\n                    setStartOfDay(dateFrom);\n\n                    dateTo.setFullYear(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth(),\n                        dateFrom.getDate() + 6\n                    );\n                    setEndOfDay(dateTo);\n                    break;\n                case TimeFilterType.THIS_MONTH:\n                    dateFrom = new Date(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth(),\n                        1\n                    );\n                    setStartOfDay(dateFrom);\n\n                    dateTo = new Date(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth() + 1,\n                        0\n                    );\n                    setEndOfDay(dateTo);\n                    break;\n                case TimeFilterType.LAST_MONTH:\n                    dateFrom = new Date(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth() - 1,\n                        1\n                    );\n                    setStartOfDay(dateFrom);\n\n                    dateTo = new Date(\n                        dateFrom.getFullYear(),\n                        dateFrom.getMonth() + 1,\n                        0\n                    );\n                    setEndOfDay(dateTo);\n                    break;\n                default:\n                    break;\n            }\n            this._activityLogFilterParams.dateFrom = dateFrom;\n            this._activityLogFilterParams.dateTo = dateTo;\n            this._activityLogFilterParams.reloadFilters = false;\n            this.activityLogFilterParams.emit(this._activityLogFilterParams);\n        }\n    }\n\n    // this any will be changed soon\n    public clearAll(values: filterOutputWithParams | filterOutput | any): void {\n        switch (values.type) {\n            case FilterType.USER:\n                this._activityLogFilterParams.companyUserIds = [];\n                break;\n            case FilterType.MODULE:\n                this._activityLogFilterParams.entityTypeActivityIds = [];\n                break;\n            case FilterType.ACTION:\n                this._activityLogFilterParams.actionLogIds = [];\n                break;\n            case FilterType.TIME:\n                this._activityLogFilterParams.dateFrom = null;\n                this._activityLogFilterParams.dateTo = null;\n                break;\n            default:\n                break;\n        }\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n    }\n\n    public sortDate(): void {\n        this.activitySortOrderAsc = !this.activitySortOrderAsc;\n        if (\n            this._activityLogFilterParams.sort === ActivityLogSortType.ASCENDING\n        )\n            this._activityLogFilterParams.sort = ActivityLogSortType.DESCENDING;\n        else this._activityLogFilterParams.sort = ActivityLogSortType.ASCENDING;\n        this._activityLogFilterParams.reloadFilters = false;\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n    }\n\n    public onHoverTabActivityLog(hoveredTab: RightSidePanelCurrentTab): void {\n        if (hoveredTab === RightSidePanelCurrentTab.PERSONAL)\n            this.hoveredActivityLogTab = RightSidePanelCurrentTab.PERSONAL;\n        else this.hoveredActivityLogTab = RightSidePanelCurrentTab.ALL;\n    }\n\n    public onHoverLeaveActivityLog(): void {\n        this.hoveredActivityLogTab = null;\n    }\n\n    public onHoverTabCompany(companyId: number): void {\n        this.hoveredCompanyId = companyId;\n    }\n\n    public onHoverLeaveCompany(): void {\n        this.hoveredCompanyId = 0;\n    }\n\n    public reloadActivities(): void {\n        this._activityLogFilterParams.reloadFilters = false;\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n    }\n\n    private resetActivityLogFilters(): void {\n        this._activityLogFilterParams = {\n            companyUserIds: [],\n            actionLogIds: [],\n            entityTypeActivityIds: [],\n            sort: ActivityLogSortType.DESCENDING,\n            userFilterType: RightSidePanelCurrentTab.PERSONAL,\n            dateFrom: null,\n            dateTo: null,\n            search: null,\n            reloadFilters: true,\n        };\n        this.currentTabActivityLog = RightSidePanelCurrentTab.PERSONAL;\n        this.selectedTab.emit(this.currentTabActivityLog);\n        this.activityLogFilterParams.emit(this._activityLogFilterParams);\n        this.cdr.detectChanges();\n        this._activityLogFilterParams.reloadFilters = false;\n    }\n\n    private setCompanyList(companyList: CompanyNavigationData[]): void {\n        if (companyList.length) {\n            if (companyList) {\n                this._companyList = companyList.sort((a, b) => {\n                    return Number(a.isDivision) - Number(b.isDivision);\n                });\n            }\n        }\n    }\n}\n","<div class=\"side-panel-top-bar-container-box d-flex justify-content-between\">\n    @switch (selectedModule) {\n        @case (SelectedModule.ACTIVITY_LOG) {\n            <ng-container\n                *ngTemplateOutlet=\"activityLogTemplate\"\n            ></ng-container>\n        }\n        @case (SelectedModule.COMPANY_INFO) {\n            <ng-container *ngTemplateOutlet=\"companyTemplate\"></ng-container>\n        }\n        @case (SelectedModule.DIVISION_INFO) {\n            <ng-container *ngTemplateOutlet=\"companyTemplate\"></ng-container>\n        }\n    }\n\n    <ng-template #activityLogTemplate>\n        <div class=\"tab-filter-container d-flex align-items-center\">\n            <ng-container>\n                <div class=\"tab-container d-flex\">\n                    <div\n                        class=\"tab-icon-container d-flex align-items-center justify-content-center\"\n                        (mouseover)=\"\n                            onHoverTabActivityLog(\n                                RightSidePanelCurrentTab.PERSONAL\n                            )\n                        \"\n                        (mouseleave)=\"onHoverLeaveActivityLog()\"\n                        (click)=\"switchTab(RightSidePanelCurrentTab.PERSONAL)\"\n                        [ngClass]=\"{\n                            active:\n                                currentTabActivityLog ===\n                                RightSidePanelCurrentTab.PERSONAL,\n                            'active-non-hovered':\n                                currentTabActivityLog ===\n                                    RightSidePanelCurrentTab.PERSONAL &&\n                                hoveredActivityLogTab &&\n                                hoveredActivityLogTab !==\n                                    RightSidePanelCurrentTab.PERSONAL,\n                            hovered:\n                                currentTabActivityLog !==\n                                    RightSidePanelCurrentTab.PERSONAL &&\n                                hoveredActivityLogTab ===\n                                    RightSidePanelCurrentTab.PERSONAL,\n                        }\"\n                        ngbTooltip\n                        mainCaTooltip=\"Personal\"\n                        position=\"bottom\"\n                        tooltipBackground=\"#424242\"\n                        tooltipColor=\"#FFFFFF\"\n                        tooltipTextAlign=\"center\"\n                    >\n                        <svg-icon\n                            class=\"tab-icon d-flex align-items-center justify-content-center svg-size-18\"\n                            [src]=\"'ic_user2' | caSvg: 'right-side-panel'\"\n                        ></svg-icon>\n                    </div>\n\n                    <div\n                        class=\"tab-icon-container d-flex align-items-center justify-content-center\"\n                        (mouseover)=\"\n                            onHoverTabActivityLog(RightSidePanelCurrentTab.ALL)\n                        \"\n                        (mouseleave)=\"onHoverLeaveActivityLog()\"\n                        (click)=\"switchTab(RightSidePanelCurrentTab.ALL)\"\n                        [ngClass]=\"{\n                            active:\n                                currentTabActivityLog ===\n                                RightSidePanelCurrentTab.ALL,\n                            'active-non-hovered':\n                                currentTabActivityLog ===\n                                    RightSidePanelCurrentTab.ALL &&\n                                hoveredActivityLogTab &&\n                                hoveredActivityLogTab !==\n                                    RightSidePanelCurrentTab.ALL,\n                            hovered:\n                                currentTabActivityLog !==\n                                    RightSidePanelCurrentTab.ALL &&\n                                hoveredActivityLogTab ===\n                                    RightSidePanelCurrentTab.ALL,\n                        }\"\n                        ngbTooltip\n                        mainCaTooltip=\"All User\"\n                        position=\"bottom\"\n                        tooltipBackground=\"#424242\"\n                        tooltipColor=\"#FFFFFF\"\n                        tooltipTextAlign=\"center\"\n                    >\n                        <svg-icon\n                            class=\"tab-icon d-flex align-items-center justify-content-center svg-size-18\"\n                            [src]=\"'ic_people' | caSvg: 'right-side-panel'\"\n                        ></svg-icon>\n                    </div>\n                </div>\n                <div class=\"vertical-line\"></div>\n            </ng-container>\n            <div\n                class=\"filter-container d-flex align-items-center justify-content-center\"\n            >\n                @if (currentTabActivityLog === RightSidePanelCurrentTab.ALL) {\n                    <div class=\"user-filter\">\n                        <app-ca-filter\n                            [type]=\"'userFilter'\"\n                            [subType]=\"''\"\n                            [filterTitle]=\"'User Filter'\"\n                            [icon]=\"'user'\"\n                            [userGroup]=\"_usersFilter\"\n                            (setFilter)=\"setUserFilters($event)\"\n                            (clearAll)=\"clearAll($event)\"\n                        ></app-ca-filter>\n                    </div>\n                }\n\n                <div class=\"module-filter\">\n                    <app-ca-filter\n                        [type]=\"'moduleFilter'\"\n                        [subType]=\"''\"\n                        [filterTitle]=\"'Module Filter'\"\n                        [icon]=\"'module'\"\n                        [userGroup]=\"_modulesFilter\"\n                        (setFilter)=\"setModuleFilters($event)\"\n                        (clearAll)=\"clearAll($event)\"\n                    ></app-ca-filter>\n                </div>\n                <div class=\"action-filter\">\n                    <app-ca-filter\n                        [type]=\"'actionFilter'\"\n                        [subType]=\"''\"\n                        [filterTitle]=\"'Action Filter'\"\n                        [icon]=\"'action'\"\n                        [pmFilterArray]=\"_actionsFilter\"\n                        (clearAll)=\"clearAll($event)\"\n                    ></app-ca-filter>\n                </div>\n                <div class=\"time-filter\">\n                    <app-ca-filter\n                        [type]=\"'timeFilter'\"\n                        [timeSubType]=\"'short'\"\n                        [subType]=\"''\"\n                        [filterTitle]=\"'Time Filter'\"\n                        [icon]=\"'ic_time'\"\n                        (setFilter)=\"setTimeFilters($event)\"\n                        (clearAll)=\"clearAll($event)\"\n                    ></app-ca-filter>\n                </div>\n            </div>\n        </div>\n        <div class=\"actions-container d-flex align-items-center\">\n            <div\n                class=\"sort-activities-date d-flex justify-content-center align-items-center\"\n                (click)=\"sortDate()\"\n                ngbTooltip\n                mainCaTooltip=\"{{\n                    _activityLogFilterParams.sort ===\n                    ActivityLogSortType.DESCENDING\n                        ? 'Date Descending'\n                        : 'Date Ascending'\n                }}\"\n                position=\"bottom\"\n                tooltipBackground=\"#424242\"\n                tooltipColor=\"#FFFFFF\"\n                tooltipTextAlign=\"center\"\n            >\n                <svg-icon\n                    class=\"activity-sort-arrow svg-size-16\"\n                    [class.rotate]=\"!activitySortOrderAsc\"\n                    [src]=\"RightSidePanelTopBarSvgRoutes.icons.sortArrowFilter\"\n                ></svg-icon>\n            </div>\n            <div class=\"vertical-line\"></div>\n            <div\n                class=\"reload-activities d-flex justify-content-center align-items-center\"\n                (click)=\"reloadActivities()\"\n            >\n                <svg-icon\n                    class=\"svg-size-16\"\n                    [src]=\"'ic_reload_refresh' | caSvg: 'right-side-panel'\"\n                ></svg-icon>\n            </div>\n        </div>\n    </ng-template>\n\n    <ng-template #companyTemplate>\n        <div class=\"tab-filter-container d-flex align-items-center\">\n            @if (_companyList) {\n                @for (company of _companyList; let indx = $index; track indx) {\n                    <div class=\"tab-container d-flex\">\n                        <div\n                            class=\"tab-icon-container d-flex align-items-center justify-content-center\"\n                            (mouseover)=\"onHoverTabCompany(company.id)\"\n                            (mouseleave)=\"onHoverLeaveCompany()\"\n                            (click)=\"\n                                switchTabCompany(company.id, company.isDivision)\n                            \"\n                            [ngClass]=\"{\n                                active: currentTabCompany === company.id,\n                                'active-non-hovered':\n                                    currentTabCompany === company.id &&\n                                    hoveredCompanyId &&\n                                    hoveredCompanyId !== company.id,\n                                hovered:\n                                    currentTabCompany !== company.id &&\n                                    hoveredCompanyId === company.id,\n                            }\"\n                            ngbTooltip\n                            [mainCaTooltip]=\"company.companyName\"\n                            position=\"bottom\"\n                            tooltipBackground=\"#424242\"\n                            tooltipColor=\"#FFFFFF\"\n                            tooltipTextAlign=\"center\"\n                        >\n                            <svg-icon\n                                class=\"tab-icon d-flex align-items-center justify-content-center svg-size-18\"\n                                [src]=\"\n                                    company.isDivision\n                                        ? ('ic_company_division'\n                                          | caSvg: 'right-side-panel')\n                                        : ('ic_company'\n                                          | caSvg: 'right-side-panel')\n                                \"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                }\n            }\n        </div>\n        <div class=\"actions-container d-flex align-items-center\">\n            <div\n                class=\"add-company-btn d-flex justify-content-center align-items-center\"\n                (click)=\"reloadActivities()\"\n            >\n                <svg-icon\n                    class=\"svg-size-16\"\n                    [src]=\"'ic_plus' | caSvg: 'common'\"\n                ></svg-icon>\n            </div>\n        </div>\n    </ng-template>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'hideAccount',\n  standalone: true,\n})\nexport class HideAccountPipe implements PipeTransform {\n  transform(\n    value: string,\n    template: string,\n    toogleVisibility: boolean\n  ): string {\n    let hideNumber: string = '';\n    const valueArray = Array.from(value);\n\n    switch (template) {\n      case 'card':\n        if (!toogleVisibility) {\n          valueArray.forEach((char, i) => {\n            hideNumber += i < 12 ? '●' : char;\n            if ([3, 7, 11].includes(i)) {\n              hideNumber += ' ';\n            }\n          });\n        } else {\n          valueArray.forEach((char, i) => {\n            hideNumber += char;\n            if ([3, 7, 11].includes(i)) {\n              hideNumber += ' ';\n            }\n          });\n        }\n        break;\n      case 'cvc':\n        if (!toogleVisibility) {\n          valueArray.forEach(() => {\n            hideNumber += '●';\n          });\n        } else {\n          hideNumber = value;\n        }\n        break;\n      case 'account':\n        if (!toogleVisibility) {\n          valueArray.forEach((char, i) => {\n            hideNumber += i < 3 ? '●' : char;\n          });\n        } else {\n          hideNumber = value;\n        }\n        break;\n      default: {\n        break;\n      }\n    }\n\n    return hideNumber;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { BankCardTypesStringEnum } from '../../enums';\n\n@Pipe({\n  name: 'bankCardTypesPipe',\n  standalone: true,\n})\nexport class BankCardTypesPipe implements PipeTransform {\n  constructor() {}\n\n  transform(cardType: string) {\n    return (\n      BankCardTypesStringEnum[\n        cardType as keyof typeof BankCardTypesStringEnum\n      ] || ''\n    );\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../../../public-api';\nimport { cardComponentAnimation } from '../../../../animations/card-component.animation';\n\n// models\nimport { Company } from '../../models';\n\n// enums\nimport { CompanyFontSize, CompanyInfoTitle } from '../../enums';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { BankCardTypesPipe, HideAccountPipe } from '../../utils/pipes';\n\n@Component({\n    selector: 'app-ca-right-side-panel-company',\n    templateUrl: './ca-right-side-panel-company.component.html',\n    styleUrls: ['./ca-right-side-panel-company.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        CaSvgPipe,\n        HideAccountPipe,\n        BankCardTypesPipe,\n    ],\n    animations: [cardComponentAnimation('showHideCardBody')]\n})\nexport class CaRightSidePanelCompanyComponent {\n    public _company!: Company;\n    @Input() set company(value: Company | null) {\n        if (value) {\n            this._company = value;\n            this.changeFontSizeLogo(value.name.length);\n            this.splitAddress(value.address.address);\n        }\n    }\n    @Input() companyIsDivision?: boolean;\n    public fontSizeLogo!: string;\n    public CompanyInfoTitle = CompanyInfoTitle;\n    public firstPartAddress: string = '';\n    public secondPartAddress: string = '';\n    public isAdditionalInfoOpen: boolean = true;\n    public isDepartmentContactOpen: boolean = true;\n    public isPhoneShown: boolean = true;\n    public isBankAccountOpen: boolean = true;\n    public isRoutingShown: boolean = true;\n    public accountVisibility: { [key: string]: boolean } = {};\n    public isBankCardOpen: boolean = true;\n    public isCardShown: boolean = true;\n    public cardVisibility: { [key: string]: boolean } = {};\n    public cvcVisibility: { [key: string]: boolean } = {};\n    public textCopied: string = 'asd';\n\n    constructor(private clipboar: Clipboard) {}\n\n    private changeFontSizeLogo(companyNameLength: number): void {\n        const numberOfLettersAndSpaces = companyNameLength;\n\n        if (numberOfLettersAndSpaces)\n            if (numberOfLettersAndSpaces <= 12) {\n                this.fontSizeLogo = CompanyFontSize.FOURTY_TWO;\n            } else if (numberOfLettersAndSpaces <= 16) {\n                this.fontSizeLogo = CompanyFontSize.THIRTY_TWO;\n            } else if (numberOfLettersAndSpaces <= 35) {\n                this.fontSizeLogo = CompanyFontSize.THIRTY_TWO;\n            } else {\n                this.fontSizeLogo = CompanyFontSize.EIGHTEEN;\n            }\n    }\n\n    private splitAddress(address: string): void {\n        const parts = address.split(',', 2);\n        if (parts) this.firstPartAddress = parts[0] + ',';\n        this.secondPartAddress = address\n            ? address.substring(this.firstPartAddress.length).trim()\n            : '';\n    }\n\n    public toggleAdditionalInfo(): void {\n        this.isAdditionalInfoOpen = !this.isAdditionalInfoOpen;\n    }\n\n    public toggleDepartmentContact(): void {\n        this.isDepartmentContactOpen = !this.isDepartmentContactOpen;\n    }\n\n    public toggleDepartmentContactView(): void {\n        this.isPhoneShown = !this.isPhoneShown;\n    }\n\n    public toggleBankAccount(): void {\n        this.isBankAccountOpen = !this.isBankAccountOpen;\n    }\n\n    public toggleBankAccountView(): void {\n        this.isRoutingShown = !this.isRoutingShown;\n    }\n\n    public toggleAccountVisibility(account: string): void {\n        this.accountVisibility[account] = !this.accountVisibility[account];\n    }\n\n    public isAccountVisible(account: string): boolean {\n        return this.accountVisibility[account] || false;\n    }\n\n    public toggleBankCard(): void {\n        this.isBankCardOpen = !this.isBankCardOpen;\n    }\n\n    public toggleBankCardView(): void {\n        this.isCardShown = !this.isCardShown;\n    }\n\n    public toggleCardVisibility(card: string): void {\n        this.cardVisibility[card] = !this.cardVisibility[card];\n    }\n\n    public isCardVisible(card: string): boolean {\n        return this.cardVisibility[card] || false;\n    }\n\n    public toggleCvcVisibility(cvc: string): void {\n        this.cvcVisibility[cvc] = !this.cvcVisibility[cvc];\n    }\n\n    public isCvcVisible(cvc: string): boolean {\n        return this.cvcVisibility[cvc] || false;\n    }\n\n    public copyText(event: Event, val: string): void {\n        event.stopPropagation();\n        event.preventDefault();\n        this.textCopied = val;\n        this.clipboar.copy(val);\n    }\n}\n","@if (_company) {\n    <div class=\"company-container\">\n        <div class=\"company-name-container d-flex justify-content-between\">\n            <div class=\"company-name\">\n                <p class=\"company-name-text ca-font-extra-bold\">\n                    {{ _company.name }}\n                </p>\n            </div>\n            <div class=\"company-edit-container d-flex\">\n                <svg-icon\n                    class=\"company-edit-icon d-flex align-items-center justify-content-center svg-size-18\"\n                    [src]=\"'ic_edit' | caSvg: 'right-side-panel'\"\n                ></svg-icon>\n                @if (companyIsDivision) {\n                    <svg-icon\n                        class=\"company-delete-icon d-flex align-items-center justify-content-center svg-size-18\"\n                        [src]=\"'ic_delete' | caSvg: 'right-side-panel'\"\n                    ></svg-icon>\n                }\n            </div>\n        </div>\n        <div class=\"company-logo-container\">\n            @if (_company?.logoFile?.url) {\n                <img\n                    [src]=\"_company?.logoFile?.url\"\n                    [alt]=\"_company.logoFile?.fileName?.substring(0, 1)\"\n                    class=\"sp-company-logo-img\"\n                />\n            } @else {\n                <div class=\"company-no-logo-container\">\n                    <div\n                        class=\"company-no-logo d-flex align-items-center\"\n                        [ngClass]=\"fontSizeLogo\"\n                    >\n                        {{ _company?.name }}\n                    </div>\n                </div>\n            }\n        </div>\n\n        <div class=\"company-info-container\">\n            @if (_company?.phone) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        companyInfoTemplate;\n                        context: {\n                            title: CompanyInfoTitle.PHONE,\n                            icon: 'ic_phone' | caSvg: 'input',\n                            text: _company?.phone,\n                        }\n                    \"\n                >\n                </ng-container>\n            }\n\n            @if (_company?.fax) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        companyInfoTemplate;\n                        context: {\n                            title: CompanyInfoTitle.FAX,\n                            icon: 'ic_fax' | caSvg: 'right-side-panel',\n                            text: _company?.fax,\n                        }\n                    \"\n                >\n                </ng-container>\n            }\n            @if (_company?.email) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        companyInfoTemplate;\n                        context: {\n                            title: CompanyInfoTitle.EMAIL,\n                            icon: 'ic_email' | caSvg: 'input',\n                            text: _company?.email,\n                        }\n                    \"\n                >\n                </ng-container>\n            }\n            @if (_company?.webUrl) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        companyInfoTemplate;\n                        context: {\n                            title: CompanyInfoTitle.WEBSITE,\n                            icon: 'ic_website' | caSvg: 'right-side-panel',\n                            text: _company?.webUrl,\n                        }\n                    \"\n                >\n                </ng-container>\n            }\n            @if (_company?.address) {\n                <div\n                    class=\"company-info-item-container d-flex justify-content-between\"\n                >\n                    <div class=\"company-info-item d-flex\">\n                        <svg-icon\n                            class=\"company-info-icon d-flex justify-content-center svg-size-14\"\n                            [src]=\"'ic_address' | caSvg: 'right-side-panel'\"\n                        ></svg-icon>\n                        <div>\n                            <div\n                                class=\"address-first-container d-flex justify-content-between\"\n                            >\n                                <p class=\"company-info-text\">\n                                    {{ firstPartAddress }}\n                                </p>\n                                <div\n                                    ngbTooltip\n                                    [mainCaTooltip]=\"\n                                        textCopied ===\n                                        _company?.address?.address\n                                            ? 'Copied'\n                                            : 'Copy'\n                                    \"\n                                    position=\"bottom\"\n                                    [tooltipBackground]=\"\n                                        textCopied ===\n                                        _company?.address?.address\n                                            ? '#0B49D1'\n                                            : '#424242'\n                                    \"\n                                    tooltipColor=\"#FFFFFF\"\n                                    tooltipTextAlign=\"center\"\n                                >\n                                    <svg-icon\n                                        class=\"company-info-icon info-icon-copy svg-size-12\"\n                                        [src]=\"\n                                            'ic_copy'\n                                                | caSvg: 'right-side-panel'\n                                        \"\n                                        (click)=\"\n                                            copyText(\n                                                $event,\n                                                _company?.address?.address ?? ''\n                                            )\n                                        \"\n                                    ></svg-icon>\n                                </div>\n                            </div>\n                            <p class=\"company-info-text\">\n                                {{ secondPartAddress }}\n                            </p>\n                        </div>\n                    </div>\n                    <p class=\"company-info-title-text\">\n                        {{ CompanyInfoTitle.ADDRESS }}\n                    </p>\n                </div>\n            }\n        </div>\n        <div class=\"horizontal-line\"></div>\n\n        <div class=\"company-info-container pt-8-custom\">\n            @if (_company?.usDot) {\n                <div\n                    class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                >\n                    <div class=\"company-info-item d-flex\">\n                        <p class=\"company-info-text ca-font-bold\">\n                            {{ _company?.usDot }}\n                        </p>\n                        <div\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                textCopied === _company?.usDot\n                                    ? 'Copied'\n                                    : 'Copy'\n                            \"\n                            position=\"bottom\"\n                            [tooltipBackground]=\"\n                                textCopied === _company?.usDot\n                                    ? '#0B49D1'\n                                    : '#424242'\n                            \"\n                            tooltipColor=\"#FFFFFF\"\n                            tooltipTextAlign=\"center\"\n                        >\n                            <svg-icon\n                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                [src]=\"'ic_copy' | caSvg: 'right-side-panel'\"\n                                (click)=\"\n                                    copyText($event, _company?.usDot ?? '')\n                                \"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                    <p class=\"company-info-title-text\">\n                        {{ CompanyInfoTitle.USDOT }}\n                    </p>\n                </div>\n            }\n            @if (_company?.ein) {\n                <div\n                    class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                >\n                    <div class=\"company-info-item d-flex\">\n                        <p class=\"company-info-text ca-font-bold\">\n                            {{ _company?.ein }}\n                        </p>\n                        <div\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                textCopied === _company?.ein ? 'Copied' : 'Copy'\n                            \"\n                            position=\"bottom\"\n                            [tooltipBackground]=\"\n                                textCopied === _company?.ein\n                                    ? '#0B49D1'\n                                    : '#424242'\n                            \"\n                            tooltipColor=\"#FFFFFF\"\n                            tooltipTextAlign=\"center\"\n                        >\n                            <svg-icon\n                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                [src]=\"'ic_copy' | caSvg: 'right-side-panel'\"\n                                (click)=\"copyText($event, _company?.ein ?? '')\"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                    <p class=\"company-info-title-text\">\n                        {{ CompanyInfoTitle.EIN }}\n                    </p>\n                </div>\n            }\n            @if (_company?.ein) {\n                <div\n                    class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                >\n                    <div class=\"company-info-item d-flex\">\n                        <p class=\"company-info-text ca-font-bold\">\n                            {{ _company?.mc }}\n                        </p>\n                        <div\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                textCopied === _company?.mc ? 'Copied' : 'Copy'\n                            \"\n                            position=\"bottom\"\n                            [tooltipBackground]=\"\n                                textCopied === _company?.mc\n                                    ? '#0B49D1'\n                                    : '#424242'\n                            \"\n                            tooltipColor=\"#FFFFFF\"\n                            tooltipTextAlign=\"center\"\n                        >\n                            <svg-icon\n                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                [src]=\"'ic_copy' | caSvg: 'right-side-panel'\"\n                                (click)=\"copyText($event, _company?.mc ?? '')\"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                    <p class=\"company-info-title-text\">\n                        {{ CompanyInfoTitle.MC }}\n                    </p>\n                </div>\n            }\n        </div>\n        <div class=\"horizontal-line\"></div>\n\n        <div class=\"company-additional-info-container\">\n            <div\n                class=\"additional-info-title d-flex justify-content-between\"\n                (click)=\"toggleAdditionalInfo()\"\n            >\n                <h2\n                    class=\"additional-info-title-text ca-font-extra-bold\"\n                    [ngClass]=\"{\n                        'additional-info-title-text-hide':\n                            !isAdditionalInfoOpen,\n                    }\"\n                >\n                    Additional Info\n                </h2>\n\n                @if (isAdditionalInfoOpen) {\n                    <p\n                        class=\"additional-info-btn additional-info-btn-hide ca-font-bold\"\n                    >\n                        Hide\n                    </p>\n                    <div\n                        class=\"additional-info-content-container\"\n                        [@showHideCardBody]=\"isAdditionalInfoOpen\"\n                    >\n                        @if (_company?.irp) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.IRP,\n                                        text: _company?.irp,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n\n                        @if (_company?.ifta) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.IFTA,\n                                        text: _company?.ifta,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n\n                        @if (_company?.toll) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.TOLL,\n                                        text: _company?.toll,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n\n                        @if (_company?.scac) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.SCAC,\n                                        text: _company?.scac,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n\n                        @if (_company?.timeZone?.name) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.TIME_ZONE,\n                                        text: _company?.timeZone?.name,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n\n                        @if (_company?.currency?.name) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    companyAdditionalInfoTemplate;\n                                    context: {\n                                        title: CompanyInfoTitle.CURRENCY,\n                                        text: _company?.currency?.name,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n                    </div>\n                } @else {\n                    <p\n                        class=\"additional-info-btn additional-info-btn-show ca-font-bold\"\n                    >\n                        Show\n                    </p>\n                }\n            </div>\n        </div>\n        @if (_company?.departmentContacts?.length) {\n            <div class=\"horizontal-line\"></div>\n            <div class=\"company-additional-info-container\">\n                <div\n                    class=\"additional-info-title d-flex justify-content-between align-items-center\"\n                >\n                    <div\n                        class=\"additional-info-title-container d-flex align-items-center\"\n                        (click)=\"toggleDepartmentContact()\"\n                    >\n                        <h2\n                            class=\"additional-info-title-text ca-font-extra-bold\"\n                            [ngClass]=\"{\n                                'additional-info-title-text-hide':\n                                    !isDepartmentContactOpen,\n                            }\"\n                        >\n                            Department Contact\n                        </h2>\n                        <p\n                            class=\"additional-info-title-number ca-font-bold d-flex align-items-center justify-content-center\"\n                            [ngClass]=\"{\n                                'additional-info-title-number-hide':\n                                    !isDepartmentContactOpen,\n                            }\"\n                        >\n                            {{ _company?.departmentContacts?.length }}\n                        </p>\n                    </div>\n                    @if (isDepartmentContactOpen) {\n                        @if (isPhoneShown) {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Email\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-first d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"'ic_email' | caSvg: 'input'\"\n                                    (click)=\"toggleDepartmentContactView()\"\n                                ></svg-icon>\n                            </div>\n                        } @else {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Phone\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-second info-icon-phone d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"'ic_phone' | caSvg: 'input'\"\n                                    (click)=\"toggleDepartmentContactView()\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    } @else {\n                        <p\n                            class=\"additional-info-btn additional-info-btn-show ca-font-bold\"\n                            (click)=\"toggleDepartmentContact()\"\n                        >\n                            Show\n                        </p>\n                    }\n                </div>\n                @if (isDepartmentContactOpen) {\n                    <div\n                        class=\"additional-info-content-container\"\n                        [@showHideCardBody]=\"isDepartmentContactOpen\"\n                    >\n                        @for (\n                            contact of _company?.departmentContacts;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <div\n                                class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                            >\n                                @if (isPhoneShown) {\n                                    <div class=\"company-info-item d-flex\">\n                                        <svg-icon\n                                            class=\"company-info-icon d-flex align-items-center justify-content-center svg-size-14\"\n                                            [src]=\"'ic_phone' | caSvg: 'input'\"\n                                        ></svg-icon>\n                                        <p class=\"company-info-text\">\n                                            {{ contact.phone }}\n                                            @if (contact.extensionPhone) {\n                                                <span class=\"extension-phone\"\n                                                    >x{{\n                                                        contact.extensionPhone\n                                                    }}</span\n                                                >\n                                            }\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === contact.phone\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === contact.phone\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        contact?.phone ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n                                    <p class=\"company-info-title-text\">\n                                        {{ contact?.department?.name }}\n                                    </p>\n                                } @else {\n                                    <div class=\"company-info-item d-flex\">\n                                        <svg-icon\n                                            class=\"company-info-icon d-flex align-items-center justify-content-center svg-size-14\"\n                                            [src]=\"'ic_email' | caSvg: 'input'\"\n                                        ></svg-icon>\n                                        <p class=\"company-info-text\">\n                                            {{ contact.email }}\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === contact.email\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === contact.email\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        contact?.email ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n                                    <p class=\"company-info-title-text\">\n                                        {{ contact?.department?.name }}\n                                    </p>\n                                }\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        }\n        @if (_company?.bankAccounts?.length) {\n            <div class=\"horizontal-line\"></div>\n            <div class=\"company-additional-info-container\">\n                <div\n                    class=\"additional-info-title d-flex justify-content-between align-items-center\"\n                >\n                    <div\n                        class=\"additional-info-title-container d-flex align-items-center\"\n                        (click)=\"toggleBankAccount()\"\n                    >\n                        <h2\n                            class=\"additional-info-title-text ca-font-extra-bold\"\n                            [ngClass]=\"{\n                                'additional-info-title-text-hide':\n                                    !isBankAccountOpen,\n                            }\"\n                        >\n                            Bank Account\n                        </h2>\n                        <p\n                            class=\"additional-info-title-number ca-font-bold d-flex align-items-center justify-content-center\"\n                            [ngClass]=\"{\n                                'additional-info-title-number-hide':\n                                    !isDepartmentContactOpen,\n                            }\"\n                        >\n                            {{ _company?.bankAccounts?.length }}\n                        </p>\n                    </div>\n                    @if (isBankAccountOpen) {\n                        @if (isRoutingShown) {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Account\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-first d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"'ic_password' | caSvg: 'input'\"\n                                    (click)=\"toggleBankAccountView()\"\n                                ></svg-icon>\n                            </div>\n                        } @else {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Routing\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-second info-icon-phone d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"\n                                        'ic_bank_account'\n                                            | caSvg: 'right-side-panel'\n                                    \"\n                                    (click)=\"toggleBankAccountView()\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    } @else {\n                        <p\n                            class=\"additional-info-btn additional-info-btn-show ca-font-bold\"\n                            (click)=\"toggleDepartmentContact()\"\n                        >\n                            Show\n                        </p>\n                    }\n                </div>\n                @if (isBankAccountOpen) {\n                    <div\n                        class=\"additional-info-content-container\"\n                        [@showHideCardBody]=\"isBankAccountOpen\"\n                    >\n                        @for (\n                            account of _company?.bankAccounts;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <div\n                                class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                            >\n                                @if (isRoutingShown) {\n                                    <div class=\"company-info-item d-flex\">\n                                        <div\n                                            ngbTooltip\n                                            mainCaTooltip=\"Routing\"\n                                            position=\"bottom\"\n                                            tooltipBackground=\"#424242\"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-routing d-flex align-items-center justify-content-center svg-size-14\"\n                                                [src]=\"\n                                                    'ic_bank_account'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                        <p class=\"company-info-text\">\n                                            {{ account.routing }}\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === account.routing\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === account.routing\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        account?.routing ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n                                    <p class=\"company-info-title-text\">\n                                        {{ account?.bank?.name }}\n                                    </p>\n                                } @else {\n                                    <div class=\"company-info-item d-flex\">\n                                        @if (\n                                            !isAccountVisible(\n                                                account?.account ?? ''\n                                            )\n                                        ) {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Show Account\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account d-flex align-items-center justify-content-center svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-visible'\n                                                            | caSvg: 'input'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleAccountVisibility(\n                                                            account?.account ??\n                                                                ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        } @else {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Hide Account\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide d-flex align-items-center justify-content-center svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-icon'\n                                                            | caSvg\n                                                                : 'telematic-map-list'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleAccountVisibility(\n                                                            account?.account ??\n                                                                ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        }\n\n                                        <p class=\"company-info-text\">\n                                            {{\n                                                account?.account ?? ''\n                                                    | hideAccount\n                                                        : 'account'\n                                                        : accountVisibility[\n                                                              account?.account ??\n                                                                  ''\n                                                          ] || false\n                                            }}\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === account.account\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === account.account\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy\"\n                                                svg-size-12\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        account?.account ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n                                    <p class=\"company-info-title-text\">\n                                        {{ account?.bank?.name }}\n                                    </p>\n                                }\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        }\n        @if (_company?.bankCards?.length) {\n            <div class=\"horizontal-line\"></div>\n            <div class=\"company-additional-info-container\">\n                <div\n                    class=\"additional-info-title d-flex justify-content-between align-items-center\"\n                >\n                    <div\n                        class=\"additional-info-title-container d-flex align-items-center\"\n                        (click)=\"toggleBankCard()\"\n                    >\n                        <h2\n                            class=\"additional-info-title-text ca-font-extra-bold\"\n                            [ngClass]=\"{\n                                'additional-info-title-text-hide':\n                                    !isBankCardOpen,\n                            }\"\n                        >\n                            Bank Card\n                        </h2>\n                        <p\n                            class=\"additional-info-title-number ca-font-bold d-flex align-items-center justify-content-center\"\n                            [ngClass]=\"{\n                                'additional-info-title-number-hide':\n                                    !isBankCardOpen,\n                            }\"\n                        >\n                            {{ _company?.bankCards?.length }}\n                        </p>\n                    </div>\n                    @if (isBankCardOpen) {\n                        @if (isCardShown) {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Account\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-first d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"'ic_password' | caSvg: 'input'\"\n                                    (click)=\"toggleBankCardView()\"\n                                ></svg-icon>\n                            </div>\n                        } @else {\n                            <div\n                                ngbTooltip\n                                mainCaTooltip=\"Card no.\"\n                                position=\"bottom\"\n                                tooltipBackground=\"#424242\"\n                                tooltipColor=\"#FFFFFF\"\n                                tooltipTextAlign=\"center\"\n                            >\n                                <svg-icon\n                                    class=\"additional-info-icon-second info-icon-phone d-flex align-items-center justify-content-center svg-size-18\"\n                                    [src]=\"\n                                        'ic_fuel_card'\n                                            | caSvg: 'right-side-panel'\n                                    \"\n                                    (click)=\"toggleBankCardView()\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    } @else {\n                        <p\n                            class=\"additional-info-btn additional-info-btn-show ca-font-bold\"\n                            (click)=\"toggleBankCard()\"\n                        >\n                            Show\n                        </p>\n                    }\n                </div>\n                @if (isBankCardOpen) {\n                    <div\n                        class=\"additional-info-content-container\"\n                        [@showHideCardBody]=\"isBankCardOpen\"\n                    >\n                        @for (\n                            card of _company?.bankCards;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <div\n                                class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n                            >\n                                @if (isCardShown) {\n                                    <div\n                                        class=\"company-info-item d-flex justify-content-between\"\n                                    >\n                                        @if (!isCardVisible(card?.card ?? '')) {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Show Card\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account info-icon-show-card svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-visible'\n                                                            | caSvg: 'input'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleCardVisibility(\n                                                            card?.card ?? ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-card-type svg-size-14\"\n                                                    [src]=\"\n                                                        card.cardType\n                                                            | bankCardTypesPipe\n                                                            | caSvg\n                                                                : 'right-side-panel'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleCvcVisibility(\n                                                            card?.cvc ?? ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        } @else {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Hide Card\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-show-card svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-icon'\n                                                            | caSvg\n                                                                : 'telematic-map-list'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleCardVisibility(\n                                                            card?.card ?? ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-card-type svg-size-14\"\n                                                    [src]=\"\n                                                        card.cardType\n                                                            | bankCardTypesPipe\n                                                            | caSvg\n                                                                : 'right-side-panel'\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        }\n\n                                        <p class=\"company-info-text\">\n                                            {{\n                                                card.card\n                                                    | hideAccount\n                                                        : 'card'\n                                                        : cardVisibility[\n                                                              card?.card ?? ''\n                                                          ] || false\n                                            }}\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === card.card\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === card.card\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        card?.card ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n\n                                    <p class=\"company-info-title-text\">\n                                        {{ card.nickname }}\n                                    </p>\n                                } @else {\n                                    <div\n                                        class=\"company-info-item d-flex justify-content-between\"\n                                    >\n                                        @if (!isCvcVisible(card?.cvc ?? '')) {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Show Cvc\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account info-icon-show-card svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-visible'\n                                                            | caSvg: 'input'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleCvcVisibility(\n                                                            card?.cvc ?? ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-card-type svg-size-14\"\n                                                    [src]=\"\n                                                        card.cardType\n                                                            | bankCardTypesPipe\n                                                            | caSvg\n                                                                : 'right-side-panel'\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        } @else {\n                                            <div\n                                                ngbTooltip\n                                                mainCaTooltip=\"Hide Cvc\"\n                                                position=\"bottom\"\n                                                tooltipBackground=\"#424242\"\n                                                tooltipColor=\"#FFFFFF\"\n                                                tooltipTextAlign=\"center\"\n                                            >\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-show-card svg-size-14\"\n                                                    [src]=\"\n                                                        'ic_eye-icon'\n                                                            | caSvg\n                                                                : 'telematic-map-list'\n                                                    \"\n                                                    (click)=\"\n                                                        toggleCvcVisibility(\n                                                            card?.cvc ?? ''\n                                                        )\n                                                    \"\n                                                ></svg-icon>\n\n                                                <svg-icon\n                                                    class=\"company-info-icon info-icon-account-hide info-icon-card-type svg-size-14\"\n                                                    [src]=\"\n                                                        card.cardType\n                                                            | bankCardTypesPipe\n                                                            | caSvg\n                                                                : 'right-side-panel'\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        }\n\n                                        <p class=\"company-info-text\">\n                                            {{\n                                                card?.cvc ?? ''\n                                                    | hideAccount\n                                                        : 'cvc'\n                                                        : cvcVisibility[\n                                                              card?.cvc ?? ''\n                                                          ] || false\n                                            }}\n                                        </p>\n                                        <div\n                                            ngbTooltip\n                                            [mainCaTooltip]=\"\n                                                textCopied === card.cvc\n                                                    ? 'Copied'\n                                                    : 'Copy'\n                                            \"\n                                            position=\"bottom\"\n                                            [tooltipBackground]=\"\n                                                textCopied === card.cvc\n                                                    ? '#0B49D1'\n                                                    : '#424242'\n                                            \"\n                                            tooltipColor=\"#FFFFFF\"\n                                            tooltipTextAlign=\"center\"\n                                        >\n                                            <svg-icon\n                                                class=\"company-info-icon info-icon-copy svg-size-12\"\n                                                [src]=\"\n                                                    'ic_copy'\n                                                        | caSvg\n                                                            : 'right-side-panel'\n                                                \"\n                                                (click)=\"\n                                                    copyText(\n                                                        $event,\n                                                        card?.cvc ?? ''\n                                                    )\n                                                \"\n                                            ></svg-icon>\n                                        </div>\n                                    </div>\n                                    <p class=\"company-info-title-text\">\n                                        {{ card.nickname }}\n                                    </p>\n                                }\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        }\n\n        <ng-template\n            #companyInfoTemplate\n            let-title=\"title\"\n            let-icon=\"icon\"\n            let-text=\"text\"\n        >\n            <div\n                class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n            >\n                <div class=\"company-info-item d-flex\">\n                    <svg-icon\n                        class=\"company-info-icon d-flex align-items-center justify-content-center svg-size-14\"\n                        [src]=\"icon\"\n                    ></svg-icon>\n                    <p class=\"company-info-text\">{{ text }}</p>\n                    <div\n                        ngbTooltip\n                        [mainCaTooltip]=\"\n                            textCopied === text ? 'Copied' : 'Copy'\n                        \"\n                        position=\"bottom\"\n                        [tooltipBackground]=\"\n                            textCopied === text ? '#0B49D1' : '#424242'\n                        \"\n                        tooltipColor=\"#FFFFFF\"\n                        tooltipTextAlign=\"center\"\n                    >\n                        <svg-icon\n                            class=\"company-info-icon info-icon-copy svg-size-12\"\n                            [src]=\"'ic_copy' | caSvg: 'right-side-panel'\"\n                            (click)=\"copyText($event, text ?? '')\"\n                        ></svg-icon>\n                    </div>\n                </div>\n                <p class=\"company-info-title-text\">\n                    {{ title }}\n                </p>\n            </div>\n        </ng-template>\n\n        <ng-template\n            #companyAdditionalInfoTemplate\n            let-title=\"title\"\n            let-text=\"text\"\n        >\n            <div\n                class=\"company-info-item-container d-flex justify-content-between align-items-center\"\n            >\n                <div class=\"company-info-item d-flex\">\n                    <p class=\"company-info-text\">{{ text }}</p>\n                    <div\n                        ngbTooltip\n                        [mainCaTooltip]=\"\n                            textCopied === text ? 'Copied' : 'Copy'\n                        \"\n                        position=\"bottom\"\n                        [tooltipBackground]=\"\n                            textCopied === text ? '#0B49D1' : '#424242'\n                        \"\n                        tooltipColor=\"#FFFFFF\"\n                        tooltipTextAlign=\"center\"\n                    >\n                        <svg-icon\n                            class=\"company-info-icon info-icon-copy svg-size-12\"\n                            [src]=\"'ic_copy' | caSvg: 'right-side-panel'\"\n                            (click)=\"copyText($event, text ?? '')\"\n                        ></svg-icon>\n                    </div>\n                </div>\n                <p class=\"company-info-title-text\">\n                    {{ title }}\n                </p>\n            </div>\n        </ng-template>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// components\nimport { CaRightSidePanelMenuComponent } from './components/ca-right-side-panel-menu/ca-right-side-panel-menu.component';\nimport { CaActivityLogListComponent } from '../ca-activity-log-list/ca-activity-log-list.component';\nimport { CaRightSidePanelTopBarComponent } from './components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component';\nimport { CaRightSidePanelCompanyComponent } from './components/ca-right-side-panel-company/ca-right-side-panel-company.component';\n\n// models\nimport { ActivityLogItem } from '../ca-activity-log-list/models';\nimport {\n  ActionFilterInputData,\n  ActivityLogFilterParams,\n  Company,\n  CompanyNavigationData,\n  ModuleFilterInputData,\n  UserFilterInputData,\n} from './models';\n\n// enums\nimport {\n  ActivityLogSortType,\n  RightSidePanelCurrentTab,\n  SelectedModule,\n} from './enums';\n\n@Component({\n    selector: 'app-ca-right-side-panel',\n    templateUrl: './ca-right-side-panel.component.html',\n    styleUrls: ['./ca-right-side-panel.component.scss'],\n    imports: [\n        CommonModule,\n        HttpClientModule,\n        // Components\n        CaRightSidePanelMenuComponent,\n        CaActivityLogListComponent,\n        CaRightSidePanelTopBarComponent,\n        CaRightSidePanelCompanyComponent,\n    ]\n})\nexport class CaRightSidePanelComponent {\n  public _activityLogFilterParams: ActivityLogFilterParams = {\n    companyUserIds: [],\n    actionLogIds: [],\n    entityTypeActivityIds: [],\n    sort: ActivityLogSortType.DESCENDING,\n    userFilterType: RightSidePanelCurrentTab.PERSONAL,\n    dateFrom: null,\n    dateTo: null,\n    search: null,\n  };\n  public selectedNav?: SelectedModule;\n  public selectedTab: RightSidePanelCurrentTab =\n    RightSidePanelCurrentTab.PERSONAL;\n  public SelectedModule = SelectedModule;\n  public resetFilters: boolean = false;\n  public selectedCompanyId: number = 0;\n  public selectedCompanyIsDivision: boolean = false;\n\n  @Input() companiesData!: CompanyNavigationData[];\n  @Input() activityLogData!: ActivityLogItem[];\n  @Input() mainCompanyData!: Company | null;\n  @Input() usersFilter!: UserFilterInputData[];\n  @Input() modulesFilter!: ModuleFilterInputData[];\n  @Input() actionsFilter!: ActionFilterInputData[];\n\n  @Output() activityLogFilterParams: EventEmitter<ActivityLogFilterParams> =\n    new EventEmitter();\n  @Output() selectedNavModule: EventEmitter<SelectedModule> =\n    new EventEmitter();\n  @Output() isSidePanelPinned: EventEmitter<boolean> = new EventEmitter();\n  @Output() isNavOpen: EventEmitter<boolean> = new EventEmitter();\n  @Output() selectedDivisionId: EventEmitter<number> = new EventEmitter();\n\n  public selectedNavEvent(selectedNav: SelectedModule): void {\n    if (!selectedNav) {\n      this.selectedTab = RightSidePanelCurrentTab.PERSONAL;\n      this.clearData();\n    }\n    if (this.selectedNav !== selectedNav) {\n      this.selectedTab = RightSidePanelCurrentTab.PERSONAL;\n      this.selectedNav = selectedNav;\n      this.selectedNavModule.emit(selectedNav);\n    }\n  }\n\n  public selectedTabEvent(selectedTab: RightSidePanelCurrentTab): void {\n    this.selectedTab = selectedTab;\n  }\n\n  public selectedCompanyIdEvent(companyId: number): void {\n    if (this.selectedNav === SelectedModule.DIVISION_INFO) {\n      this.selectedCompanyIsDivision = true;\n      this.selectedDivisionId.emit(companyId);\n    } else this.selectedCompanyIsDivision = false;\n    this.selectedCompanyId = companyId;\n  }\n\n  public selectedDivisionIdEvent(companyId: number): void {\n    this.selectedCompanyIsDivision = true;\n    this.selectedDivisionId.emit(companyId);\n    this.selectedCompanyId = companyId;\n  }\n\n  public selectedMainCompanyIdEvent(companyId: number): void {\n    if (companyId) {\n      this.selectedCompanyIsDivision = false;\n      this.selectedNavModule.emit(SelectedModule.COMPANY_INFO);\n      this.selectedCompanyId = companyId;\n    }\n  }\n\n  public pinSidebarEvent(isPinned: boolean): void {\n    this.isSidePanelPinned.emit(isPinned);\n  }\n\n  public setActivityLogFilterParams(\n    activityLogFilterParams: ActivityLogFilterParams\n  ): void {\n    this._activityLogFilterParams.companyUserIds =\n      activityLogFilterParams.companyUserIds;\n    this._activityLogFilterParams.actionLogIds =\n      activityLogFilterParams.actionLogIds;\n    this._activityLogFilterParams.entityTypeActivityIds =\n      activityLogFilterParams.entityTypeActivityIds;\n    this._activityLogFilterParams.sort = activityLogFilterParams.sort;\n    this._activityLogFilterParams.userFilterType =\n      activityLogFilterParams.userFilterType;\n    this._activityLogFilterParams.dateFrom = activityLogFilterParams.dateFrom;\n    this._activityLogFilterParams.dateTo = activityLogFilterParams.dateTo;\n    this._activityLogFilterParams.reloadFilters =\n      activityLogFilterParams.reloadFilters;\n    this.activityLogFilterParams.emit(this._activityLogFilterParams);\n  }\n\n  public searchEvent(searchText: string): void {\n    this._activityLogFilterParams.search = searchText;\n    this.activityLogFilterParams.emit(this._activityLogFilterParams);\n  }\n\n  public resetFiltersEvent(resetFilters: boolean) {\n    this.resetFilters = resetFilters;\n    setTimeout(() => {\n      this.resetFilters = false;\n    });\n  }\n\n  public openNavEvent(isNavOpen: boolean): void {\n    this.isNavOpen.emit(isNavOpen);\n  }\n\n  private clearData(): void {\n    this.activityLogData = [];\n    this.mainCompanyData = null;\n    this.usersFilter = [];\n    this.modulesFilter = [];\n    this.actionsFilter = [];\n  }\n}\n","<div class=\"side-panel-container-box\">\n    <div class=\"side-panel-container d-flex flex-column\">\n        @if (selectedNav === SelectedModule.ACTIVITY_LOG) {\n            <app-ca-right-side-panel-top-bar\n                [selectedModule]=\"selectedNav\"\n                [usersFilter]=\"usersFilter\"\n                [modulesFilter]=\"modulesFilter\"\n                [actionsFilter]=\"actionsFilter\"\n                [resetFilters]=\"resetFilters\"\n                (selectedTab)=\"selectedTabEvent($event)\"\n                (activityLogFilterParams)=\"setActivityLogFilterParams($event)\"\n            ></app-ca-right-side-panel-top-bar>\n            <app-ca-activity-log-list\n                [activityLogList]=\"activityLogData\"\n                [selectedTab]=\"selectedTab\"\n                (searchText)=\"searchEvent($event)\"\n                (resetFilters)=\"resetFiltersEvent($event)\"\n            ></app-ca-activity-log-list>\n        }\n        @if (\n            selectedNav === SelectedModule.COMPANY_INFO ||\n            selectedNav === SelectedModule.DIVISION_INFO\n        ) {\n            <app-ca-right-side-panel-top-bar\n                [selectedModule]=\"selectedNav\"\n                [companyList]=\"companiesData\"\n                [selectedCompanyId]=\"selectedCompanyId\"\n                (selectedDivisionId)=\"selectedDivisionIdEvent($event)\"\n                (selectedMainCompanyId)=\"selectedMainCompanyIdEvent($event)\"\n            ></app-ca-right-side-panel-top-bar>\n            <app-ca-right-side-panel-company\n                [company]=\"mainCompanyData\"\n                [companyIsDivision]=\"selectedCompanyIsDivision\"\n            ></app-ca-right-side-panel-company>\n        }\n\n        <app-ca-right-side-panel-menu\n            [companyList]=\"companiesData\"\n            (selectedNav)=\"selectedNavEvent($event)\"\n            [selectedCompany]=\"selectedCompanyId\"\n            (isPinned)=\"pinSidebarEvent($event)\"\n            (isNavOpen)=\"openNavEvent($event)\"\n            (selectedCompanyId)=\"selectedCompanyIdEvent($event)\"\n        ></app-ca-right-side-panel-menu>\n    </div>\n</div>\n","export enum CubicInterpolationStringEnum {\n  DEFAULT = 'default',\n  MONOTONE = 'monotone',\n}\n","export enum ChartPluginIdsStringEnum {\n  HIGHLIGHT_SEGMENT_ON_HOVER = 'highlightSegmentOnHover',\n  HIGHLIGHT_POINT_ON_HOVER = 'highlightPointOnHover',\n  BORDER_BOTTOM_LINE_CHART = 'borderBottomLineChart',\n  X_DASHED = 'x-dashed'\n}\n","export enum ChartEventTypesStringEnum {\n  MOUSE_OUT = 'mouseout',\n}\n","export enum EChartEventProperties {\n    X = 'x',\n    Y = 'y',\n    Y_AXIS_0 = 'y-axis-0'\n}","export enum ChartFontPropertiesStringEnum {\n  FONT_FAMILY_MONTSERRAT = 'Montserrat',\n  FONT_WEIGHT_BOLDER = 'bolder',\n}\n","export enum EChartAnnotationType {\n    LINE = 'line',\n    BOX = 'box',\n    ELLIPSE = 'ellipse',\n    LABEL = 'label',\n    POINT = 'point',\n    POLYGON = 'polygon',\n}","import {\n    EChartAnnotationType,\n    ChartPluginIdsStringEnum,\n    EChartEventProperties\n} from '../enums';\n\nexport class EChartAnnotation {\n    public static X_DASHED = {\n        id: ChartPluginIdsStringEnum.X_DASHED,\n        type: EChartAnnotationType.LINE,\n        scaleID: EChartEventProperties.X,\n        borderWidth: 3,\n        borderDash: [7, 5],\n    }\n}\n","import { ElementRef } from '@angular/core';\nimport Chart, { CategoryScale, ChartArea, LinearScale } from 'chart.js/auto';\nimport { ChartColorsStringEnum } from '../../enums';\nimport { IBaseDataset, IChartData } from '../../models';\n\nexport class ChartHelper {\n    public static hexToRgba(colorHex: string, opacity: number = 1): string {\n        colorHex = colorHex.replace(/^#/, '');\n\n        if (colorHex.length === 3) {\n            colorHex\n                .split('')\n                .map((char) => char + char)\n                .join('');\n        }\n\n        const bigint = parseInt(colorHex, 16);\n        const red = (bigint >> 16) & 255;\n        const green = (bigint >> 8) & 255;\n        const blue = bigint & 255;\n\n        return `rgba(${red}, ${green}, ${blue}, ${opacity})`;\n    }\n\n    static rgbToRgba(rgb: string = 'rgb(0, 0, 0)', opacity: number): string {\n        const rgbValues = rgb.match(/\\d+/g);\n\n        if (rgbValues && rgbValues.length >= 3) {\n            const red = rgbValues[0];\n            const green = rgbValues[1];\n            const blue = rgbValues[2];\n\n            return `rgba(${red}, ${green}, ${blue}, ${opacity})`;\n        } else return rgb;\n    }\n\n    static changeOpacityOfRgbOrRgba(color: string, opacity: number): string {\n        const rgbaRegex =\n            /^rgba?\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})(?:,\\s*(\\d?\\.?\\d+))?\\)$/;\n\n        const match = color.match(rgbaRegex);\n        if (match) {\n            const red = parseInt(match[1], 10);\n            const green = parseInt(match[2], 10);\n            const blue = parseInt(match[3], 10);\n\n            return `rgba(${red}, ${green}, ${blue}, ${opacity})`;\n        }\n        return color;\n    }\n\n    static calculateMinValue(data: number[]): number {\n        return Math.min(...data);\n    }\n\n    static calculateMaxValue(data: number[]): number {\n        return Math.max(...data);\n    }\n\n    static createGradient(\n        chartContext: CanvasRenderingContext2D,\n        chartCanvas: ElementRef,\n        color: string,\n        color2: string,\n        opacityColor1: number = 1,\n        opacityColor2: number = 1,\n        areColorsInRgbaFormat: boolean = false\n    ): CanvasGradient {\n        const gradient = chartContext.createLinearGradient(\n            0,\n            0,\n            0,\n            chartCanvas.nativeElement.height\n        );\n        let fillColorTop = '';\n        let fillColorBottom = '';\n        if (areColorsInRgbaFormat) {\n            fillColorTop = this.changeOpacityOfRgbOrRgba(color, opacityColor1);\n            fillColorBottom = this.changeOpacityOfRgbOrRgba(\n                color2,\n                opacityColor2\n            );\n        } else {\n            fillColorTop = this.hexToRgba(color, opacityColor1);\n            fillColorBottom = this.hexToRgba(color2, opacityColor2);\n        }\n        gradient.addColorStop(0, fillColorTop);\n        gradient.addColorStop(0.8, fillColorBottom);\n\n        return gradient;\n    }\n\n    static createGradientWithShiftValue(\n        chartContext: CanvasRenderingContext2D,\n        chartHeight: number,\n        color: string,\n        color2: string,\n        shiftValue: number,\n        hasFade?: boolean\n    ): CanvasGradient {\n        const gradient = chartContext.createLinearGradient(\n            0,\n            0,\n            0,\n            chartHeight\n        );\n\n        const fillColorTop = this.hexToRgba(color, 0.8);\n        const fillColorBottom = this.hexToRgba(color2, 0.8);\n\n        if (!hasFade) {\n            gradient.addColorStop(0, fillColorTop);\n            gradient.addColorStop(shiftValue, fillColorTop);\n            gradient.addColorStop(shiftValue, fillColorBottom);\n            gradient.addColorStop(1, fillColorBottom);\n            return gradient;\n        }\n\n        gradient.addColorStop(0, fillColorTop);\n        gradient.addColorStop(shiftValue, ChartColorsStringEnum.WHITE);\n        gradient.addColorStop(shiftValue, fillColorBottom);\n        gradient.addColorStop(1, ChartColorsStringEnum.WHITE);\n\n        return gradient;\n    }\n\n    static calculateTickPositions(\n        xScale: CategoryScale | LinearScale\n    ): number[] {\n        return xScale.ticks.map((_, index: number) =>\n            xScale.getPixelForTick(index)\n        );\n    }\n\n    static highlightSegment(\n        ctx: CanvasRenderingContext2D,\n        xScale: CategoryScale | LinearScale,\n        chartArea: ChartArea,\n        chartHeight: number,\n        index: number\n    ): void {\n        const { segmentStart, segmentWidth } = ChartHelper.getSegmentPosition(\n            xScale,\n            index\n        );\n        const borderRadius = 2;\n\n        ctx.save();\n        ctx.fillStyle = ChartColorsStringEnum.HOVER_SEGMENT;\n\n        // Draw segment with border-radius at the top corners\n        ctx.beginPath();\n        ctx.moveTo(segmentStart + borderRadius, chartArea.top);\n        ctx.lineTo(segmentStart + segmentWidth - borderRadius, chartArea.top);\n        ctx.arcTo(\n            segmentStart + segmentWidth,\n            chartArea.top,\n            segmentStart + segmentWidth,\n            chartArea.top + borderRadius,\n            borderRadius\n        );\n        ctx.lineTo(segmentStart + segmentWidth, chartHeight);\n        ctx.lineTo(segmentStart, chartHeight);\n        ctx.lineTo(segmentStart, chartArea.top + borderRadius);\n        ctx.arcTo(\n            segmentStart,\n            chartArea.top,\n            segmentStart + borderRadius,\n            chartArea.top,\n            borderRadius\n        );\n        ctx.closePath();\n\n        ctx.fill();\n        ctx.restore();\n    }\n\n    // This is a dumb function whose only function is only to position legend elements one below under\n    // Call it in for\n    public static drawDoughnutLegend(\n        chart: Chart,\n        position: {\n            indx: number;\n            // TODO if needed, convert to object\n            offsetTop: number;\n        },\n        text: string,\n        // Initial idea\n        fontSize: number = 18,\n        color: string = '#424242'\n    ): void {\n        const { ctx } = chart;\n\n        if (!ctx) return;\n\n        ctx.save();\n\n        const datasetMeta = chart.getDatasetMeta(0);\n        const xCoord = datasetMeta?.data[0]?.x;\n        const yCoord =\n            (datasetMeta?.data[0]?.y / 3) * 2 +\n            position.indx * 20 +\n            position.offsetTop;\n\n        if (xCoord === undefined || yCoord == undefined) return;\n\n        ctx.font = `bold ${fontSize}px Montserrat`;\n        ctx.fillStyle = color;\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'middle';\n        ctx.fillText(text, xCoord, yCoord);\n\n        ctx.restore();\n    }\n\n    static highlightPoint(\n        ctx: CanvasRenderingContext2D,\n        chart: Chart,\n        index: number,\n        chartData: IChartData<IBaseDataset>\n    ): void {\n        chartData.datasets.forEach((dataset, datasetIndex) => {\n            const meta = chart.getDatasetMeta(datasetIndex);\n\n            if (!meta || !meta.data[index]) return;\n\n            const point = meta.data[index];\n            const yScale = chart.scales[dataset.yAxisID || 'y-axis-0'];\n            const xScale = chart.scales['x'];\n\n            const value = dataset.data[index];\n            if (value === undefined || value === null) return;\n\n            const xPixel = xScale.getPixelForValue(index);\n            const yPixel = Math.abs(yScale.getPixelForValue(value as number));\n\n            if (!point) return;\n\n            ctx.save();\n            ctx.beginPath();\n            ctx.arc(xPixel, yPixel, 4, 0, 2 * Math.PI);\n            ctx.fillStyle = ChartColorsStringEnum.WHITE;\n            ctx.fill();\n            ctx.lineWidth = 2;\n            ctx.strokeStyle =\n                dataset.borderColor || ChartColorsStringEnum.TRANSPARENT;\n            ctx.stroke();\n            ctx.restore();\n        });\n    }\n\n    private static getSegmentPosition(\n        xScale: CategoryScale | LinearScale,\n        index: number\n    ): { segmentStart: number; segmentWidth: number } {\n        const tickPositions = ChartHelper.calculateTickPositions(xScale);\n        const segmentWidth = tickPositions[1] - tickPositions[0];\n        const segmentStart = tickPositions[index] - segmentWidth / 2;\n        return { segmentStart, segmentWidth };\n    }\n\n    public static convertRgbToRgba(\n        colorValue: string,\n        alpha: number = 1\n    ): string {\n        if (alpha < 0 || alpha > 1) return colorValue;\n\n        const rgbaMatch = colorValue.match(\n            /rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d+(\\.\\d+)?)\\)/\n        );\n\n        if (rgbaMatch) {\n            const [, r, g, b] = rgbaMatch;\n            // Return updated RGBA with the new alpha\n            return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n        }\n\n        // Extract the RGB values using a regular expression\n        const rgbMatch = colorValue.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n        if (!rgbMatch) return colorValue;\n\n        // Destructure the matched values\n        const [, r, g, b] = rgbMatch;\n\n        // Return the RGBA string\n        return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n    }\n\n    public static calculateDatasetMaxValue(\n        datasets: { data: number[] }[]\n    ): number {\n        return Math.max(...datasets.flatMap((dataset) => dataset.data));\n    }\n}\n","import { eChartTypesString } from '../../enums';\nimport { IBaseDataset, ILineDataset } from '../../models';\n\nexport class ChartTypeGuard {\n  static isLineDataset(dataset: IBaseDataset): dataset is ILineDataset {\n    const isLineDataset = dataset.type === eChartTypesString.LINE;\n\n    return isLineDataset;\n  }\n}\n","export class ChartConstants {\n    static STRING_EMPTY = '';\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n//Models\nimport { IHoverState } from '../models';\nimport { IChartBoundaries } from '../../ca-chart/models';\n\n@Injectable()\nexport class ChartManagerService {\n  public hoverStateSubject = new BehaviorSubject<IHoverState>({\n    index: null,\n    chartId: null,\n    boundaries: undefined,\n  });\n\n  public hoverState$ = this.hoverStateSubject.asObservable();\n\n  public setHoverState(index: number | null, chartId: string | null, boundaries?: IChartBoundaries): void {\n    this.hoverStateSubject.next({ index, chartId, boundaries });\n  }\n}\n","import {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    Input,\n    Output,\n    Optional,\n    ViewChild,\n    EventEmitter,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnyObject } from 'chart.js/dist/types/basic';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { Subject, takeUntil } from 'rxjs';\n\n// Charts\nimport {\n    CategoryScale,\n    Chart,\n    ChartEvent,\n    LinearScale,\n    Plugin,\n} from 'chart.js/auto';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport { ActiveDataPoint, ChartType } from 'chart.js';\n\n// Enums\nimport {\n    ChartColorsStringEnum,\n    EChartEventProperties,\n    ChartPluginIdsStringEnum,\n    eChartTypesString,\n    CubicInterpolationStringEnum,\n    ChartEventTypesStringEnum,\n    ChartFontPropertiesStringEnum,\n    EChartAnnotation,\n} from './enums';\n\n// Helpers\nimport { ChartHelper } from './utils/helpers';\n\n// Guards\nimport { ChartTypeGuard } from './utils/guards';\n\n//Models\nimport {\n    IChartData,\n    ILineDataset,\n    IChartConfiguration,\n    IBaseDataset,\n    IChartAnnotation,\n    IChartDatasetHover,\n    IChartCenterLabel,\n    IChartLegendConfig,\n} from './models';\nimport { ActiveElement } from 'chart.js/dist/plugins/plugin.tooltip';\n\n//Services\nimport { ChartManagerService } from '../ca-chart-manager/services';\n\n// Constants\nimport { ChartConstants } from './utils/constants';\nimport {\n    _DeepPartialArray,\n    _DeepPartialObject,\n} from 'chart.js/dist/types/utils';\n\n// Pipes\nimport { ThousandSeparatorPipe, UnitPositionPipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-chart',\n    templateUrl: './ca-chart.component.html',\n    styleUrls: ['./ca-chart.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        UnitPositionPipe,\n        ThousandSeparatorPipe,\n    ],\n})\nexport class CaChartComponent implements AfterViewInit {\n    @ViewChild('chartCanvas', { static: false }) chartCanvas!: ElementRef;\n\n    @Input() legendData!: IChartLegendConfig;\n    @Input() chartId!: string;\n    @Input()\n    set chartDatasetHover(value: IChartDatasetHover | null) {\n        if (value) this.updateDatasetBackgroundOnHover(value);\n    }\n    @Input() set chartConfig(value: IChartConfiguration) {\n        this._chartConfig = { ...value };\n\n        this.isChartDataAvailable =\n            (!!this._chartConfig?.chartData?.datasets?.length &&\n                this._chartConfig?.chartData?.datasets?.some(\n                    (item: IBaseDataset) =>\n                        item.data.some((value: number | number[]) =>\n                            Array.isArray(value)\n                                ? value[0] !== null || value[1] !== null\n                                : value !== null\n                        )\n                )) ??\n            false;\n        this.changeDetector.detectChanges();\n\n        if (this.isChartDataAvailable) this.updateChart();\n    }\n    @Input() set selectedIndex(value: number) {\n        if (!this.chart || !this.isChartDataAvailable) return;\n\n        if (value !== null) this.focusDoughnutArc(value);\n        else this.setOriginalDoughnutArcsColor();\n\n        this.chart.update();\n    }\n\n    @Output() hoveredIndex: EventEmitter<number | null> = new EventEmitter();\n\n    private destroy$ = new Subject<void>();\n\n    private chart!: Chart;\n    private chartContext!: CanvasRenderingContext2D;\n    private plugins?: Plugin<ChartType, AnyObject>[];\n    private areAnimationsCompleated: boolean = false;\n    private _hoveredIndex: number | null = null;\n    private lastHoveredIndex: number = -1;\n\n    public _chartConfig!: IChartConfiguration;\n    public isChartDataAvailable: boolean = false;\n\n    constructor(\n        private changeDetector: ChangeDetectorRef,\n        @Optional() private chartManagerService?: ChartManagerService\n    ) {}\n\n    ngAfterViewInit(): void {\n        if (this.isChartDataAvailable) {\n            this.initializeAnnotationPlugin();\n            this.createChart();\n        }\n    }\n\n    ngOnInit(): void {\n        this.initializeChartManagerService();\n    }\n\n    private initializeChartManagerService(): void {\n        if (!this.chartManagerService) return;\n\n        this.chartManagerService.hoverState$\n            .pipe(takeUntil(this.destroy$))\n            .subscribe(({ index, chartId }) => {\n                if (chartId !== this.chartId) {\n                    this._hoveredIndex = index;\n                    if (this.chart) this.chart.draw();\n                }\n            });\n    }\n\n    private initializeAnnotationPlugin(): void {\n        Chart.register(annotationPlugin);\n    }\n\n    public updateDatasetBackgroundOnHover(\n        chartDatasetHover: IChartDatasetHover\n    ): void {\n        if (!this.chart || !this.chart.data.datasets) return;\n\n        if (chartDatasetHover.isHoverd) {\n            const gradient = ChartHelper.createGradient(\n                this.chartContext,\n                this.chartCanvas,\n                chartDatasetHover.color,\n                chartDatasetHover.color,\n                0.6,\n                0.1,\n                true\n            );\n            this.chart.data.datasets = this.chart?.data?.datasets?.map(\n                (dataset) => {\n                    if (dataset.hidden) return dataset;\n\n                    if (\n                        dataset?.label?.toUpperCase() ===\n                        chartDatasetHover?.label?.toUpperCase()\n                    ) {\n                        const hoverdDataSet = {\n                            ...dataset,\n                            fill: true,\n                            backgroundColor: gradient,\n                            borderColor: chartDatasetHover.color,\n                            order: 1,\n                        };\n                        return hoverdDataSet;\n                    } else {\n                        const borderColorWithOpacity =\n                            ChartHelper.changeOpacityOfRgbOrRgba(\n                                dataset.borderColor as string,\n                                0.2\n                            );\n                        return {\n                            ...dataset,\n                            fill: false,\n                            borderColor: borderColorWithOpacity,\n                        };\n                    }\n                }\n            );\n        } else\n            this.chart.data.datasets = this.chart.data.datasets.map(\n                (dataset) => {\n                    if (!dataset.hidden) {\n                        const originalColor = dataset.borderColor\n                            ? ChartHelper.changeOpacityOfRgbOrRgba(\n                                  dataset.borderColor as string,\n                                  1\n                              )\n                            : ChartConstants.STRING_EMPTY;\n\n                        return {\n                            ...dataset,\n                            fill: false,\n                            borderColor: originalColor,\n                            backgroundColor: ChartConstants.STRING_EMPTY,\n                        };\n                    } else return dataset;\n                }\n            );\n        this.chart.update();\n    }\n\n    private createChart(): void {\n        this.chartContext = this.chartCanvas?.nativeElement?.getContext('2d');\n\n        this.setChartOptionsProperties();\n        this.setChartDataProperties();\n        this.setChartPluginsProperties();\n\n        if (this.chart) this.chart.destroy();\n\n        this.initializeAnnotationPlugin();\n        if (this._chartConfig.chartType === eChartTypesString.DOUGHNUT)\n            Chart.overrides.doughnut.cutout = '88%';\n\n        this.chart = new Chart(this.chartContext, {\n            type: this._chartConfig?.chartType,\n            data: this._chartConfig?.chartData,\n            options: this._chartConfig?.chartOptions,\n            plugins: this.plugins,\n        });\n\n        if (!this._chartConfig.isDashboardChart)\n            this.chart.config.data.datasets = [\n                ...this._chartConfig?.chartData?.datasets?.map(\n                    (item: IBaseDataset, indx: number) => {\n                        const pointConfig = {\n                            pointBackgroundColor: ChartColorsStringEnum.WHITE,\n                            pointBorderWidth: 2,\n                            pointRadius: 3,\n                        };\n\n                        this.updateChartAnnotations(item, indx);\n\n                        const yScale = this.chart.scales[\n                            EChartEventProperties.Y_AXIS_0\n                        ] as CategoryScale | LinearScale;\n\n                        const backgroundColor =\n                            item?.color && item?.color2\n                                ? ChartHelper.createGradient(\n                                      this.chartContext,\n                                      this.chartCanvas,\n                                      item?.color,\n                                      item?.color2\n                                  )\n                                : item?.color;\n\n                        const datasetConfig = {\n                            ...item,\n                            pointBorderColor: item.color,\n                            ...pointConfig,\n                            backgroundColor,\n                            fill: item?.fill,\n                        };\n\n                        if (\n                            this._chartConfig.chartType ===\n                            eChartTypesString.DOUGHNUT\n                        )\n                            return {\n                                ...datasetConfig,\n                                backgroundColor: item.backgroundColor,\n                            };\n\n                        if (!item.shiftValue)\n                            return {\n                                ...datasetConfig,\n                                backgroundColor:\n                                    item?.color &&\n                                    item?.color2 &&\n                                    item?.color !== item?.color2\n                                        ? ChartHelper.createGradient(\n                                              this.chartContext,\n                                              this.chartCanvas,\n                                              item?.color,\n                                              item?.color2\n                                          )\n                                        : item?.color,\n                            };\n\n                        const shiftValuePx: number = yScale.getPixelForValue(\n                            item.shiftValue || 0\n                        );\n                        const shiftValueAdjusted: number =\n                            shiftValuePx / yScale.maxHeight;\n\n                        const color1: string =\n                            item.color || ChartConstants.STRING_EMPTY;\n                        const color2: string =\n                            item.color2 || ChartConstants.STRING_EMPTY;\n\n                        const borderColor: CanvasGradient =\n                            ChartHelper.createGradientWithShiftValue(\n                                this.chartContext,\n                                yScale.maxHeight,\n                                color1,\n                                color2,\n                                shiftValueAdjusted\n                            );\n\n                        return {\n                            ...item,\n                            ...pointConfig,\n                            pointBorderColor: borderColor,\n                            backgroundColor:\n                                ChartHelper.createGradientWithShiftValue(\n                                    this.chartContext,\n                                    yScale.maxHeight,\n                                    color1,\n                                    color2,\n                                    shiftValueAdjusted,\n                                    true\n                                ),\n                            borderColor,\n                            fill: true,\n                        };\n                    }\n                ),\n            ];\n\n        this.chart.update();\n    }\n\n    private updateChart(): void {\n        if (this.chart) this.chart.update();\n        this.createChart();\n    }\n\n    private setChartOptionsProperties(): void {\n        const labels = this._chartConfig.chartData.labels;\n\n        this._chartConfig.chartOptions = {\n            responsive: true,\n            maintainAspectRatio: false,\n            clip: false,\n            animation: {\n                duration: 5,\n                onComplete: () => {\n                    this.areAnimationsCompleated = true;\n                    this.chart.draw();\n                },\n                onProgress: () => {\n                    this.areAnimationsCompleated = false;\n                    this.chart.draw();\n                },\n            },\n            layout: {\n                padding: {\n                    top:\n                        this._chartConfig.chartType ===\n                        eChartTypesString.DOUGHNUT\n                            ? 8\n                            : 0,\n                    bottom:\n                        this._chartConfig.chartType ===\n                        eChartTypesString.DOUGHNUT\n                            ? 8\n                            : 0,\n                    left:\n                        this._chartConfig.chartType === eChartTypesString.BAR &&\n                        this._chartConfig.verticalyAlignBarChartWithLineCart\n                            ? 6\n                            : 0,\n                    right:\n                        this._chartConfig.chartType === eChartTypesString.BAR &&\n                        this._chartConfig.verticalyAlignBarChartWithLineCart\n                            ? 6\n                            : 0,\n                },\n            },\n            plugins: {\n                legend: {\n                    display: false,\n                },\n                tooltip: {\n                    enabled: false,\n                },\n            },\n            scales: {\n                x: {\n                    title: {\n                        display: true,\n                    },\n                    position: 'bottom',\n                    grid: {\n                        display: false,\n                    },\n                    ticks: {\n                        display: true,\n                        padding: 0,\n                        color: ChartColorsStringEnum.X_AXIS_LABEL_COLOR,\n                        font: {\n                            size: 11,\n                            family: ChartFontPropertiesStringEnum.FONT_FAMILY_MONTSERRAT,\n                            weight: ChartFontPropertiesStringEnum.FONT_WEIGHT_BOLDER,\n                        },\n                        autoSkip: true,\n                        autoSkipPadding: 12,\n                        maxRotation: 0,\n                        minRotation: 0,\n                        //Label written in 2 lines, will be adjusted with new design\n                        callback: function (\n                            value: string | number,\n                            index: number\n                        ): string | string[] {\n                            const label = labels[index];\n                            const multiLineLabel = label\n                                ? label.split(' ')\n                                : [];\n                            return multiLineLabel;\n                        },\n                    },\n                    display: this._chartConfig.showXAxisLabels,\n                    beginAtZero: true,\n                    offset: true,\n                },\n                y: {\n                    display: false,\n                    beginAtZero: true,\n                    min: 0,\n                    max: ChartHelper.calculateDatasetMaxValue(\n                        this._chartConfig.chartData.datasets as any //leave this as any\n                    ),\n                    offset: false,\n                },\n            },\n            onHover: (event: ChartEvent, item: ActiveElement[]) => {\n                if (this._chartConfig.hasVerticalDashedAnnotation) {\n                    this.removeVerticalDashedLine();\n                    this.setVerticalDashedAnnotationLine(event);\n                }\n\n                this.setOriginalDoughnutArcsColor();\n\n                if (\n                    this._chartConfig.chartType === eChartTypesString.DOUGHNUT\n                ) {\n                    const index = item[0]?.index;\n                    index >= 0\n                        ? this.focusDoughnutArc(index)\n                        : this.setOriginalDoughnutArcsColor();\n                    this.hoveredIndex.emit(index ?? null);\n                }\n                this.chart.update();\n            },\n        };\n    }\n\n    private focusDoughnutArc(index: number | null): void {\n        if (\n            this._chartConfig.chartType !== eChartTypesString.DOUGHNUT ||\n            index === this.chart.data.datasets[0].data.length - 1\n        )\n            return;\n        const colors: string[] = this.chart?.data?.datasets[0]\n            ?.backgroundColor as string[];\n        const updatedColors: string[] = colors.map(\n            (color: string, indx: number) => {\n                if (indx === index) return color;\n                const convertedValue = ChartHelper.convertRgbToRgba(color, 0.2);\n                return convertedValue;\n            }\n        );\n\n        this.chart.data.datasets[0].backgroundColor = updatedColors;\n    }\n\n    private setOriginalDoughnutArcsColor(): void {\n        if (this._chartConfig.chartType !== eChartTypesString.DOUGHNUT) return;\n\n        const colors: string[] = this.chart.data.datasets[0]\n            .backgroundColor as string[];\n\n        this.chart.data.datasets[0].backgroundColor = [\n            ...colors.map((color: string) => {\n                return ChartHelper.rgbToRgba(color, 1);\n            }),\n        ];\n\n        this.chart.update();\n    }\n    private setChartDataProperties(): void {\n        if (this._chartConfig.chartType === eChartTypesString.LINE) {\n            this._chartConfig.chartData.datasets.forEach((dataset) => {\n                dataset.order = dataset.order;\n                if (ChartTypeGuard.isLineDataset(dataset)) {\n                    dataset.tension = dataset.tension ?? 0.5;\n                    dataset.cubicInterpolationMode =\n                        dataset.cubicInterpolationMode ??\n                        CubicInterpolationStringEnum.MONOTONE;\n                    dataset.pointBorderColor =\n                        dataset.pointBorderColor ??\n                        ChartColorsStringEnum.TRANSPARENT;\n                    dataset.pointBackgroundColor =\n                        dataset.pointBackgroundColor ??\n                        ChartColorsStringEnum.TRANSPARENT;\n                    dataset.pointHoverBackgroundColor =\n                        ChartColorsStringEnum.WHITE;\n                    dataset.pointHoverBorderColor = dataset.borderColor;\n                    dataset.pointBorderWidth = dataset.pointBorderWidth ?? 3;\n                    dataset.pointHoverRadius = 4;\n                    //dataset.pointHoverRadius = 8;\n                    dataset.pointHoverBorderWidth = 3;\n\n                    dataset.spanGaps = dataset.spanGaps ?? false;\n                    dataset.showLine = dataset.showLine ?? true;\n                }\n            });\n            this.setMultipleYAxis(this._chartConfig.chartData);\n        }\n    }\n\n    private setChartPluginsProperties(): void {\n        this.plugins = [\n            {\n                id: ChartPluginIdsStringEnum.HIGHLIGHT_SEGMENT_ON_HOVER,\n                afterEvent: (chart, event) => {\n                    const nativeEvent = event.event.native as MouseEvent;\n\n                    if (\n                        event.event.type === ChartEventTypesStringEnum.MOUSE_OUT\n                    ) {\n                        const boundingRect =\n                            this.chart.canvas.getBoundingClientRect();\n                        const isMouseOutsideChart =\n                            nativeEvent.clientX < boundingRect.left ||\n                            nativeEvent.clientX > boundingRect.right ||\n                            nativeEvent.clientY < boundingRect.top ||\n                            nativeEvent.clientY > boundingRect.bottom;\n\n                        if (isMouseOutsideChart) {\n                            this._hoveredIndex = null;\n                            this.chartManagerService?.setHoverState(\n                                null,\n                                this.chartId\n                            );\n                            this.removeVerticalDashedLineAndFocus();\n                            this.chart.draw();\n                        }\n                        return;\n                    }\n\n                    if (!this._chartConfig.showTooltipBackground) return;\n\n                    const boundingRect =\n                        this.chart.canvas.getBoundingClientRect();\n                    const mouseHorizontalCoordinate =\n                        nativeEvent.clientX - boundingRect.left;\n\n                    const { left, right } = this.chart.chartArea;\n\n                    if (\n                        mouseHorizontalCoordinate < left ||\n                        mouseHorizontalCoordinate > right\n                    ) {\n                        this._hoveredIndex = null;\n                        this.chartManagerService?.setHoverState(\n                            null,\n                            this.chartId\n                        );\n                        this.chart.draw();\n                        return;\n                    }\n\n                    const xScale = this.chart.scales[\n                        EChartEventProperties.X\n                    ] as CategoryScale | LinearScale;\n\n                    const tickPositions = xScale.ticks.map((tick) =>\n                        xScale.getPixelForValue(tick.value)\n                    );\n\n                    const segmentBoundaries = tickPositions.map(\n                        (tickPos, index) => {\n                            const leftBoundary =\n                                index === 0\n                                    ? left\n                                    : (tickPos + tickPositions[index - 1]) / 2;\n                            const rightBoundary =\n                                index === tickPositions.length - 1\n                                    ? right\n                                    : (tickPos + tickPositions[index + 1]) / 2;\n\n                            return { leftBoundary, rightBoundary };\n                        }\n                    );\n\n                    const newHoveredIndex = segmentBoundaries.findIndex(\n                        (boundary) =>\n                            mouseHorizontalCoordinate >=\n                                boundary.leftBoundary &&\n                            mouseHorizontalCoordinate < boundary.rightBoundary\n                    );\n\n                    if (newHoveredIndex !== this._hoveredIndex) {\n                        this._hoveredIndex =\n                            newHoveredIndex === -1 ? null : newHoveredIndex;\n                        this.chartManagerService?.setHoverState(\n                            this._hoveredIndex,\n                            this.chartId,\n                            segmentBoundaries[this._hoveredIndex as number]\n                        );\n                        this.chart.draw();\n                    }\n                },\n\n                beforeDraw: () => {\n                    if (this._hoveredIndex !== null) {\n                        const {\n                            chartArea,\n                            scales: { x: xScale },\n                        } = this.chart;\n\n                        ChartHelper.highlightSegment(\n                            this.chartContext,\n                            xScale as CategoryScale | LinearScale,\n                            chartArea,\n                            this._chartConfig.height,\n                            this._hoveredIndex\n                        );\n\n                        const activeData =\n                            this._chartConfig?.chartData?.datasets?.map(\n                                (data, index) => {\n                                    return {\n                                        datasetIndex: index,\n                                        index: this._hoveredIndex,\n                                    };\n                                }\n                            );\n\n                        if (activeData.length) {\n                            this.chart.setActiveElements(\n                                activeData as ActiveDataPoint[]\n                            );\n                        }\n                    }\n                },\n            },\n            {\n                id: ChartPluginIdsStringEnum.BORDER_BOTTOM_LINE_CHART,\n                beforeDraw: () => {\n                    if (this._chartConfig?.showBottomLineOnLineChart) {\n                        const {\n                            ctx,\n                            data,\n                            chartArea,\n                            scales: { x: xScale },\n                        } = this.chart;\n                        const dataset = data.datasets[0];\n\n                        const firstIndex = 0;\n                        const lastIndex = dataset.data.length - 1;\n\n                        const firstValue = dataset.data[firstIndex];\n                        const lastValue = dataset.data[lastIndex];\n\n                        if (\n                            firstValue !== undefined &&\n                            lastValue !== undefined\n                        ) {\n                            const xStart = xScale.getPixelForValue(firstIndex);\n\n                            const xEnd = xScale.getPixelForValue(lastIndex);\n                            const yBottom = chartArea.bottom;\n\n                            ctx.save();\n                            ctx.strokeStyle =\n                                ChartColorsStringEnum.BORDER_BOTTOM_LINE_CHART_COLOR;\n                            ctx.lineWidth = 1;\n                            ctx.beginPath();\n                            ctx.moveTo(xStart, yBottom);\n                            ctx.lineTo(xEnd, yBottom);\n                            ctx.stroke();\n                            ctx.restore();\n                        }\n                    }\n                },\n            },\n        ];\n\n        if (this._chartConfig.chartType === eChartTypesString.DOUGHNUT)\n            this.plugins = [\n                ...this.plugins,\n                {\n                    id: 'doughnut-label',\n                    beforeDatasetDraw: (chart: Chart) => {\n                        this._chartConfig.centerLabels?.map(\n                            (label: IChartCenterLabel, indx: number) => {\n                                ChartHelper.drawDoughnutLegend(\n                                    chart,\n                                    {\n                                        indx,\n                                        offsetTop: label.position?.top || 0,\n                                    },\n                                    label.value,\n                                    label.fontSize,\n                                    label.color\n                                );\n                            }\n                        );\n                    },\n                },\n            ];\n    }\n\n    private updateChartAnnotations(item: IBaseDataset, indx: number): void {\n        if (!this._chartConfig.annotations?.length) return;\n\n        this._chartConfig.annotations?.forEach(\n            (annotation: IChartAnnotation, key: number) => {\n                this._chartConfig.chartOptions.plugins = {\n                    ...this._chartConfig.chartOptions.plugins,\n                    annotation: {\n                        ...this._chartConfig.chartOptions?.plugins?.annotation,\n                        annotations: {\n                            ...this._chartConfig.chartOptions?.plugins\n                                ?.annotation?.annotations,\n                            [`${item.label}-${indx}-${key}`]: {\n                                id:\n                                    annotation.id ||\n                                    `annotation-${indx}-${key}`,\n                                type: annotation.type,\n                                scaleID: annotation.axis || item.yAxisID,\n                                value: annotation.value || item.shiftValue,\n                                borderColor:\n                                    annotation.color ||\n                                    ChartColorsStringEnum.BORDER_BOTTOM_LINE_CHART_COLOR,\n                                borderWidth: annotation.borderWidth || 2,\n                                borderDash: annotation.borderDash || [0, 0],\n                            },\n                        },\n                    },\n                };\n            }\n        );\n        this.chart.update();\n    }\n\n    private setMultipleYAxis(chartData: IChartData<ILineDataset>): void {\n        chartData.datasets.forEach((dataset, index) => {\n            if (\n                dataset.type === eChartTypesString.LINE ||\n                dataset.type === eChartTypesString.BAR\n            ) {\n                const yAxisID = this._chartConfig.isMultiYAxis\n                    ? `y-axis-${index}`\n                    : dataset.yAxisID || 'y-axis-0';\n\n                // Detect if the dataset is all 0\n                const isAllZeroDataset = (dataset.data as number[]).every(\n                    (val: number) => val === 0\n                );\n\n                let minValue = ChartHelper.calculateMinValue(\n                    dataset.data as number[]\n                );\n                let maxValue = ChartHelper.calculateMaxValue(\n                    dataset.data as number[]\n                );\n                const padding = maxValue * 0.03;\n\n                // Adjust scaling for all 0 datasets\n                if (isAllZeroDataset) {\n                    minValue = 0;\n                    maxValue = 1;\n                } else {\n                    minValue =\n                        maxValue === minValue ? minValue - 0.1 : minValue;\n                    maxValue =\n                        maxValue === minValue\n                            ? maxValue + 0.1\n                            : maxValue + padding;\n                }\n\n                this._chartConfig.chartOptions.scales = {\n                    ...this._chartConfig.chartOptions.scales,\n                    [yAxisID]: {\n                        display: false,\n                        beginAtZero: true,\n                        min: minValue,\n                        max: maxValue,\n                        stacked: this._chartConfig.isStacked,\n                    },\n                };\n\n                chartData.datasets[index] = {\n                    ...dataset,\n                    yAxisID,\n                };\n            }\n        });\n    }\n\n    private removeVerticalDashedLine(): void {\n        const annotations =\n            this._chartConfig?.chartOptions?.plugins?.annotation?.annotations;\n\n        const key: string = ChartPluginIdsStringEnum.X_DASHED;\n\n        if (annotations)\n            delete this._chartConfig?.chartOptions?.plugins?.annotation\n                ?.annotations?.[key as keyof typeof annotations];\n\n        this.chart.update();\n    }\n\n    private setVerticalDashedAnnotationLine(\n        event: ChartEvent,\n        color?: string\n    ): void {\n        const { left, right } = this.chart.chartArea;\n\n        const xScale = this.chart.scales[EChartEventProperties.X] as\n            | CategoryScale\n            | LinearScale;\n\n        const tickPositions = this._chartConfig?.chartData?.labels?.map(\n            (label: string, index: number) => {\n                return xScale.getPixelForValue(index);\n            }\n        );\n        const segmentBoundaries = tickPositions.map((tickPos, index) => {\n            const leftBoundary =\n                index === 0 ? left : (tickPos + tickPositions[index - 1]) / 2;\n            const rightBoundary =\n                index === tickPositions.length - 1\n                    ? right\n                    : (tickPos + tickPositions[index + 1]) / 2;\n\n            return { leftBoundary, rightBoundary };\n        });\n\n        const nativeEvent = event.native as MouseEvent;\n\n        const boundingRect = this.chart.canvas.getBoundingClientRect();\n        const mouseHorizontalCoordinate =\n            nativeEvent.clientX - boundingRect.left;\n\n        const newHoveredIndex = segmentBoundaries.findIndex(\n            (boundary) =>\n                mouseHorizontalCoordinate >= boundary.leftBoundary &&\n                mouseHorizontalCoordinate < boundary.rightBoundary\n        );\n\n        if (newHoveredIndex >= 0) {\n            this._chartConfig.chartOptions.plugins = {\n                ...this._chartConfig.chartOptions.plugins,\n                annotation: {\n                    ...this._chartConfig.chartOptions?.plugins?.annotation,\n                    annotations: {\n                        ...this._chartConfig.chartOptions?.plugins?.annotation\n                            ?.annotations,\n                        [ChartPluginIdsStringEnum.X_DASHED]: {\n                            ...EChartAnnotation.X_DASHED,\n                            value: newHoveredIndex,\n                            borderColor:\n                                color ||\n                                ChartColorsStringEnum.BORDER_BOTTOM_LINE_CHART_COLOR,\n                        },\n                    },\n                },\n            };\n        }\n\n        this.hoveredIndex.emit(newHoveredIndex);\n        this.chart.update();\n    }\n\n    public removeVerticalDashedLineAndFocus(): void {\n        this.hoveredIndex.emit(null);\n        if (this._chartConfig.hasVerticalDashedAnnotation)\n            this.removeVerticalDashedLine();\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@if (isChartDataAvailable) {\n    <ng-container\n        *ngTemplateOutlet=\"\n            legend;\n            context: {\n                config: legendData,\n            }\n        \"\n    ></ng-container>\n    <div\n        [ngStyle]=\"{\n            height: _chartConfig?.height + 'px',\n            width: _chartConfig?.width + '%',\n        }\"\n    >\n        <canvas #chartCanvas></canvas>\n    </div>\n} @else {\n    <div\n        class=\"d-flex justify-content-center align-items-center\"\n        [ngStyle]=\"{\n            height: _chartConfig?.height + 'px',\n            width: _chartConfig?.width + '%',\n        }\"\n    >\n        <svg-icon\n            [src]=\"_chartConfig.noDataImage\"\n            alt=\"No data available\"\n            class=\"no-data-svg\"\n        ></svg-icon>\n    </div>\n}\n<ng-template #legend let-config=\"config\">\n    @if (config?.data) {\n        <div\n            [ngClass]=\"config.hasHighlightedBackground && 'colored-background'\"\n        >\n            @if (config.title) {\n                <div class=\"legend-title font-size-14 ca-font-extra-bold\">\n                    {{ config.title }}\n                </div>\n            }\n            <div class=\"legend-wrapper d-flex\">\n                @for (\n                    item of config.data;\n                    let index = $index;\n                    track $index\n                ) {\n                    <div class=\"w-100\">\n                        <div\n                            class=\"d-flex align-content-center text-size-11 ca-font-bold\"\n                        >\n                            <span>{{ item?.name }}</span>\n                            <span\n                                [ngClass]=\"\n                                    item?.isLineIndicator\n                                        ? 'line-indicator'\n                                        : 'circle-indicator'\n                                \"\n                                [ngStyle]=\"{ background: item?.color }\"\n                            ></span>\n                        </div>\n                        <div class=\"text-size-18\">\n                            {{\n                                (item?.value !== 0\n                                    ? (item?.value | thousandSeparator)\n                                    : 0\n                                ) | unitPosition: item?.unit\n                            }}\n                        </div>\n                    </div>\n                }\n            </div>\n        </div>\n    }\n</ng-template>\n","export class CaTooltipListConstants {\n    static VALUE_PERCENTAGE_DELIMITER = '·';\n}","import { Component, Input } from '@angular/core';\n\n//Models\nimport { ITooltipList } from './models';\nimport { CommonModule } from '@angular/common';\n\n//Pipes\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\nimport { NFormatterPipe } from '../../pipes/n-formatter.pipe';\nimport { TruncatePipe } from '../../pipes/truncate-string.pipe';\n\n//Constants\nimport { CaTooltipListConstants } from './utils/constants';\n\n@Component({\n    selector: 'app-ca-tooltip-list',\n    templateUrl: './ca-tooltip-list.component.html',\n    styleUrls: ['./ca-tooltip-list.component.scss'],\n    imports: [CommonModule, NFormatterPipe, FormatCurrencyPipe, TruncatePipe]\n})\nexport class CaTooltipListComponent {\n    @Input() tooltipList: ITooltipList | null = null;\n\n    public constants = CaTooltipListConstants;\n    public truncateLength: number = 18;\n\n    get isSingleItemSelected(): boolean {\n        return this.tooltipList?.selectedItems?.length === 1;\n    }\n\n    get isLessThanFourItemsSelected(): boolean {\n        return (\n            !this.tooltipList?.selectedItems ||\n            this.tooltipList?.selectedItems?.length < 4\n        );\n    }\n}\n","<ng-container\n    [ngTemplateOutlet]=\"tooltipTemplate\"\n    [ngTemplateOutletContext]=\"{ tooltipList }\"\n>\n</ng-container>\n\n<ng-template #tooltipTemplate let-tooltipList=\"tooltipList\">\n    <div\n        class=\"tooltip-list-container\"\n        [ngClass]=\"isSingleItemSelected ? 'width-small' : 'width-medium'\"\n    >\n        <ng-container\n            [ngTemplateOutlet]=\"tooltipHeader\"\n            [ngTemplateOutletContext]=\"{ tooltipList }\"\n        >\n        </ng-container>\n        <div class=\"d-flex flex-column tooltip-list-body-table\">\n            @for (\n                item of tooltipList.selectedItems;\n                let indx = $index;\n                track $index\n            ) {\n                <ng-container\n                    [ngTemplateOutlet]=\"tableItemTemplate\"\n                    [ngTemplateOutletContext]=\"{ item }\"\n                >\n                </ng-container>\n            }\n\n            @for (\n                item of tooltipList.otherItems;\n                let indx = $index;\n                track $index\n            ) {\n                <ng-container\n                    [ngTemplateOutlet]=\"tableItemTemplate\"\n                    [ngTemplateOutletContext]=\"{ item }\"\n                >\n                </ng-container>\n            }\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #tooltipHeader let-tooltipList=\"tooltipList\">\n    <div class=\"tooltip-list-header\">\n        <span>{{ tooltipList.date }}</span>\n    </div>\n</ng-template>\n\n<ng-template #tableItemTemplate let-item=\"item\">\n    <div\n        class=\"w-100\"\n        [ngClass]=\"{ 'd-flex align-items-center': !isSingleItemSelected }\"\n        [ngStyle]=\"{\n            height: isSingleItemSelected ? '38px' : '22px',\n        }\"\n    >\n        <div class=\"d-flex align-items-center\">\n            <span\n                class=\"tooltip-list-item-dot\"\n                [style.backgroundColor]=\"item.color\"\n            ></span>\n            <span class=\"tooltip-list-item-label\">{{\n                item.label | truncate: truncateLength\n            }}</span>\n        </div>\n        <span\n            class=\"tooltip-list-item-value d-block\"\n            [class.text-end]=\"!isSingleItemSelected\"\n            >{{\n                item.isCurrency\n                    ? (item.value | formatCurrency: item.isCurrency)\n                    : (item.value | nFormatter)\n            }}</span\n        >\n        @if (item.percentage) {\n            <span\n                class=\"tooltip-list-item-percentage\"\n                [class.text-end]=\"!isSingleItemSelected\"\n                >{{ item.percentage }}</span\n            >\n        }\n    </div>\n</ng-template>\n","import {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    Input,\n    ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//Services\nimport { ChartManagerService } from './services/chart-manager.service';\n\n//Models\nimport {\n    IChartBoundaries,\n    IChartConfiguration,\n    IChartDatasetHover,\n} from '../ca-chart/models';\nimport { ITooltipList, ITooltipListItem } from '../ca-tooltip-list/models';\n\n//Enums\nimport { ChartColorsStringEnum } from '../ca-chart/enums';\n\n//Components\nimport { CaChartComponent } from '../ca-chart/ca-chart.component';\nimport { CaTooltipListComponent } from '../ca-tooltip-list/ca-tooltip-list.component';\n\n@Component({\n    selector: 'app-ca-chart-manager',\n    templateUrl: './ca-chart-manager.component.html',\n    styleUrls: ['./ca-chart-manager.component.scss'],\n    imports: [\n        CommonModule,\n        //Components\n        CaChartComponent,\n        CaTooltipListComponent,\n    ],\n    providers: [ChartManagerService]\n})\nexport class CaChartManagerComponent {\n    @Input() chartConfigs: IChartConfiguration[] = [];\n    @Input() tooltipLables: string[] = [];\n    @Input() chartDatasetHover: IChartDatasetHover | null = null;\n\n    @ViewChild('chartManagerContainer') chartManagerContainer!: ElementRef;\n    @ViewChild('tooltipContainer') tooltipContainer!: ElementRef;\n\n    public hoveredIndex: number | null = null;\n    public hoveredChartId: string | null = null;\n    public tooltipList: ITooltipList | null = null;\n    public tooltipPosition = { x: 0, y: 0 };\n\n    constructor(\n        private chartManagerService: ChartManagerService,\n        private cdr: ChangeDetectorRef\n    ) {\n        this.chartManagerService.hoverState$.subscribe(\n            ({ index, chartId, boundaries }) => {\n                this.hoveredIndex = index;\n                this.hoveredChartId = chartId;\n                this.updateTooltipList(this.hoveredIndex, boundaries);\n                this.cdr.markForCheck();\n            }\n        );\n    }\n\n    public calculateTooltipPosition(boundaries: IChartBoundaries): void {\n        const containerRect =\n            this.chartManagerContainer.nativeElement.getBoundingClientRect();\n\n        let x = boundaries.rightBoundary + 4;\n        let y = containerRect.top;\n\n        if (this.tooltipContainer) {\n            const tooltipWidth =\n                this.tooltipContainer.nativeElement.offsetWidth;\n            const tooltipHeight =\n                this.tooltipContainer.nativeElement.offsetHeight;\n            y = containerRect.height / 2 - tooltipHeight / 2;\n\n            if (x + tooltipWidth > containerRect.width)\n                x = boundaries.leftBoundary - tooltipWidth - 4;\n        }\n\n        this.tooltipPosition = { x, y };\n    }\n\n    private updateTooltipList(\n        index: number | null,\n        boundaries: IChartBoundaries | undefined\n    ): void {\n        if (index === null || !this.chartConfigs.length) {\n            this.tooltipList = null;\n            return;\n        }\n\n        if (boundaries) this.calculateTooltipPosition(boundaries);\n\n        const selectedItems: ITooltipListItem[] = [];\n        const otherItems: ITooltipListItem[] = [];\n\n        this.chartConfigs.forEach((config) => {\n            const visibleDatasets = config.chartData.datasets.filter(\n                (dataset) => !dataset.hidden\n            );\n\n            visibleDatasets.forEach((dataset) => {\n                const rawData = dataset.data[index];\n                const value = Array.isArray(rawData) ? rawData[0] : rawData;\n\n                const tooltipItem: ITooltipListItem = {\n                    label: dataset.label,\n                    value: value || 0,\n                    isCurrency: dataset.isCurrency || false,\n                    color: dataset.borderColor || ChartColorsStringEnum.WHITE,\n                };\n\n                if (config.isTooltipItemInSelectedItems)\n                    selectedItems.push(tooltipItem);\n                else otherItems.push(tooltipItem);\n            });\n        });\n\n        this.tooltipList = {\n            date: this.tooltipLables[index],\n            selectedItems: selectedItems,\n            otherItems: otherItems,\n            showPercentage: false,\n        };\n    }\n}\n","<div\n    #chartManagerContainer\n    class=\"chart-manager-container\"\n>\n    @for (chartConfig of chartConfigs; let i = $index; track $index) {\n        <app-ca-chart\n            [chartConfig]=\"chartConfig\"\n            [chartId]=\"'chart-' + i\"\n            [chartDatasetHover]=\"\n                chartConfig?.isDatasetHoverEnabled ? chartDatasetHover : null\n            \"\n        >\n        </app-ca-chart>\n    }\n\n    @if (hoveredIndex !== null) {\n        <div\n            #tooltipContainer\n            class=\"tooltip-container\"\n            [style.top.px]=\"tooltipPosition.y\"\n            [style.left.px]=\"tooltipPosition.x\"\n        >\n            <app-ca-tooltip-list [tooltipList]=\"tooltipList\">\n            </app-ca-tooltip-list>\n        </div>\n    }\n</div>\n","export enum SortDropdownEnum {\n    // Sort directions\n    DESC = 'desc',\n    ASC = 'asc',\n\n    // Dropdown positions\n    TOP = 'top',\n    BOTTOM = 'bottom',\n    RIGHT = 'right',\n    RIGHT_TOP = 'right-top',\n}\n","export class SortDropdownSvgRoutes {\n    static sortDropArrowRoute: string =\n        'assets/ca-components/svg/input/ic_arrow_down_updated.svg';\n    static sortDirectionRouteASC: string =\n        'assets/ca-components/svg/common/ic_arrow_sort.svg';\n    static sortDirectionRouteDESC: string =\n        'assets/ca-components/svg/common/ic_sort_arrow_desc.svg';\n    static checkRoute: string =\n        'assets/ca-components/svg/common/ic_checkmark.svg';\n}\n","import {\n    Component,\n    Input,\n    Output,\n    OnDestroy,\n    EventEmitter,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    NgbPopoverModule,\n    NgbPopover,\n    NgbTooltipModule,\n} from '@ng-bootstrap/ng-bootstrap';\n\n// Svg Routes\nimport { SortDropdownSvgRoutes } from './utils/svg-routes';\n\n// Models\nimport { SortColumn } from './models';\n\n// Enums\nimport { SortDropdownEnum } from './enums';\nimport { eColor, eStringPlaceholder } from '../../enums';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Types\nimport { sortDirectionType } from './types';\n\n// Interfaces\nimport { ISortDropdownAction } from './interfaces';\n\n@Component({\n    selector: 'app-ca-sort-dropdown',\n    templateUrl: './ca-sort-dropdown.component.html',\n    styleUrls: ['./ca-sort-dropdown.component.scss'],\n    imports: [\n        // Modules\n        AngularSvgIconModule,\n        NgbPopoverModule,\n        NgbTooltipModule,\n        CommonModule,\n        // Components\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaSortDropdownComponent implements OnDestroy {\n    @Input() set sortColumns(values: SortColumn[]) {\n        this._sortColumns = values;\n\n        if (!this.activeSortColumn) this.sortChangeEvent(this._sortColumns[0]);\n    }\n    @Input() activeSortColumn!: SortColumn;\n    @Input() dropdownPosition: string = SortDropdownEnum.RIGHT_TOP;\n    @Input() dropdownWidth: number = 167;\n    @Input() isDarkVariation: boolean = false;\n    @Input() isLargeVariation: boolean = false;\n    @Input() customPopoverClass: string = eStringPlaceholder.EMPTY;\n    @Output() onSortChange: EventEmitter<ISortDropdownAction> =\n        new EventEmitter();\n    @Output() isSortPopoverOpened: EventEmitter<boolean> = new EventEmitter();\n    private destroy$ = new Subject<void>();\n\n    public sortDropdownSvgRoutes = SortDropdownSvgRoutes;\n\n    public sortDirection: SortDropdownEnum.ASC | SortDropdownEnum.DESC =\n        SortDropdownEnum.DESC;\n\n    public sortDirectionsRotate: sortDirectionType = {\n        asc: SortDropdownEnum.DESC,\n        desc: SortDropdownEnum.ASC,\n    };\n\n    public sortDropdownPopover: NgbPopover | null = null;\n\n    public isDropdownOpen: boolean = false;\n\n    public _sortColumns: SortColumn[] = [];\n\n    public eStringPlaceholder = eStringPlaceholder;\n    public eColor = eColor;\n\n    public sortDirectionChange(): void {\n        this.sortDirection = this.sortDirectionsRotate[this.sortDirection];\n\n        this.sortChangeEvent();\n    }\n\n    public sortChangeEvent(column?: SortColumn): void {\n        if (column) this.activeSortColumn = column;\n\n        const directionSort = this.sortDirection\n            ? this.activeSortColumn?.sortName +\n              (this.sortDirection[0]?.toUpperCase() +\n                  this.sortDirection?.substr(1).toLowerCase())\n            : '';\n\n        this.onSortChange.emit({\n            column: this.activeSortColumn,\n            sortName: directionSort,\n            direction: this.sortDirection,\n        });\n\n        if (this.sortDropdownPopover?.isOpen())\n            this.openClosePopover(this.sortDropdownPopover);\n    }\n\n    public emitPopoverState(): void {\n        this.isSortPopoverOpened.emit(this.isDropdownOpen);\n    }\n\n    public onHide(): void {\n        this.isDropdownOpen = false;\n        this.emitPopoverState();\n    }\n\n    public openClosePopover(popover: NgbPopover): void {\n        this.sortDropdownPopover = popover;\n\n        this.sortDropdownPopover.isOpen()\n            ? this.sortDropdownPopover.close()\n            : this.sortDropdownPopover.open();\n\n        this.isDropdownOpen = this.sortDropdownPopover.isOpen();\n        this.emitPopoverState();\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","@let popoverClass =\n    'sort-dropdown-popover ' +\n    dropdownPosition +\n    eStringPlaceholder.WHITESPACE +\n    customPopoverClass;\n\n<div\n    class=\"sort-dropdown-main-container d-flex align-items-center gap-1\"\n    [class.onDarkBackground]=\"isDarkVariation\"\n    [class.active]=\"isDropdownOpen\"\n    #t2=\"ngbPopover\"\n    [ngbPopover]=\"sortDropdownPopover\"\n    [placement]=\"dropdownPosition\"\n    [triggers]=\"'manual'\"\n    autoClose=\"outside\"\n    [popoverClass]=\"popoverClass\"\n    (hidden)=\"onHide()\"\n>\n    @let textSizeClass = isLargeVariation ? 'text-size-14' : 'text-size-11';\n    @let textColorClass =\n        isDropdownOpen ? 'text-color-white' : 'text-color-black';\n\n    <div\n        class=\"sort-column-name-container d-flex align-items-center p-l-6\"\n        [ngClass]=\"isLargeVariation ? 'h-26' : 'h-18'\"\n        (click)=\"openClosePopover(t2)\"\n    >\n        <div\n            class=\"sort-column-name-text ca-font-medium\"\n            [ngClass]=\"[textSizeClass, textColorClass]\"\n            ngbTooltip\n            [mainCaTooltip]=\"'Sort By'\"\n            [tooltipBackground]=\"\n                isDarkVariation ? eColor.LIGHT_GREY : eColor.BLACK\n            \"\n            [tooltipColor]=\"isDarkVariation ? eColor.DARK_GREY : eColor.WHITE\"\n            position=\"bottom\"\n        >\n            {{ activeSortColumn?.name }}\n        </div>\n    </div>\n    <div\n        class=\"sort-arrows-container d-flex align-items-center justify-content-center background-hover-blue-16\"\n        [ngClass]=\"{\n            'w-26 h-26': isLargeVariation,\n            'w-18 h-18': !isLargeVariation,\n            'svg-hover-blue-15': !isDropdownOpen,\n        }\"\n        (click)=\"!isDropdownOpen ? sortDirectionChange() : {}\"\n        ngbTooltip\n        [mainCaTooltip]=\"sortDirection === 'asc' ? 'Ascending' : 'Descending'\"\n        [disableTooltip]=\"isDropdownOpen\"\n        [tooltipBackground]=\"isDarkVariation ? eColor.LIGHT_GREY : eColor.BLACK\"\n        [tooltipColor]=\"isDarkVariation ? eColor.DARK_GREY : eColor.WHITE\"\n        position=\"bottom\"\n    >\n        @if (isDropdownOpen) {\n            @let svgSizeClass =\n                isLargeVariation ? 'svg-size-14' : 'svg-size-10';\n\n            <svg-icon\n                class=\"dropdown-arrow d-flex\"\n                [ngClass]=\"svgSizeClass\"\n                [class.rotate-right]=\"\n                    ['right', 'right-top'].includes(dropdownPosition)\n                \"\n                [src]=\"sortDropdownSvgRoutes.sortDropArrowRoute\"\n            ></svg-icon>\n        } @else {\n            @let svgSizeClass =\n                isLargeVariation ? 'svg-size-18' : 'svg-size-14';\n\n            <svg-icon\n                class=\"direction-arrow d-flex svg-fill-blue-13\"\n                [ngClass]=\"svgSizeClass\"\n                [class.ascending-icon]=\"sortDirection === 'asc'\"\n                [src]=\"sortDropdownSvgRoutes.sortDirectionRouteDESC\"\n            ></svg-icon>\n        }\n    </div>\n</div>\n\n<ng-template #sortDropdownPopover>\n    <div\n        class=\"sort-popover d-flex flex-column gap-1\"\n        [ngStyle]=\"{ width: dropdownWidth + 'px' }\"\n        [ngClass]=\"{ 'small-variation': !isLargeVariation }\"\n    >\n        @for (column of _sortColumns; let indx = $index; track indx) {\n            @let isActiveSortColumn = column.name === activeSortColumn?.name;\n            <div\n                class=\"sort-popover-item d-flex align-items-center justify-content-between\"\n                [ngClass]=\"{\n                    active: isActiveSortColumn,\n                    disabled: column.isDisabled,\n                }\"\n                (click)=\"!column.isDisabled ? sortChangeEvent(column) : {}\"\n            >\n                @let textColorClass =\n                    column.isDisabled ? 'text-color-muted' : 'text-color-white';\n                @let textWeightClass =\n                    isActiveSortColumn ? 'ca-font-bold' : 'ca-font-regular';\n\n                <div\n                    class=\"sort-popover-item-text\"\n                    [ngClass]=\"[textColorClass, textWeightClass]\"\n                >\n                    {{ column.name }}\n                </div>\n\n                <div class=\"check-icon-container d-flex\">\n                    @if (isActiveSortColumn) {\n                        <svg-icon\n                            class=\"check-icon d-flex svg-size-14\"\n                            [src]=\"sortDropdownSvgRoutes.checkRoute\"\n                        ></svg-icon>\n                    }\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    TemplateRef,\n} from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule, SvgIconComponent } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// Forms\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n// Models\nimport { SortColumn } from '../ca-sort-dropdown/models/sort-column.model';\n\n// Types\nimport { FilterDropdownTypes, FilterSortingKey } from './types';\n\n// Enums\nimport { SortDropdownEnum } from '../ca-sort-dropdown/enums';\n\n// Interface\nimport {\n    IFilterAction,\n    IFilterDropdownConfiguration,\n    IFilterDropdownList,\n    ISortEmit,\n} from './interface';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaSortDropdownComponent } from '../ca-sort-dropdown/ca-sort-dropdown.component';\n\n// Utils\nimport { CaFiltersSvgRoutes } from '../ca-filters/utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-filter-dropdown',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        FormsModule,\n        ReactiveFormsModule,\n        // Components\n        SvgIconComponent,\n        CaAppTooltipV2Component,\n        CaSortDropdownComponent,\n    ],\n    templateUrl: './ca-filter-dropdown.component.html',\n    styleUrl: './ca-filter-dropdown.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaFilterDropdownComponent {\n    // Inputs\n    @Input() activeCount: number = 0;\n    @Input() type!: FilterDropdownTypes;\n    @Input() config!: IFilterDropdownConfiguration;\n    @Input() bodyTemplate!: TemplateRef<any>;\n    @Input() isFormChanged: boolean = false;\n    @Input() appliedFiltersCount: number = 0;\n    @Input() customTitle: string | false = false;\n    @Input() customCancelButton: string | false = false;\n    @Input() isDisabled!: boolean;\n    @Input() svgCustomSizeClass: string = 'svg-size-16';\n\n    // Outputs\n    @Output() setFilter: EventEmitter<IFilterAction> = new EventEmitter();\n    @Output() handleFiltersClear: EventEmitter<boolean> = new EventEmitter();\n    @Output() resetFilterState: EventEmitter<boolean> = new EventEmitter();\n    @Output() sorting: EventEmitter<ISortEmit> = new EventEmitter();\n\n    // Public\n    public selectedList: IFilterDropdownList[] = [];\n    public unselectedList: IFilterDropdownList[] = [];\n    public activeSortType!: SortColumn;\n    public filterPopoverOpen: NgbPopover | null = null;\n    public caFiltersSvgRoutes = CaFiltersSvgRoutes;\n    public isClosingManually = false;\n\n    public handleSortClick(event: {\n        column: SortColumn;\n        sortName: string;\n        direction: string;\n    }): void {\n        this.activeSortType = event.column;\n        this.sortLists(\n            this.activeSortType?.sortName as FilterSortingKey,\n            event.direction\n        );\n    }\n\n    public openClosePopover(popover: NgbPopover): void {\n        this.filterPopoverOpen = popover;\n        if (!this.isDisabled)\n            this.filterPopoverOpen.isOpen()\n                ? this.filterPopoverOpen.close()\n                : this.filterPopoverOpen.open();\n    }\n\n    public applyFilters(): void {\n        this.setFilter.emit();\n        this.isClosingManually = true;\n        this.filterPopoverOpen?.close();\n    }\n\n    public onFilterClear(): void {\n        this.handleFiltersClear.emit(true);\n\n        if (this.customCancelButton) {\n            return;\n        }\n        this.isClosingManually = true;\n        this.filterPopoverOpen?.close();\n    }\n\n    public onClickOutside(): void {\n        if (this.isClosingManually) {\n            this.isClosingManually = false;\n            return;\n        }\n        this.resetFilterState.emit(true);\n    }\n\n    private sortLists(sortKey: FilterSortingKey, direction: string): void {\n        const directionMultiplier = direction === SortDropdownEnum.ASC ? 1 : -1;\n\n        this.sorting.emit({\n            sortKey,\n            directionMultiplier,\n        });\n    }\n}\n","@let isFilterPopoverOpened = filterPopoverOpen.isOpen();\n@let isFilterSelected = appliedFiltersCount;\n\n<div\n    class=\"d-flex align-items-center justify-content-center br-2 filter-dropdown-button\"\n    [ngClass]=\"{\n        'background-black': isFilterPopoverOpened && !isDisabled,\n        'background-hover-bw2':\n            !isFilterSelected && !isFilterPopoverOpened && !isDisabled,\n        'background-blue-14 background-hover-blue-15':\n            isFilterSelected && !isDisabled,\n        'filter-dropdown-count-hover': appliedFiltersCount && !isDisabled,\n    }\"\n>\n    <div\n        #filterPopoverOpen=\"ngbPopover\"\n        triggers=\"manual\"\n        container=\"body\"\n        [autoClose]=\"'outside'\"\n        [ngbPopover]=\"popoverContent\"\n        [placement]=\"['bottom-left', 'bottom-right']\"\n        (hidden)=\"onClickOutside()\"\n    >\n        <div\n            ngbTooltip\n            [mainCaTooltip]=\"\n                isFilterPopoverOpened ? 'Close Filter' : config.tooltipText\n            \"\n            position=\"bottom\"\n            tooltipBackground=\"{{\n                isFilterPopoverOpened ? '#CCCCCC' : '#2F2F2F'\n            }}\"\n            tooltipColor=\"{{ isFilterPopoverOpened ? '#2F2F2F' : '#FFFFFF' }}\"\n            tooltipTextAlign=\"center\"\n            (click)=\"openClosePopover(filterPopoverOpen)\"\n        >\n            <svg-icon\n                [src]=\"config.icon\"\n                class=\"filter-dropdown-icon d-flex align-items-center justify-content-center {{ svgCustomSizeClass }}\"\n                [ngClass]=\"{\n                    'svg-fill-white-4 svg-hover-white':\n                        isFilterPopoverOpened &&\n                        !isFilterSelected &&\n                        !isDisabled,\n                    'svg-fill-blue-17 svg-hover-white':\n                        isFilterSelected && !isDisabled,\n                    'svg-hover-black svg-fill-muted':\n                        !isFilterSelected &&\n                        !isFilterPopoverOpened &&\n                        !isDisabled,\n                    'svg-fill-light-grey-6': isDisabled,\n                    'c-pointer': !isDisabled,\n                }\"\n            ></svg-icon>\n        </div>\n    </div>\n\n    @if (appliedFiltersCount) {\n        <div\n            class=\"filter-dropdown-count d-flex align-items-center justify-content-center m-r-4\"\n        >\n            <span\n                class=\"text-color-white text-size-11 ca-font-extra-bold filter-dropdown-count-value\"\n                >{{ appliedFiltersCount }}</span\n            >\n\n            <div\n                class=\"align-items-center justify-content-center c-pointer filter-dropdown-count-remove\"\n                ngbTooltip\n                mainCaTooltip=\"Remove Filter\"\n                position=\"bottom\"\n                tooltipBackground=\"#424242\"\n                tooltipColor=\"#FFFFFF\"\n                tooltipTextAlign=\"center\"\n                (click)=\"onFilterClear()\"\n            >\n                <svg-icon\n                    [src]=\"caFiltersSvgRoutes.removeSelectedValue\"\n                    class=\"svg-size-10 svg-fill-white-4 svg-hover-white d-flex\"\n                ></svg-icon>\n            </div>\n        </div>\n    }\n</div>\n\n<ng-template #popoverContent>\n    <div class=\"background-black-2 br-3 p-4 filter-dropdown-popover\">\n        <div\n            class=\"filter-dropdown-header p-x-4 p-t-2 p-b-4 d-flex justify-content-between align-items-center\"\n        >\n            <div\n                class=\"text-color-white text-size-11 ca-font-extra-bold d-flex align-items-center\"\n            >\n                <div class=\"m-r-4 d-flex align-items-center\">\n                    <span class=\"m-r-4\">{{\n                        customTitle || config.title\n                    }}</span>\n\n                    @if (config.isDisplayCount && activeCount) {\n                        <div\n                            class=\"text-color-white text-size-11 ca-font-bold background-black p-x-5 p-y-2 br-10 filter-dropdown-list-badge text-center\"\n                        >\n                            {{ activeCount }}\n                        </div>\n                    }\n                </div>\n            </div>\n\n            @if (config.sortColumns.length) {\n                <app-ca-sort-dropdown\n                    [sortColumns]=\"config.sortColumns\"\n                    [activeSortColumn]=\"config.sortColumns[0]\"\n                    [dropdownPosition]=\"'right-top'\"\n                    [dropdownWidth]=\"107\"\n                    [isDarkVariation]=\"true\"\n                    (onSortChange)=\"handleSortClick($event)\"\n                ></app-ca-sort-dropdown>\n            }\n        </div>\n\n        <ng-template [ngTemplateOutlet]=\"bodyTemplate\"></ng-template>\n        <div class=\"filter-dropdown-footer d-flex gap-1 m-t-4\">\n            <div\n                class=\"filter-dropdown-footer-button br-1 background-dark-2 text-size-11 ca-font-bold d-flex align-items-center justify-content-center c-pointer filter-dropdown-footer-button-clear\"\n                (click)=\"onFilterClear()\"\n            >\n                {{ customCancelButton || 'CLEAR ALL' }}\n            </div>\n            <div\n                class=\"filter-dropdown-footer-button br-1 background-dark-2 text-size-11 ca-font-bold d-flex align-items-center justify-content-center\"\n                [ngClass]=\"\n                    isFormChanged\n                        ? 'c-pointer filter-dropdown-footer-button-set'\n                        : ''\n                \"\n                (click)=\"applyFilters()\"\n            >\n                SET\n            </div>\n        </div>\n    </div>\n</ng-template>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n// Interface\nimport { IFilterAction, IFilterDropdownConfiguration } from '../../interface';\n\n// Enums\nimport { eFilterDropdownEnum } from '../../enums';\n\n\n@Component({\n    selector: 'lib-new-filter-base',\n    imports: [],\n    templateUrl: './new-filter-base.component.html',\n    styleUrl: './new-filter-base.component.css'\n})\nexport abstract class NewFilterBaseComponent implements OnInit {\n    private _entityType: string = '';\n\n    @Input()\n    set entityType(value: string) {\n        if (this._entityType && this._entityType !== value) {\n            this.clearValues(false);\n        }\n        this._entityType = value;\n    }\n    get entityType(): string {\n        return this._entityType;\n    }\n\n    @Output() setFilter: EventEmitter<IFilterAction> = new EventEmitter();\n\n    public eFilterDropdownEnum = eFilterDropdownEnum;\n    public config!: IFilterDropdownConfiguration;\n\n    constructor() {}\n\n    ngOnInit(): void {}\n\n    protected abstract clearValues(shouldEmit: boolean): void;\n}\n","<p>new-filter-base works!</p>\n","import { ICaInput } from \"../../../ca-input/config\";\n\nexport class FilterDropdownFields {\n    static stateSearch: ICaInput = {\n        name: 'search',\n        type: 'text',\n        label: 'Search State',\n        placeholderIcon: 'ic_search',\n        placeholderInsteadOfLabel: true,\n        blackInput: true\n    }\n\n    static dispatcher: ICaInput = {\n        name: 'search',\n        type: 'text',\n        label: 'Search Dispatcher',\n        placeholderIcon: 'ic_search',\n        placeholderInsteadOfLabel: true,\n        blackInput: true\n    }\n\n    static dateFrom: ICaInput = {\n        name: 'datepicker',\n        type: 'text',\n        label: 'From',\n        isDropdown: true,\n        placeholderIcon: 'date',\n        isRequired: true,\n        customClass: 'datetimeclass',\n    }\n\n    static dateTo: ICaInput = {\n        name: 'datepicker',\n        type: 'text',\n        label: 'To',\n        isDropdown: true,\n        placeholderIcon: 'date',\n        isRequired: true,\n        customClass: 'datetimeclass',\n    }\n}","import { Pipe, PipeTransform } from '@angular/core'; \nimport { InputChangeValue } from '../../ca-input/utils';\n\n@Pipe({\n  name: 'filterSearch',\n  standalone: true\n})\nexport class FilterSearchPipe implements PipeTransform {\n\n  transform<T>(items: T[], searchString: InputChangeValue, key: keyof T, sortKey?: keyof T, directionMultiplier: number = 1): T[] {\n    if (!items) return [];\n    \n    let filteredItems = searchString\n      ? items.filter(item =>\n          String(item[key]).toLowerCase().includes(searchString.toString().toLowerCase())\n        )\n      : [...items];\n\n    if (sortKey) {\n      filteredItems.sort((a, b) => {\n        if (a[sortKey] < b[sortKey]) return -1 * directionMultiplier;\n        if (a[sortKey] > b[sortKey]) return 1 * directionMultiplier;\n        return 0;\n      });\n    }\n\n    return filteredItems;\n  }\n\n}\n","import { SortColumn } from '../../ca-sort-dropdown/models/sort-column.model';\nimport { eFilterDropdownEnum } from '../enums/index';\nimport { IFilterDropdownConfiguration } from '../interface';\nimport { FilterDropdownFields } from '../utils/configs';\n\nconst countSort: SortColumn = { name: 'Count', sortName: 'count' };\nconst nameSort: SortColumn = { name: 'Name', sortName: 'name' };\n\nexport const FilterDropdownIconsConst: Record<\n    eFilterDropdownEnum,\n    IFilterDropdownConfiguration\n> = {\n    [eFilterDropdownEnum.DISPATCHER]: {\n        icon: 'assets/ca-components/svg/common/ic_user.svg',\n        title: 'DISPATCHER FILTER',\n        tooltipText: 'Dispatcher Filter',\n        filterType: eFilterDropdownEnum.DISPATCHER,\n        sortColumns: [countSort, nameSort],\n        isSearchActive: true,\n        searchTitle: 'Search Dispatcher',\n        formFieldConfig: FilterDropdownFields.dispatcher,\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.STATUS]: {\n        icon: 'assets/ca-components/svg/common/ic_broker-half-circle.svg',\n        title: 'STATUS FILTER',\n        tooltipText: 'Status Filter',\n        filterType: eFilterDropdownEnum.STATUS,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.PARKING]: {\n        icon: 'assets/ca-components/svg/common/ic_parking.svg',\n        title: 'PARKING FILTER',\n        tooltipText: 'Parking Filter',\n        filterType: eFilterDropdownEnum.PARKING,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.TRUCK_TYPE]: {\n        icon: 'assets/ca-components/svg/common/ic_truck.svg',\n        title: 'TRUCK TYPE FILTER',\n        tooltipText: 'Truck Type Filter',\n        filterType: eFilterDropdownEnum.TRUCK_TYPE,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.TRUCK]: {\n        icon: 'assets/ca-components/svg/common/ic_truck.svg',\n        title: 'TRUCK FILTER',\n        tooltipText: 'Truck Filter',\n        filterType: eFilterDropdownEnum.TRUCK_TYPE,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.TRAILER_TYPE]: {\n        icon: 'assets/ca-components/svg/common/ic_trailer.svg',\n        title: 'TRAILER TYPE FILTER',\n        tooltipText: 'Trailer Type Filter',\n        filterType: eFilterDropdownEnum.TRAILER_TYPE,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.TRAILER]: {\n        icon: 'assets/ca-components/svg/common/ic_trailer.svg',\n        title: 'TRAILER FILTER',\n        tooltipText: 'Trailer Filter',\n        filterType: eFilterDropdownEnum.TRAILER_TYPE,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.PM]: {\n        icon: 'assets/ca-components/svg/common/ic_default_pm.svg',\n        title: 'PM FILTER',\n        tooltipText: 'PM Filter',\n        filterType: eFilterDropdownEnum.PM,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.SERVICE]: {\n        icon: 'assets/ca-components/svg/common/ic_key-repair.svg',\n        title: 'SERVICE FILTER',\n        tooltipText: 'Service Filter',\n        filterType: eFilterDropdownEnum.SERVICE,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.FUEL_ITEM]: {\n        icon: 'assets/ca-components/svg/common/ic_funnel.svg',\n        title: ' FUEL ITEM FILTER',\n        tooltipText: 'Fuel Item Filter',\n        filterType: eFilterDropdownEnum.FUEL_ITEM,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.FUEL_STOP]: {\n        icon: 'assets/ca-components/svg/common/ic_fuel.svg',\n        title: ' FUEL STOP FILTER',\n        tooltipText: 'Fuel Stop Filter',\n        filterType: eFilterDropdownEnum.FUEL_STOP,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.TIME_FILTER]: {\n        icon: 'assets/ca-components/svg/common/ic_time.svg',\n        title: ' TIME FILTER',\n        tooltipText: 'Time Filter',\n        filterType: eFilterDropdownEnum.TIME_FILTER,\n        sortColumns: [],\n    },\n    [eFilterDropdownEnum.STATE]: {\n        icon: 'assets/ca-components/svg/common/ic_state.svg',\n        title: ' State / Province Filter',\n        tooltipText: 'State / Province Filter',\n        filterType: eFilterDropdownEnum.STATE,\n        sortColumns: [countSort, nameSort],\n    },\n    [eFilterDropdownEnum.DEPARTMENT]: {\n        icon: 'assets/ca-components/svg/common/ic_department.svg',\n        title: ' DEPARTMENT FILTER',\n        tooltipText: 'Department Filter',\n        filterType: eFilterDropdownEnum.DEPARTMENT,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.LABEL]: {\n        icon: 'assets/ca-components/svg/common/ic_label.svg',\n        title: ' LABEL FILTER',\n        tooltipText: 'Label Filter',\n        filterType: eFilterDropdownEnum.LABEL,\n        sortColumns: [countSort, nameSort],\n        isDisplayCount: true,\n    },\n    [eFilterDropdownEnum.LOAD_TYPE]: {\n        icon: 'assets/ca-components/svg/common/ic_load_type.svg',\n        title: ' LOAD TYPE FILTER',\n        tooltipText: 'Load Type Filter',\n        filterType: eFilterDropdownEnum.LOAD_TYPE,\n        sortColumns: [countSort, nameSort],\n    },\n};\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    Input,\n} from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';\n\n// Components\nimport { CaFilterDropdownComponent } from '../../ca-filter-dropdown.component';\nimport { SvgIconComponent } from 'angular-svg-icon';\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { NewFilterBaseComponent } from '../new-filter-base/new-filter-base.component';\n\n// Enums\nimport { eFilterDropdownEnum, eFilterSortingKey } from '../../enums';\n\n// Interface\nimport {\n    IFilterDropdownList,\n    ICountry,\n    ISortEmit,\n    IFilterDropdownConfiguration,\n} from '../../interface';\n\n// Svg routes\nimport { CaFiltersSvgRoutes } from '../../../ca-filters/utils/svg-routes';\n\n// Config\nimport { FilterDropdownFields } from '../../utils/configs';\n\n// Pipes\nimport { FilterSearchPipe } from '../../pipes/filter-search.pipe';\n\n// Const\nimport { FilterDropdownIconsConst } from '../../constant';\n\n@Component({\n    selector: 'app-ca-filter-state-dropdown',\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        CaFilterDropdownComponent,\n        CaInputComponent,\n        SvgIconComponent,\n        FilterSearchPipe,\n    ],\n    templateUrl: './ca-filter-state-dropdown.component.html',\n    styleUrl: './ca-filter-state-dropdown.component.scss'\n})\nexport class CaFilterStateDropdownComponent extends NewFilterBaseComponent {\n    @Input()\n    set states(value: ICountry[]) {\n        this.mapInitalStates(value);\n    }\n\n    @Input() isDisabled!: boolean;\n\n    public sortKey: keyof IFilterDropdownList = eFilterSortingKey.NAME;\n    public directionMultiplier: number = 1;\n    public caFiltersSvgRoutes = CaFiltersSvgRoutes;\n    public selectedList: IFilterDropdownList[] = [];\n    public unselectedList: IFilterDropdownList[] = [];\n    public searchForm = this.formBuilder.group({\n        search: null,\n    });\n    public stateSearchForm = FilterDropdownFields.stateSearch;\n    public selectedCount: number = 0;\n    public activeCount: number = 0;\n    public override config: IFilterDropdownConfiguration =\n        FilterDropdownIconsConst.State;\n    private _states: ICountry[] = [];\n\n    constructor(private formBuilder: UntypedFormBuilder) {\n        super();\n    }\n\n    get states(): ICountry[] {\n        return this._states;\n    }\n\n    public calculateSelectedCount(): void {\n        this.activeCount = this._states.reduce(\n            (sum, state) => sum + state.selectedList.length,\n            0\n        );\n    }\n\n    public selectItem = (item: IFilterDropdownList, countryName: string) => {\n        const country = this.states.find(\n            (state) => state.country === countryName\n        );\n        if (country) {\n            country.unselectedList = country.unselectedList.filter(\n                (_country) => _country !== item\n            );\n            country.selectedList = [...country.selectedList, item];\n        }\n        this.calculateSelectedCount();\n    };\n\n    public unSelectItem = (item: IFilterDropdownList, countryName: string) => {\n        const country = this.states.find(\n            (state) => state.country === countryName\n        );\n        if (country) {\n            country.selectedList = country.selectedList.filter(\n                (_country) => _country !== item\n            );\n            country.unselectedList = [...country.unselectedList, item];\n        }\n        this.calculateSelectedCount();\n    };\n\n    public override clearValues(isEmittingValue: boolean): void {\n        // No need to emit values since that is changed and values are reset on main project\n        if (isEmittingValue) this.emitData([]);\n\n        this.states = this.states.map((state) => {\n            return {\n                ...state,\n                selectedList: [],\n                unselectedList: state.initalList,\n            };\n        });\n\n        this.selectedCount = 0;\n        this.activeCount = 0;\n    }\n\n    public passFilterValue(): void {\n        const states = this.states\n            .map((country) =>\n                country.selectedList\n                    .map((state) => state.stateShortName)\n                    .filter((shortName): shortName is string => !!shortName)\n            )\n            .flat();\n\n        this.emitData(states);\n        this.selectedCount = this.activeCount;\n    }\n\n    public sortValues(sorting: ISortEmit): void {\n        this.sortKey = sorting.sortKey;\n        this.directionMultiplier = sorting.directionMultiplier;\n    }\n\n    private emitData(selectedStates: string[]): void {\n        this.setFilter.emit({\n            filterType: eFilterDropdownEnum.STATE,\n            selectedStates,\n        });\n    }\n\n    private mapInitalStates(value: ICountry[]): void {\n        this._states = value.map((country) => {\n            const states = country.states.map((state, index) => ({\n                stateShortName: state.stateShortName,\n                name: state.stateName || state.stateName,\n                count: state.count,\n                selected: false,\n                id: index,\n            }));\n            return {\n                ...country,\n                unselectedList: states,\n                selectedList: [],\n                initialList: [...states],\n            };\n        });\n    }\n}\n","<app-ca-filter-dropdown\n    [type]=\"eFilterDropdownEnum.STATE\"\n    [config]=\"config\"\n    [bodyTemplate]=\"bodyTemplate\"\n    [isFormChanged]=\"!!activeCount\"\n    [appliedFiltersCount]=\"selectedCount\"\n    [isDisabled]=\"isDisabled\"\n    (handleFiltersClear)=\"clearValues(true)\"\n    (setFilter)=\"passFilterValue()\"\n    (sorting)=\"sortValues($event)\"\n>\n    <ng-template #bodyTemplate>\n        @let searchString = searchForm.get('search')?.value;\n\n        <div [formGroup]=\"searchForm\">\n            <app-ca-input\n                formControlName=\"search\"\n                [inputConfig]=\"stateSearchForm\"\n            ></app-ca-input>\n        </div>\n\n        <div class=\"filter-dropdown-list p-x-4\">\n            @for (country of states; track $index) {\n                @if (country.selectedList.length) {\n                    <p\n                        class=\"text-color-white text-size-11 ca-font-bold m-t-6\"\n                    >\n                        {{ country.country }}\n                    </p>\n                    <!-- Selected List -->\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            listTemplate;\n                            context: {\n                                items:\n                                    country.selectedList\n                                    | filterSearch\n                                        : searchString\n                                        : 'name'\n                                        : sortKey\n                                        : directionMultiplier,\n                                country: country.country,\n                                clickFn: unSelectItem,\n                                selectedList: true,\n                            }\n                        \"\n                    ></ng-container>\n                }\n            }\n\n            @for (country of states; track $index) {\n                @if (country.unselectedList.length) {\n                    <p\n                        class=\"text-color-white text-size-11 ca-font-bold m-t-6\"\n                    >\n                        {{ country.country }}\n                    </p>\n                    <!-- Unselected List -->\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            listTemplate;\n                            context: {\n                                items:\n                                    country.unselectedList\n                                    | filterSearch\n                                        : searchString\n                                        : 'name'\n                                        : sortKey\n                                        : directionMultiplier,\n                                country: country.country,\n                                clickFn: selectItem,\n                                selectedList: false,\n                            }\n                        \"\n                    ></ng-container>\n                }\n            }\n        </div>\n    </ng-template>\n\n    <ng-template\n        #listTemplate\n        let-items=\"items\"\n        let-country=\"country\"\n        let-clickFn=\"clickFn\"\n        let-isSelectedList=\"selectedList\"\n    >\n        @if (items.length) {\n            <div class=\"d-flex flex-column gap-xs m-b-4 m-t-4\">\n                @for (item of items; track $index) {\n                    <div\n                        class=\"filter-dropdown-list-item p-4 br-2 d-flex justify-content-between align-items-center c-pointer\"\n                        [ngClass]=\"{\n                            'filter-dropdown-list-item-hover': isSelectedList,\n                        }\"\n                        (click)=\"clickFn(item, country)\"\n                    >\n                        <div class=\"d-flex align-items-center w-100 m-r-4\">\n                            <div\n                                class=\"m-r-4 br-1 ca-font-extra-bold text-shortName text-center\"\n                                [ngClass]=\"\n                                    isSelectedList\n                                        ? 'background-blue-13 text-color-blue-16'\n                                        : 'background-black text-color-white-4'\n                                \"\n                            >\n                                {{ item.stateShortName }}\n                            </div>\n                            <div\n                                class=\"text-color-white text-size-14\"\n                                [class.ca-font-extra-bold]=\"isSelectedList\"\n                            >\n                                {{ item.name }}\n                            </div>\n                        </div>\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                itemTemplate;\n                                context: {\n                                    count: item.count,\n                                    isSelected: isSelectedList,\n                                }\n                            \"\n                        ></ng-container>\n\n                        @if (isSelectedList) {\n                            <svg-icon\n                                [src]=\"caFiltersSvgRoutes.removeSelectedValue\"\n                                class=\"svg-size-10 svg-fill-red-10 filter-dropdown-list-item-remove justify-content-center filter-dropdown-list-badge\"\n                            ></svg-icon>\n                        }\n                    </div>\n                }\n            </div>\n            <ng-container *ngTemplateOutlet=\"divider\"></ng-container>\n        }\n    </ng-template>\n\n    <!-- Divider Template -->\n    <ng-template #divider>\n        <div class=\"background-black br-2 h-1\"></div>\n    </ng-template>\n\n    <ng-template #itemTemplate let-count=\"count\" let-isSelected=\"isSelected\">\n        <!-- Count can be undefined for example on assign dispatch load list, or it can be 0 as well for some dispatchers -->\n        @if (count !== undefined) {\n            <div\n                class=\"br-10 filter-dropdown-list-item-count text-size-11 ca-font-semi-bold p-y-2 p-x-5 d-flex align-items-center justify-content-center filter-dropdown-list-badge\"\n                [ngClass]=\"\n                    isSelected\n                        ? 'background-blue-14 text-color-white'\n                        : 'background-black text-color-white-4'\n                \"\n            >\n                {{ count }}\n            </div>\n        }\n    </ng-template>\n</app-ca-filter-dropdown>\n","import { eLoadStatus } from '../../../enums';\n\nexport class LoadStatuConstants {\n    static pickupStatuses = [\n        eLoadStatus.ArrivedPickup,\n        eLoadStatus.CheckedInPickup,\n        eLoadStatus.Loading,\n        eLoadStatus.Loaded,\n    ];\n\n    static deliveriStatuses = [\n        eLoadStatus.ArrivedDelivery,\n        eLoadStatus.CheckedInDelivery,\n        eLoadStatus.Offloading,\n        eLoadStatus.Offloaded,\n        eLoadStatus.Delivered,\n    ];\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LoadStatuConstants } from '../constants/load-status.constants';\n\n@Pipe({\n    name: 'statusTextClass',\n    standalone: true,\n})\nexport class StatusTextClassPipe implements PipeTransform {\n    transform(\n        value: string,\n        index: number,\n        displayString: string[],\n        isTitleCardDropdown: boolean,\n        isDark: boolean,\n        statusId: number,\n        isNoStatesColor: boolean,\n        isStatusCard: boolean,\n        isStatusFocused: boolean,\n        fontSize?: number\n    ): { [key: string]: boolean } {\n        const defaultFontSize = 11;\n        const isNumeric = /^[+-]?\\d+(\\.\\d+)?$/.test(value);\n        const lowerCaseValue = value.toLowerCase();\n        const textSizeClass = `text-size-${fontSize ?? defaultFontSize}`;\n        const isDarkVersion = isTitleCardDropdown || isDark;\n\n        const isPickupStatus =\n            LoadStatuConstants.pickupStatuses.includes(statusId);\n        const isDeliveriStatus =\n            LoadStatuConstants.deliveriStatuses.includes(statusId);\n\n        const isDefaultPickupNumber =\n            isNumeric &&\n            isPickupStatus &&\n            (isNoStatesColor || (isStatusCard && isStatusFocused));\n\n        const isDefaultDeliverNumber =\n            isNumeric &&\n            isDeliveriStatus &&\n            (isNoStatesColor || (isStatusCard && isStatusFocused));\n\n        const isDifferentNumber =\n            isDefaultPickupNumber || isDefaultDeliverNumber;\n\n        return {\n            'background-green-3 text-color-green-2': isDefaultPickupNumber,\n            'background-orange-7 text-color-orange-1': isDefaultDeliverNumber,\n            'background-bw6-2':\n                (lowerCaseValue === 'r' || isNumeric) &&\n                !isDarkVersion &&\n                !isDifferentNumber,\n            'background-light-gray-2':\n                (lowerCaseValue === 'r' || isNumeric) &&\n                isDarkVersion &&\n                !isDifferentNumber,\n            'background-red-19': lowerCaseValue === 't',\n            'background-blue-13': lowerCaseValue === 'f',\n            'background-purple-4': lowerCaseValue === 's',\n            'background-gold-bold': lowerCaseValue === 'i',\n            'background-green-2': lowerCaseValue === 'l',\n            'd-flex justify-content-center align-items-center badge font-size-11 line-height-12':\n                value.length === 1,\n            'm-r-4': index !== displayString.length - 1,\n            [textSizeClass]: value.length > 1,\n            'text-color-black-2':\n                value.length === 1 && (isTitleCardDropdown || isDark),\n            'text-color-white':\n                (value.length === 1 && !isDarkVersion) ||\n                (value.length > 1 && isDark),\n            'status-text-dropdown': value.length > 1 && isTitleCardDropdown,\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eDispatchStatus } from '../enums';\nimport { eLoadStatusSvgColors } from '../components/ca-load-status/enums/load-status-svg-colors.enum';\n\n@Pipe({\n    name: 'dispatchStatusColors',\n    standalone: true,\n})\nexport class DispatchStatusColorsPipe implements PipeTransform {\n    transform(statusId?: number): string | undefined {\n        if (!statusId) return;\n\n        let colorClass;\n\n        switch (statusId) {\n            case eDispatchStatus.Off:\n            case eDispatchStatus.DeadHeading:\n                colorClass = eLoadStatusSvgColors.BLACK_200;\n                break;\n            case eDispatchStatus.Towing:\n                colorClass = eLoadStatusSvgColors.PURPLE_BOLD;\n                break;\n            case eDispatchStatus.Available:\n                colorClass = eLoadStatusSvgColors.LIME_BOLD;\n                break;\n            case eDispatchStatus.Dispatched:\n                colorClass = eLoadStatusSvgColors.BLUE_BOLD;\n                break;\n            case eDispatchStatus.ArrivedPickup:\n            case eDispatchStatus.CheckedInPickup:\n            case eDispatchStatus.Loading:\n            case eDispatchStatus.Loaded:\n                colorClass = eLoadStatusSvgColors.GREEN_BOLD;\n                break;\n            case eDispatchStatus.ArrivedDelivery:\n            case eDispatchStatus.CheckedInDelivery:\n            case eDispatchStatus.Offloading:\n            case eDispatchStatus.Offloaded:\n            case eDispatchStatus.Empty:\n                colorClass = eLoadStatusSvgColors.ORANGE_BOLD;\n                break;\n\n            case eDispatchStatus.Canceled:\n                colorClass = eLoadStatusSvgColors.RED_BOLD;\n                break;\n            case eDispatchStatus.DispatchedRepair:\n            case eDispatchStatus.LoadedRepair:\n            case eDispatchStatus.Repair:\n                colorClass = eLoadStatusSvgColors.BROWN_BOLD;\n                break;\n            case eDispatchStatus.Split:\n                colorClass = eLoadStatusSvgColors.YELLOW_BOLD;\n                break;\n            default:\n                break;\n        }\n\n        return colorClass;\n    }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// models\nimport { SelectedStatus } from '../ca-input-dropdown/models/load-modal-status.model';\n\n// pipes\nimport { StatusTextClassPipe } from './pipes/status-text.pipe';\nimport { LoadStatusColorsPipe } from '../../pipes/load-status-colors.pipe';\nimport { DispatchStatusColorsPipe } from \"../../pipes/dispatch-status-colors.pipe\";\n\n@Component({\n    selector: 'app-ca-load-status',\n    templateUrl: './ca-load-status.component.html',\n    styleUrls: ['./ca-load-status.component.scss'],\n    imports: [\n    CommonModule,\n    // pipes\n    StatusTextClassPipe,\n    LoadStatusColorsPipe,\n    DispatchStatusColorsPipe\n],\n})\nexport class CaLoadStatusComponent implements OnInit {\n    @ViewChild('containerLoadStatus')\n    containerLoadStatus!: ElementRef;\n\n    @Input() set status(value: SelectedStatus) {\n        this._status = value;\n        this.generateDisplayString();\n    }\n\n    @Input() set isRowHover(value: boolean) {\n        this.onRowHover(value);\n    }\n\n    @Input() time!: string;\n    @Input() isNoStyle!: boolean;\n    @Input() fontSize!: number;\n    @Input() width!: number;\n    @Input() height!: number;\n    @Input() isTitleCardDropdown!: boolean;\n    @Input() isDark!: boolean;\n    @Input() isMarked!: boolean;\n    @Input() isDropdownStatusChange!: boolean;\n    @Input() isDefaultHoverFocus!: boolean;\n    @Input() isNoStatesColor!: boolean;\n    @Input() isStatusCard!: boolean;\n    @Input() isTableBigStatus!: boolean;\n    @Input() isDisabledClick!: boolean;\n    @Input() isSelectedItem!: boolean;\n    @Input() isFilter!: boolean;\n    @Input() isDispatchStatus!: boolean;\n    @Input() dispatchTime!: string;\n    @Input() isDispatchShowTimeAlways!: boolean;\n\n    public _status!: SelectedStatus;\n    public displayString: string[] = [];\n\n    public isStatusFocused!: boolean;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.generateDisplayString();\n    }\n\n    private generateDisplayString(): void {\n        this.displayString = this._status?.name?.split(' ') as string[];\n    }\n\n    public focusOnClick(): void {\n        this.containerLoadStatus.nativeElement.focus();\n    }\n\n    public onStatusFocus(): void {\n        this.isStatusFocused = true;\n    }\n\n    public onStatusBlur(): void {\n        this.isStatusFocused = false;\n    }\n\n    private onRowHover(value: boolean): void {\n        if (this.containerLoadStatus?.nativeElement)\n            value\n                ? this.containerLoadStatus.nativeElement.classList.add('hover')\n                : this.containerLoadStatus.nativeElement.classList.remove(\n                      'hover'\n                  );\n    }\n}\n","@let statusTimeContainerClass =\n    isNoStyle\n        ? ''\n        : isDispatchStatus\n          ? (_status.id | dispatchStatusColors)\n          : (_status.id | loadStatusColors);\n\n<div\n    #containerLoadStatus\n    class=\"status-time-container d-flex flex-column\"\n    [class]=\"statusTimeContainerClass\"\n    [class.default-hover-focus]=\"isDefaultHoverFocus\"\n    [class.dropdown-status-change]=\"isDropdownStatusChange\"\n    [class.is-marked]=\"isMarked\"\n    [class.load-status-no-states]=\"isNoStatesColor\"\n    [class.status-with-time]=\"time && !isTableBigStatus\"\n    [class.no-style]=\"isNoStyle\"\n    [class.title-card-dropdown]=\"isTitleCardDropdown\"\n    [class.c-pointer]=\"!isNoStatesColor && !isDisabledClick\"\n    [class.load-status-card]=\"isStatusCard\"\n    [class.p-4]=\"isStatusCard\"\n    [class.table-big-status]=\"isTableBigStatus\"\n    [class.dispatch-status]=\"isDispatchStatus\"\n    [class.dispatch-status-with-time]=\"dispatchTime\"\n    [class.dispatch-show-time-always]=\"dispatchTime && isDispatchShowTimeAlways\"\n    [style.width.px]=\"width\"\n    [style.height.px]=\"height\"\n    (click)=\"!isDisabledClick && focusOnClick()\"\n    (focus)=\"onStatusFocus()\"\n    (blur)=\"onStatusBlur()\"\n    [attr.tabindex]=\"!isDisabledClick && '0'\"\n>\n    <div\n        class=\"d-flex status align-items-center\"\n        [class.justify-content-center]=\"isTableBigStatus\"\n        [class.m-b-2]=\"isTableBigStatus\"\n    >\n        @if (isStatusCard) {\n            <div class=\"w-14 h-14 br-circle m-r-4\"></div>\n        }\n\n        @for (value of displayString; let index = $index; track index) {\n            <span\n                class=\"text-size-11 status-text text-uppercase\"\n                [class]=\"\n                    !isSelectedItem && value.length > 1 && isFilter\n                        ? 'ca-font-regular'\n                        : 'ca-font-bold'\n                \"\n                [ngClass]=\"\n                    value\n                        | statusTextClass\n                            : index\n                            : displayString\n                            : isTitleCardDropdown\n                            : isDark\n                            : _status.id!\n                            : isNoStatesColor\n                            : isStatusCard\n                            : isStatusFocused\n                            : fontSize\n                \"\n            >\n                {{ value }}\n            </span>\n        }\n    </div>\n\n    @if (time) {\n        <div\n            class=\"ca-font-medium text-size-11\"\n            [class]=\"\n                isTableBigStatus\n                    ? 'd-flex ca-font-semi-bold text-color-bw6-2'\n                    : 'status-time'\n            \"\n            [class.justify-content-center]=\"isTableBigStatus\"\n        >\n            {{ time }}\n        </div>\n    }\n\n    @if (dispatchTime) {\n        <div\n            class=\"ca-font-semi-bold text-size-11 text-color-white-4 dispatch-status-time\"\n        >\n            {{ dispatchTime }}\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, PipeTransform } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';\n\n// Enums\nimport { eFilterDropdownEnum, eFilterSortingKey } from '../../enums';\nimport { eLoadStatus } from '../../../../enums';\n\n// Types & Interfaces\nimport { FilterDropdownTypes } from '../../types';\nimport { IFilterDropdownList, ISortEmit } from '../../interface';\n\n// Constants & Utils\nimport { CaFiltersSvgRoutes } from '../../../ca-filters/utils/svg-routes';\nimport { FilterDropdownIconsConst } from '../../constant';\n\n// Components\nimport { CaFilterDropdownComponent } from '../../ca-filter-dropdown.component';\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { NewFilterBaseComponent } from '../new-filter-base/new-filter-base.component';\nimport { CaLoadStatusComponent } from '../../../ca-load-status/ca-load-status.component';\n\n// Pipes\nimport {\n    FilterTrailerColorPipe,\n    FilterTruckColorPipe,\n} from '../../../ca-filters/pipes';\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes';\nimport { FilterSearchPipe } from '../../pipes/filter-search.pipe';\n\n// External Libraries\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n// Helpers\nimport { FilterHelper } from '../../../ca-filters/utils/helpers';\n\n@Component({\n    selector: 'app-ca-filter-list-dropdown',\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        CaInputComponent,\n        CaFilterDropdownComponent,\n        CaProfileImageComponent,\n        SvgIconComponent,\n        DropdownLoadStatusColorPipe,\n        FilterTruckColorPipe,\n        FilterTrailerColorPipe,\n        FilterSearchPipe,\n        CaLoadStatusComponent\n    ],\n    templateUrl: './ca-filter-list-dropdown.component.html',\n    styleUrl: './ca-filter-list-dropdown.component.scss',\n})\nexport class CaFilterListDropdownComponent extends NewFilterBaseComponent {\n    @Input()\n    set type(value: FilterDropdownTypes) {\n        this.setInitialType(value);\n    }\n\n    @Input()\n    set list(value: IFilterDropdownList[]) {\n        this.setInitialList(value);\n    }\n\n    @Input() isDisabled!: boolean;\n    @Input() svgCustomSizeClass: string = 'svg-size-16';\n\n    public caFiltersSvgRoutes = CaFiltersSvgRoutes;\n    public loadStatusEnum = eLoadStatus;\n    public scrollLimitSize: number = 8;\n    public previousUnSelectedState: IFilterDropdownList[] = [];\n    public previousSelectedState: IFilterDropdownList[] = [];\n\n    public selectedList: IFilterDropdownList[] = [];\n    public unselectedList: IFilterDropdownList[] = [];\n    public searchForm = this.formBuilder.group({\n        search: null,\n    });\n    public sortKey: keyof IFilterDropdownList = eFilterSortingKey.NAME;\n    public directionMultiplier: number = 1;\n    public initialListSize: number = 0;\n\n    public selectedCount: number = 0;\n    public activeCount: number = 0;\n\n    private _type!: FilterDropdownTypes;\n    private _list: IFilterDropdownList[] = [];\n\n    constructor(private formBuilder: UntypedFormBuilder) {\n        super();\n    }\n\n    // Getters\n    get type(): FilterDropdownTypes {\n        return this._type;\n    }\n\n    // Public\n    public selectItem = (item: IFilterDropdownList) => {\n        this.moveItem(item, this.unselectedList, this.selectedList);\n    };\n\n    public unSelectItem = (item: IFilterDropdownList) => {\n        this.moveItem(item, this.selectedList, this.unselectedList);\n    };\n\n    public get truckOrTrailerIconPipe(): PipeTransform {\n        return this.type === eFilterDropdownEnum.TRUCK_TYPE\n            ? new FilterTruckColorPipe()\n            : new FilterTrailerColorPipe();\n    }\n\n    public override clearValues(isEmittingValue: boolean): void {\n        // No need to emit values since that is changed and values are reset on main project\n        if (isEmittingValue) this.emitData([]);\n\n        this.selectedList = [];\n        this.unselectedList = [...this._list];\n        this.selectedCount = 0;\n        this.activeCount = 0;\n        this.previousSelectedState = [...this.selectedList];\n        this.previousUnSelectedState = [...this.unselectedList];\n    }\n\n    public passFilterValue(): void {\n        const selectedListIds: number[] = this.selectedList?.map(\n            (list: IFilterDropdownList) => list.id!\n        );\n        this.emitData(selectedListIds);\n        this.selectedCount = this.activeCount;\n    }\n\n    public sortValues(sorting: ISortEmit): void {\n        this.sortKey = sorting.sortKey;\n        this.directionMultiplier = sorting.directionMultiplier;\n    }\n\n    public onResetFilterState(): void {\n        // Reset to previous value, since user didn't save it, he click on outside\n        this.selectedList = [...this.previousSelectedState];\n        this.unselectedList = [...this.previousUnSelectedState];\n        this.selectedCount = this.previousSelectedState.length;\n        this.activeCount = this.selectedList.length;\n        this.resetInputValue();\n    }\n\n    private emitData(list: number[]): void {\n        this.setFilter.emit({\n            filterType: this.type,\n            selectedIds: list,\n        });\n\n        this.previousSelectedState = [...this.selectedList];\n        this.previousUnSelectedState = [...this.unselectedList];\n        this.resetInputValue();\n    }\n\n    private updateLists(): void {\n        if (!this._list) return;\n\n        this.selectedList = [];\n        this.unselectedList = [];\n\n        this._list?.forEach((item: IFilterDropdownList) => {\n            item.selected\n                ? (this.selectedList = [...this.selectedList, item])\n                : (this.unselectedList = [...this.unselectedList, item]);\n        });\n    }\n\n    private moveItem(\n        item: IFilterDropdownList,\n        fromList: IFilterDropdownList[],\n        toList: IFilterDropdownList[]\n    ): void {\n        const index = fromList.indexOf(item);\n        if (index !== -1) {\n            fromList?.splice(index, 1);\n            toList?.push(item);\n\n            // Update references so list is updated\n            this.selectedList = [...this.selectedList];\n            this.unselectedList = [...this.unselectedList];\n            this.calculateSelectedCount();\n        }\n    }\n    private calculateSelectedCount(): void {\n        this.activeCount = this.selectedList.length;\n    }\n\n    private setInitialList(value: IFilterDropdownList[]): void {\n        // Pm and truck type don't have id so we need to map names\n        this._list = value?.map((item) => ({\n            ...item,\n            id: item.id! ?? item.name,\n            initials: FilterHelper.getInitials(item.name),\n        }));\n        this.updateLists();\n        this.initialListSize = value?.length ?? 0;\n        this.previousUnSelectedState = [...this._list];\n        this.activeCount = 0;\n        this.selectedCount = 0;\n    }\n\n    private setInitialType(value: FilterDropdownTypes): void {\n        this._type = value;\n        this.config = FilterDropdownIconsConst[this._type];\n    }\n\n    private resetInputValue(): void {\n        this.searchForm.reset();\n    }\n}\n","<app-ca-filter-dropdown\n    [type]=\"type\"\n    [config]=\"config\"\n    [bodyTemplate]=\"bodyTemplate\"\n    [isFormChanged]=\"!!activeCount\"\n    [activeCount]=\"activeCount\"\n    [appliedFiltersCount]=\"selectedCount\"\n    [isDisabled]=\"isDisabled\"\n    (handleFiltersClear)=\"clearValues(true)\"\n    [svgCustomSizeClass]=\"svgCustomSizeClass\"\n    (setFilter)=\"passFilterValue()\"\n    (sorting)=\"sortValues($event)\"\n    (resetFilterState)=\"onResetFilterState()\"\n>\n    @let isTruck = type === 'TruckType';\n    @let isTrailer = type === 'TrailerType';\n    @let isPm = type === 'Pm';\n    @let isService = type === 'Service';\n    @let isLoadType = type === 'LoadType';\n\n    @let isTruckOrTrailer = isTruck || isTrailer;\n    @let hasLeftIcon = isPm || isService || isLoadType;\n    @let hasColorIcon = isLoadType;\n\n    <ng-template #bodyTemplate>\n        @if (\n            initialListSize > scrollLimitSize &&\n            config &&\n            config.isSearchActive &&\n            config.formFieldConfig\n        ) {\n            <div [formGroup]=\"searchForm\">\n                <app-ca-input\n                    formControlName=\"search\"\n                    [inputConfig]=\"config.formFieldConfig\"\n                ></app-ca-input>\n            </div>\n        }\n        <div\n            class=\"filter-dropdown-list\"\n            [class.ca-scroll-bar]=\"initialListSize > scrollLimitSize\"\n        >\n            <ng-container *ngTemplateOutlet=\"divider\"></ng-container>\n            @let searchString = searchForm.get('search')?.value;\n\n            <!-- Selected List -->\n            <ng-container\n                *ngTemplateOutlet=\"\n                    listTemplate;\n                    context: {\n                        items:\n                            selectedList\n                            | filterSearch\n                                : searchString\n                                : 'name'\n                                : sortKey\n                                : directionMultiplier,\n                        clickFn: unSelectItem,\n                        selectedList: true,\n                    }\n                \"\n            ></ng-container>\n\n            <!-- Unselected List -->\n            <ng-container\n                *ngTemplateOutlet=\"\n                    listTemplate;\n                    context: {\n                        items:\n                            unselectedList\n                            | filterSearch\n                                : searchString\n                                : 'name'\n                                : sortKey\n                                : directionMultiplier,\n                        clickFn: selectItem,\n                        selectedList: false,\n                    }\n                \"\n            ></ng-container>\n        </div>\n    </ng-template>\n\n    <ng-template\n        #listTemplate\n        let-items=\"items\"\n        let-clickFn=\"clickFn\"\n        let-isSelectedList=\"selectedList\"\n    >\n        @if (items?.length) {\n            <div class=\"d-flex flex-column gap-xs m-b-4 m-t-4\">\n                @for (item of items; let indx = $index; track indx) {\n                    <div\n                        class=\"filter-dropdown-list-item p-4 br-2 d-flex justify-content-between align-items-center c-pointer\"\n                        [ngClass]=\"{\n                            'filter-dropdown-list-item-hover': isSelectedList,\n                            'svg-hover-grey-4 svg-fill-muted':\n                                hasLeftIcon && !hasColorIcon && !isSelectedList,\n                            'svg-hover-blue-19 svg-fill-blue-8':\n                                hasLeftIcon && !hasColorIcon && isSelectedList,\n                        }\"\n                        (click)=\"clickFn(item)\"\n                    >\n                        <div\n                            class=\"d-flex align-items-center w-100 m-r-4\"\n                            [class.justify-content-between]=\"isTruckOrTrailer\"\n                        >\n                            @switch (type) {\n                                @case ('Dispatcher') {\n                                    <app-ca-profile-image\n                                        [indx]=\"$index\"\n                                        [textShortName]=\"item.initials\"\n                                        [avatarImg]=\"item.avatar?.url\"\n                                        [size]=\"'small'\"\n                                        class=\"m-r-4\"\n                                    ></app-ca-profile-image>\n                                }\n                                @case ('Status') {\n                                    <div\n                                        [ngStyle]=\"\n                                            loadStatusEnum[item.id!]\n                                                | dropdownLoadStatusColor: true\n                                        \"\n                                        class=\"filter-dropdown-list-item-status-circle br-circle m-r-4\"\n                                    ></div>\n                                }\n\n                                @case (eFilterDropdownEnum.LABEL) {\n                                    <div\n                                        class=\"label-icon d-flex align-items-center\"\n                                        [ngStyle]=\"{\n                                            '--svg-fill-color': item.code,\n                                        }\"\n                                    >\n                                        <svg-icon\n                                            [src]=\"config.icon\"\n                                            class=\"m-r-4 svg-size-18\"\n                                        ></svg-icon>\n                                    </div>\n                                }\n                                @default {\n                                    @if (hasLeftIcon) {\n                                        <svg-icon\n                                            [src]=\"item.icon\"\n                                            class=\"m-r-4 svg-size-18\"\n                                        ></svg-icon>\n                                    }\n                                }\n                            }\n\n                            @if (type === eFilterDropdownEnum.STATUS) {\n                                <app-ca-load-status\n                                    [status]=\"{\n                                        name: item?.name,\n                                        id: item?.id,\n                                    }\"\n                                    [isNoStyle]=\"true\"\n                                    [fontSize]=\"14\"\n                                    [isDark]=\"true\"\n                                    [isFilter]=\"true\"\n                                    [isSelectedItem]=\"isSelectedList\"\n                                >\n                                </app-ca-load-status>\n                            } @else {\n                                <div\n                                    class=\"text-color-white text-size-14\"\n                                    [class.ca-font-extra-bold]=\"isSelectedList\"\n                                >\n                                    {{ item.name }}\n                                </div>\n                            }\n\n                            @if (isTruckOrTrailer) {\n                                @if (item?.icon) {\n                                    <div\n                                        class=\"filter-dropdown-list-item-icons\"\n                                        [ngStyle]=\"{\n                                            '--svg-fill-color':\n                                                truckOrTrailerIconPipe.transform(\n                                                    item.name\n                                                ),\n                                        }\"\n                                    >\n                                        <svg-icon [src]=\"item.icon\"></svg-icon>\n                                    </div>\n                                }\n                            }\n                        </div>\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                itemTemplate;\n                                context: {\n                                    count: item.count,\n                                    isSelected: isSelectedList,\n                                }\n                            \"\n                        ></ng-container>\n\n                        @if (isSelectedList) {\n                            <svg-icon\n                                [src]=\"caFiltersSvgRoutes.removeSelectedValue\"\n                                class=\"svg-size-10 svg-fill-red-10 filter-dropdown-list-item-remove justify-content-center filter-dropdown-list-badge\"\n                            ></svg-icon>\n                        }\n                    </div>\n                }\n            </div>\n            <ng-container *ngTemplateOutlet=\"divider\"></ng-container>\n        }\n    </ng-template>\n\n    <!-- Divider Template -->\n    <ng-template #divider>\n        <div class=\"background-black br-2 h-1\"></div>\n    </ng-template>\n\n    <ng-template #itemTemplate let-count=\"count\" let-isSelected=\"isSelected\">\n        <!-- Count can be undefined for example on assign dispatch load list, or it can be 0 as well for some dispatchers -->\n        @if (count !== undefined) {\n            <div\n                class=\"br-10 filter-dropdown-list-item-count text-size-11 ca-font-semi-bold p-y-2 p-x-5 d-flex align-items-center justify-content-center filter-dropdown-list-badge\"\n                [ngClass]=\"\n                    isSelected\n                        ? 'background-blue-14 text-color-white'\n                        : 'background-black text-color-white-4'\n                \"\n            >\n                {{ count }}\n            </div>\n        }\n    </ng-template>\n</app-ca-filter-dropdown>\n","export enum eVehicleList {\n    REPAIRED_VEHICLE_LIST = 'repaired-vehicle-list',\n    FUELLED_VEHICLE_LIST = 'fuelled-vehicle-list',\n}\n","// models\nimport { VehicleListResponse } from '../../models';\n\nexport class VehicleListConstants {\n    static VEHICLE_LIST_HEADER_ITEMS: string[] = ['UNIT', 'TYPE', '', 'COST'];\n\n    // story list example\n    static STORY_LIST_EXAMPLE: VehicleListResponse[] = [\n        {\n            unitId: 300,\n            unitType: 'Truck',\n            unitNumber: 'Truck 1',\n            totalCount: 2,\n            vehicleTypeId: 1,\n            vehicleName: 'Semi Truck',\n            logoName: 'ic_truck_semi-truck.svg',\n            totalCost: 9413,\n        },\n        {\n            unitId: 265,\n            unitType: 'Truck',\n            unitNumber: 'Truck 2',\n            totalCount: 1,\n            vehicleTypeId: 6,\n            vehicleName: 'Dump Truck',\n            logoName: 'ic_truck_dump.svg',\n            totalCost: 7959,\n        },\n        {\n            unitId: 254,\n            unitType: 'Truck',\n            unitNumber: 'Truck 3',\n            totalCount: 1,\n            vehicleTypeId: 11,\n            vehicleName: 'Spotter',\n            logoName: 'ic_truck_spotter.svg',\n            totalCost: 12052,\n        },\n    ];\n}\n","export class VehicleListSvgRoutes {\n    static repairedVehicleListSvgRoute: string =\n        'assets/ca-components/svg/common/ic_key-repair.svg';\n    static fuelledVehicleListSvgRoute: string =\n        'assets/ca-components/svg/common/fuel.svg';\n    static trucksRoute: string = 'assets/ca-components/svg/common/trucks/';\n    static trailersRoute: string = 'assets/ca-components/svg/common/trailers/';\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaSearchMultipleStatesComponent } from '../ca-search-multiple-states/ca-search-multiple-states.component';\n\n// enums\nimport { eVehicleList } from './enums';\nimport { eStringPlaceholder } from '../../enums';\n\n// constants\nimport { VehicleListConstants } from './utils/constants';\n\n// pipes\nimport {\n    TruckTrailerColorFinderPipe,\n    ThousandSeparatorPipe,\n} from '../../pipes';\n\n// svg routes\nimport { VehicleListSvgRoutes } from './utils/svg-routes';\n\n// interfaces\nimport { IVehicleListConfig, IVehicleListActionsEmit } from './interfaces';\n\n@Component({\n    selector: 'app-ca-vehicle-list',\n    templateUrl: './ca-vehicle-list.component.html',\n    styleUrl: './ca-vehicle-list.component.scss',\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        CaSearchMultipleStatesComponent,\n        // pipes\n        ThousandSeparatorPipe,\n        TruckTrailerColorFinderPipe,\n    ]\n})\nexport class CaVehicleListComponent {\n    @Input() set vehicleListConfig(data: IVehicleListConfig) {\n        this._vehicleListConfig = data;\n\n        this.getConstantData();\n    }\n\n    @Output() vehicleListActionsEmitter =\n        new EventEmitter<IVehicleListActionsEmit>();\n    @Output() onSearchActionEmit: EventEmitter<string> = new EventEmitter();\n\n    public _vehicleListConfig!: IVehicleListConfig;\n\n    // svg routes\n    public vehicleListSvgRoutes = VehicleListSvgRoutes;\n\n    // enums\n    public eVehicleList = eVehicleList;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    // header\n    public vehicleListHeaderItems: string[] = [];\n\n    // helper indexes\n    public vehicleHoverIndex: number = -1;\n\n    constructor() {}\n\n    private getConstantData(): void {\n        this.vehicleListHeaderItems =\n            VehicleListConstants.VEHICLE_LIST_HEADER_ITEMS;\n    }\n\n    public handleVehicleTypeHoverAction(vehicleIndex: number): void {\n        this.vehicleHoverIndex = vehicleIndex;\n    }\n\n    public onClickActions(action?: IVehicleListActionsEmit): void {\n        this.vehicleListActionsEmitter.emit(action);\n    }\n\n    public onSearchAction(searchText: string): void {\n        this.onSearchActionEmit.emit(searchText);\n    }\n}\n","<div class=\"d-flex flex-column justify-content-center vehicle-list-container\">\n    <!-- Search -->\n\n    @if (_vehicleListConfig.isSearchActive) {\n        @let searchClickAction = { isCloseSearch: true };\n\n        <div class=\"vehicle-list-search\">\n            <app-ca-search-multiple-states\n                [searchType]=\"'Vehicle'\"\n                [toolbarSearch]=\"false\"\n                [isDetailsPageSearch]=\"true\"\n                [selectedTabData]=\"{\n                    gridNameTitle: 'Vehicle',\n                }\"\n                (close)=\"onClickActions(searchClickAction)\"\n                (onSearch)=\"onSearchAction($event)\"\n            ></app-ca-search-multiple-states>\n        </div>\n    }\n\n    <!-- Header -->\n\n    <div class=\"d-grid align-items-center vehicle-list-header\">\n        @for (\n            headerItem of vehicleListHeaderItems;\n            let headerItemIndex = $index;\n            track headerItem\n        ) {\n            <div\n                class=\"d-flex align-items-center\"\n                [ngClass]=\"{\n                    'justify-content-center': headerItemIndex === 2,\n                    'justify-content-end': headerItemIndex === 3,\n                }\"\n            >\n                @if (headerItem) {\n                    <p class=\"m-0 ca-font-bold text-size-11 text-color-bw6-2\">\n                        {{ headerItem }}\n                    </p>\n                } @else {\n                    <svg-icon\n                        class=\"svg-size-14 h-14 w-14 d-flex justify-content-center align-items-center svg-fill-muted\"\n                        [src]=\"\n                            _vehicleListConfig.type ===\n                            eVehicleList.REPAIRED_VEHICLE_LIST\n                                ? vehicleListSvgRoutes.repairedVehicleListSvgRoute\n                                : vehicleListSvgRoutes.fuelledVehicleListSvgRoute\n                        \"\n                    ></svg-icon>\n                }\n            </div>\n        }\n    </div>\n\n    <!-- Body -->\n\n    <div class=\"d-flex flex-column justify-content-center vehicle-list-body\">\n        @for (\n            vehicle of _vehicleListConfig.list;\n            let vehicleIndex = $index;\n            track vehicle.unitNumber\n        ) {\n            <div class=\"d-grid align-items-center vehicle-list-body-item\">\n                <!-- Unit -->\n\n                @let unitClickAction =\n                    {\n                        unitType: vehicle?.unitType,\n                        unitId: vehicle?.unitId,\n                    };\n\n                <div\n                    class=\"d-flex align-items-center vehicle-unit-container\"\n                    ngbTooltip\n                    mainCaTooltip=\"View Detail\"\n                    position=\"bottom\"\n                    tooltipBackground=\"#424242\"\n                    (click)=\"onClickActions(unitClickAction)\"\n                >\n                    <p\n                        class=\"m-0 ca-font-bold text-size-14 text-color-black text-truncate\"\n                    >\n                        {{ vehicle?.unitNumber }}\n                    </p>\n                </div>\n\n                <!-- Type -->\n\n                <div\n                    class=\"d-flex align-self-end\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"vehicle?.vehicleName\"\n                    position=\"bottom\"\n                    [tooltipBackground]=\"\n                        vehicleHoverIndex === vehicleIndex\n                            ? (vehicle?.vehicleTypeId\n                              | truckTrailerColorFinder\n                                  : vehicle?.unitType?.toLowerCase()\n                                  : true)\n                            : 'transparent'\n                    \"\n                    (mouseenter)=\"handleVehicleTypeHoverAction(vehicleIndex)\"\n                    (mouseleave)=\"handleVehicleTypeHoverAction(-1)\"\n                >\n                    <svg-icon\n                        class=\"d-flex align-items-center transition-fill-100\"\n                        [ngClass]=\"\n                            vehicleHoverIndex === vehicleIndex\n                                ? (vehicle?.vehicleTypeId\n                                  | truckTrailerColorFinder\n                                      : vehicle?.unitType?.toLowerCase())\n                                : eStringPlaceholder.EMPTY\n                        \"\n                        [src]=\"\n                            vehicle?.logoName\n                                ? vehicle?.unitType === 'Truck'\n                                    ? vehicleListSvgRoutes.trucksRoute +\n                                      vehicle?.logoName\n                                    : vehicleListSvgRoutes.trailersRoute +\n                                      vehicle?.logoName\n                                : eStringPlaceholder.EMPTY\n                        \"\n                    ></svg-icon>\n                </div>\n\n                <!-- Count -->\n\n                <div class=\"d-flex justify-content-center align-items-center\">\n                    <p class=\"m-0 text-size-14 text-color-black-2\">\n                        {{ vehicle?.totalCount }}\n                    </p>\n                </div>\n\n                <!-- Cost -->\n\n                <div class=\"d-flex align-items-center justify-content-end\">\n                    <p\n                        class=\"m-0 ca-font-semi-bold text-size-14 text-color-black\"\n                    >\n                        ${{ vehicle?.totalCost | thousandSeparator }}\n                    </p>\n                </div>\n            </div>\n        }\n    </div>\n\n    <!-- Footer -->\n\n    <div\n        class=\"d-flex align-items-center justify-content-between vehicle-list-footer\"\n    >\n        <p class=\"m-0 ca-font-semi-bold text-size-11 text-color-bw6-2\">\n            {{ _vehicleListConfig.list.length }} OF\n            {{ _vehicleListConfig.list.length }}\n        </p>\n    </div>\n</div>\n","export enum eSearchMultipleStateAction {\n    MAX_ADDED = 'Max Added',\n}\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n  keyframes,\n} from '@angular/animations';\n\nexport const areaLeftSideAnimation = (type: string) =>\n  trigger(type, [\n    state('in', style({ width: '100%', position: 'relative' })),\n    transition(':enter', [\n      animate(\n        200,\n        keyframes([\n          style({\n            width: '0%',\n            position: 'relative',\n            left: '0px',\n          }),\n          style({\n            width: '100%',\n            left: '0px',\n          }),\n        ])\n      ),\n    ]),\n    transition(':leave', [\n      animate(\n        200,\n        keyframes([\n          style({\n            width: '100%',\n            left: '0px',\n          }),\n          style({\n            width: '0%',\n            left: '0px',\n          }),\n        ])\n      ),\n    ]),\n  ]);\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n  keyframes,\n} from '@angular/animations';\n\nexport const areaRightSideAnimation = (type: string) =>\n  trigger(type, [\n    state('in', style({ width: '100%', position: 'relative' })),\n    transition(':enter', [\n      animate(\n        200,\n        keyframes([\n          style({\n            width: '0%',\n            right: '0px',\n          }),\n          style({\n            width: '100%',\n            right: '0px',\n          }),\n        ])\n      ),\n    ]),\n    transition(':leave', [\n      animate(\n        200,\n        keyframes([\n          style({\n            width: '100%',\n            right: '0px',\n          }),\n          style({\n            width: '0%',\n            right: '0px',\n          }),\n        ])\n      ),\n    ]),\n  ]);\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const slideInOut = (type: string) =>\n  trigger(type, [\n    state(\n      'true',\n      style({\n        width: '*',\n        opacity: 1,\n      })\n    ),\n    state(\n      'false',\n      style({\n        width: '0px',\n        opacity: 0,\n      })\n    ),\n    state(\n      'null',\n      style({\n        width: '0px',\n        opacity: 0,\n      })\n    ),\n    transition('false => true', [\n      animate('150ms cubic-bezier(0, 0, 0.60, 1.99)'),\n    ]),\n    transition('true => false', [animate('150ms ease')]),\n  ]);\n","import { animate, style, transition, trigger } from \"@angular/animations\";\n\nexport const puffAnimation = trigger('puffAnimation', [\n    transition(':enter', [\n        style({\n            opacity: 0,\n            filter: 'blur(4px)',\n            width: 0,\n            transform: 'scale(0.1)',\n        }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({\n                opacity: 1,\n                filter: 'blur(0px)',\n                width: '*',\n                'transform-origin': 'center',\n                transform: 'scale(1)',\n            })\n        ),\n    ]),\n    transition(':leave', [\n        style({\n            opacity: 1,\n            filter: 'blur(0px)',\n            width: '*',\n            transform: 'scale(1)',\n        }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({\n                opacity: 0,\n                filter: 'blur(4px)',\n                width: 0,\n                'transform-origin': 'center',\n                transform: 'scale(0.1)',\n            })\n        ),\n    ]),\n]);","import { animate, style, transition, trigger } from \"@angular/animations\";\n\nexport const searchBarButtonOpacityAnimation = trigger('searchBarButtonOpacity', [\n    transition(':enter', [\n        style({ opacity: 0 }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({ opacity: 1 })\n        ),\n    ]),\n    transition(':leave', [\n        style({ opacity: 1 }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({ opacity: 0 })\n        ),\n    ]),\n]);","import { animate, style, transition, trigger } from \"@angular/animations\";\n\nexport const searchInputExpandAnimation = trigger('searchInputExpand', [\n    transition('closed => open', [\n        style({ width: '0', opacity: 0 }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({ width: '{{maxWidth}}', opacity: 1 })\n        ),\n    ], { params: { maxWidth: '*' } }),\n    transition('open => closed', [\n        style({ width: '{{maxWidth}}', opacity: 1 }),\n        animate(\n            '200ms cubic-bezier(0.46, 0.03, 0.51, 0.95)',\n            style({ width: '0', opacity: 0 })\n        ),\n    ], { params: { maxWidth: '*' } }),\n]);","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const fadeInAnimation = trigger('fadeIn', [\n    transition(':enter', [\n        style({\n            opacity: 0.5,\n        }),\n        animate(\n            '500ms cubic-bezier(0.4, 0, 0.2, 1)',\n            style({\n                opacity: 1,\n            })\n        ),\n    ]),\n]);\n","export class MultipleSearchStateSvg {\n    static SEARCH_ICON =\n        'assets/ca-components/svg/search-multiple-states/search-button.svg';\n    static CANCEL_ICON =\n        'assets/ca-components/svg/search-multiple-states/clear-search.svg';\n    static CLEAR_ALL_ICON =\n        'assets/ca-components/svg/dropzone/x.svg';\n    static ADD_ICON = 'assets/ca-components/svg/search-multiple-states/add.svg';\n}\n","import {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\n// enums\nimport { eSearchMultipleStateAction } from './enums';\nimport {\n    eStringPlaceholder,\n    ePosition,\n    eGeneralActions,\n    eColor,\n} from '../../enums';\n\n// animations\nimport {\n    searchInputExpandAnimation,\n    puffAnimation,\n    searchBarButtonOpacityAnimation,\n} from '../../animations';\n\n// utils\nimport { MultipleSearchStateSvg } from './util';\n\n// interfaces\nimport { ISearchQueryItem } from './interfaces';\n\n// constants\nimport { SearchMultipleStatesConstant } from '../../utils/constants';\n\n@Component({\n    selector: 'ca-search-multiple-states-2',\n    templateUrl: './ca-search-multiple-states-2.component.html',\n    styleUrl: './ca-search-multiple-states-2.component.scss',\n    animations: [\n        searchInputExpandAnimation,\n        puffAnimation,\n        searchBarButtonOpacityAnimation,\n    ],\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        // Third-party modules\n        AngularSvgIconModule,\n        NgbTooltipModule,\n        // Components\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaSearchMultipleStates2Component implements OnInit {\n    @HostListener('document:click', ['$event'])\n    public onDocumentClick(event: MouseEvent): void {\n        if (\n            !this.elementRef.nativeElement.contains(event.target) &&\n            !this._isDetailsPageSearch &&\n            this.searchQuery.length !== this.SEARCH_LIMIT\n        ) {\n            this.isSearchActive = false;\n            this.resetSearchControl();\n        }\n    }\n\n    @ViewChild('searchInput') searchInput!: ElementRef<HTMLInputElement>;\n\n    constructor(\n        private cdr: ChangeDetectorRef,\n        private elementRef: ElementRef\n    ) {}\n\n    @Input() set selectedTab(value: string) {\n        if (this._selectedTab === value) return;\n        this._selectedTab = value;\n        this.resetComponentState();\n    }\n    @Input() set isDetailsPageSearch(value: boolean) {\n        this._isDetailsPageSearch = value;\n\n        this.toggleSearch();\n    }\n\n    @Input() inputPlaceholder!: string;\n    @Input() isDisabled!: boolean;\n\n    @Output() onSearchQueryChange: EventEmitter<ISearchQueryItem[]> =\n        new EventEmitter();\n    @Output() onToggleSearch: EventEmitter<boolean> = new EventEmitter();\n\n    public readonly SEARCH_LIMIT: number = 3;\n\n    public _isDetailsPageSearch: boolean = false;\n\n    public searchQuery: ISearchQueryItem[] = [];\n\n    public searchControl = new FormControl({\n        value: eStringPlaceholder.EMPTY,\n        disabled: this.searchQuery?.length >= this.SEARCH_LIMIT,\n    });\n\n    public _selectedTab!: string;\n\n    public isSearchActive: boolean = false;\n\n    // assets\n    public eSearchMultipleStateAction = eSearchMultipleStateAction;\n    public eCommonAction = eGeneralActions;\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    public multipleSearchStateSvg = MultipleSearchStateSvg;\n\n    public ngOnInit(): void {}\n\n    private focusSearchInput(): void {\n        this.cdr.detectChanges();\n        requestAnimationFrame(() => {\n            this.searchInput?.nativeElement.focus();\n        });\n    }\n\n    public addSearchItem(): void {\n        const colorClasses = SearchMultipleStatesConstant.COLOR_CLASSES;\n\n        if (this.searchQuery?.length >= this.SEARCH_LIMIT) return;\n\n        const searchItem: string | null = this.searchControl?.value;\n\n        if (!searchItem) return;\n\n        const colorClass =\n            colorClasses.find(\n                (color) =>\n                    !this.searchQuery.some((item) => item.colorClass === color)\n            ) ?? colorClasses[0];\n\n        this.searchQuery = [\n            ...this.searchQuery,\n            { text: searchItem, colorClass },\n        ];\n\n        this.updateSearchControlDisabled();\n        this.propagateData();\n\n        this.resetSearchControl();\n\n        if (\n            this.isSearchActive &&\n            this.searchQuery.length < this.SEARCH_LIMIT\n        ) {\n            this.focusSearchInput();\n        }\n    }\n\n    public clearAll(): void {\n        const isSearchLimitReached =\n            this.searchQuery.length === this.SEARCH_LIMIT;\n        this.resetComponentState();\n        this.updateSearchControlDisabled();\n        isSearchLimitReached\n            ? (this.isSearchActive = false)\n            : this.focusSearchInput();\n        this.propagateData();\n    }\n\n    public onClearValuesAction(): void {\n        const isSearchLimitReached =\n            this.searchQuery.length === this.SEARCH_LIMIT;\n        this.resetComponentState();\n        this.updateSearchControlDisabled();\n        isSearchLimitReached\n            ? (this.isSearchActive = false)\n            : this.focusSearchInput();\n    }\n\n    public deleteSearchQueryItem(index: number): void {\n        if (index < 0 || index > this.SEARCH_LIMIT) return;\n\n        const filteredChips = this.searchQuery.filter(\n            (_: ISearchQueryItem, ind: number) => index !== ind\n        );\n\n        this.searchQuery = filteredChips?.length ? [...filteredChips] : [];\n        this.updateSearchControlDisabled();\n        this.propagateData();\n        this.focusSearchInput();\n    }\n\n    public removeSearchItem(searchItem: string): void {\n        if (!searchItem) return;\n\n        this.searchQuery = this.searchQuery?.filter(\n            (item: ISearchQueryItem) => item.text !== searchItem\n        );\n        this.updateSearchControlDisabled();\n        this.propagateData();\n    }\n\n    public toggleSearch(): void {\n        const canToggle =\n            this.searchQuery?.length < this.SEARCH_LIMIT && !this.isDisabled;\n\n        if (!canToggle) {\n            return;\n        }\n\n        if (this.isSearchActive && this._isDetailsPageSearch) {\n            this.clearAll();\n            this.isSearchActive = false;\n        } else {\n            this.isSearchActive = !this.isSearchActive;\n\n            if (this.isSearchActive) {\n                this.focusSearchInput();\n            } else {\n                this.resetSearchControl();\n            }\n        }\n\n        this.onToggleSearch.emit(this.isSearchActive);\n    }\n\n    public clearSearch(): void {\n        const searchItem: string | null = this.searchControl?.value;\n        if (!searchItem) {\n            this.toggleSearch();\n            return;\n        }\n\n        this.resetSearchControl();\n        this.propagateData();\n        this.focusSearchInput();\n    }\n\n    public resetComponentState(): void {\n        this.searchQuery = [];\n        this.updateSearchControlDisabled();\n        this.resetSearchControl();\n    }\n\n    public resetSearchControl(): void {\n        this.searchControl.reset();\n    }\n\n    private updateSearchControlDisabled(): void {\n        const shouldBeDisabled = this.searchQuery?.length >= this.SEARCH_LIMIT;\n\n        if (shouldBeDisabled && !this.searchControl.disabled) {\n            this.searchControl.disable();\n        } else if (!shouldBeDisabled && this.searchControl.disabled) {\n            this.searchControl.enable();\n        }\n    }\n\n    public propagateData(): void {\n        this.onSearchQueryChange.emit(this.searchQuery);\n    }\n}\n","<div class=\"d-flex\">\n    @let searchQueryCount = searchQuery.length;\n    @let isSearchLimitReached = searchQueryCount >= SEARCH_LIMIT;\n    @let isSearchEnabled =\n        _isDetailsPageSearch || (isSearchActive && !isSearchLimitReached);\n    @let searchButtonState = isSearchActive ? 'open' : 'closed';\n\n    <div\n        class=\"container-search d-flex br-2 transition-background\"\n        [class.search-input-active]=\"isSearchEnabled && !isSearchLimitReached\"\n        [class.background-light-grey-5]=\"isSearchLimitReached\"\n        [class.w-100]=\"_isDetailsPageSearch && isSearchEnabled\"\n    >\n        <div\n            class=\"icon-container d-flex justify-content-center align-items-center br-2\"\n            ngbTooltip\n            [tooltipBackground]=\"eColor.BLACK\"\n            [position]=\"ePosition.BOTTOM\"\n            [mainCaTooltip]=\"\n                isSearchActive\n                    ? isSearchLimitReached\n                        ? eSearchMultipleStateAction.MAX_ADDED\n                        : eCommonAction.CLOSE\n                    : eCommonAction.SEARCH\n            \"\n            [ngClass]=\"{\n                'svg-hover-black background-hover-bw2': !isSearchLimitReached,\n                'c-pointer icon-container':\n                    !isSearchLimitReached && !isDisabled,\n                'svg-fill-light-grey-6 icon-disabled': isSearchLimitReached,\n                'not-focused': isSearchActive,\n            }\"\n            (click)=\"toggleSearch()\"\n        >\n            <svg-icon\n                class=\"d-flex svg-size-26 transition-fill-100\"\n                [ngClass]=\"\n                    isDisabled ? 'svg-fill-light-grey-6' : 'svg-fill-muted'\n                \"\n                [src]=\"multipleSearchStateSvg.SEARCH_ICON\"\n            ></svg-icon>\n        </div>\n\n        <div\n            [@searchInputExpand]=\"{\n                value: searchButtonState,\n                params: {\n                    maxWidth: _isDetailsPageSearch ? '100%' : '169px',\n                },\n            }\"\n            class=\"d-flex\"\n            [class.flex-grow-1]=\"_isDetailsPageSearch && isSearchEnabled\"\n        >\n            @if (isSearchActive) {\n                <div class=\"inner-border\"></div>\n                <div\n                    class=\"multiple-search-input d-flex justify-content-between align-items-center\"\n                    [class.ca-full-width]=\"_isDetailsPageSearch\"\n                >\n                    @let inputPlaceholderValue =\n                        isSearchLimitReached && _isDetailsPageSearch\n                            ? '3 Items selected'\n                            : isSearchLimitReached\n                              ? 'Max Added'\n                              : `Find ${inputPlaceholder || eStringPlaceholder.EMPTY}`;\n                    <input\n                        #searchInput\n                        class=\"text-color-white text-size-14 ca-font-regular placeholder-light-grey-2\"\n                        type=\"text\"\n                        autofocus\n                        maxlength=\"30\"\n                        [placeholder]=\"inputPlaceholderValue\"\n                        [formControl]=\"searchControl\"\n                        (keyup.enter)=\"addSearchItem()\"\n                    />\n                    @if (isSearchActive && searchControl.value) {\n                        <div\n                            class=\"d-flex align-items-center btn-container\"\n                            [@searchBarButtonOpacity]\n                        >\n                            <div\n                                class=\"c-pointer m-r-4\"\n                                ngbTooltip\n                                [tooltipBackground]=\"eColor.BLACK\"\n                                [mainCaTooltip]=\"eCommonAction.CONFIRM\"\n                                [position]=\"ePosition.BOTTOM\"\n                                (click)=\"addSearchItem()\"\n                            >\n                                <svg-icon\n                                    class=\"clear-icon transition-transform-100 d-flex svg-size-18\"\n                                    [src]=\"multipleSearchStateSvg.ADD_ICON\"\n                                ></svg-icon>\n                            </div>\n                            <div\n                                class=\"c-pointer\"\n                                ngbTooltip\n                                [tooltipBackground]=\"eColor.BLACK\"\n                                [mainCaTooltip]=\"eCommonAction.CLEAR\"\n                                [position]=\"ePosition.BOTTOM\"\n                                (click)=\"clearSearch()\"\n                            >\n                                <svg-icon\n                                    class=\"clear-icon transition-transform-100 d-flex svg-size-18\"\n                                    [src]=\"multipleSearchStateSvg.CANCEL_ICON\"\n                                ></svg-icon>\n                            </div>\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    </div>\n\n    @if (searchQuery.length) {\n        <div class=\"chips d-flex\" [@puffAnimation]>\n            @for (item of searchQuery; let ind = $index; track item.text) {\n                <div\n                    [@puffAnimation]\n                    ngbTooltip\n                    [tooltipBackground]=\"eColor.BLACK\"\n                    [mainCaTooltip]=\"eCommonAction.CLEAR\"\n                    [position]=\"ePosition.BOTTOM\"\n                    class=\"text-size-14 text-color-white ca-font-semi-bold c-pointer br-2 m-l-4\"\n                    [ngClass]=\"item.colorClass\"\n                    (click)=\"deleteSearchQueryItem(ind)\"\n                >\n                    {{ item.text }}\n                </div>\n            }\n        </div>\n        <div\n            class=\"icon-container icon-close d-flex justify-content-center align-items-center c-pointer br-2 svg-hover-red-14 m-l-4\"\n            ngbTooltip\n            [tooltipBackground]=\"eColor.BLACK\"\n            [mainCaTooltip]=\"eCommonAction.CLEAR_ALL\"\n            [position]=\"ePosition.BOTTOM\"\n            (click)=\"clearAll()\"\n        >\n            <svg-icon\n                class=\"d-flex svg-size-18 svg-fill-muted\"\n                [src]=\"multipleSearchStateSvg.CLEAR_ALL_ICON\"\n            ></svg-icon>\n        </div>\n    }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'checkboxSelectedCountClass',\n    standalone: true,\n})\nexport class CheckboxSelectedCountClassPipe implements PipeTransform {\n    transform({\n        hasItems,\n        hasSelectedItems,\n        itemsSelectedCount,\n    }: {\n        hasItems: boolean;\n        hasSelectedItems: boolean;\n        itemsSelectedCount: number | null;\n    }): string {\n        if (!hasItems) return 'w-14 h-14 background-light-grey-6 disabled';\n\n        if (!hasSelectedItems)\n            return 'w-14 h-14 background-bw5 background-hover-black c-pointer';\n\n        let baseClass =\n            'min-w-18 h-18 p-x-2 background-blue-18 background-hover-blue-15 selected c-pointer';\n\n        return baseClass;\n    }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// enums\nimport {\n    eColor,\n    eGeneralActions,\n    ePosition,\n    eStringPlaceholder,\n} from '../../enums';\n\n// pipes\nimport { ThousandFormatterPipe } from '../../pipes';\nimport { CheckboxSelectedCountClassPipe } from './pipes';\n\n@Component({\n    selector: 'app-ca-checkbox-selected-count',\n    templateUrl: './ca-checkbox-selected-count.component.html',\n    styleUrl: './ca-checkbox-selected-count.component.scss',\n    imports: [\n        // modules\n        CommonModule,\n        NgbModule,\n        AngularSvgIconModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        ThousandFormatterPipe,\n        CheckboxSelectedCountClassPipe,\n    ],\n})\nexport class CaCheckboxSelectedCountComponent {\n    @Input() itemsTotalCount: number | null = null;\n    @Input() itemsSelectedCount: number | null = null;\n    @Input() isTableHeader: boolean = false;\n\n    @Output() onCheckboxCountClick: EventEmitter<string> =\n        new EventEmitter<string>();\n\n    public isCheckboxCountHovered: boolean = false;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    // enums\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eGeneralActions = eGeneralActions;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    constructor() {}\n\n    public handleCheckboxCountHover(isHovered: boolean = false): void {\n        this.isCheckboxCountHovered = isHovered;\n    }\n\n    public handleCheckboxCountClick(action: string): void {\n        this.onCheckboxCountClick.emit(action);\n    }\n}\n","@let hasItems = !!itemsTotalCount;\n@let hasSelectedItems = !!itemsSelectedCount;\n@let hasSelectedAllItems =\n    itemsTotalCount && itemsTotalCount === itemsSelectedCount;\n\n@let formattedItemsSelectedCount = itemsSelectedCount! | addThousandSign;\n\n@let checkboxCount =\n    itemsSelectedCount ? formattedItemsSelectedCount : eStringPlaceholder.EMPTY;\n\n@let selectAllTooltip =\n    hasItems\n        ? eGeneralActions.SELECT_ALL +\n          ' (' +\n          (itemsTotalCount! | addThousandSign) +\n          ')'\n        : eStringPlaceholder.EMPTY;\n\n@let selectRemainingTooltip =\n    eGeneralActions.SELECT_REMAINING +\n    ' (' +\n    (itemsTotalCount! - itemsSelectedCount! | addThousandSign) +\n    ')';\n\n@let clearSelectedTooltip =\n    eGeneralActions.CLEAR_SELECTED + ' (' + formattedItemsSelectedCount + ')';\n\n@let checkboxCountTooltip =\n    hasSelectedAllItems\n        ? clearSelectedTooltip\n        : hasSelectedItems\n          ? selectRemainingTooltip\n          : selectAllTooltip;\n\n@let checkboxCountClickAction =\n    hasSelectedAllItems\n        ? eGeneralActions.CLEAR_SELECTED\n        : hasSelectedItems\n          ? eGeneralActions.SELECT_REMAINING\n          : eGeneralActions.SELECT_ALL;\n<div\n    class=\"d-flex justify-content-center min-w-18 h-18\"\n    [ngClass]=\"isTableHeader ? 'align-items-end' : 'align-items-center'\"\n>\n    <div\n        class=\"d-flex align-items-center justify-content-center br-2 checkbox-selected-count\"\n        [ngClass]=\"\n            { hasItems, hasSelectedItems, itemsSelectedCount }\n                | checkboxSelectedCountClass\n        \"\n        ngbTooltip\n        [mainCaTooltip]=\"checkboxCountTooltip\"\n        [tooltipBackground]=\"eColor.BLACK\"\n        [position]=\"ePosition.BOTTOM\"\n        (mouseenter)=\"hasSelectedItems && handleCheckboxCountHover(true)\"\n        (mouseleave)=\"hasSelectedItems && handleCheckboxCountHover()\"\n        (click)=\"handleCheckboxCountClick(checkboxCountClickAction)\"\n    >\n        @if (hasSelectedItems && isCheckboxCountHovered) {\n            @let checkboxCountIcon =\n                hasSelectedAllItems\n                    ? sharedSvgRoutes.CLEAR_SELECTED_ICON\n                    : sharedSvgRoutes.SELECT_REMAINING_ICON;\n\n            @let checkboxCountIconClass =\n                hasSelectedAllItems ? 'svg-size-10' : 'svg-size-14';\n\n            <p class=\"text-size-11 text-color-white ca-font-bold opacity-0\">\n                {{ checkboxCount }}\n            </p>\n            \n            <svg-icon\n                class=\"svg-fill-white position-absolute d-flex\"\n                [class]=\"checkboxCountIconClass\"\n                [src]=\"checkboxCountIcon\"\n            ></svg-icon>\n        } @else {\n            <p class=\"text-size-11 text-color-white ca-font-bold\">\n                {{ checkboxCount }}\n            </p>\n        }\n    </div>\n</div>\n","export class TableCardViewSvgRoutes {\n  static flipArrowRoute: string = \"assets/ca-components/svg/popup/resize-arrow.svg\";\n}\n","import { ElementRef, QueryList, Renderer2 } from '@angular/core';\n\nexport class TableCardSkeletonHelper {\n    static scrollToBottom(\n        skeleton: ElementRef,\n        isBannerVisible: boolean,\n        cardsContainer: ElementRef\n    ): void {\n        const skeletonEl = skeleton.nativeElement as HTMLElement;\n        const container = cardsContainer.nativeElement as HTMLElement;\n        const cards = container.querySelectorAll('.flip-card');\n\n        let cardHeight: number = 234; // Fallback height\n        if (cards.length) {\n            const firstCard = cards[0] as HTMLElement;\n            cardHeight = firstCard.offsetHeight;\n        }\n\n        let sameRow = false;\n        if (cards.length > 0) {\n            const lastCard = cards[cards.length - 1] as HTMLElement;\n            sameRow =\n                Math.abs(\n                    skeletonEl.getBoundingClientRect().top -\n                        lastCard.getBoundingClientRect().top\n                ) === 0;\n        }\n        cardHeight = sameRow ? 0 : cardHeight;\n        const topMarginOffset =\n            sameRow && isBannerVisible\n                ? 42\n                : sameRow\n                  ? 12\n                  : isBannerVisible\n                    ? 46\n                    : 16;\n\n        let scrollable = container;\n        while (\n            scrollable &&\n            !(\n                scrollable.scrollHeight > scrollable.clientHeight &&\n                ['auto', 'scroll'].includes(\n                    getComputedStyle(scrollable).overflowY\n                )\n            )\n        ) {\n            scrollable = scrollable.parentElement!;\n        }\n\n        if (!scrollable) return;\n\n        const { top: skeletonTop } = skeletonEl.getBoundingClientRect();\n        const { top: scrollableTop } = scrollable.getBoundingClientRect();\n        const scrollTop =\n            skeletonTop -\n            scrollableTop +\n            scrollable.scrollTop -\n            (cardHeight + topMarginOffset);\n\n        scrollable.scrollTo({\n            top: Math.max(0, scrollTop),\n            behavior: 'smooth',\n        });\n    }\n\n    static adjustPlaceholderHeights(\n        renderer: Renderer2,\n        skeletons: QueryList<ElementRef>,\n        cardsContainer: ElementRef\n    ): void {\n        if (!cardsContainer || !skeletons?.length) {\n            return;\n        }\n\n        const firstCard = cardsContainer.nativeElement.querySelector(\n            '.flip-card'\n        ) as HTMLElement | null;\n\n        if (firstCard) {\n            const cardHeight = firstCard.offsetHeight;\n\n            skeletons.forEach((skeleton) => {\n                if (skeleton?.nativeElement) {\n                    renderer.setStyle(\n                        skeleton.nativeElement,\n                        'height',\n                        cardHeight + 'px'\n                    );\n                }\n            });\n        }\n    }\n}\n","import { ElementRef, Renderer2 } from '@angular/core';\n\nexport class TableCardViewHelper {\n    static isCardFlippedArrayComparasion: number[] = [];\n    static isCardFlippedCheckInCards: number[] = [];\n\n    private static toggleTransition(\n        isResize: boolean,\n        cardsContainer: ElementRef,\n        renderer: Renderer2\n    ): void {\n        if (!cardsContainer) {\n            return;\n        }\n\n        const flipCardContents =\n            cardsContainer.nativeElement.querySelectorAll('.flip-card-content');\n\n        flipCardContents.forEach((content: HTMLElement) => {\n            if (isResize) {\n                renderer.removeStyle(content, 'transition');\n            } else {\n                renderer.setStyle(content, 'transition', 'none', 1);\n            }\n        });\n    }\n\n    static flipCard(index: number): number[] {\n        const indexSelected = this.isCardFlippedArrayComparasion.indexOf(index);\n\n        if (indexSelected !== -1)\n            this.isCardFlippedArrayComparasion.splice(indexSelected, 1);\n        else this.isCardFlippedArrayComparasion.push(index);\n\n        this.isCardFlippedCheckInCards = this.isCardFlippedArrayComparasion;\n\n        return [...this.isCardFlippedCheckInCards];\n    }\n\n    static calculateAndSetFlipVariables(\n        cardsContainer: ElementRef,\n        renderer: Renderer2,\n        isResize: boolean = false\n    ): void {\n        if (!cardsContainer) {\n            return;\n        }\n\n        const flipCards =\n            cardsContainer.nativeElement.querySelectorAll('.flip-card');\n\n        if (isResize) {\n            this.toggleTransition(false, cardsContainer, renderer);\n        }\n\n        flipCards.forEach((card: HTMLElement) => {\n            const cardWidth = card.offsetWidth;\n            const cardHeight = card.offsetHeight;\n\n            if (cardWidth && cardHeight) {\n                const diagonal = Math.sqrt(\n                    cardWidth * cardWidth + cardHeight * cardHeight\n                );\n\n                const flipWidth = cardWidth / diagonal;\n                const flipHeight = cardHeight / diagonal;\n\n                const flipCardContent = card.querySelector(\n                    '.flip-card-content'\n                ) as HTMLElement;\n\n                if (flipCardContent) {\n                    renderer.setStyle(\n                        flipCardContent,\n                        '--flip-width',\n                        `${-flipWidth}`,\n                        2\n                    );\n                    renderer.setStyle(\n                        flipCardContent,\n                        '--flip-height',\n                        `${-flipHeight}`,\n                        2\n                    );\n                }\n            }\n        });\n\n        if (isResize) {\n            this.toggleTransition(isResize, cardsContainer, renderer);\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'isCardFlipped',\n    standalone: true,\n})\nexport class IsCardFlippedPipe implements PipeTransform {\n    transform(index: number, flippedCards: number[]): boolean {\n        return flippedCards?.includes(index) ?? false;\n    }\n}\n","export enum eTableCardTypes {\n    FRONT = 'FRONT',\n    BACK = 'BACK',\n}\n","export enum eTableCardGeneral {\n    FLIP_CARD = 'Flip Card',\n    VIEW_DETAILS = 'View Details',\n}\n","import {\n    Component,\n    Input,\n    ViewChildren,\n    QueryList,\n    ElementRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { TableCardViewSvgRoutes } from '../../../utils/svg-routes';\n\n@Component({\n    selector: 'ca-table-card-view-skeleton',\n    imports: [CommonModule, AngularSvgIconModule],\n    templateUrl: './ca-table-card-view-skeleton.component.html',\n    styleUrl: './ca-table-card-view-skeleton.component.scss',\n})\nexport class CaTableCardViewSkeletonComponent {\n    @Input() cardsCount: number = 25;\n    @ViewChildren('placeholder') placeholders!: QueryList<ElementRef>;\n\n    public tableCardViewSvgRoutes = TableCardViewSvgRoutes;\n}\n","@for (card of [].constructor(cardsCount); track $index) {\n    <div\n        #placeholder\n        class=\"placeholder br-3 placeholder-white position-relative opacity-100 h-234 d-flex p-4 gap-1\"\n    >\n        <div class=\"h-100 flex-1 p-y-4 p-l-4\">\n            <div class=\"d-flex align-items-center gap-8 p-x-4 p-y-6\">\n                <div class=\"background-dark-2 w-14 h-14 br-2\"></div>\n                <div class=\"flex-1\">\n                    <div class=\"background-dark-2 h-14 br-2 w-110\"></div>\n                </div>\n            </div>\n        </div>\n        <div\n            class=\"h-100 p-y-4 p-r-4 d-flex flex-column justify-content-center\"\n        >\n            <div class=\"background-dark-2 w-18 h-7 br-2 m-x-4 m-y-9\"></div>\n            <div class=\"flex-1 d-flex align-items-end justify-content-center\">\n                <span class=\"p-t-6 p-b-2 p-l-6 p-r-2\">\n                    <svg-icon\n                        class=\"svg-size-18 d-flex align-items-center justify-content-center svg-fill-dark-2\"\n                        [src]=\"tableCardViewSvgRoutes.flipArrowRoute\"\n                    ></svg-icon>\n                </span>\n            </div>\n        </div>\n    </div>\n}\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewChild,\n    ViewChildren,\n    QueryList,\n    ElementRef,\n    AfterViewInit,\n    OnDestroy,\n    HostListener,\n    Renderer2,\n    TemplateRef,\n    OnInit,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// components\nimport { CaDropdownMenuComponent } from '../ca-dropdown-menu/ca-dropdown-menu.component';\nimport { CaShowMoreComponent } from '../ca-show-more/ca-show-more.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaCheckboxComponent } from '../ca-checkbox/ca-checkbox.component';\n\n// models\nimport { CardDetails } from '../../models/card-models/card-table-data.model';\n\n// interfaces\nimport {\n    IDropdownMenuItem,\n    IDropdownMenuOptionEmit,\n} from '../ca-dropdown-menu/interfaces';\nimport { TableCardBodyActions } from '../../interfaces';\nimport { ISearchQueryItem } from '../ca-search-multiple-states-2/interfaces';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// svg-routes\nimport { TableCardViewSvgRoutes } from './utils/svg-routes';\n\n// helpers\nimport { TableCardViewHelper, TableCardSkeletonHelper } from './utils/helpers';\n\n// pipes\nimport { IsCardFlippedPipe } from './pipes';\nimport { TableHighlightSearchTextPipe } from '../../pipes';\n\n// enums\nimport { eTableCardTypes, eTableCardGeneral } from './enums';\nimport { ePosition, eColor, eStringPlaceholder } from '../../enums';\n\n// animations\nimport { fadeInAnimation } from '../../animations';\n\n// additional components\nimport { CaTableCardViewSkeletonComponent } from './components/additional-components/ca-table-card-view-skeleton/ca-table-card-view-skeleton.component';\n\n@Component({\n    selector: 'ca-table-card-view',\n    templateUrl: './ca-table-card-view.component.html',\n    styleUrl: './ca-table-card-view.component.scss',\n    animations: [fadeInAnimation],\n    imports: [\n        // modules\n        AngularSvgIconModule,\n        CommonModule,\n        NgbTooltip,\n        // components\n        CaDropdownMenuComponent,\n        CaShowMoreComponent,\n        CaAppTooltipV2Component,\n        CaCheckboxComponent,\n        CaTableCardViewSkeletonComponent,\n        // pipes\n        IsCardFlippedPipe,\n        TableHighlightSearchTextPipe,\n    ],\n})\nexport class CaTableCardViewComponent<T>\n    implements OnInit, AfterViewInit, OnDestroy\n{\n    @HostListener('window:resize')\n    onResize() {\n        this.adjustShowMoreWidth();\n\n        requestAnimationFrame(() => {\n            TableCardViewHelper.calculateAndSetFlipVariables(\n                this.cardsContainer,\n                this.renderer,\n                true\n            );\n        });\n    }\n\n    @ViewChildren('cardBodyContent') cardBodyContents!: QueryList<ElementRef>;\n    @ViewChild('showMoreContainer') showMoreContainer!: ElementRef;\n    @ViewChild('cardsContainer') cardsContainer!: ElementRef;\n    @ViewChild('skeletonLoader')\n    skeletonLoader!: CaTableCardViewSkeletonComponent;\n\n    @Input() set frontSide(value: TemplateRef<{ data: T }>) {\n        this._frontSide = value;\n    }\n\n    @Input() set backSide(value: TemplateRef<{ data: T }>) {\n        this._backSide = value;\n    }\n\n    @Input() set titleIcon(value: TemplateRef<{ data: T }>) {\n        this._titleIcon = value;\n    }\n\n    @Input() set rightSideTemplate(value: TemplateRef<{ data: T }>) {\n        this._rightSideTemplate = value;\n    }\n\n    @Input() set viewData(value: T[]) {\n        this._viewData = value;\n        this.waitForCardsContainerAndCalculate();\n    }\n\n    @Input() set cardTitle(value: string) {\n        this._cardTitle = value;\n    }\n\n    @Input() set isLoading(value: boolean) {\n        this._isLoading = value;\n    }\n\n    @Input() set searchStrings(value: ISearchQueryItem[]) {\n        this._searchStrings = value;\n    }\n\n    @Input() totalDataCount!: number;\n    @Input() cardsFlipType!: string;\n    @Input() isDropdownMenuHidden: boolean = false;\n    @Input() isSelectHidden: boolean = false;\n    @Input() isBannerVisible: boolean = false;\n    @Input() showBackSide: boolean = true;\n    @Input() dropdownMenuOptions: IDropdownMenuItem[] = [];\n    @Input() hasDetailsPage: boolean = true;\n    @Input() isCardSortingActive: boolean = false;\n\n    // show more\n    @Output() showMore: EventEmitter<void> = new EventEmitter<void>();\n\n    // select\n    @Output() selectCard: EventEmitter<number> = new EventEmitter<number>();\n\n    // title click\n    @Output() cardTitleClick: EventEmitter<number> = new EventEmitter<number>();\n\n    @Output() finishOrder: EventEmitter<number> = new EventEmitter<number>();\n\n    @Output() dropdownOptionEmitter: EventEmitter<\n        TableCardBodyActions<CardDetails>\n    > = new EventEmitter<TableCardBodyActions<CardDetails>>();\n\n    public _searchStrings: ISearchQueryItem[] = [];\n    public _cardTitle!: string;\n    public _isLoading!: boolean;\n    public _viewData!: T[];\n    public _frontSide!: TemplateRef<{ data: T }>;\n    public _backSide!: TemplateRef<{ data: T }>;\n    public _titleIcon!: TemplateRef<{ data: T }>;\n    public _rightSideTemplate!: TemplateRef<{ data: T }>;\n\n    // flip cards\n    public isCardFlippedCheckInCards: number[] = [];\n\n    // MutationObserver\n    private deferObserver?: MutationObserver;\n\n    // svg-routes\n    public tableCardViewSvgRoutes = TableCardViewSvgRoutes;\n\n    // enums\n    public tableCardTypes = eTableCardTypes;\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eTableCardGeneral = eTableCardGeneral;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    private copyHandler!: (e: ClipboardEvent) => void;\n\n    constructor(private renderer: Renderer2) {}\n\n    ngOnInit() {\n        this.isCardFlippedCheckInCards = [\n            ...TableCardViewHelper.isCardFlippedCheckInCards,\n        ];\n\n        this.copyHandler = this.handleCopyEvent.bind(this);\n        document.addEventListener('copy', this.copyHandler);\n    }\n\n    ngAfterViewInit() {\n        this.waitForCardsContainerAndCalculate();\n    }\n\n    private handleCopyEvent(clipboardEvent: ClipboardEvent): void {\n        const plainText = window.getSelection()?.toString() || '';\n        clipboardEvent.clipboardData?.setData('text/plain', plainText);\n        clipboardEvent.preventDefault();\n    }\n\n    private adjustShowMoreWidth(): void {\n        if (this.cardsContainer && this.showMoreContainer) {\n            const firstCard =\n                this.cardsContainer.nativeElement.querySelector('.flip-card');\n\n            if (firstCard) {\n                const cardWidth = firstCard.offsetWidth;\n                this.renderer.setStyle(\n                    this.showMoreContainer.nativeElement,\n                    'width',\n                    cardWidth + 'px'\n                );\n            }\n        }\n    }\n\n    private waitForCardsContainerAndCalculate(): void {\n        if (this.cardsContainer?.nativeElement) {\n            this.disconnectDeferObserver();\n            this.calculateAndSetup();\n            return;\n        }\n\n        this.disconnectDeferObserver();\n        this.deferObserver = new MutationObserver(() => {\n            if (this.cardsContainer?.nativeElement) {\n                this.adjustShowMoreWidth();\n                this.calculateAndSetup();\n                this.disconnectDeferObserver();\n            }\n        });\n\n        this.deferObserver.observe(document.body, {\n            childList: true,\n            subtree: true,\n        });\n    }\n\n    private disconnectDeferObserver(): void {\n        if (this.deferObserver) {\n            this.deferObserver.disconnect();\n            this.deferObserver = undefined;\n        }\n    }\n\n    private calculateAndSetup(): void {\n        requestAnimationFrame(() => {\n            TableCardViewHelper.calculateAndSetFlipVariables(\n                this.cardsContainer,\n                this.renderer\n            );\n        });\n    }\n\n    public handleToggleDropdownMenuActions(\n        event: IDropdownMenuOptionEmit,\n        card: CardDetails\n    ) {\n        const { type } = event;\n        const { id } = card;\n\n        const emitAction = {\n            type,\n            id,\n            data: card,\n        };\n\n        this.dropdownOptionEmitter.emit(emitAction);\n    }\n\n    public flipCard(index: number): void {\n        this.isCardFlippedCheckInCards = TableCardViewHelper.flipCard(index);\n    }\n\n    public onCheckboxSelect(id: number): void {\n        this.selectCard.emit(id);\n    }\n\n    public cardTitleClicked(id: number): void {\n        this.cardTitleClick.emit(id);\n    }\n\n    public onShowMoreClick(): void {\n        this.showMore.emit();\n\n        requestAnimationFrame(() => {\n            if (this.skeletonLoader?.placeholders) {\n                TableCardSkeletonHelper.adjustPlaceholderHeights(\n                    this.renderer,\n                    this.skeletonLoader.placeholders,\n                    this.cardsContainer\n                );\n\n                const firstPlaceholder = this.skeletonLoader.placeholders.first;\n                if (firstPlaceholder) {\n                    TableCardSkeletonHelper.scrollToBottom(\n                        firstPlaceholder,\n                        this.isBannerVisible,\n                        this.cardsContainer\n                    );\n                }\n            }\n        });\n    }\n\n    public repairFinishOrder(id: number): void {\n        this.finishOrder.emit(id);\n    }\n\n    ngOnDestroy() {\n        this.disconnectDeferObserver();\n        document.removeEventListener('copy', this.copyHandler);\n    }\n}\n","@let displayedDataCount = _viewData.length;\n@let isShowMoreLoading = _isLoading && displayedDataCount;\n\n@defer (when !_isLoading) {\n    <div\n        class=\"cards-container d-grid gap-1 m-t-7 m-r-15\"\n        [class.placeholder-wave]=\"_isLoading\"\n        #cardsContainer\n    >\n        @for (card of _viewData; let index = $index; track $index) {\n            @let isCardFlipped =\n                (index | isCardFlipped: isCardFlippedCheckInCards) ||\n                cardsFlipType === tableCardTypes.BACK;\n\n            <div [@fadeIn] class=\"br-3 flip-card\">\n                <div\n                    class=\"flip-card-content position-relative w-100 h-100 transition-transform-400\"\n                    [class.flipped]=\"isCardFlipped\"\n                >\n                    <div\n                        class=\"flip-card-front br-3 background-white p-4 w-100 h-100\"\n                        [ngClass]=\"\n                            isCardFlipped\n                                ? 'position-absolute top-0 left-0'\n                                : 'position-relative'\n                        \"\n                    >\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                cardContentTemplate;\n                                context: {\n                                    card,\n                                    index,\n                                    sideOfCard: _frontSide,\n                                }\n                            \"\n                        ></ng-container>\n                    </div>\n\n                    <div\n                        class=\"flip-card-back br-3 background-white p-4 w-100 h-100\"\n                        [ngClass]=\"\n                            isCardFlipped\n                                ? 'position-relative'\n                                : 'position-absolute top-0 left-0'\n                        \"\n                    >\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                cardContentTemplate;\n                                context: {\n                                    card,\n                                    index,\n                                    sideOfCard: _backSide,\n                                }\n                            \"\n                        ></ng-container>\n                    </div>\n                </div>\n            </div>\n        }\n\n        @if (isShowMoreLoading) {\n            @let numberOfCards =\n                totalDataCount - displayedDataCount > 25\n                    ? 25\n                    : totalDataCount - displayedDataCount;\n\n            <ca-table-card-view-skeleton\n                #skeletonLoader\n                [cardsCount]=\"numberOfCards\"\n            ></ca-table-card-view-skeleton>\n        }\n    </div>\n\n    @if (displayedDataCount) {\n        <div #showMoreContainer>\n            <app-ca-show-more\n                [displayedDataCount]=\"displayedDataCount\"\n                [totalDataCount]=\"totalDataCount\"\n                (onShowMore)=\"onShowMoreClick()\"\n            ></app-ca-show-more>\n        </div>\n    }\n} @placeholder (minimum 800ms) {\n    <ca-table-card-view-skeleton\n        class=\"placeholder-wave cards-container d-grid gap-1 m-t-7 m-r-15\"\n    ></ca-table-card-view-skeleton>\n}\n\n<ng-template\n    #cardContentTemplate\n    let-card=\"card\"\n    let-index=\"index\"\n    let-sideOfCard=\"sideOfCard\"\n>\n    <div\n        class=\"card-body d-flex justify-content-between position-relative gap-1 br-2 p-4 h-100\"\n        [ngClass]=\"\n            card.isSelected\n                ? 'background-gray background-hover-gray'\n                : 'background-hover-bw2'\n        \"\n    >\n        <!-- Left side of the card -->\n        <div class=\"card-body-left d-flex flex-column gap-8\">\n            <!-- Head of the card -->\n\n            <div\n                class=\"card-header d-flex align-items-center gap-8 p-l-2 h-26\"\n                [ngClass]=\"card?.isRepairOrder ? 'with-finish-order' : 'p-r-4'\"\n                [class.select-hidden]=\"isSelectHidden\"\n            >\n                @if (!isSelectHidden) {\n                    <app-ca-checkbox\n                        [name]=\"'checkbox' + index\"\n                        [isChecked]=\"card.isSelected\"\n                        [isRegularCheckbox]=\"false\"\n                        (columnCheckAction)=\"onCheckboxSelect(card.id)\"\n                    ></app-ca-checkbox>\n                }\n\n                <div\n                    class=\"d-flex align-items-center flex-grow-1 gap-1 min-w-0\"\n                >\n                    @if (_titleIcon) {\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                _titleIcon;\n                                context: { data: card }\n                            \"\n                        ></ng-container>\n                    }\n\n                    <div\n                        class=\"card-title text-color-black ca-font-bold text-size-14 min-w-0\"\n                        [ngClass]=\"{\n                            'c-pointer text-hover-blue-15': hasDetailsPage,\n                        }\"\n                        (click)=\"cardTitleClicked(card.id)\"\n                    >\n                        <p\n                            class=\"text-truncate\"\n                            ngbTooltip\n                            [mainCaTooltip]=\"\n                                hasDetailsPage\n                                    ? eTableCardGeneral.VIEW_DETAILS\n                                    : undefined\n                            \"\n                            [position]=\"ePosition.BOTTOM\"\n                            [tooltipBackground]=\"eColor.BLACK\"\n                            [innerHTML]=\"\n                                card[_cardTitle] ??\n                                    eStringPlaceholder.FORWARD_SLASH\n                                    | tableHighlightSearchText: _searchStrings\n                            \"\n                        ></p>\n                    </div>\n                </div>\n\n                @if (card?.isRepairOrder) {\n                    <div\n                        class=\"finish-order-btn text-size-11 text-color-blue-11 ca-font-bold p-y-4 p-x-8 br-2 c-pointer text-nowrap transition-background-300\"\n                        (click)=\"repairFinishOrder(card.id)\"\n                    >\n                        FINISH ORDER\n                    </div>\n                }\n            </div>\n\n            <!-- Card body front-->\n\n            <div\n                class=\"card-body-content d-flex flex-column gap-2\"\n                #cardBodyContent\n            >\n                <ng-container\n                    *ngTemplateOutlet=\"sideOfCard; context: { data: card }\"\n                ></ng-container>\n            </div>\n        </div>\n\n        <!-- Right side of the card -->\n        <div class=\"card-body-right d-flex flex-column\">\n            <div class=\"d-flex flex-column gap-1 flex-grow-1\">\n                <!-- Dropdown Menu-->\n\n                @if (!isDropdownMenuHidden) {\n                    <ca-dropdown-menu\n                        [type]=\"'dots-menu-type'\"\n                        [placement]=\"ePosition.TABLE_CARDS_DROPDOWN_MENU\"\n                        [options]=\"dropdownMenuOptions\"\n                        (dropdownOptionEmitter)=\"\n                            handleToggleDropdownMenuActions($event, card)\n                        \"\n                    >\n                    </ca-dropdown-menu>\n                }\n\n                <!-- Note element -->\n\n                @if (_rightSideTemplate) {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            _rightSideTemplate;\n                            context: { data: card }\n                        \"\n                    ></ng-container>\n                }\n            </div>\n\n            <!-- Expand element -->\n\n            @let showBackSideCard =\n                (index | isCardFlipped: isCardFlippedCheckInCards) ||\n                cardsFlipType === tableCardTypes.BACK;\n\n            @if (showBackSide) {\n                <div\n                    class=\"bottom-side d-flex justify-content-center h-26 w-26\"\n                    (click)=\"flipCard(index)\"\n                >\n                    <span\n                        class=\"p-t-6 p-b-2 p-l-6 p-r-2\"\n                        [ngClass]=\"\n                            showBackSideCard\n                                ? 'svg-hover-blue-15'\n                                : 'svg-hover-black'\n                        \"\n                        type=\"button\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"eTableCardGeneral.FLIP_CARD\"\n                        [position]=\"ePosition.BOTTOM\"\n                        [tooltipBackground]=\"eColor.BLACK\"\n                    >\n                        <svg-icon\n                            class=\"svg-size-18 d-flex align-items-center justify-content-center\"\n                            [ngClass]=\"{\n                                'rotate-svg svg-fill-blue-13': showBackSideCard,\n                            }\"\n                            [src]=\"tableCardViewSvgRoutes.flipArrowRoute\"\n                        ></svg-icon>\n                    </span>\n                </div>\n            }\n        </div>\n\n        <!-- Sort by blur overlay -->\n        @if (isCardSortingActive) {\n            <div\n                class=\"blur-overlay background-white-7 position-absolute top-0 start-0 end-0 bottom-0 z-3\"\n            ></div>\n        }\n    </div>\n</ng-template>\n","import {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    Output,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgbModule, NgbPopover, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Svg Routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes/shared-svg.routes';\n\n// Enums\nimport { eColor } from '../../enums/color.enum';\nimport { ePosition } from '../../enums';\n\n// Config\nimport { CaDetailsTitleCardConfig } from './interfaces/ca-details-title-card-config.interface';\n\n@Component({\n    selector: 'app-ca-details-title-card',\n    templateUrl: './ca-details-title-card.component.html',\n    styleUrls: ['./ca-details-title-card.component.scss'],\n    imports: [\n        // Modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbTooltip,\n        NgbModule,\n        // Components\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaDetailsTitleCardComponent<T> {\n    @ViewChild('dropdownPopover') public popoverRef!: NgbPopover;\n    @ViewChild('titleCardTooltip') public titleCardTooltip!: NgbTooltip;\n    @ViewChild('titleCard') public titleCard!: ElementRef;\n    @ViewChild('inputSearch') public inputSearch!: ElementRef;\n\n    @Input() dropdownTemplate!: TemplateRef<T>;\n    @Input() titleTemplate!: TemplateRef<T>;\n    @Input() set detailsTitleCardConfig(values: CaDetailsTitleCardConfig) {\n        this._detailsTitleCardConfig = values;\n\n        if (values.isSearchTooltipDisabled && this.titleCardTooltip?.isOpen())\n            this.titleCardTooltip.close();\n    }\n\n    @Output() onNextAction: EventEmitter<void> = new EventEmitter<void>();\n    @Output() onPreviousAction: EventEmitter<void> = new EventEmitter<void>();\n    @Output() onSearchTextChange: EventEmitter<string | null> =\n        new EventEmitter();\n\n    public _detailsTitleCardConfig!: CaDetailsTitleCardConfig;\n    public titleCardWidth: number = 0;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n    public eColor = eColor;\n    public ePosition = ePosition;\n\n    public toggleInput!: boolean;\n    public dropdownPopover: NgbPopover | null = null;\n\n    public get isDropdownActive(): boolean | undefined {\n        return this.dropdownPopover?.isOpen();\n    }\n\n    constructor(private cdr: ChangeDetectorRef) {}\n\n    private refreshWidth(): void {\n        if (!this.titleCard) return;\n\n        const titleCard = this.titleCard?.nativeElement;\n\n        this.titleCardWidth = titleCard.offsetWidth;\n    }\n\n    public onTitleClick(): void {\n        this.onToggleInput();\n        this.refreshWidth();\n        \n        this.cdr.detectChanges();\n        this.handleDropdownOpenCloseClick(this.popoverRef);\n\n        this.inputSearch.nativeElement.focus();\n    }\n\n    public onToggleInput(): void {\n        this.toggleInput = !this.toggleInput;\n    }\n\n    public onPopoverClosed(): void {\n        this.toggleInput = false;\n\n        this.onSearchTextChange.emit(null);\n    }\n\n    public handleDropdownOpenCloseClick(dropdownPopover: NgbPopover): void {\n        if (dropdownPopover.isOpen()) {\n            dropdownPopover.close();\n\n            this.dropdownPopover = null;\n            this.onToggleInput();\n        } else {\n            this.dropdownPopover?.close();\n\n            this.dropdownPopover = dropdownPopover;\n\n            this.dropdownPopover.open();\n        }\n    }\n\n    public preventPopoverClosing(event: MouseEvent): void {\n        event.stopPropagation();\n    }\n\n    public onPrevious(): void {\n        if (!this._detailsTitleCardConfig?.isPreviousButtonDisabled)\n            this.onPreviousAction.emit();\n    }\n\n    public onNext(): void {\n        if (!this._detailsTitleCardConfig?.isNextButtonDisabled)\n            this.onNextAction.emit();\n    }\n\n    public onSearchText(event: Event): void {\n        const value = (event.target as HTMLInputElement).value;\n        this.onSearchTextChange.emit(value);\n    }\n}\n","<div class=\"d-flex details-title-card\">\n    @if (toggleInput) {\n        <div\n            class=\"input-custom-group w-100\"\n            #dropdownPopover=\"ngbPopover\"\n            triggers=\"'manual'\"\n            [ngbPopover]=\"dropdownOptions\"\n            [autoClose]=\"'outside'\"\n            [placement]=\"ePosition.BOTTOM_LEFT\"\n            [popoverClass]=\"'dropdown-details-title-card-popover'\"\n            (hidden)=\"onPopoverClosed()\"\n        >\n            <input\n                #inputSearch\n                class=\"input-class ca-font-regular text-size-14 background-black-3 br-2\"\n                [placeholder]=\"_detailsTitleCardConfig.placeholder\"\n                (input)=\"onSearchText($event)\"\n                (mousedown)=\"preventPopoverClosing($event)\"\n            />\n\n            <svg-icon\n                (click)=\"handleDropdownOpenCloseClick(dropdownPopover)\"\n                [src]=\"sharedSvgRoutes.DROPDOWN_ARROW\"\n                [class.focus]=\"isDropdownActive\"\n                class=\"input-dropdown-arrow svg-size-18 svg-fill-light-grey-2\"\n            >\n            </svg-icon>\n        </div>\n    } @else {\n        <div\n            ngbTooltip\n            #titleCardTooltip=\"ngbTooltip\"\n            [mainCaTooltip]=\"_detailsTitleCardConfig.tooltip\"\n            [position]=\"ePosition.TOP\"\n            [tooltipBackground]=\"eColor.BLACK\"\n            class=\"d-flex text-size-20 text-center ca-font-bold text-color-black br-2 title-card flex-1 min-w-0\"\n            (click)=\"onTitleClick()\"\n        >\n            <div class=\"w-100\" #titleCard>\n                <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n            </div>\n        </div>\n    }\n\n    <div class=\"d-flex align-items-center arrows m-l-6 gap-1 m-r-4\">\n        <span\n            ngbTooltip\n            [mainCaTooltip]=\"_detailsTitleCardConfig.tooltipPrevious\"\n            [position]=\"ePosition.BOTTOM\"\n            [tooltipBackground]=\"\n                _detailsTitleCardConfig.tooltipNext\n                    ? eColor.BLACK\n                    : eColor.TOTAL_BLACK\n            \"\n            class=\"d-flex justify-content-center align-items-center\"\n            [class.disable-previous-arrow]=\"\n                _detailsTitleCardConfig.isPreviousButtonDisabled\n            \"\n            (click)=\"onPrevious()\"\n        >\n            <svg-icon\n                class=\"arrow-left d-flex\"\n                [src]=\"sharedSvgRoutes.ARROW_LEFT\"\n            >\n            </svg-icon>\n        </span>\n\n        <span\n            ngbTooltip\n            [mainCaTooltip]=\"_detailsTitleCardConfig.tooltipNext\"\n            [tooltipBackground]=\"\n                _detailsTitleCardConfig.tooltipNext\n                    ? eColor.BLACK\n                    : eColor.TOTAL_BLACK\n            \"\n            [position]=\"ePosition.BOTTOM\"\n            [class.disable-next-arrow]=\"\n                _detailsTitleCardConfig.isNextButtonDisabled\n            \"\n            class=\"d-flex justify-content-center align-items-center\"\n            (click)=\"onNext()\"\n        >\n            <svg-icon\n                class=\"arrow-right d-flex\"\n                [src]=\"sharedSvgRoutes.ARROW_LEFT\"\n            ></svg-icon>\n        </span>\n    </div>\n</div>\n\n<ng-template #dropdownOptions>\n    <div\n        class=\"d-flex flex-column dropdown-container dropdown-options scroll background-black-2 br-3\"\n        [style.width.px]=\"titleCardWidth + 16\"\n    >\n        <ng-container *ngTemplateOutlet=\"dropdownTemplate\"></ng-container>\n    </div>\n</ng-template>\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\nexport const cardModalAnimation = (type: string) =>\n    trigger(type, [\n        state(\n            'true',\n            style({\n                height: '*',\n                opacity: '1',\n                'margin-top': '{{marginTop}}',\n                'margin-bottom': '{{marginBottom}}',\n            }),\n            {\n                params: {\n                    marginTop: '{{marginTop}}',\n                    marginBottom: '{{marginBottom}}',\n                },\n            }\n        ),\n        state(\n            'false',\n            style({\n                height: '0px',\n                opacity: '0',\n                'margin-top': '0px',\n                'margin-bottom': '0px',\n            })\n        ),\n        state(\n            'null',\n            style({\n                height: '*',\n            })\n        ),\n        transition('false <=> true', [animate('.3s ease-in-out')]),\n        transition('true <=> false', [animate('.3s ease-in-out')]),\n    ]);\n\nexport const cardModalAnimationFalse = (type: string) =>\n    trigger(type, [\n        state(\n            'false',\n            style({\n                height: '*',\n                overflow: 'visible',\n                opacity: '1',\n                'margin-top': '{{marginTop}}',\n                'margin-bottom': '{{marginBottom}}',\n            }),\n            {\n                params: {\n                    marginTop: '{{marginTop}}',\n                    marginBottom: '{{marginBottom}}',\n                },\n            }\n        ),\n        state(\n            'true',\n            style({\n                height: '0px',\n                overflow: 'hidden',\n                opacity: '0',\n                'margin-top': '0px',\n            })\n        ),\n        state(\n            'null',\n            style({\n                height: '*',\n            })\n        ),\n        transition('true <=> false', [animate('.3s ease-in-out')]),\n        transition('false <=> true', [animate('.3s ease-in-out')]),\n    ]);\n","export enum eCustomCard {\n    INACTIVE = 'inactive',\n    ACTIVE = 'active',\n}\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n    ChangeDetectionStrategy,\n    TemplateRef,\n    OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// animations\nimport { cardModalAnimation } from './utils/animations/card-modal.animation';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// Enums\nimport { eCustomCard } from './utils/enums/custom-card.enum';\nimport { eColor, eGeneralActions, ePosition } from '../../enums';\n\n//svg Routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n@Component({\n    selector: 'app-ca-custom-card',\n    templateUrl: './ca-custom-card.component.html',\n    styleUrls: ['./ca-custom-card.component.scss'],\n    animations: [cardModalAnimation('showHideCardBody')],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaCustomCardComponent<T> implements OnDestroy {\n    @Input() headerLeftSideTemplate!: TemplateRef<T>;\n    @Input() headerRightSideTemplate!: TemplateRef<T>;\n    @Input() headerLeftSideContext: any;\n\n    @Input() headerRightSideClass!: string;\n\n    @Input() cardHeight!: number;\n    @Input() isAnimationsDisabled = true;\n    @Input() cardName!: string;\n    @Input() cardSubText: string | null = null;\n    @Input() hasArrow: boolean = true;\n    @Input() hasPlusIcon: boolean = false;\n    @Input() isPlusIconDisabled: boolean = false;\n    @Input() plusIconTooltip: string = eGeneralActions.ADD_NEW;\n    @Input() isHeaderSvgEnabled!: boolean;\n    @Input() counter: number = -1;\n    @Input() hasDivider: boolean = true;\n    @Input() hasBodyData: boolean = true;\n    @Input() hasScrollBody!: boolean;\n    @Input() isStayOpen!: boolean;\n    @Input() isDisabledCard!: boolean;\n    @Input() isHeaderHidden?: boolean = false;\n    @Input() isTwoRowTitle?: boolean = false;\n    @Input() isAlwaysOpen!: boolean;\n    @Input() isShowArrowOnHover?: boolean = false;\n    @Input() animationMarginParams = {\n        marginTop: '12px',\n        marginBottom: '12px',\n    };\n    @Input() set isCardOpen(value: boolean) {\n        if (this.isCardClicked) {\n            this.isCardClicked = false;\n            return;\n        }\n\n        this.onIsCardOpenChange(value);\n        this.updateCardAnimationState();\n    }\n\n    @Input() customClass!: string;\n    @Input() customNameClass!: string;\n    @Input() customDividerClass!: string;\n\n    @Output() onActionEvent: EventEmitter<{ check: boolean; action: string }> =\n        new EventEmitter<{ check: boolean; action: string }>();\n    @Output() onOpenCard: EventEmitter<boolean> = new EventEmitter<boolean>(\n        false\n    );\n\n    private isCardOpenAnimatedTimeout:\n        | ReturnType<typeof setTimeout>\n        | undefined;\n\n    private isCardClicked: boolean = false;\n    public isHeaderHover!: boolean;\n    public noActive: string = eCustomCard.INACTIVE;\n    public _isCardOpen!: boolean;\n    public isCardOpenAnimated!: boolean;\n    public isCardHover: boolean = false;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n    public eColor = eColor;\n    public ePosition = ePosition;\n    public eGeneralActions = eGeneralActions;\n\n    constructor() {}\n\n    private updateCardAnimationState(forceUpdate: boolean = false): void {\n        if (forceUpdate && this.isDisabledCard) return;\n\n        if (this.noActive === eCustomCard.ACTIVE) {\n            this.isCardOpenAnimated = true;\n\n            if (this.isCardOpenAnimatedTimeout) {\n                clearTimeout(this.isCardOpenAnimatedTimeout);\n                this.isCardOpenAnimatedTimeout = undefined;\n            }\n        } else {\n            this.isCardOpenAnimatedTimeout = setTimeout(() => {\n                this.isCardOpenAnimated = false;\n            }, 300);\n        }\n    }\n\n    public onIsCardOpenChange(value: boolean): void {\n        if (this.isAlwaysOpen) {\n            this.noActive = eCustomCard.ACTIVE;\n            this._isCardOpen = true;\n        } else {\n            this.noActive = value ? eCustomCard.ACTIVE : eCustomCard.INACTIVE;\n            this._isCardOpen = value;\n        }\n    }\n\n    public isCardOpenEvent(event: MouseEvent): void {\n        if (this.isDisabledCard || this.isAlwaysOpen) return;\n        this.isCardClicked = true;\n\n        event.preventDefault();\n        event.stopPropagation();\n\n        const newValue = this.noActive === eCustomCard.INACTIVE;\n        this.noActive = newValue ? eCustomCard.ACTIVE : eCustomCard.INACTIVE;\n        this._isCardOpen = newValue;\n\n        this.updateCardAnimationState();\n        this.onOpenCard.emit(this._isCardOpen);\n    }\n\n    public onPlusIconClick(event: MouseEvent): void {\n        event.stopPropagation();\n\n        if (this.isPlusIconDisabled) return;\n\n        if (this.noActive === eCustomCard.INACTIVE) {\n            this.noActive = eCustomCard.ACTIVE;\n            this._isCardOpen = true;\n            this.updateCardAnimationState(true);\n        }\n\n        const actionEventEmit = {\n            check: true,\n            action: 'plus-action',\n        };\n\n        this.onActionEvent.emit(actionEventEmit);\n    }\n\n    ngOnDestroy(): void {\n        if (this.isCardOpenAnimatedTimeout) {\n            clearTimeout(this.isCardOpenAnimatedTimeout);\n            this.isCardOpenAnimatedTimeout = undefined;\n        }\n    }\n}\n","<div\n    class=\"ca-custom-card\"\n    (mouseenter)=\"isCardHover = true\"\n    (mouseleave)=\"isCardHover = false\"\n>\n    @if (hasDivider) {\n        <div class=\"divider {{ customDividerClass }}\"></div>\n    }\n\n    @if (!isHeaderHidden) {\n        <div\n            class=\"ca-card-header d-flex justify-content-between\"\n            [ngClass]=\"\n                isTwoRowTitle ? 'align-items-start' : 'h-26 align-items-center'\n            \"\n            [class.no-data]=\"!hasBodyData\"\n            [class.disabled]=\"isDisabledCard\"\n            [class.always-open]=\"isAlwaysOpen\"\n            [class.active]=\"_isCardOpen\"\n            (mouseenter)=\"isHeaderHover = true\"\n            (mouseleave)=\"isHeaderHover = false\"\n            (click)=\"isCardOpenEvent($event)\"\n        >\n            <!-- Left side of header -->\n\n            <div class=\"header-content d-flex align-items-center p-y-4 m-r-4\">\n                <!-- Name -->\n\n                <span\n                    class=\"header-text ca-font-extra-bold text-size-14 {{\n                        customNameClass\n                    }}\"\n                    [ngClass]=\"\n                        _isCardOpen ? 'text-color-black' : 'text-color-bw6-2'\n                    \"\n                >\n                    {{ cardName }}\n                </span>\n\n                <!-- Counter -->\n\n                @if (counter >= 0) {\n                    <div\n                        class=\"header-counter d-flex align-items-center justify-content-center p-x-5 p-y-4 m-l-4 h-18 min-w-18 br-60\"\n                        [ngClass]=\"\n                            _isCardOpen\n                                ? 'background-gray-2'\n                                : 'background-muted'\n                        \"\n                    >\n                        <span\n                            class=\"text-color-white ca-font-bold text-size-11\"\n                            >{{ counter }}</span\n                        >\n                    </div>\n                }\n\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        headerLeftSideTemplate;\n                        context: headerLeftSideContext\n                    \"\n                ></ng-container>\n\n                <!-- Sub Text -->\n\n                @if (cardSubText) {\n                    <span\n                        class=\"text-size-11 line-height-15 text-color-muted ca-font-medium m-l-4 m-t-2\"\n                    >\n                        {{ cardSubText }}\n                    </span>\n                }\n            </div>\n\n            <!-- Right Side of header -->\n            <div\n                class=\"header-actions d-flex align-items-center {{\n                    headerRightSideClass\n                }}\"\n            >\n                @if (\n                    !isShowArrowOnHover ||\n                    (isShowArrowOnHover && !isHeaderHover)\n                ) {\n                    <ng-container\n                        *ngTemplateOutlet=\"headerRightSideTemplate\"\n                    ></ng-container>\n                }\n\n                <!-- Arrow -->\n                @if (\n                    (hasArrow &&\n                        hasBodyData &&\n                        !isAlwaysOpen &&\n                        (!hasPlusIcon || (hasPlusIcon && !_isCardOpen))) ||\n                    (isShowArrowOnHover && isHeaderHover)\n                ) {\n                    <svg-icon\n                        class=\"header-arrow d-flex align-items-center\"\n                        [class.header-arrow-hide]=\"!isCardHover && _isCardOpen\"\n                        [ngClass]=\"{ rotate: _isCardOpen }\"\n                        [src]=\"sharedSvgRoutes.ARROW_DOWN\"\n                    ></svg-icon>\n                }\n\n                <!-- Plus -->\n                @if (\n                    (hasArrow && hasPlusIcon && _isCardOpen) ||\n                    (!hasArrow && hasPlusIcon)\n                ) {\n                    <div\n                        class=\"d-flex align-items-center justify-content-center br-2 p-x-4 p-y-4 w-26 h-26\"\n                        [ngClass]=\"\n                            isPlusIconDisabled\n                                ? 'svg-fill-light-grey-6 cursor-default'\n                                : 'svg-fill-blue-8 svg-hover-blue-15 background-hover-blue-16 c-pointer'\n                        \"\n                        ngbTooltip\n                        [mainCaTooltip]=\"plusIconTooltip\"\n                        [tooltipBackground]=\"eColor.BLACK\"\n                        [position]=\"ePosition.BOTTOM\"\n                        [disableTooltip]=\"isPlusIconDisabled\"\n                        (click)=\"onPlusIconClick($event)\"\n                    >\n                        <svg-icon\n                            class=\"svg-size-18 d-flex align-items-center justify-content-center\"\n                            [src]=\"sharedSvgRoutes.PLUS_ICON\"\n                        ></svg-icon>\n                    </div>\n                }\n            </div>\n        </div>\n    }\n\n    <!-- Body -->\n\n    <div\n        class=\"ca-card-body\"\n        [ngClass]=\"{\n            scroll: hasScrollBody,\n        }\"\n    >\n        <div\n            [ngClass]=\"noActive\"\n            [style.--animation-margin-top]=\"\n                _isCardOpen ? animationMarginParams.marginTop : '0'\n            \"\n            [style.--animation-margin-bottom]=\"\n                _isCardOpen ? animationMarginParams.marginBottom : '0'\n            \"\n            [class.openedCardClass]=\"_isCardOpen\"\n            [@showHideCardBody]=\"{\n                value: _isCardOpen,\n                params: animationMarginParams,\n            }\"\n            class=\"content-holder {{ customClass }}\"\n        >\n            @if (isCardOpenAnimated) {\n                <ng-content></ng-content>\n            }\n        </div>\n    </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MethodsCalculationsHelper } from '../utils/helpers';\n\n@Pipe({\n    name: 'dateToTimeFromBackend',\n    standalone: true,\n})\nexport class DateToTimeFromBackendPipe implements PipeTransform {\n    transform(date: string, show_am_ap?: boolean): string | null {\n        return MethodsCalculationsHelper.convertDateToTimeFromBackend(\n            date,\n            show_am_ap\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MethodsCalculationsHelper } from '../utils/helpers';\n\n@Pipe({\n    name: 'dateFromBackend',\n    standalone: true,\n})\nexport class DateFromBackendPipe implements PipeTransform {\n    transform(date: string): string | null {\n        return MethodsCalculationsHelper.convertDateFromBackend(date);\n    }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes/shared-svg.routes';\n\n// Components\nimport { CaLoadStatusComponent } from '../ca-load-status/ca-load-status.component';\n\n// Enums\nimport { eSharedString } from '../../enums/shared-string.enum';\n\n// Models\nimport { LoadStatusHistoryResponse } from '../../models';\n\n// Pipes\nimport { LoadStatusBackgroundColorPipe } from '../../pipes/load-status-background-color.pipe';\nimport { FormatDurationPipe } from '../../pipes/format-duration.pipe';\nimport { DateToTimeFromBackendPipe } from '../../pipes/date-to-time-from-backend.pipe';\nimport { DateFromBackendPipe } from '../../pipes/date-from-backend.pipe';\n\n@Component({\n    selector: 'app-ca-load-status-log',\n    templateUrl: './ca-load-status-log.component.html',\n    styleUrls: ['./ca-load-status-log.component.scss'],\n    imports: [\n        // Modules\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaLoadStatusComponent,\n        // Pipes\n        LoadStatusBackgroundColorPipe,\n        FormatDurationPipe,\n        DateToTimeFromBackendPipe,\n        DateFromBackendPipe,\n    ]\n})\nexport class CaLoadStatusLogComponent {\n    @Input() loadStatusHistory!: LoadStatusHistoryResponse[];\n\n    @Output() onSortChange = new EventEmitter<string>();\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n    public eSharedString = eSharedString;\n\n    public sortDirection = eSharedString.DSC;\n\n    constructor() {}\n\n    public onSortClick(): void {\n        this.sortDirection =\n            this.sortDirection === eSharedString.DSC\n                ? eSharedString.ASC\n                : eSharedString.DSC;\n\n        this.onSortChange.emit(this.sortDirection);\n    }\n}\n","<div class=\"load-status-log\">\n    <div\n        class=\"header-container d-flex align-items-center justify-content-between p-6 m-b-4\"\n    >\n        <p class=\"ca-font-bold text-size-11 text-color-muted\">SORT BY</p>\n\n        <div class=\"d-flex align-items-center\">\n            <span class=\"ca-font-medium text-size-14 text-color-black\"\n                >Date</span\n            >\n\n            <svg-icon\n                class=\"svg-size-18 svg-fill-blue-13 c-pointer m-l-8\"\n                [src]=\"\n                    sortDirection === eSharedString.DSC\n                        ? sharedSvgRoutes.NEW_SORT_ICON_DESCENDING\n                        : sharedSvgRoutes.NEW_SORT_ICON_ASCENDING\n                \"\n                (click)=\"onSortClick()\"\n            ></svg-icon>\n        </div>\n    </div>\n\n    @for (statusItem of loadStatusHistory; let index = $index; track $index) {\n        <ng-container\n            *ngTemplateOutlet=\"\n                statusLogItem;\n                context: {\n                    statusItem,\n                    index,\n                }\n            \"\n        >\n        </ng-container>\n    }\n</div>\n\n<ng-template #statusLogItem let-statusItem=\"statusItem\" let-index=\"index\">\n    @let dateTimeFrom =\n        (statusItem.dateTimeFrom | dateFromBackend) +\n        ' ' +\n        (statusItem.dateTimeFrom | dateToTimeFromBackend: true);\n\n    @let dateTimeTo =\n        statusItem.dateTimeTo\n            ? (statusItem.dateTimeTo | dateFromBackend) +\n              ' ' +\n              (statusItem.dateTimeTo | dateToTimeFromBackend: true)\n            : eSharedString.ONGOING;\n\n    <div\n        class=\"status-item d-flex align-items-center background-hover-bw2 h-36 p-y-4 p-x-6\"\n    >\n        <div\n            class=\"w-10 h-10 br-circle\"\n            [ngClass]=\"statusItem?.status?.id | loadStatusBackgroundColor: true\"\n        ></div>\n        <div class=\"d-flex flex-column status-right-side m-l-6\">\n            <div class=\"d-flex align-items-center justify-content-between\">\n                <div>\n                    <app-ca-load-status\n                        [status]=\"{\n                            id: statusItem?.id,\n                            name: statusItem?.statusString,\n                        }\"\n                        [fontSize]=\"11\"\n                        [isNoStyle]=\"true\"\n                    >\n                    </app-ca-load-status>\n                </div>\n                <div class=\"text-color-black text-size-11 ca-font-medium\">\n                    {{ statusItem.wait | formatDuration }}\n                </div>\n            </div>\n            <div\n                class=\"d-flex align-items-center justify-content-between position-relative\"\n            >\n                <div\n                    class=\"text-color-muted ca-font-regular text-size-11\"\n                    [class.ca-font-semi-bold]=\"\n                        index === 0 || index === loadStatusHistory.length - 1\n                    \"\n                >\n                    {{ dateTimeFrom }}\n                </div>\n                <svg-icon\n                    class=\"d-flex svg-size-10 log-arrow-right position-absolute\"\n                    [src]=\"sharedSvgRoutes.ARROW_RIGHT\"\n                >\n                </svg-icon>\n                <div\n                    class=\"text-color-muted ca-font-regular text-size-11\"\n                    [class.text-color-blue-13]=\"!statusItem.dateTimeTo\"\n                >\n                    {{ dateTimeTo }}\n                </div>\n            </div>\n        </div>\n    </div>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { CaLoadStatusComponent } from '../ca-load-status/ca-load-status.component';\n\n// Routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// Models\nimport { LoadPossibleStatusesResponse } from '../../models/load/load-possible-statuses-response.model';\nimport { LoadStatusResponse } from '../../models/load/load-status-response.model';\n\n@Component({\n    selector: 'app-ca-status-change-dropdown',\n    templateUrl: './ca-status-change-dropdown.component.html',\n    styleUrls: ['./ca-status-change-dropdown.component.scss'],\n    imports: [\n        // Modules\n        AngularSvgIconModule,\n        // Components\n        CaLoadStatusComponent,\n    ]\n})\nexport class CaStatusChangeDropdownComponent {\n    @Input() statuses?: LoadPossibleStatusesResponse;\n    @Input() width?: number;\n    @Input() isDispatchStatus!: boolean;\n    @Input() currentStatus?: LoadStatusResponse;\n    @Input() currentStatusTime!: string;\n\n    @Output() onNextStatus = new EventEmitter<LoadStatusResponse>();\n    @Output() onPreviousStatus = new EventEmitter<LoadStatusResponse>();\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    constructor() {}\n\n    public onNextStatusEvent(status: LoadStatusResponse): void {\n        this.onNextStatus.emit(status);\n    }\n\n    public onPreviousStatusEvent(status?: LoadStatusResponse): void {\n        this.onPreviousStatus.emit(status);\n    }\n}\n","<div\n    class=\"change-status-dropdown d-flex flex-column background-black-2 br-3 p-4\"\n    [style.width.px]=\"width\"\n>\n    @if (currentStatus) {\n        <div [class.item-with-border]=\"true\">\n            <app-ca-load-status\n                [status]=\"{\n                    name: currentStatus.statusString,\n                    id: currentStatus.statusValue?.id,\n                }\"\n                [isDark]=\"true\"\n                [isDropdownStatusChange]=\"true\"\n                [isDispatchStatus]=\"isDispatchStatus\"\n                [dispatchTime]=\"currentStatusTime\"\n                [isDispatchShowTimeAlways]=\"true\"\n                [height]=\"26\"\n            ></app-ca-load-status>\n        </div>\n    }\n    @for (\n        status of statuses?.possibleStatuses;\n        track $index;\n        let index = $index\n    ) {\n        @let itemWithBottomBorder =\n            index === 0 ||\n            (index === statuses?.possibleStatuses?.length! - 1 &&\n                statuses?.previousStatus?.statusString);\n\n        <div [class.item-with-border]=\"itemWithBottomBorder\">\n            <app-ca-load-status\n                [status]=\"{\n                    name: status.statusString,\n                    id: status.statusValue?.id,\n                }\"\n                [isDark]=\"true\"\n                [isMarked]=\"index === 0\"\n                [isDropdownStatusChange]=\"true\"\n                [isDispatchStatus]=\"isDispatchStatus\"\n                (click)=\"onNextStatusEvent(status)\"\n            ></app-ca-load-status>\n        </div>\n    }\n\n    @if (statuses?.previousStatus?.statusString) {\n        <div class=\"d-flex justify-content-between p-y-2 p-x-6\">\n            <p class=\"text-color-light-grey-2 ca-font-bold text-size-11\">\n                Or back to\n            </p>\n            <svg-icon\n                [src]=\"sharedSvgRoutes.BACK_STATUS_ICON\"\n                class=\"d-flex svg-size-14\"\n            />\n        </div>\n\n        <div>\n            <app-ca-load-status\n                [status]=\"{\n                    name: statuses?.previousStatus?.statusString,\n                    id: statuses?.previousStatus?.statusValue?.id,\n                }\"\n                [isDark]=\"true\"\n                [isDropdownStatusChange]=\"true\"\n                [isDispatchStatus]=\"isDispatchStatus\"\n                (click)=\"onPreviousStatusEvent(statuses?.previousStatus)\"\n            ></app-ca-load-status>\n        </div>\n    }\n</div>\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\n// enums\nimport { eAnimationState } from '../../enums';\n\nexport const toggleUpDownAnimation = trigger('rotatedState', [\n    state(eAnimationState.DEFAULT, style({ transform: 'rotate(0)' })),\n    state(eAnimationState.ROTATED, style({ transform: 'rotate(-180deg)' })),\n    transition(\n        `${eAnimationState.ROTATED} => ${eAnimationState.DEFAULT}`,\n        animate('350ms ease-out')\n    ),\n    transition(\n        `${eAnimationState.DEFAULT} => ${eAnimationState.ROTATED}`,\n        animate('350ms ease-in')\n    ),\n]);\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// interfaces\nimport { IDropdownItem } from '../interfaces';\n\n@Pipe({\n    name: 'filterBySearchTerm',\n    standalone: true,\n})\nexport class FilterBySearchTermPipe implements PipeTransform {\n    transform(items: IDropdownItem[], searchTerm?: string): IDropdownItem[] {\n        if (!searchTerm) return items;\n\n        const searchValue: string = searchTerm.trim().toLowerCase();\n\n        return items?.filter((item: IDropdownItem) =>\n            item?.title?.toLowerCase()?.includes(searchValue)\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// interfaces\nimport { IDropdownItem } from '../interfaces';\n\n@Pipe({\n    name: 'selectedItem',\n    standalone: true,\n})\nexport class SelectedItemPipe implements PipeTransform {\n    transform(items: IDropdownItem[]): IDropdownItem {\n        if (!items || !items?.length) return items[0];\n\n        return items.find((item) => item.isSelected) || items[0];\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport {\n    AbstractControl,\n    FormsModule,\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\n\n// third-party modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// assets\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\nimport { toggleUpDownAnimation } from '../../utils/animations';\n\n// interfaces\nimport { IDropdownItem } from './interfaces';\n\n// enums\nimport {\n    eAnimationState,\n    eColor,\n    eGeneralActions,\n    ePosition,\n    eStringPlaceholder,\n    eUnit,\n} from '../../enums';\n\n// pipes\nimport { SelectedItemPipe, FilterBySearchTermPipe } from './pipes';\nimport { NameInitialsPipe } from '../../pipes';\n\n@Component({\n    selector: 'ca-toolbar-dropdown',\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        // third-party modules\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        SelectedItemPipe,\n        FilterBySearchTermPipe,\n        NameInitialsPipe,\n    ],\n    templateUrl: './ca-toolbar-dropdown.component.html',\n    styleUrl: './ca-toolbar-dropdown.component.scss',\n    animations: [toggleUpDownAnimation],\n})\nexport class CaToolbarDropdownComponent\n    implements OnInit, AfterViewInit, OnDestroy\n{\n    @ViewChild('componentWrapper')\n    componentWrapperRef!: ElementRef<HTMLInputElement>;\n\n    @Input() set dropdownOptions(value: IDropdownItem[]) {\n        this.dropDownOptions = value?.length ? [...value] : [];\n    }\n\n    @Input() hasInitials: boolean = false;\n\n    @Output() onDropdownItemSelect: EventEmitter<IDropdownItem> =\n        new EventEmitter<IDropdownItem>();\n\n    // form\n    public searchForm!: UntypedFormGroup;\n    public searchTerm: string = eStringPlaceholder.EMPTY;\n    public searchFormControl!: AbstractControl | null;\n\n    // boolean flags\n    public isExpanded: boolean = false;\n    public isTitleHovered: boolean = false;\n    public dropdownItemHoverId: number | undefined = -1;\n\n    // assets\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public dropDownOptions!: IDropdownItem[];\n\n    public parentWidth: number = 0;\n    public parentHeight: number = 0;\n\n    // enums\n    public eAnimationState = eAnimationState;\n    public ePosition = ePosition;\n    public eGeneralActions = eGeneralActions;\n    public eUnit = eUnit;\n    public eColor = eColor;\n\n    private destroy$ = new Subject<void>();\n\n    public selectedItem: IDropdownItem | null = null;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n    }\n\n    ngAfterViewInit(): void {\n        this.getParentElementDimensions();\n    }\n\n    private getParentElementDimensions(): void {\n        const componentWrapper: HTMLDivElement =\n            this.componentWrapperRef?.nativeElement;\n\n        if (!componentWrapper) return;\n\n        this.parentHeight = componentWrapper.offsetHeight;\n        this.parentWidth = componentWrapper.offsetWidth;\n    }\n\n    private createForm(): void {\n        this.searchForm = this.formBuilder.group({\n            search: eStringPlaceholder.EMPTY,\n        });\n\n        this.searchFormControl = this.searchForm?.get(\n            eGeneralActions.SEARCH_LOWERCASE\n        );\n    }\n\n    @HostListener('document:click', ['$event'])\n    public onDocumentClick(event: Event): void {\n        if (!this.isExpanded) {\n            return;\n        }\n\n        const target = event.target as HTMLElement;\n        const clickedInside =\n            this.componentWrapperRef?.nativeElement?.contains(target);\n\n        if (!clickedInside) {\n            this.searchForm.reset();\n            this.isExpanded = false;\n        }\n        this.isTitleHovered = false;\n    }\n\n    public toggleOptionsVisibility(): void {\n        this.isExpanded = !this.isExpanded;\n    }\n\n    public onSelectDropdownItem(selectedItem: IDropdownItem): void {\n        this.dropDownOptions = this.dropDownOptions.map(\n            (item: IDropdownItem) => ({\n                ...item,\n                isSelected: item?.title === selectedItem?.title,\n            })\n        );\n        this.onDropdownItemSelect.emit(selectedItem);\n        this.selectedItem = selectedItem;\n        this.searchFormControl?.setValue('');\n        this.isExpanded = false;\n    }\n\n    public onDropdownItemHover(id: number | undefined): void {\n        this.dropdownItemHoverId = id;\n    }\n\n    public clearSearch(): void {\n        this.searchForm.reset();\n    }\n\n    public onTitleHover(): void {\n        this.isTitleHovered = !this.isTitleHovered;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div #componentWrapper class=\"w-100 position-relative\">\n    @let searchValue = searchFormControl?.value;\n    @let hasSearchContent = !!searchValue;\n    @let dropDownOptionsWithFilter =\n        dropDownOptions | filterBySearchTerm: searchValue;\n    @let headerInfo = dropDownOptionsWithFilter | selectedItem;\n    @let title = headerInfo?.title;\n    <div\n        class=\"basic-state h-34 w-100 d-flex align-items-center justify-content-between c-pointer background-white br-3\"\n        [class.background-black]=\"isExpanded\"\n        (mouseenter)=\"onTitleHover()\"\n        (mouseleave)=\"onTitleHover()\"\n        (click)=\"\n            !isExpanded && toggleOptionsVisibility(); $event.stopPropagation()\n        \"\n    >\n        <div\n            class=\"d-flex align-items-center justify-content-start p-y-3 p-x-4 m-y-5 m-x-4 w-100 position-relative\"\n            [formGroup]=\"searchForm\"\n        >\n            @let iconBackgroundColor =\n                isExpanded\n                    ? 'svg-fill-muted'\n                    : isTitleHovered\n                      ? 'svg-fill-black'\n                      : 'svg-fill-bw6-2';\n\n            @if (!hasSearchContent) {\n                @if (selectedItem) {\n                    @if (selectedItem.avatar) {\n                        <img\n                            [src]=\"selectedItem.avatar\"\n                            class=\"w-18 h-18 br-circle\"\n                        />\n                    }\n                    @if (selectedItem.icon) {\n                        <svg-icon\n                            [src]=\"selectedItem.icon\"\n                            class=\"svg-size-18 d-flex align-items-center transition-fill\"\n                            [ngClass]=\"iconBackgroundColor\"\n                        />\n                    }\n                    @if (!selectedItem.icon && !selectedItem.avatar && hasInitials) {\n                        <div\n                            class=\"d-flex align-items-center justify-content-center br-circle w-18 h-18\"\n                            [ngStyle]=\"{\n                                backgroundColor:\n                                    headerInfo?.avatarColor?.background,\n                                color: headerInfo?.avatarColor?.color,\n                            }\"\n                        >\n                            <span class=\"font-size-7 ca-font-extra-bold\">\n                                {{ selectedItem.title | nameInitials }}\n                            </span>\n                        </div>\n                    }\n                } @else {\n                    @if (headerInfo?.avatar) {\n                        <img\n                            [src]=\"headerInfo?.avatar\"\n                            class=\"w-18 h-18 br-circle\"\n                        />\n                    }\n                    @if (headerInfo?.icon) {\n                        <svg-icon\n                            [src]=\"headerInfo?.icon!\"\n                            class=\"svg-size-18 d-flex align-items-center transition-fill\"\n                            [ngClass]=\"iconBackgroundColor\"\n                        />\n                    }\n                    @if (!headerInfo?.icon && !headerInfo?.avatar && hasInitials) {\n                        <div\n                            class=\"d-flex align-items-center justify-content-center br-circle w-18 h-18\"\n                            [ngStyle]=\"{\n                                backgroundColor:\n                                    headerInfo?.avatarColor?.background,\n                                color: headerInfo?.avatarColor?.color,\n                            }\"\n                        >\n                            <span class=\"font-size-7 ca-font-extra-bold\">\n                                {{ headerInfo?.title | nameInitials }}\n                            </span>\n                        </div>\n                    }\n                }\n            }\n            @if (isExpanded) {\n                <div\n                    class=\"input-wrapper position-absolute d-inline-block w-100\"\n                >\n                    <input\n                        class=\"h-26 background-transparent text-color-white ca-font-extra-bold w-100\"\n                        [formControlName]=\"eGeneralActions.SEARCH_LOWERCASE\"\n                    />\n                </div>\n                @if (!hasSearchContent) {\n                    <span\n                        class=\"mirror-span p-y-2 w-100 p-l-4 text-color-muted text-size-16 ca-font-extra-bold\"\n                    >\n                        {{ title }}\n                    </span>\n                }\n            } @else {\n                <div\n                    class=\"header text-size-16 text-color-black ca-font-extra-bold p-4 user-select-none\"\n                >\n                    {{ title }}\n                </div>\n            }\n\n            @if (title && !isExpanded && !headerInfo?.isCountHidden) {\n                @let countBackgroundColor =\n                    isExpanded\n                        ? 'background-muted'\n                        : isTitleHovered\n                          ? 'background-black'\n                          : 'background-bw6-2';\n\n                <div\n                    class=\"h-18 min-w-18 d-flex align-items-center justify-content-center text-color-white p-y-0 p-x-5 br-10 transition-background\"\n                    [ngClass]=\"countBackgroundColor\"\n                >\n                    <span\n                        class=\"text-size-11 ca-font-extra-bold\"\n                        [ngClass]=\"\n                            isExpanded ? 'text-color-black' : 'text-color-white'\n                        \"\n                    >\n                        {{ headerInfo?.count }}</span\n                    >\n                </div>\n            }\n        </div>\n        @let iconColor =\n            isExpanded\n                ? 'svg-fill-white-4'\n                : isTitleHovered\n                  ? 'svg-fill-black'\n                  : 'svg-fill-bw6-2';\n        @let isClearIconDisplayable = !title && hasSearchContent && isExpanded;\n        <div\n            class=\"d-flex align-items-center justify-content-end h-100\"\n            (click)=\"toggleOptionsVisibility(); $event.stopPropagation()\"\n        >\n            @if (isClearIconDisplayable) {\n                <div\n                    class=\"h-26 w-26 d-flex align-items-center justify-content-center p-4 m-r-8 br-3 background-hover-bw6\"\n                    ngbTooltip\n                    [tooltipBackground]=\"eColor.BLACK\"\n                    [mainCaTooltip]=\"eGeneralActions.CLEAR\"\n                    [position]=\"ePosition.BOTTOM\"\n                    (click)=\"clearSearch()\"\n                >\n                    <svg-icon\n                        class=\"icon d-flex svg-size-14\"\n                        [class]=\"iconColor\"\n                        [src]=\"sharedSvgRoutes.CLEAR_SELECTED_ICON\"\n                    >\n                    </svg-icon>\n                </div>\n            }\n            <div\n                class=\"d-flex align-items-center justify-content-center p-4 m-r-6\"\n                ngbTooltip\n                [tooltipBackground]=\"eColor.BLACK\"\n                [mainCaTooltip]=\"\n                    isExpanded\n                        ? eGeneralActions.COLLAPSE\n                        : eGeneralActions.EXPAND\n                \"\n                [position]=\"ePosition.BOTTOM\"\n            >\n                <svg-icon\n                    class=\"icon d-flex svg-size-14 transition-fill\"\n                    [class]=\"iconColor\"\n                    [src]=\"sharedSvgRoutes.ARROW_UP\"\n                    [@rotatedState]=\"\n                        isExpanded\n                            ? eAnimationState.ROTATED\n                            : eAnimationState.DEFAULT\n                    \"\n                ></svg-icon>\n            </div>\n        </div>\n    </div>\n    @if (isExpanded) {\n        @let positionTop = parentHeight + 4;\n        <div\n            class=\"dropdown-items w-100 p-y-4 p-x-4 br-3 background-black-2 text-color-white position-absolute\"\n            [ngStyle]=\"{\n                width: parentWidth + eUnit.PX,\n                top: positionTop + eUnit.PX,\n            }\"\n        >\n            @for (\n                item of dropDownOptionsWithFilter;\n                track item.id;\n                let first = $first\n            ) {\n                <div\n                    class=\"dropdown-item h-26 d-flex justify-content-between background-hover-black c-pointer p-x-4 p-y-4 br-2\"\n                    [class.m-t-4]=\"!first\"\n                    (click)=\"onSelectDropdownItem(item)\"\n                    (mouseenter)=\"onDropdownItemHover(item.id)\"\n                    (mouseleave)=\"onDropdownItemHover(-1)\"\n                >\n                    @let isItemSelected =\n                        item?.isSelected || title === item?.title;\n\n                    @let isItemHovered = dropdownItemHoverId === item.id;\n\n                    <div\n                        class=\"d-flex align-items-center justify-content-start gap-px-4\"\n                    >\n                        @if (item.avatar) {\n                            <img\n                                [src]=\"item.avatar\"\n                                class=\"w-18 h-18 br-circle\"\n                            />\n                        }\n                        @if (item.icon) {\n                            <svg-icon\n                                [src]=\"item.icon\"\n                                [ngClass]=\"\n                                    isItemSelected\n                                        ? 'svg-fill-blue-8'\n                                        : 'svg-fill-bw6-2'\n                                \"\n                                class=\"svg-size-18 d-flex align-items-center\"\n                            />\n                        }\n                        @if (!item.icon && !item.avatar && hasInitials) {\n                            <div\n                                class=\"d-flex align-items-center justify-content-center br-circle w-18 h-18\"\n                                [ngStyle]=\"{\n                                    backgroundColor:\n                                        item?.avatarColor?.background,\n                                    color: item?.avatarColor?.color,\n                                }\"\n                            >\n                                <span\n                                    class=\"font-size-7 ca-font-extra-bold h-9\"\n                                >\n                                    {{ item.title | nameInitials }}\n                                </span>\n                            </div>\n                        }\n                        <span\n                            class=\"text-size-14\"\n                            [class.ca-font-bold]=\"isItemSelected\"\n                        >\n                            {{ item.title }}\n                        </span>\n                    </div>\n\n                    @if (!item?.isCountHidden) {\n                        <div\n                            class=\"h-18 min-w-18 d-flex align-items-center justify-content-center p-x-5 br-10\"\n                            [class.background-blue-14]=\"isItemSelected\"\n                            [ngClass]=\"\n                                isItemSelected\n                                    ? 'background-blue-14'\n                                    : 'background-black'\n                            \"\n                        >\n                            <span\n                                class=\"text-size-11 ca-font-semi-bold h-14\"\n                                [ngClass]=\"\n                                    isItemSelected || isItemHovered\n                                        ? 'text-color-white'\n                                        : 'text-color-white-4'\n                                \"\n                            >\n                                {{ item.count }}\n                            </span>\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    }\n</div>\n","export enum EventType {\n    MOUSE_UP = 'mouseup',\n    MOUSE_MOVE = 'mousemove',\n    SCROLL = 'scroll',\n    RESIZE = 'resize',\n}","export enum ScrollEventAction {\n    IS_SCROLL_SHOWING = 'isScrollShowing',\n    SCROLLING = 'scrolling',\n}\n","import {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ObserversModule } from '@angular/cdk/observers';\n\n// models\nimport { ScrollBarOptions, ScrollEvent } from './models';\n\n// enums\nimport { EventType, ScrollEventAction } from './enums';\n\n@Component({\n    selector: 'app-ca-custom-scrollbar',\n    imports: [FormsModule, CommonModule, ObserversModule],\n    templateUrl: './ca-custom-scrollbar.component.html',\n    styleUrl: './ca-custom-scrollbar.component.scss'\n})\nexport class CaCustomScrollbarComponent\n    implements OnInit, AfterViewInit, OnDestroy\n{\n    @ViewChild('bar', { static: false }) private bar!: ElementRef;\n    @Output() scrollEvent: EventEmitter<ScrollEvent> = new EventEmitter();\n    @Input() set scrollBarOptions(value: ScrollBarOptions) {\n        this._scrollBarOptions = value;\n    }\n    @Input() set horizontalScrollHeight(value: number) {\n        this._horizontalScrollHeight = value;\n    }\n\n    public _scrollBarOptions!: ScrollBarOptions;\n    public _horizontalScrollHeight!: number;\n\n    private scrollTop: number = 5;\n    public showScrollbar: boolean = false;\n    public scrollHeight: number = 0;\n    private scrollRatio: number = 0;\n    private scrollRatioFull: number = 0;\n\n    public isMouseDown: boolean = false;\n    private barClickPosition: number = 0;\n    private barClickRestHeight: number = 0;\n    private destroy$ = new Subject<void>();\n    private calculateSizeHeightTimer?: ReturnType<typeof setTimeout>;\n\n    // Table Horizontal Scroll\n    private tableNotPinedContainer: HTMLDivElement | null = null;\n    public tableNotPinedBoundingRect: DOMRect | null = null;\n    private tableBarClickPosition: number = 0;\n    private tableBarClickRestWidth: number = 0;\n    private tableScrollRatio: number = 0;\n    private tableScrollRatioFull: number = 0;\n    public tableScrollWidth: number = 0;\n\n    private resizeHandlerCount: number | null = null;\n\n    constructor(\n        private ngZone: NgZone,\n        private elRef: ElementRef,\n        private cdr: ChangeDetectorRef\n    ) {}\n\n    ngOnInit(): void {\n        this.ngZone.runOutsideAngular(() => {\n            this.initializeEventListeners();\n            this.calculateBarSizeAndPosition(\n                this.elRef.nativeElement.children[0]\n            );\n        });\n    }\n\n    ngAfterViewInit(): void {\n        if (this._scrollBarOptions.showHorizontalScrollBar) {\n            this.initializeTableScroll();\n            this.cdr.detectChanges();\n        }\n    }\n\n    private initializeEventListeners(): void {\n        document.addEventListener(EventType.MOUSE_UP, this.onMouseUpHandler);\n        document.addEventListener(\n            EventType.MOUSE_MOVE,\n            this.onMouseMoveHandler\n        );\n\n        this.elRef.nativeElement.children[0].addEventListener(\n            EventType.SCROLL,\n            this.setScrollEvent\n        );\n\n        window.addEventListener(EventType.RESIZE, this.onResizeHandler);\n    }\n\n    private initializeTableScroll(): void {\n        this.tableNotPinedContainer = document.querySelector(\n            '.not-pined-columns'\n        ) as HTMLDivElement | null;\n\n        this.tableNotPinedBoundingRect =\n            this.tableNotPinedContainer?.getBoundingClientRect() || null;\n    }\n\n    private setScrollEvent = () => {\n        if (!this.isMouseDown) {\n            this.calculateBarSizeAndPosition(\n                this.elRef.nativeElement.children[0]\n            );\n        }\n    };\n\n    public setDraggingStart(event: MouseEvent): void {\n        const style = window.getComputedStyle(this.bar.nativeElement);\n        const matrix = new DOMMatrixReadOnly(style.transform);\n\n        this.barClickPosition = event.clientY - matrix.m42;\n        this.barClickRestHeight = this.scrollHeight - this.barClickPosition;\n        this.isMouseDown = true;\n\n        // Table Scroll\n        this.tableBarClickPosition = event.clientX - matrix.m41;\n        this.tableBarClickRestWidth =\n            this.tableScrollWidth - this.tableBarClickPosition;\n    }\n\n    private calculateBarSizeAndPosition(elem: HTMLElement): void {\n        setTimeout(() => {\n            if (this._scrollBarOptions.showHorizontalScrollBar) {\n                const scrollWrapper: HTMLElement | null =\n                    document.querySelector('.not-pined-columns');\n                this.calculateTableScroll(scrollWrapper);\n            } else {\n                this.calculateRegularScroll(elem);\n            }\n        }, 100);\n    }\n\n    private calculateTableScroll(scrollWrapper: HTMLElement | null): void {\n        if (!scrollWrapper) {\n            this.tableNotPinedBoundingRect = null;\n            this.showScrollbar = false;\n            this.scrollEvent.emit({\n                eventAction: ScrollEventAction.IS_SCROLL_SHOWING,\n                isScrollBarShowing: this.showScrollbar,\n            });\n            return;\n        }\n\n        const boundingRect = scrollWrapper.getBoundingClientRect();\n        const tableFullWidth = scrollWrapper.scrollWidth || 0;\n        const tableVisibleWidth = Math.ceil(boundingRect.width || 0);\n\n        this.tableNotPinedBoundingRect = boundingRect;\n        this.tableScrollRatio = tableVisibleWidth / tableFullWidth;\n        this.tableScrollRatioFull = tableFullWidth / tableVisibleWidth;\n        this.tableScrollWidth = this.tableScrollRatio * tableVisibleWidth;\n\n        this.showScrollbar = tableFullWidth > tableVisibleWidth;\n        this.cdr.detectChanges();\n\n        this.scrollEvent.emit({\n            eventAction: ScrollEventAction.IS_SCROLL_SHOWING,\n            isScrollBarShowing: this.showScrollbar,\n        });\n    }\n\n    private calculateRegularScroll(elem: HTMLElement): void {\n        const contentHeight = elem.scrollHeight - 1;\n        const visibleHeight = window.innerHeight;\n\n        this.showScrollbar = contentHeight > visibleHeight;\n        this.cdr.detectChanges();\n\n        if (!this.showScrollbar) return;\n\n        this.scrollRatio = visibleHeight / contentHeight;\n        this.scrollRatioFull = contentHeight / visibleHeight;\n        this.scrollTop = elem.scrollTop * this.scrollRatio;\n\n        if (this.bar) {\n            this.bar.nativeElement.style.transform = `translateY(${this.scrollTop}px)`;\n        }\n\n        this.scrollHeight = this.scrollRatio * visibleHeight;\n    }\n\n    private onMouseUpHandler = () => (this.isMouseDown = false);\n\n    private onResizeHandler = () => {\n        if (!this.isMouseDown) {\n            if (this.resizeHandlerCount !== null) {\n                clearTimeout(this.resizeHandlerCount);\n            }\n            this.resizeHandlerCount = window.setTimeout(() => {\n                this.calculateBarSizeAndPosition(\n                    this.elRef.nativeElement.children[0]\n                );\n            }, 150);\n        }\n    };\n\n    private onMouseMoveHandler = (event: MouseEvent) => {\n        if (this.isMouseDown) {\n            if (this._scrollBarOptions.showVerticalScrollBar) {\n                this.handleRegularScroll(event);\n            } else {\n                this.handleTableScroll(event);\n            }\n        }\n    };\n\n    private handleRegularScroll(event: MouseEvent): void {\n        const offsetBar = event.clientY - this.barClickPosition;\n        if (\n            offsetBar > -1 &&\n            event.clientY + this.barClickRestHeight < window.innerHeight\n        ) {\n            this.bar.nativeElement.style.transform = `translateY(${offsetBar}px)`;\n        }\n        this.elRef.nativeElement.children[0].scrollTop =\n            (event.clientY - this.barClickPosition) * this.scrollRatioFull;\n    }\n\n    private handleTableScroll(event: MouseEvent): void {\n        let offsetBar = event.clientX - this.tableBarClickPosition;\n        const maxWidth = this.tableNotPinedBoundingRect?.width || 0;\n\n        offsetBar = offsetBar < 0 ? 0 : offsetBar;\n        offsetBar =\n            event.clientX + this.tableBarClickRestWidth > maxWidth\n                ? maxWidth - this.tableScrollWidth\n                : offsetBar;\n\n        this.bar.nativeElement.style.transform = `translateX(${offsetBar}px)`;\n\n        this.scrollEvent.emit({\n            eventAction: ScrollEventAction.SCROLLING,\n            scrollPosition: offsetBar * this.tableScrollRatioFull,\n        });\n    }\n\n    public projectContentChanged(): void {\n        clearTimeout(this.calculateSizeHeightTimer);\n        this.calculateSizeHeightTimer = setTimeout(() => {\n            this.calculateBarSizeAndPosition(\n                this.elRef.nativeElement.children[0]\n            );\n        }, 100);\n    }\n\n    private removeEventListeners(): void {\n        document.removeEventListener(EventType.MOUSE_UP, this.onMouseUpHandler);\n        document.removeEventListener(\n            EventType.MOUSE_MOVE,\n            this.onMouseMoveHandler\n        );\n        window.removeEventListener(EventType.RESIZE, this.onResizeHandler);\n    }\n\n    ngOnDestroy(): void {\n        this.removeEventListeners();\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div\n    class=\"custom-scrollbar-holder\"\n    #contentHolder\n    (cdkObserveContent)=\"projectContentChanged()\"\n    [class.activeToolbar]=\"showScrollbar\"\n    [ngStyle]=\"{\n        height: _scrollBarOptions.showHorizontalScrollBar\n            ? _horizontalScrollHeight + 'px'\n            : 100 + 'vh',\n        'overflow-y': _scrollBarOptions.showHorizontalScrollBar\n            ? 'visible'\n            : 'auto',\n    }\"\n>\n    <ng-content></ng-content>\n    <!-- Vertical Scroll Bar -->\n    @if (showScrollbar && _scrollBarOptions.showVerticalScrollBar) {\n        <div class=\"right-bar-scroll\">\n            <div\n                class=\"right-bar\"\n                #bar\n                [ngStyle]=\"{ height: scrollHeight + 'px' }\"\n                (mousedown)=\"setDraggingStart($event)\"\n                (mouseup)=\"isMouseDown = false\"\n            ></div>\n        </div>\n    }\n\n    <!-- Horizontal Scroll Bar -->\n    @if (showScrollbar && _scrollBarOptions.showHorizontalScrollBar) {\n        <div\n            class=\"horizontal-scroll-bar\"\n            [ngStyle]=\"{\n                'left.px':\n                    _scrollBarOptions?.modalStyle?.horizontalScrollBarLeft ===\n                        0 ||\n                    _scrollBarOptions?.modalStyle?.horizontalScrollBarLeft\n                        ? _scrollBarOptions.modalStyle.horizontalScrollBarLeft\n                        : (tableNotPinedBoundingRect?.left || 0) - 74,\n                'width.px': _scrollBarOptions?.modalStyle\n                    ?.horizontalScrollBarWidth\n                    ? _scrollBarOptions.modalStyle.horizontalScrollBarWidth\n                    : tableNotPinedBoundingRect?.width,\n                'margin-top.px': _scrollBarOptions?.modalStyle\n                    ?.horizontalScrollBarMarginTop\n                    ? _scrollBarOptions.modalStyle.horizontalScrollBarMarginTop\n                    : -15,\n            }\"\n            [ngClass]=\"{\n                'modal-horizontal-scroll-bar':\n                    _scrollBarOptions?.modalStyle?.modalScrollClassActive,\n            }\"\n        >\n            <div\n                class=\"horizontal-bar\"\n                #bar\n                [ngStyle]=\"{\n                    'width.px': _scrollBarOptions?.modalStyle?.additionalWidth\n                        ? tableScrollWidth +\n                          _scrollBarOptions.modalStyle.additionalWidth\n                        : tableScrollWidth,\n                }\"\n                [ngClass]=\"{\n                    'horizontal-bar-sticky':\n                        (_scrollBarOptions?.dataLength || 0) >= 23,\n                }\"\n                (mousedown)=\"setDraggingStart($event)\"\n                (mouseup)=\"isMouseDown = false\"\n            ></div>\n        </div>\n    }\n</div>\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaCustomScrollbarComponent } from '../ca-custom-scrollbar/ca-custom-scrollbar.component';\n\n@Component({\n    selector: 'app-ca-modal',\n    templateUrl: './ca-modal.component.html',\n    styleUrls: ['./ca-modal.component.scss'],\n    imports: [\n        CommonModule,\n        FormsModule,\n        DragDropModule,\n        AngularSvgIconModule,\n        NgbModule,\n        // components\n        CaCustomScrollbarComponent,\n    ],\n    animations: [\n        trigger('widthGrow', [\n            state(\n                'closed',\n                style({\n                    transform: 'scale(0)',\n                })\n            ),\n            state(\n                'open',\n                style({\n                    transform: 'scale(1)',\n                })\n            ),\n            transition('closed => open', animate(100)),\n        ]),\n    ],\n})\nexport class CaModalComponent {\n    @Input() customClass: string = '';\n    @Input() partClass: string = '';\n    @Input() modalTitle: string = '';\n\n    @Input() customHeaderTemplate!: TemplateRef<null>;\n    @Input() headerSvgTemplate!: TemplateRef<null>;\n    @Input() leftHeaderTemplate!: TemplateRef<null>;\n    @Input() rightHeaderTemplate!: TemplateRef<null>;\n    @Input() footerTemplate!: TemplateRef<null>;\n    @Input() additionalPartTemplate!: TemplateRef<null>;\n}\n","<app-ca-custom-scrollbar\n    [scrollBarOptions]=\"{\n        showVerticalScrollBar: true,\n        showHorizontalScrollBar: false,\n    }\"\n>\n    <div cdkDrag class=\"modal-container {{ customClass }}\">\n        <div class=\"modal-original-part {{ partClass }}\">\n            <div\n                cdkDragHandle\n                class=\"modal-header d-flex justify-content-between\"\n            >\n                @if (customHeaderTemplate) {\n                    <ng-container\n                        *ngTemplateOutlet=\"customHeaderTemplate\"\n                    ></ng-container>\n                } @else {\n                    <div class=\"modal-header-leftside\">\n                        <ng-container\n                            *ngTemplateOutlet=\"headerSvgTemplate\"\n                        ></ng-container>\n\n                        <!-- Header title -->\n\n                        <h5 ngbAutofocus tabindex=\"0\" class=\"modal-title\">\n                            {{ modalTitle }}\n                        </h5>\n                        <!-- Haeder left side template -->\n\n                        <ng-container\n                            *ngTemplateOutlet=\"leftHeaderTemplate\"\n                        ></ng-container>\n                    </div>\n                    <div class=\"modal-header-rightside\">\n                        <!-- Haeder right side -->\n\n                        <ng-container\n                            *ngTemplateOutlet=\"rightHeaderTemplate\"\n                        ></ng-container>\n                    </div>\n                }\n            </div>\n\n            <div class=\"modal-body\">\n                <!-- Modal content -->\n\n                <ng-content select=\"[origin]\"></ng-content>\n            </div>\n            <!-- Footer Template Content -->\n\n            <div cdkDragHandle>\n                <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n            </div>\n        </div>\n        <!-- Additional Part Content -->\n\n        <ng-container *ngTemplateOutlet=\"additionalPartTemplate\"></ng-container>\n    </div>\n</app-ca-custom-scrollbar>\n","export enum eModalButtonClassType {\n    PRIMARY_POSITIVE = 'primary-positive',\n    PRIMARY_NEUTRAL = 'primary-neutral',\n    PRIMARY_NEGATIVE = 'primary-negative',\n    PRIMARY_WHITE = 'primary-white',\n\n    SECONDARY_POSITIVE = 'secondary-positive',\n    SECONDARY_NEUTRAL = 'secondary-neutral',\n    SECONDARY_NEGATIVE = 'secondary-negative',\n\n    PLAIN_TEXT = 'plain-text',\n\n    SPECIAL_POSITIVE = 'special-positive',\n    SPECIAL_NEUTRAL = 'special-neutral',\n}\n","export enum eModalButtonSize {\n    SMALL = 'modal-small',\n    NORMAL = 'modal-normal',\n    FULL_WIDTH = 'modal-full-width',\n    BIG_FULL_WIDTH = 'modal-big-full-width',\n    SPECIAL_SMALL = 'special-small',\n    SPECIAL_DEFAULT = 'special-default',\n    SPECIAL_DEFAULT_FULL_WIDTH = 'special-default-full-width',\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eModalButtonClassType, eModalButtonSize } from '../enums';\n\n@Pipe({\n    name: 'modalButtonClass',\n    standalone: true,\n})\nexport class ModalButtonClassPipe implements PipeTransform {\n    transform(\n        type: eModalButtonClassType,\n        size: eModalButtonSize,\n        isValid: boolean\n    ): { [key: string]: boolean } {\n        return {\n            [`${type}-btn`]: true,\n            [`${size}-btn`]: true,\n            valid: isValid,\n        };\n    }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// enums\nimport { eModalButtonClassType, eModalButtonSize } from './enums';\n\n// components\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n// pipes\nimport { ModalButtonClassPipe } from './pipes';\n\n@Component({\n    selector: 'app-ca-modal-button',\n    templateUrl: './ca-modal-button.component.html',\n    styleUrl: './ca-modal-button.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        CommonModule,\n        // components\n        CaSpinnerComponent,\n        // pipes\n        ModalButtonClassPipe,\n    ],\n})\nexport class CaModalButtonComponent {\n    @Input() type!: eModalButtonClassType;\n    @Input() size: eModalButtonSize = eModalButtonSize.NORMAL;\n    @Input() text!: string;\n    @Input() loadingText: string = 'Loading';\n    @Input() isValid: boolean = true;\n    @Input() isSpinnerShown: boolean = false;\n    @Input() isModalButton: boolean = false;\n    @Input() hasBothSpinnerAndText: boolean = false;\n}\n","@if (isModalButton) {\n    <ng-container *ngTemplateOutlet=\"modalButtonTemplate\"></ng-container>\n} @else {\n    <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n}\n\n<ng-template #modalButtonTemplate>\n    <div class=\"d-block\" [class.cursor-wait]=\"isSpinnerShown\">\n        <button\n            class=\"ca-modal-btn ca-font-bold text-size-14 has-animation\"\n            [class.loading]=\"isSpinnerShown\"\n            [ngClass]=\"type | modalButtonClass: size : isValid\"\n            type=\"button\"\n            [disabled]=\"isSpinnerShown\"\n        >\n            <span\n                class=\"button-text has-animation\"\n                [class.hidden-text]=\"isSpinnerShown\"\n            >\n                {{ text }}\n            </span>\n            @if (isSpinnerShown) {\n                <span class=\"button-text loading-text\">\n                    {{ loadingText\n                    }}<span class=\"loading-dots\">\n                        <span class=\"dot\">.</span>\n                        <span class=\"dot\">.</span>\n                        <span class=\"dot\">.</span>\n                    </span>\n                </span>\n            }\n        </button>\n    </div>\n</ng-template>\n\n<ng-template #buttonTemplate>\n    <button\n        class=\"d-flex align-items-center justify-content-center ca-font-bold text-size-14 ca-modal-btn\"\n        [class.text-and-spinner-shown]=\"isSpinnerShown && hasBothSpinnerAndText\"\n        [ngClass]=\"type | modalButtonClass: size : isValid\"\n        type=\"button\"\n        [disabled]=\"isSpinnerShown\"\n    >\n        <span\n            class=\"button-text\"\n            [class.hidden-text]=\"isSpinnerShown && !hasBothSpinnerAndText\"\n        >\n            {{ text }}\n        </span>\n        @if (isSpinnerShown) {\n            @if (hasBothSpinnerAndText) {\n                <span class=\"spinner-wrapper\">\n                    <app-ca-spinner\n                        [size]=\"'small'\"\n                        [color]=\"'white'\"\n                    ></app-ca-spinner>\n                </span>\n            } @else {\n                <span class=\"spinner-absolute\">\n                    <app-ca-spinner\n                        [size]=\"'small'\"\n                        [color]=\"'white'\"\n                    ></app-ca-spinner>\n                </span>\n            }\n        }\n    </button>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n@Component({\n    selector: 'app-ca-delete-modal',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n    templateUrl: './ca-delete-modal.component.html',\n    styleUrl: './ca-delete-modal.component.scss',\n})\nexport class CaDeleteModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"trashIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData?.title }}\n        </div>\n        @if (modalData?.count) {\n            <div\n                class=\"d-flex align-items-center position-relative top--1 justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData?.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small m-0\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.SECONDARY_NEUTRAL\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                [isModalButton]=\"true\"\n                [text]=\"'No'\"\n                (click)=\"onModalAction()\"\n            ></app-ca-modal-button>\n\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.PRIMARY_NEGATIVE\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                [isModalButton]=\"true\"\n                [text]=\"'Yes'\"\n                (click)=\"onModalAction(true)\"\n            ></app-ca-modal-button>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #trashIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"sharedSvgRoutes.CONFIRMATION_TRASH_MODAL_ICON\"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-size-18 modal-header-svg\"\n        [src]=\"sharedSvgRoutes.CONFIRMATION_DELETE_ICON\"\n    ></svg-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// enums\nimport { eGeneralActions } from '../../enums';\n\n@Component({\n    selector: 'app-ca-show-more',\n    templateUrl: './ca-show-more.component.html',\n    styleUrl: './ca-show-more.component.scss',\n    imports: [CommonModule]\n})\nexport class CaShowMoreComponent {\n    @Input() displayedDataCount: number = 0;\n    @Input() totalDataCount: number = 0;\n\n    @Output() onShowMore: EventEmitter<boolean> = new EventEmitter();\n\n    // enums\n    public eGeneralActions = eGeneralActions;\n\n    constructor() {}\n\n    public onShowMoreClick(): void {\n        this.onShowMore.emit();\n    }\n}\n","<div\n    class=\"d-flex align-items-center justify-content-between m-t-4 m-b-4 w-100\"\n>\n        <p\n            class=\"text-size-11 text-color-bw6-2 ca-font-semi-bold prevent-text-selection\"\n        >\n            {{ displayedDataCount }} OF {{ totalDataCount }}\n        </p>\n\n    @if (displayedDataCount < totalDataCount) {\n        <button\n            type=\"button\"\n            class=\"text-size-11 text-color-black text-hover-blue-15 ca-font-bold m-0 p-0 background-transparent border-0 text-uppercase prevent-text-selection\"\n            (click)=\"onShowMoreClick()\"\n        >\n            {{ eGeneralActions.SHOW_MORE }}\n        </button>\n    }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Models\nimport { IUser } from '../../../models';\nimport { ICompanyUser } from '../../../interfaces';\n\n// Helpers\nimport { UserHelper } from '../../../utils/helpers';\n\n@Pipe({\n    name: 'caIsCurrentUser',\n    standalone: true,\n})\nexport class CaIsCurrentUserPipe implements PipeTransform {\n    transform(user: ICompanyUser | undefined, currentUser?: IUser): boolean {\n        let _currentUser: IUser | null | undefined = currentUser;\n\n        if (!currentUser) _currentUser = UserHelper.getUserFromLocalStorage();\n\n        if (!user || !_currentUser) return false;\n\n        return user.id === _currentUser.companyUserId;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Models\nimport { IComment } from '../models';\n\n// Helpers\nimport { DateTimeHelper } from '../../../utils/helpers';\n\n// Enums\nimport { eDateTimeFormats, eSharedString } from '../../../enums';\n\n@Pipe({\n    name: 'caSortComments',\n    standalone: true,\n})\nexport class CaSortCommentsPipe implements PipeTransform {\n    transform(\n        comments: IComment[],\n        sortDirection:\n            | eSharedString.ASC\n            | eSharedString.DSC = eSharedString.DSC,\n        isDarkmode?: boolean\n    ): IComment[] {\n        if (!comments || !comments?.length) return [];\n\n        const sortedComments: IComment[] = DateTimeHelper.sortByCreatedAt(\n            comments,\n            sortDirection,\n            isDarkmode\n                ? eDateTimeFormats.YYYY_MM_DD_HH_MM_SS\n                : eDateTimeFormats.MM_DD_YY_HH_MM_A\n        );\n        return sortedComments;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { eStringPlaceholder } from '../../../enums';\n\n// interfaces\nimport { IComment } from '../models';\n\n@Pipe({\n    name: 'caHighlightComment',\n    standalone: true,\n})\nexport class CaHighlightCommentPipe implements PipeTransform {\n    transform(\n        comments: IComment[],\n        searchValue: string,\n        isDarkmode?: boolean\n    ): IComment[] {\n        if (!searchValue?.trim()) return comments;\n\n        const regex = new RegExp(\n            searchValue.trim(),\n            eStringPlaceholder.GI_LOWERCASE\n        );\n\n        return comments\n            .filter(\n                (item: IComment) =>\n                    regex.test(item.commentContent) ||\n                    regex.test(\n                        item?.companyUser?.fullName ?? eStringPlaceholder.EMPTY\n                    )\n            )\n            .map((item: IComment) => {\n                if (!item.commentContent?.trim()) return item;\n\n                const highlightedContent = item.commentContent.replace(\n                    regex,\n                    (match) => {\n                        const textColor: string = isDarkmode\n                            ? '#e9effd'\n                            : '#3074d3';\n                        return `<span style=\"color: ${textColor}; background: #3b73ed33\">${match}</span>`;\n                    }\n                );\n\n                return {\n                    ...item,\n                    commentContent: highlightedContent,\n                };\n            });\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eStringPlaceholder } from '../../../enums';\n\n@Pipe({\n    name: 'caHighlightSingleString',\n    standalone: true,\n})\nexport class CaHighlightSingleStringPipe implements PipeTransform {\n    transform(value: string, searchValue: string): string {\n        if (!value || !searchValue?.trim()) return value;\n\n        const escapedSearch = searchValue\n            .trim()\n            .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n        const regex = new RegExp(\n            escapedSearch,\n            eStringPlaceholder.GI_LOWERCASE\n        );\n\n        return value.replace(regex, (match) => {\n            return `<span style=\"color: #3551b7; background: #3b73ed33\">${match}</span>`;\n        });\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n// third-pary modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaProfileImageComponent } from '../ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaAutoclosePopoverComponent } from '../ca-autoclose-popover/ca-autoclose-popover.component';\n\n// pipes\nimport {\n    CaSvgPipe,\n    DateFromStringPipe,\n    NameInitialsPipe,\n    SafeHtmlPipe,\n} from '../../pipes';\nimport {\n    CaIsCurrentUserPipe,\n    CaSortCommentsPipe,\n    CaHighlightCommentPipe,\n    CaHighlightSingleStringPipe,\n} from './pipes';\n\n// enums\nimport {\n    eAnimationState,\n    eSharedString,\n    eDateTimeFormats,\n    eGeneralActions,\n    eColor,\n    ePosition,\n    eStringPlaceholder,\n} from '../../enums';\n\n// models\nimport { IComment } from './models';\nimport { ICompanyUser, IUser } from '../../interfaces';\n\n// assets\nimport { toggleUpDownAnimation } from '../../utils/animations';\n\n// helpers\nimport { UserHelper } from '../../utils/helpers';\n\n// svg route\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n@Component({\n    selector: 'ca-comments',\n    templateUrl: './ca-comments.component.html',\n    styleUrl: './ca-comments.component.scss',\n    animations: [toggleUpDownAnimation],\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        HttpClientModule,\n        // Components\n        CaProfileImageComponent,\n        CaAutoclosePopoverComponent,\n        CaAppTooltipV2Component,\n        // Third-party modules\n        AngularSvgIconModule,\n        NgbModule,\n        // Pipes\n        DateFromStringPipe,\n        NameInitialsPipe,\n        CaSvgPipe,\n        CaIsCurrentUserPipe,\n        CaSortCommentsPipe,\n        CaHighlightCommentPipe,\n        CaHighlightSingleStringPipe,\n        SafeHtmlPipe,\n    ]\n})\nexport class CaCommentsComponent {\n    @Input() isDarkmode: boolean = false;\n    @Input() isSearchDisplayed: boolean = true;\n    @Input() isDriverTab: boolean = false;\n    @Input() isModal: boolean = false;\n    @Input() commentCount: number = 0;\n    @Input() set comments(value: IComment[]) {\n        this._comments = [...value];\n    }\n    @Input() set currentUser(value: IUser) {\n        this._currentUser = value ?? UserHelper.getUserFromLocalStorage();\n    }\n    @Input() set hasNewComment(value: boolean) {\n        if (value) this.onAddNewComment();\n    }\n\n    @Output() onCommentDelete: EventEmitter<number> =\n        new EventEmitter<number>();\n    @Output() onCommentAdded: EventEmitter<IComment> =\n        new EventEmitter<IComment>();\n    @Output() onCommentEdited: EventEmitter<IComment> =\n        new EventEmitter<IComment>();\n    @Output() onCommentCancel = new EventEmitter();\n    @Output() onCommentSearchCancel = new EventEmitter();\n\n    public _comments!: IComment[];\n    public _currentUser!: IUser;\n\n    // enums\n    public eSharedString = eSharedString;\n    public eAnimationState = eAnimationState;\n    public eDateTimeFormats = eDateTimeFormats;\n    public eGeneralActions = eGeneralActions;\n    public eColor = eColor;\n    public ePosition = ePosition;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    public sortDirection: eSharedString.ASC | eSharedString.DSC =\n        eSharedString.DSC;\n\n    public commentExpanded!: IComment | null;\n    public commentAddOrEdit!: IComment | null;\n    public commentAction: eGeneralActions.ADD | eGeneralActions.EDIT | null =\n        null;\n\n    // form\n    public commentContentFormControl = new FormControl();\n    public searchCommentFormControl = new FormControl();\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    constructor() {}\n\n    public onToggleSort(): void {\n        switch (this.sortDirection) {\n            case eSharedString.ASC:\n                this.sortDirection = eSharedString.DSC;\n                break;\n            case eSharedString.DSC:\n                this.sortDirection = eSharedString.ASC;\n                break;\n            default:\n                this.sortDirection = eSharedString.DSC;\n                return;\n        }\n    }\n\n    public onDeleteComment(comment: IComment): void {\n        this.onCommentDelete.emit(comment.id);\n    }\n\n    public onExpandComment(comment: IComment): void {\n        if (this.commentExpanded?.id === comment?.id) {\n            this.commentExpanded = null;\n            return;\n        }\n        this.commentExpanded = comment;\n    }\n\n    public onAddNewComment(): void {\n        const hasNewComment: boolean = this._comments.some(\n            (comment: IComment) => comment.isNew\n        );\n\n        if (hasNewComment) return;\n\n        const companyUser: ICompanyUser = {\n            id: this._currentUser?.companyUserId!,\n            fullName: `${this._currentUser?.firstName} ${this._currentUser?.lastName}`,\n            avatarFile: {\n                fileId: this._currentUser?.avatarFile?.fileId ?? 0,\n                fileName:\n                    this._currentUser?.avatarFile?.fileName ||\n                    `${this._currentUser?.firstName} ${this._currentUser?.lastName}`,\n                url:\n                    this._currentUser?.avatarFile?.url ??\n                    eStringPlaceholder?.EMPTY,\n            },\n        };\n\n        const newComment: IComment = {\n            id: this._comments?.length + 1,\n            commentContent: eStringPlaceholder.EMPTY,\n            companyUser,\n            isDriver: this.isDriverTab,\n            isEdited: false,\n            isNew: true,\n            createdAt: new Date().toISOString(),\n        };\n\n        this.commentAddOrEdit = { ...newComment };\n\n        this._comments = [{ ...newComment }, ...this._comments];\n        this.commentAction = eGeneralActions.ADD;\n    }\n\n    public onEditComment(comment: IComment): void {\n        this.commentAddOrEdit = { ...comment };\n        this.commentContentFormControl.patchValue(\n            this.commentAddOrEdit.commentContent\n        );\n        this.commentAction = eGeneralActions.EDIT;\n    }\n\n    public clearCommentAddOrEdit(): void {\n        this.commentAddOrEdit = null;\n\n        if (this.commentAction === eGeneralActions.ADD) {\n            this._comments = [...this._comments.slice(1)];\n            this.onCommentCancel.emit();\n        }\n    }\n\n    public onClearSearch(event: Event): void {\n        this.searchCommentFormControl.reset();\n\n        this.onCommentSearchCancel.emit();\n    }\n\n    public confirmComment(comment: IComment): void {\n        switch (this.commentAction) {\n            case eGeneralActions.EDIT:\n                const commentFound: IComment | undefined = this._comments.find(\n                    (item: IComment) => comment.id === item.id\n                );\n                if (!commentFound) break;\n\n                const updatedComment: IComment = {\n                    ...comment,\n                    commentContent:\n                        this.commentContentFormControl.value ??\n                        commentFound.commentContent,\n                    isNew: false,\n                };\n\n                this.onCommentEdited.emit(updatedComment);\n                break;\n            case eGeneralActions.ADD:\n                if (!this.commentContentFormControl.value) break;\n\n                const newComment: IComment = {\n                    ...comment,\n                    commentContent: this.commentContentFormControl.value,\n                    isNew: true,\n                };\n\n                this.onCommentAdded.emit(newComment);\n                break;\n            default:\n                this.commentAction = null;\n                break;\n        }\n        this.clearCommentAddOrEdit();\n        this.commentContentFormControl.reset();\n    }\n}\n","@let sortedComments = _comments | caSortComments: sortDirection : isDarkmode;\n@let searchTerm = searchCommentFormControl.value;\n@let searchedComments =\n    sortedComments | caHighlightComment: searchTerm : isDarkmode;\n@let searchContentCount = searchedComments?.length;\n@let hasSearchContent = !!searchContentCount;\n\n@if (isDarkmode) {\n    @let isPopoverOpen = popover?.isOpen();\n\n    <div\n        #popover=\"ngbPopover\"\n        class=\"w-26 h-26 d-flex justify-content-center align-items-center c-pointer br-2\"\n        autoClose=\"outside\"\n        [ngbPopover]=\"dropdownPopover\"\n        [popoverClass]=\"'popover-main'\"\n        [placement]=\"ePosition.BOTTOM_RIGHT\"\n        [container]=\"'body'\"\n        [ngClass]=\"\n            isPopoverOpen\n                ? 'active background-black'\n                : 'background-hover-dark-2 svg-hover-black'\n        \"\n    >\n        <div\n            class=\"position-relative d-flex justify-content-center align-items-center m-auto\"\n            ngbTooltip\n            [tooltipBackground]=\"eColor.BLACK\"\n            [tooltipColor]=\"eColor.WHITE\"\n            [mainCaTooltip]=\"eSharedString.COMMENT\"\n            [position]=\"ePosition.BOTTOM\"\n        >\n            <span\n                class=\"comments-count z-0 position-absolute text-size-9 ca-font-semi-bold\"\n                [ngClass]=\"\n                    isPopoverOpen ? 'text-color-black-2' : 'text-color-white'\n                \"\n            >\n                {{ commentCount }}\n            </span>\n\n            <svg-icon\n                class=\"svg-size-18\"\n                [ngClass]=\"isPopoverOpen ? 'svg-fill-white-4' : 'svg-fill-grey'\"\n                [src]=\"sharedSvgRoutes.COMMENT_ICON\"\n            ></svg-icon>\n        </div>\n    </div>\n} @else {\n    <ng-container *ngTemplateOutlet=\"commentsTemplate\"></ng-container>\n}\n\n<ng-template #commentsTemplate>\n    @let tooltipBackground = isDarkmode ? eColor.LIGHT_GREY : eColor.BLACK;\n    @let tooltipColor = isDarkmode ? eColor.DARK_GREY : eColor.WHITE;\n\n    <div\n        class=\"comments-container br-3\"\n        [class.p-4]=\"!isModal\"\n        [class.background-black-2]=\"isDarkmode\"\n        [style]=\"{\n            width: isDarkmode ? '260px' : '100%',\n            'max-height': isDarkmode ? '306px' : '100%',\n        }\"\n    >\n        <div class=\"d-flex flex-column\">\n            @let isHiddenSort = (!isDarkmode && !_comments.length) || isModal;\n\n            @if (!isHiddenSort) {\n                <div class=\"d-flex\" [ngStyle]=\"{ order: isDarkmode ? 0 : 2 }\">\n                    <div class=\"w-100\" [class.h-32]=\"!isDarkmode\">\n                        <div\n                            class=\"d-flex justify-content-between align-items-center\"\n                            [class.m-t-4]=\"!isDarkmode\"\n                        >\n                            <div\n                                class=\"d-flex justify-content-center align-items-center ca-font-extra-bold font-size-11 m-x-4\"\n                            >\n                                @let title =\n                                    (isDarkmode\n                                        ? eSharedString.COMMENT\n                                        : eGeneralActions.SORT_BY\n                                    ) | uppercase;\n                                @let resultTitle =\n                                    searchContentCount +\n                                        eStringPlaceholder.WHITESPACE +\n                                        eSharedString.RESULTS | uppercase;\n\n                                <span\n                                    class=\"m-y-2 m-r-4\"\n                                    [class]=\"\n                                        isDarkmode\n                                            ? 'text-color-white'\n                                            : 'text-color-grey'\n                                    \"\n                                    >{{\n                                        searchTerm && !isDarkmode\n                                            ? resultTitle\n                                            : title\n                                    }}\n                                </span>\n\n                                @if (isDarkmode) {\n                                    <span\n                                        class=\"d-flex align-items-center justify-content-center min-w-18 h-18 text-color-white br-60 background-black p-x-5\"\n                                        >{{ commentCount }}\n                                    </span>\n                                }\n                            </div>\n\n                            @if (_comments.length) {\n                                @let sortByColorClass =\n                                    isDarkmode\n                                        ? 'text-color-white'\n                                        : 'text-color-black';\n\n                                <div\n                                    class=\"d-flex justify-content-center align-items-center p-l-6 br-2\"\n                                    [class]=\"\n                                        isDarkmode\n                                            ? 'background-hover-black'\n                                            : 'background-hover-bw2'\n                                    \"\n                                    #sortByTooltip=\"ngbTooltip\"\n                                    ngbTooltip\n                                    [tooltipBackground]=\"tooltipBackground\"\n                                    [tooltipColor]=\"tooltipColor\"\n                                    [mainCaTooltip]=\"eGeneralActions.SORT_BY\"\n                                    [position]=\"ePosition.BOTTOM\"\n                                >\n                                    <span\n                                        class=\"text-size-14 ca-font-medium m-r-4\"\n                                        [ngClass]=\"sortByColorClass\"\n                                    >\n                                        {{ eSharedString.DATE }}\n                                    </span>\n\n                                    @let isDescending =\n                                        sortDirection === eSharedString.DSC;\n                                    @let animationStateSort =\n                                        sortDirection === eSharedString.DSC\n                                            ? eAnimationState.DEFAULT\n                                            : eAnimationState.ROTATED;\n                                    @let sortTooltipText =\n                                        isDescending\n                                            ? eSharedString.DESCENDING\n                                            : eSharedString.ASCENDING;\n\n                                    <div\n                                        class=\"h-18 w-18 d-flex justify-content-center align-items-center background-hover-blue-21 svg-hover-blue-17 br-1 c-pointer\"\n                                        ngbTooltip\n                                        [tooltipBackground]=\"tooltipBackground\"\n                                        [tooltipColor]=\"tooltipColor\"\n                                        [mainCaTooltip]=\"sortTooltipText\"\n                                        [position]=\"ePosition.BOTTOM\"\n                                        (shown)=\"sortByTooltip?.close()\"\n                                        (click)=\"onToggleSort()\"\n                                    >\n                                        <svg-icon\n                                            class=\"d-flex svg-size-14 svg-fill-blue-13\"\n                                            [src]=\"\n                                                'arrow_sort'\n                                                    | caSvg\n                                                        : eSharedString.COMMON_LOWERCASE\n                                            \"\n                                            [class.svg-fill-blue-13]=\"\n                                                commentCount\n                                            \"\n                                            [@rotatedState]=\"animationStateSort\"\n                                        ></svg-icon>\n                                    </div>\n                                </div>\n                            }\n                        </div>\n\n                        @if (!isDarkmode) {\n                            <div\n                                class=\"w-100 h-1 background-bw-9 margin-2\"\n                            ></div>\n                        }\n                    </div>\n                </div>\n            }\n\n            <div [ngStyle]=\"{ order: 1 }\">\n                <ng-content></ng-content>\n            </div>\n\n            @if (isSearchDisplayed && _comments.length) {\n                <div\n                    class=\"search d-flex align-items-center justify-content-start background-black background-hover-grey-2 m-y-4 br-2\"\n                    [class.search-dark]=\"isDarkmode\"\n                    [ngStyle]=\"{ order: isDarkmode ? 2 : 0 }\"\n                >\n                    <div\n                        class=\"d-flex align-items-center justify-content-center margin-4\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14 svg-fill-light-grey-2 c-pointer\"\n                            [src]=\"\n                                'search' | caSvg: eSharedString.COMMON_LOWERCASE\n                            \"\n                        ></svg-icon>\n                    </div>\n                    <div\n                        class=\"divider w-1 background-light-gray-2 m-y-3 m-r-4\"\n                    ></div>\n                    <div\n                        class=\"w-100 d-flex align-items-center justify-content-center\"\n                    >\n                        @let searchPlaceholder =\n                            isDarkmode ? 'Find Title' : 'Find Comment';\n\n                        <input\n                            class=\"w-100 background-transparent text-size-11 m-r-2 p-2\"\n                            [placeholder]=\"searchPlaceholder\"\n                            minlength=\"1\"\n                            required\n                            [formControl]=\"searchCommentFormControl\"\n                        />\n\n                        @let iconColor =\n                            isDarkmode ? 'svg-fill-bw-9' : 'svg-fill-black-2';\n                        <div\n                            class=\"cancel-search h-14 w-14 d-flex justify-content-center align-items-center br-1 margin-4 c-pointer\"\n                            (mousedown)=\"onClearSearch($event)\"\n                        >\n                            <svg-icon\n                                class=\"d-flex svg-size-7\"\n                                [class]=\"[iconColor]\"\n                                [src]=\"\n                                    'ic_x'\n                                        | caSvg: eSharedString.COMMON_LOWERCASE\n                                \"\n                            ></svg-icon>\n                        </div>\n                    </div>\n                </div>\n            }\n        </div>\n\n        <!-- text-color-blue-19 text-hover-white  -->\n        @if (isDarkmode) {\n            <div class=\"w-100 h-1 background-black br-1 m-t-4\"></div>\n\n            <div\n                class=\"d-flex justify-content-between align-items-center background-hover-blue-21 svg-hover-blue-17 c-pointer br-2 m-t-4\"\n                (click)=\"onAddNewComment()\"\n            >\n                <span\n                    class=\"text-size-11 text-color-white ca-font-bold p-y-4 p-x-4 text-uppercase\"\n                    >New Comment\n                </span>\n\n                <div\n                    class=\"h-14 w-14 d-flex justify-content-center align-items-center margin-6 svg-fill-blue-13\"\n                >\n                    <svg-icon\n                        class=\"d-flex svg-size-14 c-pointer\"\n                        [src]=\"\n                            'ic_plus' | caSvg: eSharedString.COMMON_LOWERCASE\n                        \"\n                    ></svg-icon>\n                </div>\n            </div>\n        }\n\n        @if (_comments.length) {\n            <div\n                class=\"comments-wrapper c-pointer\"\n                [style]=\"{\n                    'max-height': isDarkmode\n                        ? '210px'\n                        : isModal\n                          ? '148px'\n                          : '100%',\n                }\"\n            >\n                @if (hasSearchContent) {\n                    @for (\n                        comment of searchedComments;\n                        let index = $index;\n                        track index\n                    ) {\n                        @let isCommentExpanded =\n                            comment?.id === commentExpanded?.id;\n                        @let isEditMode = comment?.id === commentAddOrEdit?.id;\n                        @let companyUser = comment?.companyUser;\n                        @let isCurrentUser =\n                            companyUser | caIsCurrentUser: _currentUser;\n                        <div\n                            class=\"comment p-x-4 p-y-2 m-t-2 br-2\"\n                            [class]=\"{\n                                'background-black-2': isDarkmode,\n                                'background-hover-black':\n                                    !isEditMode && isDarkmode,\n                                'background-bw-9': isEditMode && isDarkmode,\n                                'background-hover-bw2':\n                                    !isEditMode && !isDarkmode,\n                                'background-black-3': isEditMode && !isDarkmode,\n                            }\"\n                        >\n                            <div class=\"position-relative\">\n                                <div\n                                    class=\"d-flex justify-content-between align-items-center p-t-1\"\n                                >\n                                    <div\n                                        class=\"d-flex justify-content-start align-items-center\"\n                                    >\n                                        <!-- TODO Change colors or something -->\n                                        @let companyUserFullname =\n                                            (companyUser?.fullName ||\n                                                companyUser?.name) ??\n                                            eStringPlaceholder.EMPTY;\n\n                                        @let nameInitials =\n                                            companyUserFullname | nameInitials;\n                                        <app-ca-profile-image\n                                            [avatarColor]=\"{\n                                                background: '#DFC2F9',\n                                                color: '#9E47EC66',\n                                            }\"\n                                            [avatarImg]=\"\n                                                companyUser?.avatarFile?.url\n                                            \"\n                                            [textShortName]=\"nameInitials\"\n                                            [isRound]=\"!comment.isDriver\"\n                                            [size]=\"22\"\n                                        ></app-ca-profile-image>\n                                        <div\n                                            class=\"m-x-4 m-y-2 text-size-11\"\n                                        >\n                                            <div>\n                                                <span\n                                                    class=\"ca-font-semi-bold\"\n                                                    [class]=\"{\n                                                        'text-color-black':\n                                                            isEditMode &&\n                                                            isDarkmode,\n                                                        'text-color-white':\n                                                            (!isEditMode &&\n                                                                isDarkmode) ||\n                                                            (isEditMode &&\n                                                                !isDarkmode),\n                                                    }\"\n                                                    [innerHtml]=\"\n                                                        companyUserFullname\n                                                            | caHighlightSingleString\n                                                                : searchTerm\n                                                            | safeHtml\n                                                    \"\n                                                >\n                                                    {{\n                                                        companyUserFullname\n                                                    }}</span\n                                                >\n                                                @let youOrMe =\n                                                    isDarkmode\n                                                        ? '(Me)'\n                                                        : '(You)';\n                                                @let orange =\n                                                    isDarkmode\n                                                        ? 'text-color-orange-3'\n                                                        : 'text-color-orange-2';\n                                                @if (\n                                                    isCurrentUser && !isEditMode\n                                                ) {\n                                                    <span\n                                                        class=\"ca-font-bold m-x-4\"\n                                                        [class]=\"orange\"\n                                                        >{{ youOrMe }}</span\n                                                    >\n                                                }\n                                            </div>\n                                            <div\n                                                class=\"text-size-11 text-color-grey\"\n                                            >\n                                                @if (isEditMode) {\n                                                    @if (comment?.isNew) {\n                                                        New Comment\n                                                    } @else {\n                                                        Edit Comment\n                                                    }\n                                                } @else {\n                                                    <span>{{\n                                                        comment.createdAt\n                                                            | dateFromStringPipe\n                                                                : eDateTimeFormats.DATE_TIME\n                                                    }}</span>\n                                                    @if (comment?.isEdited) {\n                                                        @let editedTextColor =\n                                                            isDarkmode\n                                                                ? 'text-color-blue-19'\n                                                                : 'text-color-blue-13';\n\n                                                        <span\n                                                            class=\"ca-font-medium m-l-4\"\n                                                            [ngClass]=\"\n                                                                editedTextColor\n                                                            \"\n                                                        >\n                                                            • Edited\n                                                        </span>\n                                                    }\n                                                }\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <div\n                                        class=\"d-flex justify-content-start align-items-center\"\n                                    >\n                                        @if (isEditMode) {\n                                            @let backgroundHover =\n                                                isDarkmode\n                                                    ? 'background-hover-black'\n                                                    : 'background-hover-white';\n                                            @let iconFill =\n                                                isDarkmode\n                                                    ? 'svg-fill-bw-9'\n                                                    : 'svg-fill-black-9';\n                                            @let actionClasses =\n                                                [\n                                                    'background-grey',\n                                                    backgroundHover,\n                                                    iconFill,\n                                                ];\n                                            <div\n                                                class=\"icon-hover h-18 w-18 d-flex justify-content-center align-items-center br-1 m-x-2\"\n                                                ngbTooltip\n                                                [tooltipBackground]=\"\n                                                    tooltipBackground\n                                                \"\n                                                [tooltipColor]=\"tooltipColor\"\n                                                [mainCaTooltip]=\"\n                                                    eGeneralActions.CONFIRM\n                                                \"\n                                                [position]=\"ePosition.TOP\"\n                                                [class]=\"actionClasses\"\n                                                (click)=\"\n                                                    confirmComment(comment)\n                                                \"\n                                            >\n                                                <svg-icon\n                                                    class=\"d-flex svg-size-12 c-pointer\"\n                                                    [src]=\"\n                                                        'ic_confirm'\n                                                            | caSvg\n                                                                : eSharedString.COMMON_LOWERCASE\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                            <div\n                                                class=\"icon-hover h-18 w-18 d-flex justify-content-center align-items-center br-1 m-x-2\"\n                                                ngbTooltip\n                                                [tooltipBackground]=\"\n                                                    tooltipBackground\n                                                \"\n                                                [tooltipColor]=\"tooltipColor\"\n                                                [mainCaTooltip]=\"\n                                                    eGeneralActions.CANCEL\n                                                \"\n                                                [position]=\"ePosition.TOP\"\n                                                [class]=\"actionClasses\"\n                                                (click)=\"\n                                                    clearCommentAddOrEdit()\n                                                \"\n                                            >\n                                                <svg-icon\n                                                    class=\"d-flex svg-size-10 c-pointer\"\n                                                    [src]=\"\n                                                        'ic_x'\n                                                            | caSvg\n                                                                : eSharedString.COMMON_LOWERCASE\n                                                    \"\n                                                ></svg-icon>\n                                            </div>\n                                        } @else {\n                                            @if (isCurrentUser) {\n                                                @let iconHoverFill =\n                                                    isDarkmode\n                                                        ? 'svg-hover-bw-9'\n                                                        : 'svg-hover-black';\n                                                @let iconBackgroundHover =\n                                                    isDarkmode\n                                                        ? 'background-hover-grey-2'\n                                                        : 'background-hover-dark-2';\n\n                                                <div\n                                                    class=\"action-icon h-18 w-18 justify-content-center align-items-center br-1 m-x-2\"\n                                                    ngbTooltip\n                                                    [tooltipBackground]=\"\n                                                        tooltipBackground\n                                                    \"\n                                                    [tooltipColor]=\"\n                                                        tooltipColor\n                                                    \"\n                                                    [mainCaTooltip]=\"\n                                                        eGeneralActions.EDIT\n                                                    \"\n                                                    [position]=\"ePosition.TOP\"\n                                                    [class]=\"[\n                                                        'svg-fill-grey',\n                                                        iconHoverFill,\n                                                        iconBackgroundHover,\n                                                    ]\"\n                                                    (click)=\"\n                                                        onEditComment(comment)\n                                                    \"\n                                                >\n                                                    <svg-icon\n                                                        class=\"d-flex svg-size-12 c-pointer\"\n                                                        [src]=\"\n                                                            'ic_edit'\n                                                                | caSvg\n                                                                    : eSharedString.COMMON_LOWERCASE\n                                                        \"\n                                                    ></svg-icon>\n                                                </div>\n                                                @let trashIconBackground =\n                                                    isDarkmode\n                                                        ? 'background-hover-grey-2'\n                                                        : 'background-hover-red-15';\n                                                @let trashIconHover =\n                                                    isDarkmode\n                                                        ? 'svg-hover-bw-9'\n                                                        : 'svg-hover-red-14';\n                                                <div\n                                                    class=\"action-icon h-18 w-18 justify-content-center align-items-center br-1 m-x-2\"\n                                                    ngbTooltip\n                                                    [tooltipBackground]=\"\n                                                        tooltipBackground\n                                                    \"\n                                                    [tooltipColor]=\"\n                                                        tooltipColor\n                                                    \"\n                                                    [mainCaTooltip]=\"\n                                                        eGeneralActions.DELETE\n                                                    \"\n                                                    [position]=\"ePosition.TOP\"\n                                                    [class]=\"[\n                                                        'svg-fill-grey',\n                                                        trashIconBackground,\n                                                        trashIconHover,\n                                                    ]\"\n                                                    (click)=\"\n                                                        onDeleteComment(comment)\n                                                    \"\n                                                >\n                                                    <svg-icon\n                                                        class=\"d-flex svg-size-12 c-pointer\"\n                                                        [src]=\"\n                                                            'ic_trash'\n                                                                | caSvg\n                                                                    : eSharedString.COMMON_LOWERCASE\n                                                        \"\n                                                    ></svg-icon>\n                                                </div>\n                                            }\n                                            @if (isDarkmode) {\n                                                @let animationStateArrow =\n                                                    isCommentExpanded\n                                                        ? eAnimationState.ROTATED\n                                                        : eAnimationState.DEFAULT;\n                                                @let tooltipText =\n                                                    isCommentExpanded\n                                                        ? eGeneralActions.COLLAPSE\n                                                        : eGeneralActions.EXPAND;\n                                                <div\n                                                    class=\"action-icon h-18 w-18 justify-content-center align-items-center background-hover-grey-2 m-l-2 br-1\"\n                                                    ngbTooltip\n                                                    [tooltipBackground]=\"\n                                                        tooltipBackground\n                                                    \"\n                                                    [tooltipColor]=\"\n                                                        tooltipColor\n                                                    \"\n                                                    [mainCaTooltip]=\"\n                                                        tooltipText\n                                                    \"\n                                                    [position]=\"ePosition.TOP\"\n                                                    (click)=\"\n                                                        onExpandComment(comment)\n                                                    \"\n                                                >\n                                                    <svg-icon\n                                                        class=\"d-flex svg-size-12 svg-hover-bw-9 c-pointer\"\n                                                        [src]=\"\n                                                            'ic_arrow_down'\n                                                                | caSvg\n                                                                    : eSharedString.COMMON_LOWERCASE\n                                                        \"\n                                                        [class.svg-fill-white]=\"\n                                                            isCommentExpanded\n                                                        \"\n                                                        [@rotatedState]=\"\n                                                            animationStateArrow\n                                                        \"\n                                                    ></svg-icon>\n                                                </div>\n                                            }\n                                        }\n                                    </div>\n                                </div>\n                                @let isExpanded =\n                                    isCommentExpanded || !isDarkmode;\n                                @let commentHeight =\n                                    isExpanded ? 'auto' : '18px';\n\n                                @if (isEditMode) {\n                                    <div>\n                                        <textarea\n                                            class=\"w-100 background-transparent text-color-black text-size-11 p-x-2\"\n                                            placeholder=\"Write comment\"\n                                            maxlength=\"112\"\n                                            [class]=\"\n                                                isDarkmode\n                                                    ? 'text-color-black'\n                                                    : 'text-color-white'\n                                            \"\n                                            [formControl]=\"\n                                                commentContentFormControl\n                                            \"\n                                        ></textarea>\n                                    </div>\n                                } @else {\n                                    <div\n                                        class=\"text-size-11 p-x-2\"\n                                        [class]=\"{\n                                            'text-color-black':\n                                                isEditMode && isDarkmode,\n                                            'text-color-white':\n                                                (!isEditMode && isDarkmode) ||\n                                                (isEditMode && !isDarkmode),\n                                            'h-18': !isExpanded,\n                                        }\"\n                                        [innerHtml]=\"\n                                            comment?.commentContent ??\n                                                eStringPlaceholder.EMPTY\n                                                | safeHtml\n                                        \"\n                                        [ngStyle]=\"{\n                                            height: commentHeight,\n                                        }\"\n                                        [class.comment-content]=\"!isExpanded\"\n                                    ></div>\n                                }\n                            </div>\n                        </div>\n                    }\n                } @else {\n                    @if (isDarkmode) {\n                        <div\n                            class=\"w-100 d-flex justify-content-center align-items-center background-black p-y-15 m-t-4\"\n                        >\n                            <span class=\"text-color-bw6-2 ca-font-extra-bold\">\n                                No Results\n                            </span>\n                        </div>\n                    }\n                }\n            </div>\n        } @else {\n            @let emptyStateContainerClass =\n                isDarkmode ? 'h-80 background-black' : 'h-160';\n            @let subtleIllustrationTextClass =\n                isDarkmode\n                    ? 'text-size-20 text-color-bw6-2 ca-font-extra-bold'\n                    : 'text-size-28 text-color-bw-9 ca-font-bold text-uppercase';\n            @let emptyStateTextClass =\n                isDarkmode\n                    ? 'text-size-20 text-color-bw6-2 ca-font-extra-bold'\n                    : 'text-size-28 text-color-bw-9';\n            @let emptyStateText = isDarkmode ? 'Empty State' : '(Empty State)';\n\n            <div\n                class=\"d-flex flex-column align-items-center justify-content-center w-100 m-t-4\"\n                [ngClass]=\"emptyStateContainerClass\"\n            >\n                <div\n                    class=\"text-center\"\n                    [ngClass]=\"subtleIllustrationTextClass\"\n                >\n                    Subtle Illustration\n                </div>\n                <div class=\"text-center\" [ngClass]=\"emptyStateTextClass\">\n                    {{ emptyStateText }}\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #dropdownPopover>\n    <ng-container *ngTemplateOutlet=\"commentsTemplate\"></ng-container>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// Ennums\nimport { eColor, eGeneralActions, ePosition, eSharedString } from '../../enums';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Interface\nimport { ITableColumn } from '../../interfaces/table/table-column.interface';\n\n@Component({\n    selector: 'app-ca-sorting-card-dropdown',\n    imports: [\n        // Modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbTooltip,\n        NgbModule,\n        // Components\n        CaAppTooltipV2Component,\n    ],\n    templateUrl: './ca-sorting-card-dropdown.component.html',\n    styleUrl: './ca-sorting-card-dropdown.component.scss'\n})\nexport class CaSortingCardDropdownComponent {\n    @Input() options!: ITableColumn[];\n\t@Input() isDisabled!: boolean;\n\n    @Output() onSortChange = new EventEmitter<ITableColumn | null>();\n    @Output() onSelectItem = new EventEmitter<ITableColumn | null>();\n\n    public dropdownPopover: NgbPopover | null = null;\n    public selectedItem!: ITableColumn | null;\n    public hoveredItem!: ITableColumn | null;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n    public eSharedString = eSharedString;\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eGeneralActions = eGeneralActions;\n\n    public sortDirection = eSharedString.DSC;\n\n    public get isDropdownActive(): boolean | undefined {\n        return this.dropdownPopover?.isOpen();\n    }\n\n    public onSortClick(event: MouseEvent): void {\n        event.preventDefault();\n        event.stopPropagation();\n\n        this.sortDirection =\n            this.sortDirection === eSharedString.DSC\n                ? eSharedString.ASC\n                : eSharedString.DSC;\n\n        this.onSortChange.emit(this.selectedItem);\n    }\n\n    public handleDropdownOpenCloseClick(dropdownPopover: NgbPopover): void {\n        if(this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (dropdownPopover.isOpen()) {\n            dropdownPopover.close();\n\n            this.dropdownPopover = null;\n        } else {\n            this.dropdownPopover?.close();\n\n            this.dropdownPopover = dropdownPopover;\n\n            this.dropdownPopover.open();\n        }\n    }\n\n    public onSelectItemClick(item: ITableColumn): void {\n        this.dropdownPopover?.close();\n        if (this.selectedItem?.key === item.key) {\n            this.onSelectItem.emit({\n\t\t\t\t...this.selectedItem,\n\t\t\t\tremoveSort: true\n\t\t\t});\n            this.selectedItem = null;\n        } else {\n            this.selectedItem = item;\n\t\t\tthis.onSelectItem.emit(this.selectedItem);\n        }\n        this.hoveredItem = null;\n    }\n}\n","<div\n    class=\"item-sort-container d-flex align-items-center br-2 w-fit-content\"\n    [class]=\"{\n        'background-hover-bw2':\n            !isDropdownActive && !selectedItem && !isDisabled,\n        'background-black': isDropdownActive,\n        'c-pointer': !isDisabled,\n    }\"\n    #dropdownPopover=\"ngbPopover\"\n    triggers=\"'manual'\"\n    [ngbPopover]=\"dropdownOptions\"\n    [autoClose]=\"'outside'\"\n    [placement]=\"ePosition.BOTTOM_RIGHT\"\n    [container]=\"'body'\"\n    (click)=\"handleDropdownOpenCloseClick(dropdownPopover)\"\n>\n    @if (selectedItem) {\n        <span\n            class=\"selected-item p-4 p-l-6 ca-font-medium text-size-14\"\n            [ngClass]=\"{\n                'text-color-black': !isDropdownActive,\n                'text-color-white': isDropdownActive,\n                'selected-item': !isDropdownActive,\n            }\"\n            [tooltipBackground]=\"eColor.BLACK\"\n            ngbTooltip\n            [mainCaTooltip]=\"eGeneralActions.SORT_BY\"\n            [position]=\"ePosition.BOTTOM\"\n        >\n            {{ selectedItem.labelToolbar }}\n        </span>\n\n        @if (isDropdownActive) {\n            <div\n                class=\"d-flex align-items-center justify-content-center c-pointer h-26 w-26\"\n            >\n                <svg-icon\n                    [src]=\"sharedSvgRoutes.ARROW_UP_FILLED_ICON\"\n                    [class.focus]=\"isDropdownActive\"\n                    class=\"d-flex input-dropdown-arrow svg-size-14\"\n                >\n                </svg-icon>\n            </div>\n        } @else {\n            <div\n                class=\"sort-container d-flex align-items-center justify-content-center c-pointer h-26 w-26 br-2\"\n                [class.focus]=\"isDropdownActive\"\n                [class]=\"{\n                    'background-hover-blue-16': true,\n                    'background-black': isDropdownActive,\n                }\"\n                ngbTooltip\n                [mainCaTooltip]=\"\n                    sortDirection === eSharedString.DSC\n                        ? eSharedString.DESCENDING\n                        : eSharedString.ASCENDING\n                \"\n                [tooltipBackground]=\"eColor.BLACK\"\n                [position]=\"ePosition.BOTTOM\"\n                (click)=\"onSortClick($event)\"\n            >\n                <svg-icon\n                    class=\"d-flex svg-size-18 c-pointer svg-fill-blue-13 svg-hover-blue-15\"\n                    [src]=\"\n                        sortDirection === eSharedString.DSC\n                            ? sharedSvgRoutes.NEW_SORT_ICON_DESCENDING\n                            : sharedSvgRoutes.NEW_SORT_ICON_ASCENDING\n                    \"\n                >\n                </svg-icon>\n            </div>\n        }\n    } @else {\n        <div\n            class=\"sort-container d-flex align-items-center justify-content-center h-26 w-26 br-2\"\n            [class.c-pointer]=\"!isDisabled\"\n            [tooltipBackground]=\"eColor.BLACK\"\n            ngbTooltip\n            [mainCaTooltip]=\"eGeneralActions.SORT_BY\"\n            [position]=\"ePosition.BOTTOM\"\n        >\n            <svg-icon\n                class=\"d-flex svg-size-18\"\n                [ngClass]=\"{\n                    'svg-fill-grey svg-hover-black':\n                        !isDropdownActive && !selectedItem && !isDisabled,\n                    'svg-fill-white-4': isDropdownActive && !isDisabled,\n                    'svg-fill-light-grey-6': isDisabled,\n                    'c-pointer': !isDisabled,\n                }\"\n                [src]=\"sharedSvgRoutes.NEW_SORT_ICON\"\n            >\n            </svg-icon>\n        </div>\n    }\n</div>\n\n<ng-template #dropdownOptions>\n    <div\n        class=\"d-flex flex-column dropdown-container dropdown-options scroll background-black-2 br-3 w-116 p-4\"\n    >\n        @for (item of options; track $index; let index = $index) {\n            @let isSelectedItem = item.key === selectedItem?.key;\n\n            <div\n                class=\"d-flex align-items-center justify-content-between br-2 h-26 p-4 c-pointer background-hover-black-1\"\n                (click)=\"onSelectItemClick(item)\"\n                (mouseout)=\"hoveredItem = null\"\n                (mouseover)=\"hoveredItem = item\"\n            >\n                <span\n                    class=\"d-flex text-color-white text-size-14 ca-font-regular text-truncate\"\n                    [class.ca-font-bold]=\"isSelectedItem\"\n                >\n                    {{ item.labelToolbar }}\n                </span>\n\n                @if (isSelectedItem) {\n                    @if (hoveredItem?.labelToolbar === item?.labelToolbar) {\n                        <svg-icon\n                            class=\"d-flex svg-size-14 svg-fill-red-13\"\n                            [src]=\"sharedSvgRoutes.CANCEL_ICON\"\n                        >\n                        </svg-icon>\n                    } @else {\n                        <svg-icon\n                            class=\"d-flex svg-size-14\"\n                            [src]=\"sharedSvgRoutes.CHECKMARK_ICON\"\n                        >\n                        </svg-icon>\n                    }\n                }\n            </div>\n        }\n    </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n@Component({\n    selector: 'app-ca-active-modal',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n    templateUrl: './ca-active-modal.component.html',\n    styleUrl: './ca-active-modal.component.scss',\n})\nexport class CaActivateModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n    @Input() isOpenBusinessModal: boolean = false;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"modalRightIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData.title }}\n        </div>\n        @if (modalData.count) {\n            <div\n                class=\"d-flex align-items-center justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small m-0\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.SECONDARY_NEUTRAL\"\n                [text]=\"'No'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction()\"\n            ></app-ca-modal-button>\n\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.PRIMARY_POSITIVE\"\n                [text]=\"'Yes'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction(true)\"\n            ></app-ca-modal-button>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #modalRightIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"\n                isOpenBusinessModal\n                    ? sharedSvgRoutes.CONFIRMATION_MODAL_OPEN_ICON\n                    : sharedSvgRoutes.CONFIRMATION_MODAL_ACTIVATE_ICON\n            \"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-fill-blue-13 svg-size-18 modal-header-svg\"\n        [src]=\"sharedSvgRoutes.CONFIRMATION_CHECKMARK_ICON\"\n    ></svg-icon>\n</ng-template>\n","import { IConfirmationModalButtons } from '../../interfaces';\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\n\nexport class ConfirmationModalButtonConstants {\n    public static readonly NO_BUTTON: IConfirmationModalButtons = {\n        label: 'No',\n        type: eModalButtonClassType.SECONDARY_NEUTRAL,\n        actionValue: undefined,\n    };\n\n    public static readonly YES_BUTTON: IConfirmationModalButtons = {\n        label: 'Yes',\n        type: eModalButtonClassType.PRIMARY_NEUTRAL,\n        actionValue: true,\n    };\n\n    public static readonly CANCEL_BUTTON: IConfirmationModalButtons = {\n        label: 'Cancel',\n        type: eModalButtonClassType.SECONDARY_NEUTRAL,\n        actionValue: undefined,\n    };\n\n    public static readonly REMOVE_BUTTON: IConfirmationModalButtons = {\n        label: 'Remove',\n        type: eModalButtonClassType.PRIMARY_NEGATIVE,\n        actionValue: true,\n    };\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\nimport { IConfirmationModalButtons } from '../../interfaces';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n// Constants\nimport { ConfirmationModalButtonConstants } from '../../utils/constants';\n\n@Component({\n    selector: 'app-ca-deactivate-modal',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n    templateUrl: './ca-deactive-modal.component.html',\n    styleUrl: './ca-deactive-modal.component.scss',\n})\nexport class CaDeactivateModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n    @Input() isCloseBusinessModal: boolean = false;\n    @Input() isInfoIcon: boolean = false;\n    @Input() modalButtons: IConfirmationModalButtons[] = [\n        ConfirmationModalButtonConstants.NO_BUTTON,\n        ConfirmationModalButtonConstants.YES_BUTTON,\n    ];\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"modalRightIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData.title }}\n        </div>\n        @if (modalData.count) {\n            <div\n                class=\"d-flex align-items-center justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            @for (button of modalButtons; track $index) {\n                <app-ca-modal-button\n                    class=\"flex-1\"\n                    [type]=\"button.type\"\n                    [text]=\"button.label\"\n                    [isModalButton]=\"true\"\n                    [size]=\"eModalButtonSize.FULL_WIDTH\"\n                    (click)=\"onModalAction(button.actionValue)\"\n                ></app-ca-modal-button>\n            }\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #modalRightIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"\n                isCloseBusinessModal || isInfoIcon\n                    ? sharedSvgRoutes.CONFIRMATION_MODAL_CLOSE_ICON\n                    : sharedSvgRoutes.CONFIRMATION_MODAL_DEACTIVATE_ICON\n            \"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-size-18 modal-header-svg\"\n        [ngClass]=\"{ 'svg-fill-red-10': isCloseBusinessModal }\"\n        [src]=\"\n            isCloseBusinessModal && !isInfoIcon\n                ? sharedSvgRoutes.CLOSE_ICON_NORMAL\n                : sharedSvgRoutes.CONFIRMATION_INFO_ICON\n        \"\n    ></svg-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n@Component({\n    selector: 'app-ca-move-modal',\n    templateUrl: './ca-move-modal.component.html',\n    styleUrl: './ca-move-modal.component.scss',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n})\nexport class CaMoveModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n    @Input() isRemoveModal: boolean = false;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"modalRightIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData.title }}\n        </div>\n        @if (modalData.count) {\n            <div\n                class=\"d-flex align-items-center justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.SECONDARY_NEUTRAL\"\n                [text]=\"'No'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction()\"\n            ></app-ca-modal-button>\n\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.PRIMARY_NEUTRAL\"\n                [text]=\"'Yes'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction(true)\"\n            ></app-ca-modal-button>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #modalRightIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"\n                isRemoveModal\n                    ? sharedSvgRoutes.CONFIRMATION_MODAL_REMOVE_ICON\n                    : sharedSvgRoutes.CONFIRMATION_MODAL_MOVE_ICON\n            \"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-fill-yellow-1 svg-size-18 modal-header-svg\"\n        [src]=\"sharedSvgRoutes.CONFIRMATION_INFO_ICON\"\n    ></svg-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n@Component({\n    selector: 'app-ca-reset-table-modal',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n    templateUrl: './ca-reset-table-modal.component.html',\n    styleUrls: ['./ca-reset-table-modal.component.scss']\n})\nexport class CaResetTableModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"modalRightIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData?.title }}\n        </div>\n        @if (modalData?.count) {\n            <div\n                class=\"d-flex align-items-center justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData?.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.SECONDARY_NEUTRAL\"\n                [text]=\"'No'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction()\"\n            ></app-ca-modal-button>\n\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.PRIMARY_NEUTRAL\"\n                [text]=\"'Yes'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction(true)\"\n            ></app-ca-modal-button>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #modalRightIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"sharedSvgRoutes.CONFIRMATION_MODAL_TABEL_RESET_ICON\"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-size-18 modal-header-svg\"\n        [src]=\"sharedSvgRoutes.CONFIRMATION_RESET_ICON\"\n    ></svg-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Routes\nimport { SharedSvgRoutes } from '../../../../utils/svg-routes';\n\n// Components\nimport { CaModalComponent } from '../../../ca-modal/ca-modal.component';\nimport { CaModalButtonComponent } from '../../../ca-modal-button/ca-modal-button.component';\n\n// Interfaces\nimport { IModalData } from '../interfaces/modal-data.interface';\n\n// Enums\nimport { eModalButtonClassType } from '../../../ca-modal-button/enums';\nimport { eModalButtonSize } from '../../../ca-modal-button/enums/modal-button-size.enum';\n\n@Component({\n    selector: 'app-ca-void-modal',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaModalComponent,\n        CaModalButtonComponent,\n    ],\n    templateUrl: './ca-void-modal.component.html',\n    styleUrl: './ca-void-modal.component.scss',\n})\nexport class CaVoidModalComponent {\n    @Input() modalData!: IModalData;\n    @Input() template!: TemplateRef<null>;\n\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public eModalButtonClassType = eModalButtonClassType;\n    public eModalButtonSize = eModalButtonSize;\n\n    constructor(private ngbActiveModal: NgbActiveModal) {}\n\n    public onModalAction(isDoAction?: boolean): void {\n        this.ngbActiveModal.close(isDoAction);\n    }\n}\n","<app-ca-modal\n    [customClass]=\"'modal-container-XS'\"\n    [customHeaderTemplate]=\"headerContent\"\n    [footerTemplate]=\"footerTemplate\"\n>\n    <div origin>\n        <div class=\"m-t-2\">\n            <div class=\"divider divider--dark divider--small\"></div>\n        </div>\n        <div class=\"d-flex p-t-12 p-b-8\">\n            <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n        </div>\n        <ng-container *ngTemplateOutlet=\"modalRightIcon\"></ng-container>\n    </div>\n</app-ca-modal>\n\n<ng-template #headerContent>\n    <div class=\"d-flex align-items-center gap-6 p-t-2\">\n        <ng-container *ngTemplateOutlet=\"headerSvgTemplate\"></ng-container>\n        <div\n            class=\"ca-font-extra-bold h-22 font-size-18 text-color-black line-height-1 m-t-1\"\n        >\n            {{ modalData?.title }}\n        </div>\n        @if (modalData?.count) {\n            <div\n                class=\"d-flex align-items-center justify-content-center w-22 h-22 background-bw6-2 ca-font-extra-bold text-size-14 text-color-white br-50\"\n            >\n                {{ modalData?.count }}\n            </div>\n        }\n    </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n    <div class=\"modal-footer modal-footer-payroll\">\n        <div class=\"divider divider--dark divider--small\"></div>\n        <div class=\"d-flex gap-12 m-0 w-100\">\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.SECONDARY_NEUTRAL\"\n                [text]=\"'No'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction()\"\n            ></app-ca-modal-button>\n\n            <app-ca-modal-button\n                class=\"flex-1\"\n                [type]=\"eModalButtonClassType.PRIMARY_NEUTRAL\"\n                [text]=\"'Yes'\"\n                [isModalButton]=\"true\"\n                [size]=\"eModalButtonSize.FULL_WIDTH\"\n                (click)=\"onModalAction(true)\"\n            ></app-ca-modal-button>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #modalRightIcon>\n    <div class=\"trash-icon-container position-absolute right-12 top--38\">\n        <svg-icon\n            class=\"svg-size-90 p-l-10 background-white\"\n            [src]=\"sharedSvgRoutes.CONFIRMATION_MODAL_VOID_ICON\"\n        ></svg-icon>\n    </div>\n</ng-template>\n\n<ng-template #headerSvgTemplate>\n    <svg-icon\n        class=\"d-flex svg-size-18 modal-header-svg\"\n        [src]=\"sharedSvgRoutes.CONFIRMATION_VOID_ICON\"\n    ></svg-icon>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { SvgIconComponent } from 'angular-svg-icon';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// enums\nimport { eColor, ePosition } from '../../enums';\n\n@Component({\n    selector: 'app-ca-files-count',\n    templateUrl: './ca-files-count.component.html',\n    styleUrl: './ca-files-count.component.scss',\n    imports: [\n        // modules\n        CommonModule,\n        NgbModule,\n\n        // components\n        SvgIconComponent,\n        CaAppTooltipV2Component,\n    ],\n})\nexport class CaFilesCountComponent {\n    @Input() rowId: number | null = null;\n    @Input() filesCount: number = 0;\n    @Input() hasCount: boolean = true;\n    @Input() isCardView: boolean = false;\n\n    @Output() onFilesCountAction: EventEmitter<number | null> =\n        new EventEmitter<number | null>();\n\n    // enums\n    public ePosition = ePosition;\n    public eColor = eColor;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    public onFilesCountClick(rowId: number | null): void {\n        this.onFilesCountAction.emit(rowId);\n    }\n}\n","@if (filesCount) {\n    @let fileCountClass =\n        {\n            'c-pointer text-hover-black text-color-grey svg-hover-black background-hover-dark-2':\n                !isCardView,\n            'flex-column h-40': hasCount && isCardView,\n            'w-26': (!hasCount && !isCardView) || (hasCount && isCardView),\n            'w-46 h-26': hasCount && !isCardView,\n            'h-26': !hasCount && !isCardView,            \n        };\n\n    <div\n        class=\"d-flex align-items-center justify-content-center p-4 br-2\"\n        [ngClass]=\"fileCountClass\"\n        ngbTooltip\n        [mainCaTooltip]=\"'Document'\"\n        [tooltipBackground]=\"eColor.BLACK\"\n        [position]=\"ePosition.BOTTOM\"\n        (click)=\"onFilesCountClick(rowId)\"\n    >\n        <svg-icon\n            class=\"svg-size-18 svg-fill-grey d-flex align-items-center\"\n            [class.m-r-4]=\"!isCardView\"\n            [class.m-b-2]=\"isCardView\"\n            [src]=\"sharedSvgRoutes.FILES_ICON\"\n        ></svg-icon>\n\n        @if (hasCount) {\n            <div class=\"d-flex align-items-center justify-content-center w-16 h-14\">\n                <span\n                    class=\"text-size-11 text-center ca-font-bold\"\n                >\n                    {{ filesCount }}\n                </span>\n            </div>\n        }\n    </div>\n}\n","import {\n    Directive,\n    Input,\n    ElementRef,\n    Renderer2,\n    AfterViewInit,\n} from '@angular/core';\n\n// interfaces\nimport { IItemsDropdownList } from '../components/ca-items-dropdown/interfaces';\n\n@Directive({\n    selector: '[appDescriptionItemsTextCount]',\n    standalone: true,\n})\nexport class DescriptionItemsTextCountDirective<T extends IItemsDropdownList>\n    implements AfterViewInit\n{\n    @Input('appDescriptionItemsTextCount')\n    set items(value: T[]) {\n        this._items = value;\n\n        this.createStringArray(this._items);\n\n        this.updateItems();\n    }\n\n    @Input() itemsSpecialStylesIndexArray?: number[] = [];\n    @Input() containerWidth: number = 0;\n    @Input() separator: string = '•';\n\n    private _items: T[] | string[] = [];\n\n    constructor(\n        private element: ElementRef,\n        private renderer: Renderer2\n    ) {}\n\n    ngAfterViewInit(): void {\n        this.updateItems();\n    }\n\n    private createStringArray(value: T[]): void {\n        const isStringArray = value?.every((item) => typeof item === 'string');\n\n        if (!isStringArray && Array.isArray(value)) {\n            const objectArray = value as {\n                code?: string;\n                description?: string;\n                nickname?: string;\n                itemFuel?: {\n                    name?: string;\n                };\n            }[];\n\n            this._items = objectArray.map(\n                (item) =>\n                    item.code ||\n                    item.description ||\n                    item.nickname ||\n                    item.itemFuel?.name ||\n                    ''\n            );\n        }\n    }\n\n    private updateItems(): void {\n        const container = this.element.nativeElement;\n\n        // clear the container and set styles\n        this.renderer.setProperty(container, 'innerHTML', '');\n\n        this.renderer.setStyle(container, 'display', 'flex');\n        this.renderer.setStyle(container, 'overflow', 'hidden');\n        this.renderer.setStyle(container, 'white-space', 'nowrap');\n        this.renderer.setStyle(container, 'align-items', 'center');\n\n        if (!this._items?.length) return;\n\n        // Calculate available width for items\n        const totalItems = this._items.length;\n        let fittedItems: Array<{ element: HTMLElement; width: number }> = [];\n        let currentWidth = 0;\n        let overflowCount = 0;\n\n        // First pass: try to fit all items without reserving overflow space\n        for (let i = 0; i < totalItems; i++) {\n            const item = this._items[i];\n            const isLastItem = i === totalItems - 1;\n\n            // Calculate widths\n            const itemWidth = this.getTextWidth(item);\n            const separatorWidth = isLastItem\n                ? 0\n                : this.getTextWidth(` ${this.separator} `) + 8; // 8px for margin\n\n            // Check if current item fits\n            const totalWidthNeeded = currentWidth + itemWidth + separatorWidth;\n\n            if (totalWidthNeeded <= this.containerWidth) {\n                // Item fits, add it\n                const itemSpan = this.createSpan(item, i);\n                fittedItems.push({ element: itemSpan, width: itemWidth });\n                currentWidth += itemWidth;\n\n                // Add separator if not the last item\n                if (!isLastItem) {\n                    const separatorSpan = this.createSpan(\n                        ` ${this.separator} `\n                    );\n                    this.renderer.setStyle(\n                        separatorSpan,\n                        'margin',\n                        '0 4px 0 4px'\n                    );\n                    this.renderer.setStyle(\n                        separatorSpan,\n                        'user-select',\n                        'none'\n                    );\n                    fittedItems.push({\n                        element: separatorSpan,\n                        width: separatorWidth,\n                    });\n                    currentWidth += separatorWidth;\n                }\n            } else {\n                // Items don't fit, we need to handle overflow\n                const remainingItems = totalItems - i;\n                const estimatedOverflowWidth =\n                    this.getTextWidth(`+${remainingItems}`) + 16; // padding for margin\n\n                // Check if we can fit some items by removing the last separator and making room for overflow\n                if (fittedItems.length > 0 && !isLastItem) {\n                    // Remove last separator if it exists\n                    const lastItem = fittedItems[fittedItems.length - 1];\n                    if (\n                        lastItem.element.textContent?.includes(this.separator)\n                    ) {\n                        fittedItems.pop();\n                        currentWidth -= lastItem.width;\n                    }\n                }\n\n                // Check if we have room for overflow indicator\n                if (\n                    currentWidth + estimatedOverflowWidth <=\n                    this.containerWidth\n                ) {\n                    overflowCount = remainingItems;\n                } else {\n                    // Remove items until we have space for overflow indicator\n                    while (\n                        fittedItems.length > 0 &&\n                        currentWidth + estimatedOverflowWidth >\n                            this.containerWidth\n                    ) {\n                        const removedItem = fittedItems.pop()!;\n                        currentWidth -= removedItem.width;\n                        overflowCount++;\n                    }\n                    // Recalculate overflow count text width in case the number changed\n                    const actualOverflowWidth =\n                        this.getTextWidth(`+${overflowCount}`) + 16;\n                    if (\n                        currentWidth + actualOverflowWidth >\n                            this.containerWidth &&\n                        fittedItems.length > 0\n                    ) {\n                        const removedItem = fittedItems.pop()!;\n                        currentWidth -= removedItem.width;\n                        overflowCount++;\n                    }\n                }\n                break;\n            }\n        }\n\n        // Append fitted items to container\n        fittedItems.forEach((item) => {\n            this.renderer.appendChild(container, item.element);\n        });\n\n        // Add overflow count if necessary\n        if (overflowCount > 0) {\n            const overflowContainer = this.renderer.createElement('div');\n\n            this.renderer.addClass(overflowContainer, 'items-counter-count');\n            this.renderer.setStyle(overflowContainer, 'margin-left', '8px');\n            this.renderer.setStyle(overflowContainer, 'flex-shrink', '0');\n\n            const overflowSpan = this.createSpan(\n                `+${overflowCount}`,\n                null,\n                true\n            );\n\n            this.renderer.setStyle(overflowSpan, 'user-select', 'none');\n\n            this.renderer.appendChild(overflowContainer, overflowSpan);\n            this.renderer.appendChild(container, overflowContainer);\n        }\n    }\n\n    private createSpan(\n        text: T | string,\n        index?: number | null,\n        isOverflowCountSpan?: boolean\n    ): HTMLElement {\n        const span = this.renderer.createElement('span');\n\n        this.renderer.setProperty(span, 'textContent', text);\n\n        this.renderer.addClass(span, 'text-color-black-2');\n        this.renderer.addClass(\n            span,\n            isOverflowCountSpan ? 'text-size-11' : 'text-size-14'\n        );\n        this.renderer.addClass(\n            span,\n            isOverflowCountSpan ? 'ca-font-medium' : 'ca-font-regular'\n        );\n\n        this.renderer.setStyle(span, 'white-space', 'nowrap');\n\n        // apply special style if the index is in itemSpecialStylesIndexArray\n        if (this.itemsSpecialStylesIndexArray?.includes(index as number))\n            this.renderer.addClass(span, 'text-color-blue-18');\n\n        return span;\n    }\n\n    private getTextWidth(text: T | string): number {\n        const canvas = document.createElement('canvas');\n        const context = canvas.getContext('2d')!;\n        const style = getComputedStyle(this.element.nativeElement);\n\n        context.font = `${style.fontSize} ${style.fontFamily}`;\n\n        return context.measureText(text as string).width;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { PMTrailerShortResponse } from '../../../models/pMTrailerShortResponse';\nimport { PMTruckShortResponse } from '../../..//models/pMTruckShortResponse';\n\n@Pipe({\n    name: 'pmItem',\n})\nexport class PmItemPipe implements PipeTransform {\n    transform<\n        T extends {\n            pmTruck: PMTruckShortResponse;\n            pmTrailer: PMTrailerShortResponse;\n        },\n    >(item: T): string {\n        const { pmTruck, pmTrailer } = item;\n\n        const pmIcon = !!pmTruck ? pmTruck.logoName : pmTrailer.logoName;\n\n        return `assets/svg/common/repair-pm/${pmIcon}`;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'dropdownWidth',\n    standalone: true,\n})\nexport class DropdownWidthPipe implements PipeTransform {\n    transform(columnWidth: number): { [key: string]: string } {\n        return {\n            width: `calc(${columnWidth}px - 3px)`,\n        };\n    }\n}\n","export class ItemsDropdownHelper {\n    static getDropdownValues<T extends Record<string, any>>(\n        itemsDropdownList: T[],\n        gridResponsePropertiesToDisplay: string[]\n    ) {\n        return itemsDropdownList?.map((item) =>\n            gridResponsePropertiesToDisplay?.map((key) => item[key])\n        );\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    TemplateRef,\n} from '@angular/core';\n\n// modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n// enums\nimport { eColor, ePosition, eStringPlaceholder, eUnit } from '../../enums';\n\n// directives\nimport { DescriptionItemsTextCountDirective } from '../../directives';\n\n// pipes\nimport { PmItemPipe, DropdownWidthPipe } from './pipes';\n\n// helpers\nimport { ItemsDropdownHelper } from './utils/helpers';\n\n// interfaces\nimport { IItemsDropdownConfig, IItemsDropdownList } from './interfaces';\n\n@Component({\n    selector: 'ca-items-dropdown',\n    templateUrl: './ca-items-dropdown.component.html',\n    styleUrl: './ca-items-dropdown.component.scss',\n    standalone: true,\n    imports: [\n        // modules\n        CommonModule,\n        NgbModule,\n\n        // components\n        CaAppTooltipV2Component,\n        SvgIconComponent,\n\n        // directives\n        DescriptionItemsTextCountDirective,\n\n        // pipes\n        PmItemPipe,\n        DropdownWidthPipe,\n    ],\n})\nexport class CaItemsDropdownComponent<T extends IItemsDropdownList> {\n    @Input() set itemsDropdownConfig(value: IItemsDropdownConfig | null) {\n        this._itemsDropdownConfig = value;\n\n        this.updateDropdownItemsToDisplay();\n    }\n\n    @Input() itemsDropdownList: T[] = [];\n    @Input() itemsSpecialStylesIndexArray?: number[] = [];\n\n    @Input() minimisedVariationDropdownTemplate!: TemplateRef<{ data: T[] }>;\n\n    @Input() columnWidth: number = 0;\n    @Input() dropdownWidth: number = 0;\n\n    @Input() tooltipText: string = eStringPlaceholder.EMPTY;\n\n    @Output() itemsDropdownAction: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    public _itemsDropdownConfig: IItemsDropdownConfig | null = null;\n\n    public dropdownItemsToDisplay: string | number[][] = [];\n\n    // enums\n    public ePosition = ePosition;\n    public eColor = eColor;\n    public eStringPlaceholder = eStringPlaceholder;\n    public eUnit = eUnit;\n\n    private updateDropdownItemsToDisplay(): void {\n        if (\n            this._itemsDropdownConfig &&\n            !this.minimisedVariationDropdownTemplate\n        ) {\n            this.dropdownItemsToDisplay = ItemsDropdownHelper.getDropdownValues(\n                this.itemsDropdownList,\n                this._itemsDropdownConfig\n                    .gridResponsePropertiesToDisplay as string[]\n            );\n        }\n    }\n\n    public handleDropdownOpenCloseClick(dropdownPopover: NgbPopover): void {\n        dropdownPopover.toggle();\n\n        this.itemsDropdownAction.emit();\n    }\n}\n","<div\n    class=\"h-100 items-dropdown-container\"\n    #dropdownPopover=\"ngbPopover\"\n    triggers=\"'manual'\"\n    [ngbPopover]=\"dropdownOptions\"\n    [autoClose]=\"'outside'\"\n    [placement]=\"['bottom-left', 'top-left']\"\n    [popoverClass]=\"'items-dropdown-popover'\"\n    [container]=\"'body'\"\n>\n    @let isDropdownOpen = dropdownPopover.isOpen();\n\n    @let gridBackgroundClass =\n        isDropdownOpen ? 'background-black-2' : 'background-hover-dark-2';\n\n    @let gridColumns =\n        {\n            'grid-template-columns': _itemsDropdownConfig?.gridValues,\n        };\n\n    @let hasItems = itemsDropdownList && itemsDropdownList.length;\n\n    @if (hasItems) {\n        @let tooltip = isDropdownOpen ? eStringPlaceholder.EMPTY : tooltipText;\n\n        <div\n            class=\"d-flex align-items-center h-100 p-x-4 br-2 c-pointer\"\n            [ngClass]=\"gridBackgroundClass\"\n            ngbTooltip\n            [mainCaTooltip]=\"tooltip\"\n            [tooltipBackground]=\"eColor.DARK_GREY\"\n            [position]=\"ePosition.BOTTOM\"\n            [tooltipMarginTop]=\"'-6px'\"\n            (click)=\"handleDropdownOpenCloseClick(dropdownPopover)\"\n        >\n            @if (isDropdownOpen) {\n                <div\n                    class=\"d-grid gap-px-4 w-100 p-r-4\"\n                    [ngStyle]=\"gridColumns\"\n                >\n                    @for (\n                        gridItem of _itemsDropdownConfig?.gridItems;\n                        track gridItem;\n                        let gridItemIndex = $index;\n                        let gridItemFirst = $first;\n                        let gridItemLast = $last\n                    ) {\n                        <div\n                            class=\"d-flex align-items-center\"\n                            [ngClass]=\"{\n                                'justify-content-center': gridItemFirst,\n                                'justify-content-end':\n                                    gridItemIndex > 1 &&\n                                    !_itemsDropdownConfig?.isAlignRightDisabled,\n                            }\"\n                        >\n                            <p\n                                class=\"text-uppercase\"\n                                [ngClass]=\"\n                                    _itemsDropdownConfig?.hasTotal &&\n                                    gridItemLast\n                                        ? 'text-size-14 text-color-white ca-font-semi-bold'\n                                        : 'text-size-11 text-color-light-grey-6 ca-font-bold'\n                                \"\n                            >\n                                {{ gridItem }}\n                            </p>\n                        </div>\n                    }\n                </div>\n            } @else {\n                <div\n                    [appDescriptionItemsTextCount]=\"itemsDropdownList\"\n                    [itemsSpecialStylesIndexArray]=\"\n                        itemsSpecialStylesIndexArray\n                    \"\n                    [containerWidth]=\"columnWidth\"\n                ></div>\n            }\n        </div>\n    }\n\n    <!-- Dropdown -->\n\n    <ng-template #dropdownOptions>\n        @if (minimisedVariationDropdownTemplate) {\n            <ng-container\n                *ngTemplateOutlet=\"minimisedVariationTemplate\"\n            ></ng-container>\n        } @else {\n            <ng-container\n                *ngTemplateOutlet=\"regularVariationTemplate\"\n            ></ng-container>\n        }\n    </ng-template>\n\n    <!-- Templates -->\n\n    <!-- Regular Variation Template -->\n\n    <ng-template #regularVariationTemplate>\n        <div\n            class=\"d-flex flex-column br-3 p-4 background-black-2\"\n            [ngClass]=\"{\n                'dropdown-scrollable': dropdownItemsToDisplay.length > 8,\n            }\"\n            [ngStyle]=\"dropdownWidth | dropdownWidth\"\n        >\n            @for (\n                dropdownItem of dropdownItemsToDisplay;\n                track dropdownItemIndex;\n                let dropdownItemIndex = $index;\n                let dropdownItemLast = $last\n            ) {\n                @let isPmItem =\n                    itemsSpecialStylesIndexArray?.includes(dropdownItemIndex);\n\n                @let pmItemIcon =\n                    isPmItem && (itemsDropdownList[dropdownItemIndex] | pmItem);\n\n                <div\n                    class=\"d-grid gap-px-4 br-3 p-r-4 p-y-2 background-hover-black\"\n                    [ngClass]=\"{ 'm-b-2': !dropdownItemLast }\"\n                    [ngStyle]=\"gridColumns\"\n                >\n                    <div\n                        class=\"d-flex align-items-center justify-content-center\"\n                    >\n                        <p class=\"text-color-grey text-size-14\">\n                            {{ dropdownItemIndex + 1 }}\n                        </p>\n                    </div>\n\n                    @for (\n                        dropdownItemText of dropdownItem;\n                        track dropdownItemTextIndex;\n                        let dropdownItemTextIndex = $index;\n                        let dropdownItemTextFirst = $first\n                    ) {\n                        @let isCurrencyText =\n                            _itemsDropdownConfig?.hasTotal &&\n                            dropdownItemTextIndex >= dropdownItem.length - 2;\n\n                        @let text =\n                            isCurrencyText\n                                ? (dropdownItemText | currency)\n                                : dropdownItemText;\n\n                        @let dropdownItemTextClass =\n                            {\n                                'justify-content-end': !dropdownItemTextFirst,\n                                'text-color-blue-19': isPmItem,\n                                'text-color-white ': !isPmItem,\n                            };\n\n                        <div\n                            class=\"d-flex align-items-center\"\n                            [ngClass]=\"dropdownItemTextClass\"\n                        >\n                            <p\n                                class=\"text-size-14 ca-font-medium text-truncate\"\n                            >\n                                {{ text }}\n                            </p>\n\n                            @if (isPmItem && dropdownItemTextIndex === 0) {\n                                <svg-icon\n                                    class=\"svg-fill-blue-8 svg-size-14 m-l-4\"\n                                    [src]=\"\n                                        pmItemIcon || eStringPlaceholder.EMPTY\n                                    \"\n                                ></svg-icon>\n                            }\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    </ng-template>\n\n    <!-- Minimised Variation Template -->\n\n    <ng-template #minimisedVariationTemplate>\n        <div\n            class=\"d-flex flex-column br-3 p-4 background-black-2\"\n            [ngClass]=\"{\n                'dropdown-scrollable dropdown-scrollable-minmised':\n                    itemsDropdownList.length > 8,\n            }\"\n            [ngStyle]=\"{ width: dropdownWidth + eUnit.PX }\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"\n                    minimisedVariationDropdownTemplate;\n                    context: {\n                        data: itemsDropdownList,\n                    }\n                \"\n            ></ng-container>\n        </div>\n    </ng-template>\n</div>\n","export enum eToastType {\n    ADD = 'add',\n    EDIT = 'edit',\n    DELETE = 'delete',\n    ACTIVATE = 'activate',\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { eToastType } from '../enums';\nimport { eStringPlaceholder } from '../../../enums';\n\n@Pipe({\n    name: 'toastBackground',\n    standalone: true,\n})\nexport class ToastBackgroundPipe implements PipeTransform {\n    transform(type: string, isFailedMessage: boolean): string {\n        if (isFailedMessage) return 'background-white shadow-100';\n\n        switch (type) {\n            case eToastType.ADD:\n                return 'background-blue-14 background-hover-blue-15';\n            case eToastType.EDIT:\n                return 'background-bw6-2 background-hover-black';\n            case eToastType.DELETE:\n                return 'background-red-11 background-hover-red-14';\n            case eToastType.ACTIVATE:\n                return 'background-green-2 background-hover-green-special-filter';\n            default:\n                return eStringPlaceholder.EMPTY;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'toastStack',\n    standalone: true,\n})\nexport class ToastStackPipe implements PipeTransform {\n    transform(index: number, total: number): string {\n        if (index === total - 1) return 'w-300';\n\n        if (index === total - 2) return 'w-276 opacity-70 bottom-26';\n\n        if (index === total - 3) return 'w-252 opacity-40 bottom-22';\n\n        return 'd-none';\n    }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n//Modules\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// pipes\nimport { ToastBackgroundPipe, ToastStackPipe } from './pipes';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// enums\nimport { eToastType } from './enums';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        ToastBackgroundPipe,\n        ToastStackPipe,\n    ],\n    selector: 'app-ca-toast-messages',\n    templateUrl: './ca-toast-messages-component.html',\n    styleUrls: ['./ca-toast-messages-component.scss'],\n    animations: [\n        trigger('fadeSlide', [\n            transition('void => in', [\n                style({\n                    opacity: 0,\n                    transform: 'translateX(-50%) translateY(20px) scale(0.8)',\n                }),\n                animate(\n                    '300ms cubic-bezier(0.19, 1, 0.22, 1)',\n                    style({\n                        opacity: 1,\n                        transform: 'translateX(-50%) translateY(0) scale(1)',\n                    })\n                ),\n            ]),\n            transition('in => out', [\n                animate(\n                    '300ms cubic-bezier(0.19, 1, 0.22, 1)',\n                    style({\n                        opacity: 0,\n                        transform:\n                            'translateX(-50%) translateY(20px) scale(0.8)',\n                    })\n                ),\n            ]),\n        ]),\n    ],\n})\nexport class CaToastMessagesComponent {\n    @Input() type!: eToastType;\n    @Input() toastTitle!: string;\n    @Input() toastMessage!: string;\n    @Input() additionalMessage!: string;\n    @Input() isFailedMessage!: boolean;\n    @Input() isStorybookExample!: boolean;\n\n    @Input() set toastIndex(value: number) {\n        this._toastIndex = value;\n\n        clearTimeout(this.autoCloseTimer);\n\n        if (!this.isFailedMessage && this._toastIndex === this._toastLength - 1)\n            this.startAutoCloseTimer();\n    }\n\n    @Input() set toastLength(value: number) {\n        this._toastLength = value;\n\n        clearTimeout(this.autoCloseTimer);\n\n        if (!this.isFailedMessage && this._toastIndex === this._toastLength - 1)\n            this.startAutoCloseTimer();\n    }\n\n    @Output() removeToast = new EventEmitter<void>();\n    @Output() tryAgain = new EventEmitter<void>();\n\n    private autoCloseTimer: any;\n\n    public isVisible = true;\n    public isHoverActive: boolean = false;\n\n    public _toastIndex: number = 0;\n    public _toastLength: number = 1;\n\n    // svg-routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    constructor() {}\n\n    public handleToastHover(isHover: boolean): void {\n        this.isHoverActive = isHover;\n\n        if (isHover) {\n            clearTimeout(this.autoCloseTimer);\n        } else {\n            this.startAutoCloseTimer(500);\n        }\n    }\n\n    public startCloseAnimation() {\n        this.isVisible = false;\n    }\n\n    public onAnimationDone() {\n        if (!this.isVisible) {\n            this.removeToast.emit();\n        }\n    }\n\n    private startAutoCloseTimer(closeDelay: number = 3000): void {\n        this.autoCloseTimer = setTimeout(() => {\n            this.startCloseAnimation();\n        }, closeDelay);\n    }\n\n    public onTryAgain(): void {\n        this.tryAgain.emit();\n        this.startCloseAnimation();\n    }\n}\n","<div\n    class=\"br-3 p-4 position-fixed toast-container-main z-1056\"\n    [@fadeSlide]=\"isVisible ? 'in' : 'out'\"\n    (@fadeSlide.done)=\"onAnimationDone()\"\n    (mouseenter)=\"handleToastHover(true)\"\n    (mouseleave)=\"handleToastHover(!isFailedMessage && _toastIndex === this._toastLength -1 ? false: true)\"\n    [ngClass]=\"[\n        type | toastBackground : isFailedMessage,\n        _toastIndex | toastStack : _toastLength\n    ]\"\n    [class.no-borders]=\"isStorybookExample\"\n>\n    @if(isHoverActive) {\n    <div\n        class=\"toast-close br-2 position-absolute top-1 end-1 w-22 h-22 c-pointer d-flex align-items-center justify-content-center\"\n        [ngClass]=\"\n            isFailedMessage ? 'background-hover-bw2': 'background-hover-white-4'\n        \"\n        (click)=\"startCloseAnimation()\"\n    >\n        <svg-icon\n            [src]=\"sharedSvgRoutes.CLOSE_ICON_NORMAL\"\n            class=\"svg-size-14 w-22 h-22 d-flex align-items-center justify-content-center\"\n            [ngClass]=\"isFailedMessage ? 'svg-fill-grey svg-hover-black' : 'svg-fill-white-3 svg-hover-white'\"\n        ></svg-icon>\n    </div>\n    }\n\n    <div class=\"p-y-4 p-x-8\">\n        <div\n            class=\"text-size-11 ca-font-bold\"\n            [ngClass]=\"isFailedMessage ? 'text-color-red-11': 'text-color-white-3'\"\n        >\n            {{ toastTitle }}\n        </div>\n        <div\n            class=\"text-size-14 ca-font-semi-bold p-t-2 text-truncate\"\n            [ngClass]=\"isFailedMessage ? 'text-color-black-2' : 'text-color-white'\"\n        >\n            {{toastMessage}} @if(additionalMessage) {\n            <span class=\"text-color-white-4 ca-font-regular\"\n                >{{additionalMessage}}</span\n            >\n            }\n        </div>\n    </div>\n</div>\n","export enum eFleetFilterItemType {\n    TRUCK = 'truck',\n    TRAILER = 'trailer',\n}\n","// models\nimport { SortColumn } from '../../../ca-sort-dropdown/models';\n\n// interfaces\nimport { IFleetFilterData } from '../../interfaces';\nimport { ICaInput } from '../../../ca-input/config';\n\nexport class FleetFilterConstants {\n    static STORY_DATA_EXAMPLES: IFleetFilterData = {\n        trailerCount: 13,\n        truckCount: 2,\n        trailers: [\n            {\n                id: 251,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 252,\n                trailerNumber: '12221',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 2,\n                    logoName: 'ic_trailer_step-deck.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 253,\n                trailerNumber: '12223',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_tanker-pneumatic.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 254,\n                trailerNumber: '12225',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 2,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 255,\n                trailerNumber: '12224',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 256,\n                trailerNumber: '12229',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 257,\n                trailerNumber: '12227',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 258,\n                trailerNumber: '12228',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 259,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 260,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 261,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 262,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n            {\n                id: 263,\n                trailerNumber: '12222',\n                trailerType: {\n                    companyId: null,\n                    hasVolume: false,\n                    id: 1,\n                    logoName: 'ic_trailer_flatbed.svg',\n                    name: 'Flat Bed',\n                },\n            },\n        ],\n        trucks: [\n            {\n                id: 7,\n                truckNumber: '8292',\n                truckType: {\n                    id: 1,\n                    companyId: null,\n                    name: 'Semi Sleeper',\n                    logoName: 'ic_truck_semi-wSleeper.svg',\n                },\n            },\n            {\n                id: 40,\n                truckNumber: '0408',\n                truckType: {\n                    id: 2,\n                    companyId: null,\n                    name: 'Semi Sleeper',\n                    logoName: 'ic_truck_semi-wSleeper.svg',\n                },\n            },\n        ],\n    };\n\n    static SORT_COLUMNS: SortColumn[] = [\n        {\n            name: 'Unit No.',\n            sortName: 'unitNo',\n            isDisabled: false,\n        },\n        {\n            name: 'Type',\n            sortName: 'type',\n            isDisabled: false,\n        },\n    ];\n\n    static SEARCH_INPUT_CONFIG: ICaInput = {\n        name: 'search',\n        type: 'text',\n        label: 'Search',\n        placeholderIcon: 'ic_search',\n        customClass: 'filter-search-input',\n        placeholderInsteadOfLabel: true,\n        blackInput: true,\n        isDisabled: false,\n    };\n}\n","export class FleetFilterSvgRoutes {\n    static truckIcon: string = 'assets/ca-components/svg/common/ic_truck.svg';\n    static trailerIcon: string =\n        'assets/ca-components/svg/common/ic_trailer.svg';\n    static trucksFolder: string = 'assets/ca-components/svg/common/trucks/';\n    static trailersFolder: string = 'assets/ca-components/svg/common/trailers/';\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'removeSvgExtension',\n    standalone: true,\n})\nexport class RemoveSvgExtensionPipe implements PipeTransform {\n    transform(value: string): string {\n        return value?.replace('.svg', '') || '';\n    }\n}\n","// enums\nimport { eSharedString } from '../../../../enums';\n\n// interfaces\nimport { IFleetFilterTrailer, IFleetFilterTruck } from '../../interfaces';\n\nexport class FleetFilterHelper {\n    static sortFleetItems(\n        list: (IFleetFilterTruck | IFleetFilterTrailer)[],\n        activeSortName: string,\n        direction: string\n    ): any[] {\n        const dir = direction === eSharedString.ASC ? 1 : -1;\n\n        return [...list].sort((a, b) => {\n            let aValue: string | number | undefined;\n            let bValue: string | number | undefined;\n\n            const isTruck = 'truckNumber' in a;\n\n            if (activeSortName === eSharedString.UNIT_NO) {\n                aValue = isTruck\n                    ? (a as IFleetFilterTruck).truckNumber?.toLowerCase()\n                    : (a as IFleetFilterTrailer).trailerNumber?.toLowerCase();\n                bValue = isTruck\n                    ? (b as IFleetFilterTruck).truckNumber?.toLowerCase()\n                    : (b as IFleetFilterTrailer).trailerNumber?.toLowerCase();\n            } else if (activeSortName === eSharedString.TYPE) {\n                aValue = isTruck\n                    ? (a as IFleetFilterTruck).truckType?.id\n                    : (a as IFleetFilterTrailer).trailerType?.id;\n                bValue = isTruck\n                    ? (b as IFleetFilterTruck).truckType?.id\n                    : (b as IFleetFilterTrailer).trailerType?.id;\n            }\n\n            return this.compareValues(aValue, bValue, dir);\n        });\n    }\n\n    static compareValues(\n        aValue: string | number | undefined,\n        bValue: string | number | undefined,\n        direction: number\n    ): number {\n        if (!aValue && !bValue) return 0;\n        if (!aValue) return 1 * direction;\n        if (!bValue) return -1 * direction;\n\n        if (typeof aValue === 'string' && typeof bValue === 'string') {\n            return aValue.localeCompare(bValue) * direction;\n        }\n\n        return (aValue < bValue ? -1 : aValue > bValue ? 1 : 0) * direction;\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n} from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// models\nimport { SortColumn } from '../ca-sort-dropdown/models';\n\n// enums\nimport { eSharedString, eStringPlaceholder } from '../../enums';\nimport { eFleetFilterItemType } from './enums';\n\n// interfaces\nimport {\n    IFleetFilterData,\n    IFleetFilterItemEmit,\n    IFleetFilterTrailer,\n    IFleetFilterTruck,\n} from './interfaces';\nimport { ICaInput } from '../ca-input/config';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputComponent } from '../ca-input/ca-input.component';\nimport { CaCustomCardComponent } from '../ca-custom-card/ca-custom-card.component';\nimport { CaSortDropdownComponent } from '../ca-sort-dropdown/ca-sort-dropdown.component';\n\n// constants\nimport { FleetFilterConstants } from './utils/constants';\n\n// svg routes\nimport { FleetFilterSvgRoutes } from './utils/svg-routes';\n\n// pipes\nimport { RemoveSvgExtensionPipe } from './utils/pipes';\n\n// helpers\nimport { FleetFilterHelper } from './utils/helpers';\n\n@Component({\n    selector: 'app-ca-fleet-filter',\n    templateUrl: './ca-fleet-filter.component.html',\n    styleUrl: './ca-fleet-filter.component.scss',\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        ReactiveFormsModule,\n        // components\n        CaAppTooltipV2Component,\n        CaInputComponent,\n        CaCustomCardComponent,\n        CaSortDropdownComponent,\n        // pipes\n        RemoveSvgExtensionPipe,\n    ],\n})\nexport class CaFleetFilterComponent implements OnInit, OnDestroy {\n    @Input() set fleetFilterData(value: IFleetFilterData) {\n        this.trucks = value.trucks;\n        this.trailers = value.trailers;\n        this.filteredTrucks = value.trucks;\n        this.filteredTrailers = value.trailers;\n        this.truckCount = value.truckCount;\n        this.trailerCount = value.trailerCount;\n    }\n\n    @Output() onItemClick: EventEmitter<IFleetFilterItemEmit> =\n        new EventEmitter();\n\n    private destroy$ = new Subject<void>();\n\n    private activeSortName: string = eSharedString.UNIT_NO;\n    private activeSortDirection: string = eSharedString.ASC;\n\n    public truckCount: number = 0;\n    public trailerCount: number = 0;\n\n    public trucks: IFleetFilterTruck[] = [];\n    public trailers: IFleetFilterTrailer[] = [];\n\n    public filteredTrucks: IFleetFilterTruck[] = [];\n    public filteredTrailers: IFleetFilterTrailer[] = [];\n\n    public fleetFilterPopover: NgbPopover | null = null;\n\n    public searchForm!: UntypedFormGroup;\n\n    public isTruckCardOpen: boolean = true;\n    public isTrailerCardOpen: boolean = true;\n\n    public isSearchActive: boolean = false;\n    public sortColumns!: SortColumn[];\n\n    // svg routes\n    public dropdownMenuSvgRoutes = FleetFilterSvgRoutes;\n\n    // enums\n    public eSharedString = eSharedString;\n    public eFleetFilterItemType = eFleetFilterItemType;\n\n    public searchInputConfig: ICaInput =\n        FleetFilterConstants.SEARCH_INPUT_CONFIG;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createFormAndSort();\n        this.watchSearchFormValueChanges();\n    }\n\n    private createFormAndSort(): void {\n        this.searchForm = this.formBuilder.group({\n            search: null,\n        });\n\n        this.sortColumns = FleetFilterConstants.SORT_COLUMNS;\n    }\n\n    private watchSearchFormValueChanges(): void {\n        this.searchForm.valueChanges\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((changes) => {\n                const inputValue =\n                    changes.search?.toLowerCase() || eStringPlaceholder.EMPTY;\n\n                if (!inputValue) {\n                    this.filteredTrucks = this.trucks;\n                    this.filteredTrailers = this.trailers;\n                    this.isSearchActive = false;\n                    return;\n                }\n\n                this.filteredTrucks = this.trucks.filter((truck) =>\n                    truck.truckNumber?.toLowerCase().includes(inputValue)\n                );\n\n                this.filteredTrailers = this.trailers.filter((trailer) =>\n                    trailer.trailerNumber?.toLowerCase().includes(inputValue)\n                );\n\n                this.isSearchActive = true;\n\n                this.filteredTrucks = FleetFilterHelper.sortFleetItems(\n                    this.filteredTrucks,\n                    this.activeSortName,\n                    this.activeSortDirection\n                );\n\n                this.filteredTrailers = FleetFilterHelper.sortFleetItems(\n                    this.filteredTrailers,\n                    this.activeSortName,\n                    this.activeSortDirection\n                );\n            });\n    }\n\n    public onFleetFilterOpenCloseClick(fleetFilterPopover: NgbPopover): void {\n        if (fleetFilterPopover.isOpen()) {\n            fleetFilterPopover.close();\n\n            this.fleetFilterPopover = null;\n        } else {\n            this.fleetFilterPopover?.close();\n\n            this.fleetFilterPopover = fleetFilterPopover;\n\n            this.fleetFilterPopover.open();\n        }\n    }\n\n    public clearInput(event: boolean): void {\n        this.filteredTrucks = this.trucks;\n        this.filteredTrailers = this.trailers;\n        this.isSearchActive = false;\n\n        this.filteredTrucks = FleetFilterHelper.sortFleetItems(\n            this.filteredTrucks,\n            this.activeSortName,\n            this.activeSortDirection\n        );\n\n        this.filteredTrailers = FleetFilterHelper.sortFleetItems(\n            this.filteredTrailers,\n            this.activeSortName,\n            this.activeSortDirection\n        );\n    }\n\n    public handleSortClick(event: {\n        column: SortColumn;\n        sortName: string;\n        direction: string;\n    }): void {\n        const { direction, column } = event;\n        this.activeSortName = column.sortName;\n        this.activeSortDirection = direction;\n\n        this.filteredTrucks = FleetFilterHelper.sortFleetItems(\n            this.filteredTrucks,\n            this.activeSortName,\n            this.activeSortDirection\n        );\n\n        this.filteredTrailers = FleetFilterHelper.sortFleetItems(\n            this.filteredTrailers,\n            this.activeSortName,\n            this.activeSortDirection\n        );\n    }\n\n    public onOpenCard(isOpen: boolean, type: eSharedString): void {\n        if (type === eSharedString.TRUCK) this.isTruckCardOpen = isOpen;\n        else this.isTrailerCardOpen = isOpen;\n    }\n\n    public onItemClickEmit(\n        itemId: number | undefined,\n        type: eFleetFilterItemType\n    ): void {\n        if (itemId) {\n            const emitData = {\n                itemId,\n                type,\n            };\n            this.onItemClick.emit(emitData);\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n}\n","<div class=\"fleet-filter-container h-26 w-96 br-2\">\n    @let totalCount = (trailerCount || 0) + (truckCount || 0);\n    @let filteredTrailersNumber = filteredTrailers.length;\n    @let filteredTrucksNumber = filteredTrucks.length;\n\n    <!-- Icon -->\n\n    <div\n        #fleetFilterPopover=\"ngbPopover\"\n        triggers=\"'manual'\"\n        [ngbPopover]=\"fleetFilter\"\n        [autoClose]=\"'outside'\"\n        [placement]=\"'bottom-left top-left'\"\n        [popoverClass]=\"'fleet-filter-popover'\"\n        [container]=\"'body'\"\n        (click)=\"onFleetFilterOpenCloseClick(fleetFilterPopover)\"\n    >\n        <div\n            class=\"d-flex align-items-center justify-content-between fleet-filter-icon-container br-2\"\n            [ngClass]=\"\n                fleetFilterPopover.isOpen()\n                    ? 'background-black-2 background-hover-black-2'\n                    : 'background-hover-dark-2'\n            \"\n            ngbTooltip\n            [mainCaTooltip]=\"'Show Fleet'\"\n            [tooltipBackground]=\"'#424242'\"\n            [position]=\"'bottom'\"\n        >\n            <div\n                class=\"d-flex align-items-center justify-content-center p-4\"\n            >\n                <svg-icon\n                    class=\"m-r-4 svg-size-18 w-18 h-18 d-flex align-items-center justify-content-center\"\n                    [ngClass]=\"{\n                        'svg-fill-light-grey-6': !truckCount,\n                    }\"\n                    [src]=\"dropdownMenuSvgRoutes.truckIcon\"\n                ></svg-icon>\n                <p\n                    class=\"ca-font-semi-bold text-size-11 text-color-black w-16 text-center\"\n                    [ngClass]=\"{\n                        'text-color-grey': !truckCount,\n                        'text-color-white': fleetFilterPopover.isOpen(),\n                    }\"\n                >\n                    {{ truckCount }}\n                </p>\n            </div>\n            <div\n                class=\"d-flex align-items-center justify-content-center p-4\"\n            >\n                @let textColorClass =\n                    !trailerCount\n                        ? 'text-color-grey'\n                        : fleetFilterPopover.isOpen()\n                          ? 'text-color-white'\n                          : 'text-color-black';\n\n                <svg-icon\n                    class=\"m-r-4 svg-size-18 w-18 h-18 d-flex align-items-center justify-content-center\"\n                    [ngClass]=\"{\n                        'svg-fill-light-grey-6': !trailerCount,\n                    }\"\n                    [src]=\"dropdownMenuSvgRoutes.trailerIcon\"\n                ></svg-icon>\n\n                <p\n                    class=\"ca-font-semi-bold text-size-11 w-16 text-center\"\n                    [ngClass]=\"textColorClass\"\n                >\n                    {{ trailerCount }}\n                </p>\n            </div>\n        </div>\n    </div>\n\n    <ng-template #fleetFilter>\n        <div\n            class=\"d-flex flex-column fleet-filter-dropdown-container w-180 background-black-2 p-4 br-3\"\n        >\n            <div\n                class=\"fleet-filter-dropdown-header p-l-4 d-flex justify-content-between m-b-4\"\n            >\n                <div\n                    class=\"text-color-white text-size-11 ca-font-extra-bold d-flex align-items-center\"\n                >\n                    <div class=\"m-r-4 d-flex align-items-center\">\n                        <span class=\"m-r-4\">FLEET</span>\n                        <div\n                            class=\"text-color-white text-size-11 ca-font-bold background-black p-x-5 p-y-2 br-10 fleet-filter-dropdown-list-badge text-center\"\n                        >\n                            {{ totalCount }}\n                        </div>\n                    </div>\n                </div>\n\n                <app-ca-sort-dropdown\n                    [sortColumns]=\"sortColumns\"\n                    [activeSortColumn]=\"sortColumns[0]\"\n                    [dropdownPosition]=\"'end-top'\"\n                    [dropdownWidth]=\"107\"\n                    [isDarkVariation]=\"true\"\n                    [customPopoverClass]=\"'fleet-filter-sort-popover'\"\n                    (onSortChange)=\"handleSortClick($event)\"\n                ></app-ca-sort-dropdown>\n            </div>\n\n            <div\n                [formGroup]=\"searchForm\"\n                class=\"search-input-header background-black text-color-light-grey-2 h-22 br-2 p-2 d-flex align-items-center justify-content-center\"\n            >\n                <app-ca-input\n                    class=\"input-form-holder\"\n                    formControlName=\"search\"\n                    [inputConfig]=\"searchInputConfig\"\n                    (clear)=\"clearInput($event)\"\n                ></app-ca-input>\n            </div>\n\n            <div class=\"fleet-filter-list-container p-x-4\">\n                @if (truckCount) {\n                    <app-ca-custom-card\n                        [hasDivider]=\"false\"\n                        [isCardOpen]=\"true\"\n                        [headerLeftSideTemplate]=\"fleetFilterLeftSideTemplate\"\n                        [headerLeftSideContext]=\"{\n                            title: 'TRUCK',\n                            countNumber: truckCount,\n                            filteredCountNumber: filteredTrucksNumber,\n                            isCardOpen: isTruckCardOpen,\n                        }\"\n                        [animationMarginParams]=\"{\n                            marginTop: '0',\n                            marginBottom: '0',\n                        }\"\n                        (onOpenCard)=\"onOpenCard($event, eSharedString.TRUCK)\"\n                    >\n                        <div origin class=\"d-flex flex-column\">\n                            @for (\n                                truck of filteredTrucks;\n                                let i = $index;\n                                track truck.id\n                            ) {\n                                <div\n                                    class=\"fleet-filter-list-item-container p-y-4 p-r-4 background-hover-black d-flex justify-content-between align-items-center m-b-4 c-pointer\"\n                                    (click)=\"\n                                        onItemClickEmit(\n                                            truck.id,\n                                            eFleetFilterItemType.TRUCK\n                                        )\n                                    \"\n                                >\n                                    <p class=\"text-size-14 text-color-white\">\n                                        {{ truck.truckNumber }}\n                                    </p>\n                                    <svg-icon\n                                        class=\"fleet-filter-item-icon h-18 d-none align-items-center justify-content-center\"\n                                        [ngClass]=\"\n                                            truck.truckType?.logoName || ''\n                                                | removeSvgExtension\n                                        \"\n                                        [src]=\"\n                                            dropdownMenuSvgRoutes.trucksFolder +\n                                            (truck.truckType?.logoName || '')\n                                        \"\n                                    ></svg-icon>\n                                </div>\n                            }\n                        </div>\n                    </app-ca-custom-card>\n                }\n\n                @if (trailerCount) {\n                    @if (truckCount) {\n                        <div class=\"w-100 h-1 background-black\"></div>\n                    }\n\n                    <app-ca-custom-card\n                        [hasDivider]=\"false\"\n                        [isCardOpen]=\"true\"\n                        [headerLeftSideTemplate]=\"fleetFilterLeftSideTemplate\"\n                        [headerLeftSideContext]=\"{\n                            title: 'TRAILER',\n                            countNumber: trailerCount,\n                            filteredCountNumber: filteredTrailersNumber,\n                            isCardOpen: isTrailerCardOpen,\n                        }\"\n                        [animationMarginParams]=\"{\n                            marginTop: '0',\n                            marginBottom: '0',\n                        }\"\n                        (onOpenCard)=\"onOpenCard($event, eSharedString.TRAILER)\"\n                    >\n                        <div origin class=\"d-flex flex-column\">\n                            @for (\n                                trailer of filteredTrailers;\n                                let i = $index;\n                                track trailer.id\n                            ) {\n                                <div\n                                    class=\"fleet-filter-list-item-container p-y-4 background-hover-black d-flex justify-content-between align-items-center m-b-4 c-pointer\"\n                                    (click)=\"\n                                        onItemClickEmit(\n                                            trailer.id,\n                                            eFleetFilterItemType.TRAILER\n                                        )\n                                    \"\n                                >\n                                    <p class=\"text-size-14 text-color-white\">\n                                        {{ trailer.trailerNumber }}\n                                    </p>\n\n                                    <svg-icon\n                                        class=\"fleet-filter-item-icon h-18 d-none align-items-center justify-content-center\"\n                                        [ngClass]=\"\n                                            trailer.trailerType?.logoName || ''\n                                                | removeSvgExtension\n                                        \"\n                                        [src]=\"\n                                            dropdownMenuSvgRoutes.trailersFolder +\n                                            (trailer.trailerType?.logoName ||\n                                                '')\n                                        \"\n                                    ></svg-icon>\n                                </div>\n                            }\n                        </div>\n                    </app-ca-custom-card>\n                }\n            </div>\n\n            <ng-template\n                #fleetFilterLeftSideTemplate\n                let-title=\"title\"\n                let-countNumber=\"countNumber\"\n                let-filteredCountNumber=\"filteredCountNumber\"\n                let-isCardOpen=\"isCardOpen\"\n            >\n                <div\n                    class=\"text-size-11 ca-font-extra-bold d-flex align-items-center\"\n                >\n                    <div class=\"m-r-4 d-flex align-items-center\">\n                        <span\n                            class=\"m-r-4\"\n                            [ngClass]=\"\n                                isCardOpen\n                                    ? 'text-color-white'\n                                    : 'text-color-light-grey-2'\n                            \"\n                            >{{ title }}</span\n                        >\n                        <div\n                            class=\"text-size-11 ca-font-bold background-black p-x-5 p-y-2 br-10 fleet-filter-dropdown-list-badge text-center\"\n                            [ngClass]=\"\n                                isCardOpen\n                                    ? 'text-color-white'\n                                    : 'text-color-light-grey-6'\n                            \"\n                        >\n                            @if (isSearchActive) {\n                                {{ filteredCountNumber }} of\n                            }\n                            {{ countNumber }}\n                        </div>\n                    </div>\n                </div>\n            </ng-template>\n        </div>\n    </ng-template>\n</div>\n","import {\n    DestroyRef,\n    Directive,\n    effect,\n    inject,\n    input,\n    Renderer2,\n    signal,\n} from '@angular/core';\n\n/**\n * Directive that holds scrollbar sync logic and calculations.\n * Syncs thumb dimensions and position from a scrollable element (scroll + resize),\n * and handles thumb drag (document mousemove/mouseup).\n * Used by CaCustomHorizontalScrollbarComponent in its template (exportAs: scrollbarSync).\n */\n@Directive({\n    selector: '[scrollbarSync]',\n    standalone: true,\n    exportAs: 'scrollbarSync',\n})\nexport class ScrollbarSyncDirective {\n    readonly scrollableElement = input<HTMLElement | null | undefined>();\n    readonly trackRightOffsetPx = input<number>(0);\n\n    readonly trackWidthPx = signal(0);\n    readonly thumbWidthPx = signal(0);\n    readonly thumbLeftPx = signal(0);\n\n    private destroyRef = inject(DestroyRef);\n    private renderer = inject(Renderer2);\n\n    private scrollListenerCleanup: (() => void) | null = null;\n    private dragListenersCleanup: (() => void) | null = null;\n\n    private resizeObserver: ResizeObserver | null = null;\n    private pendingThumbSyncRafId: number | null = null;\n    private pendingAttachRafId: number | null = null;\n\n    private dragStartScrollLeft = 0;\n    private dragStartClientX = 0;\n\n    constructor() {\n        this.setupScrollableEffect();\n    }\n\n    private setupScrollableEffect(): void {\n        effect(() => {\n            this.cleanup();\n            const scrollableContainer = this.scrollableElement();\n            if (scrollableContainer) {\n                this.pendingAttachRafId = requestAnimationFrame(() => {\n                    this.pendingAttachRafId = null;\n                    this.attachToScrollableContainer(scrollableContainer);\n                });\n            }\n        });\n        this.destroyRef.onDestroy(() => this.cleanup());\n    }\n\n    private attachToScrollableContainer(\n        scrollableContainer: HTMLElement\n    ): void {\n        this.syncThumbFromScrollable(scrollableContainer);\n\n        const onScroll = () => this.scheduleThumbSync(scrollableContainer);\n        this.scrollListenerCleanup = this.renderer.listen(\n            scrollableContainer,\n            'scroll',\n            onScroll\n        );\n\n        this.resizeObserver?.disconnect();\n        this.resizeObserver = new ResizeObserver(() =>\n            this.scheduleThumbSync(scrollableContainer)\n        );\n        this.resizeObserver.observe(scrollableContainer);\n    }\n\n    private scheduleThumbSync(scrollableContainer: HTMLElement): void {\n        if (this.pendingThumbSyncRafId) {\n            cancelAnimationFrame(this.pendingThumbSyncRafId);\n        }\n        this.pendingThumbSyncRafId = requestAnimationFrame(() => {\n            this.pendingThumbSyncRafId = null;\n            this.syncThumbFromScrollable(scrollableContainer);\n        });\n    }\n\n    private cleanup(): void {\n        if (this.pendingAttachRafId) {\n            cancelAnimationFrame(this.pendingAttachRafId);\n            this.pendingAttachRafId = null;\n        }\n        this.scrollListenerCleanup?.();\n        this.scrollListenerCleanup = null;\n        this.resizeObserver?.disconnect();\n        this.resizeObserver = null;\n        if (this.pendingThumbSyncRafId) {\n            cancelAnimationFrame(this.pendingThumbSyncRafId);\n            this.pendingThumbSyncRafId = null;\n        }\n        this.detachDragListeners();\n        this.trackWidthPx.set(0);\n        this.thumbWidthPx.set(0);\n        this.thumbLeftPx.set(0);\n    }\n\n    private handleThumbDrag(mouseEvent: MouseEvent): void {\n        const scrollableContainer = this.scrollableElement();\n        if (!scrollableContainer) return;\n\n        const trackWidth = this.trackWidthPx();\n        const thumbWidth = this.thumbWidthPx();\n        const thumbMaxLeft = trackWidth - thumbWidth;\n        if (!thumbMaxLeft) return;\n\n        const { scrollWidth, clientWidth } = scrollableContainer;\n        const maxScrollLeft = scrollWidth - clientWidth;\n        const pointerDeltaX = mouseEvent.clientX - this.dragStartClientX;\n        const scrollDelta = (pointerDeltaX / thumbMaxLeft) * maxScrollLeft;\n        const newScrollLeft = Math.max(\n            0,\n            Math.min(maxScrollLeft, this.dragStartScrollLeft + scrollDelta)\n        );\n        this.renderer.setProperty(\n            scrollableContainer,\n            'scrollLeft',\n            newScrollLeft\n        );\n        this.syncThumbFromScrollable(scrollableContainer);\n    }\n\n    private endThumbDrag(): void {\n        this.detachDragListeners();\n    }\n\n    private detachDragListeners(): void {\n        this.dragListenersCleanup?.();\n        this.dragListenersCleanup = null;\n    }\n\n    public syncThumbFromScrollable(scrollableContainer: HTMLElement): void {\n        const { scrollLeft, scrollWidth, clientWidth } = scrollableContainer;\n        const trackRightOffset = this.trackRightOffsetPx();\n        const trackWidth = Math.max(0, clientWidth - trackRightOffset);\n\n        this.trackWidthPx.set(trackWidth);\n\n        const maxScrollLeft = scrollWidth - clientWidth;\n        if (!maxScrollLeft) {\n            this.thumbWidthPx.set(0);\n            this.thumbLeftPx.set(0);\n            return;\n        }\n\n        const thumbWidth = Math.min(\n            Math.round((clientWidth / scrollWidth) * trackWidth),\n            trackWidth\n        );\n        const thumbMaxLeft = trackWidth - thumbWidth;\n        const thumbLeft = Math.round(\n            (scrollLeft / maxScrollLeft) * thumbMaxLeft\n        );\n\n        this.thumbWidthPx.set(thumbWidth);\n        this.thumbLeftPx.set(Math.max(0, Math.min(thumbMaxLeft, thumbLeft)));\n    }\n\n    public onThumbMouseDown(event: MouseEvent): void {\n        event.preventDefault();\n        const scrollableContainer = this.scrollableElement();\n        if (!scrollableContainer) return;\n\n        this.dragStartScrollLeft = scrollableContainer.scrollLeft;\n        this.dragStartClientX = event.clientX;\n\n        this.detachDragListeners();\n\n        const onMouseMove = (e: MouseEvent): void => this.handleThumbDrag(e);\n        const onMouseUp = (): void => this.endThumbDrag();\n\n        const unlistenMouseMove = this.renderer.listen(\n            document,\n            'mousemove',\n            onMouseMove\n        );\n        const unlistenMouseUp = this.renderer.listen(\n            document,\n            'mouseup',\n            onMouseUp\n        );\n\n        this.dragListenersCleanup = (): void => {\n            unlistenMouseMove();\n            unlistenMouseUp();\n            this.dragListenersCleanup = null;\n        };\n    }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { ScrollbarSyncDirective } from './directives/scrollbar-sync.directive';\n\n/**\n * Custom horizontal scrollbar that stays in sync with a scrollable element.\n * Use when you need a sticky scrollbar (e.g. below the content) instead of the native one.\n *\n * Usage:\n *   - Give the scrollable element a template ref (e.g. #scrollableEl).\n *   - Pass it: [scrollableElement]=\"scrollableElRef?.nativeElement\"\n *   - Optionally: [trackRightOffsetPx]=\"70\" to shorten the track from the right.\n */\n@Component({\n    selector: 'app-ca-custom-horizontal-scrollbar',\n    templateUrl: './ca-custom-horizontal-scrollbar.component.html',\n    styleUrl: './ca-custom-horizontal-scrollbar.component.scss',\n    imports: [ScrollbarSyncDirective],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaCustomHorizontalScrollbarComponent {\n    public scrollableElement = input<HTMLElement | null | undefined>();\n    public trackRightOffsetPx = input<number>(0);\n}\n","<div\n    scrollbarSync\n    #scrollbarSync=\"scrollbarSync\"\n    [scrollableElement]=\"scrollableElement()\"\n    [trackRightOffsetPx]=\"trackRightOffsetPx()\"\n    class=\"position-relative h-6 overflow-hidden flex-shrink-0\"\n    [style.width.px]=\"scrollbarSync.trackWidthPx()\"\n>\n    @if (scrollbarSync.thumbWidthPx()) {\n        @let thumbTransform =\n            'translateX(' + scrollbarSync.thumbLeftPx() + 'px)';\n\n        <div\n            class=\"custom-scrollbar-thum position-absolute left-0 top-0 h-6 br-2 background-light-grey-6 c-grab\"\n            [style.width.px]=\"scrollbarSync.thumbWidthPx()\"\n            [style.transform]=\"thumbTransform\"\n            (mousedown)=\"scrollbarSync.onThumbMouseDown($event)\"\n        ></div>\n    }\n</div>\n","export enum eModalItems {\n    ADD_ITEM = 'ADD_ITEM',\n    DELETE_ITEM = 'DELETE_ITEM',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'modalItemsHeaderClass',\n})\nexport class ModalItemsHeaderClassPipe implements PipeTransform {\n    transform({\n        headerItemFirst,\n        headerItemLast,\n        isJustifyCenterItem,\n        isAlignLeftItem,\n        isStickySection,\n    }: {\n        headerItemFirst: boolean;\n        headerItemLast?: boolean;\n        isJustifyCenterItem?: boolean;\n        isAlignLeftItem?: boolean;\n        isStickySection?: boolean;\n    }): Record<string, boolean | undefined> {\n        return {\n            'justify-content-start': isAlignLeftItem,\n            'justify-content-center':\n                (headerItemFirst || isJustifyCenterItem) &&\n                isStickySection !== false,\n            'justify-content-end p-r-6':\n                headerItemLast && !isStickySection && !isAlignLeftItem,\n            'p-l-6':\n                (isStickySection && headerItemLast) ||\n                (isStickySection === false && headerItemFirst) ||\n                (!headerItemFirst && !headerItemLast && !isJustifyCenterItem) ||\n                isAlignLeftItem,\n        };\n    }\n}\n","import {\n    Directive,\n    ElementRef,\n    Renderer2,\n    OnDestroy,\n    AfterViewInit,\n    Input,\n} from '@angular/core';\n\n@Directive({\n    selector: '[scrollShadowBorder]',\n})\nexport class ScrollShadowBorderDirective implements OnDestroy, AfterViewInit {\n    @Input() hasNoCardVariation: boolean = false;\n\n    // elements\n    private scrollableElement!: HTMLElement;\n    private stickyElement!: HTMLElement;\n    private containerElement!: HTMLElement;\n    private leftOverlayElement?: HTMLElement;\n\n    // listeners\n    private unregisterScroll?: () => void;\n\n    // observers\n    private resizeObserver!: ResizeObserver;\n\n    constructor(\n        private elementRef: ElementRef<HTMLElement>,\n\n        // renderer\n        private renderer: Renderer2\n    ) {}\n\n    ngAfterViewInit(): void {\n        this.setupBorderShadow();\n    }\n\n    private setupBorderShadow(): void {\n        setTimeout(() => {\n            this.setupElements();\n\n            this.setupScrollListener();\n\n            this.setupResizeObserver();\n\n            this.updateShadowStates();\n        }, 100);\n    }\n\n    private setupElements(): void {\n        this.containerElement = this.elementRef.nativeElement;\n\n        // Find sticky section\n        this.stickyElement = this.containerElement.querySelector(\n            '.w-fit-content'\n        ) as HTMLElement;\n\n        // Find scrollable section\n        this.scrollableElement = this.containerElement.querySelector(\n            '.modal-items-scrollable-columns'\n        ) as HTMLElement;\n\n        // Create left overlay element once (positioned on container)\n        if (!this.leftOverlayElement) {\n            const overlay = this.renderer.createElement('div');\n\n            this.leftOverlayElement = overlay as HTMLElement;\n\n            // Left overlay element styles - shadow border\n            const overlayStyles: { [key: string]: string } = {\n                position: 'absolute',\n                top: '4px',\n                left: '0',\n                width: '8px',\n                height: this.hasNoCardVariation ? '100%' : 'calc(100% - 16px)',\n                background:\n                    'linear-gradient(90deg, #dadada 0%, rgba(218, 218, 218, 0) 100%)',\n                'pointer-events': 'none',\n                display: 'none',\n            };\n\n            // Add styles to the left overlay element\n            Object.entries(overlayStyles).forEach(([styleName, styleValue]) => {\n                this.renderer.setStyle(overlay, styleName, styleValue);\n            });\n\n            this.renderer.appendChild(this.containerElement, overlay);\n        }\n    }\n\n    private setupScrollListener(): void {\n        if (!this.scrollableElement) return;\n\n        // Remove existing listener if any present\n        if (this.unregisterScroll) this.unregisterScroll();\n\n        this.unregisterScroll = this.renderer.listen(\n            this.scrollableElement,\n            'scroll',\n            () => this.updateShadowStates()\n        );\n    }\n\n    private setupResizeObserver(): void {\n        if (!this.stickyElement) return;\n\n        // Disconnect existing observer if any\n        if (this.resizeObserver) this.resizeObserver.disconnect();\n\n        this.resizeObserver = new ResizeObserver(() => {\n            this.updateShadowStates();\n        });\n\n        this.resizeObserver.observe(this.stickyElement);\n    }\n\n    private updateShadowStates(): void {\n        if (!this.scrollableElement) return;\n\n        const { scrollLeft, scrollWidth, clientWidth } = this.scrollableElement;\n\n        // Left shadow shows when scrolled right\n        const showLeftShadow = scrollLeft > 0;\n\n        // Right shadow shows when there's scrollable content AND not scrolled to the end\n        const isScrolledToEnd = scrollLeft >= scrollWidth - clientWidth - 1;\n        const showRightShadow = scrollWidth > clientWidth && !isScrolledToEnd;\n\n        // Apply right shadow class (component parity)\n        if (showRightShadow) {\n            this.renderer.addClass(this.containerElement, 'show-right-shadow');\n            if (this.hasNoCardVariation) {\n                this.renderer.addClass(\n                    this.containerElement,\n                    'show-right-shadow-import-modal'\n                );\n            }\n        } else {\n            this.renderer.removeClass(\n                this.containerElement,\n                'show-right-shadow'\n            );\n            if (this.hasNoCardVariation) {\n                this.renderer.removeClass(\n                    this.containerElement,\n                    'show-right-shadow-import-modal'\n                );\n            }\n        }\n\n        // Position and toggle a left overlay absolutely at the end of sticky area\n        if (this.leftOverlayElement) {\n            let stickyX = 0;\n\n            if (this.stickyElement) {\n                const containerRect =\n                    this.containerElement.getBoundingClientRect();\n\n                const stickyRect = this.stickyElement.getBoundingClientRect();\n\n                stickyX = Math.max(\n                    0,\n                    Math.round(stickyRect.right - containerRect.left)\n                );\n            }\n\n            this.renderer.setStyle(\n                this.leftOverlayElement,\n                'transform',\n                `translateX(${stickyX}px)`\n            );\n\n            this.renderer.setStyle(\n                this.leftOverlayElement,\n                'display',\n                showLeftShadow ? 'block' : 'none'\n            );\n        }\n    }\n\n    private removeScrollListener(): void {\n        if (this.unregisterScroll) {\n            this.unregisterScroll();\n\n            this.unregisterScroll = undefined;\n        }\n    }\n\n    private removeResizeObserver(): void {\n        if (this.resizeObserver) this.resizeObserver.disconnect();\n    }\n\n    ngOnDestroy(): void {\n        this.removeScrollListener();\n\n        this.removeResizeObserver();\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    TemplateRef,\n    OnInit,\n    ViewChild,\n    ElementRef,\n} from '@angular/core';\nimport { UntypedFormArray } from '@angular/forms';\n\n// components\nimport { CaCustomCardComponent } from '../ca-custom-card/ca-custom-card.component';\nimport { CaCustomHorizontalScrollbarComponent } from '../ca-custom-horizontal-scrollbar/ca-custom-horizontal-scrollbar.component';\nimport { SvgIconComponent } from 'angular-svg-icon';\nimport { CaShowMoreComponent } from '../ca-show-more/ca-show-more.component';\n\n// enums\nimport { eGeneralActions, eStringPlaceholder } from '../../enums';\nimport { eModalItems } from './enums';\n\n// pipes\nimport { ModalItemsHeaderClassPipe } from './pipes';\n\n// directives\nimport { ScrollShadowBorderDirective } from './directives';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// interfaces\nimport { IModalItemsConfig, IItemsRowTemplate } from './interfaces';\n\n@Component({\n    selector: 'app-ca-modal-items',\n    templateUrl: './ca-modal-items.component.html',\n    styleUrl: './ca-modal-items.component.scss',\n    imports: [\n        CommonModule,\n\n        // components\n        CaCustomCardComponent,\n        CaCustomHorizontalScrollbarComponent,\n        CaShowMoreComponent,\n        SvgIconComponent,\n\n        // pipes\n        ModalItemsHeaderClassPipe,\n\n        // directives\n        ScrollShadowBorderDirective,\n    ],\n})\nexport class CaModalItemsComponent implements OnInit {\n    @ViewChild('scrollableColumns')\n    scrollableColumnsRef?: ElementRef<HTMLElement>;\n\n    @Input() set itemsConfig(value: IModalItemsConfig) {\n        this._itemsConfig = value;\n    }\n\n    @Input() itemsRowTemplate!: TemplateRef<IItemsRowTemplate>;\n    @Input() stickyItemsRowTemplate!: TemplateRef<IItemsRowTemplate>;\n\n    @Input() itemsFormArray!: UntypedFormArray;\n    @Input() itemsTotalValue!: number;\n\n    @Input() parentFormArrayIndex?: number | null = null;\n\n    @Output() onItemsAction: EventEmitter<string> = new EventEmitter();\n\n    public _itemsConfig!: IModalItemsConfig;\n\n    // import modal: track shortened from right (for custom scrollbar)\n    public scrollbarTrackRightOffsetPx: number = 0;\n\n    // helper indexes\n    public hoverIndex: number = -1;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    // enums\n    public eGeneralActions = eGeneralActions;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    private DEFAULT_LIST_LENGTH: number = 25;\n    public listLength: number = 0;\n    public displayedListLength: number = 0;\n\n    public scrollableElement: HTMLElement | null = null;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        this.initializeListLength();\n    }\n\n    private initializeListLength(): void {\n        if (!this._itemsConfig.hasNoCardVariation) return;\n\n        requestAnimationFrame(() => {\n            this.scrollableElement =\n                this.scrollableColumnsRef?.nativeElement ?? null;\n        });\n\n        this.listLength = this.itemsFormArray.length;\n        this.displayedListLength = Math.min(\n            this.listLength,\n            this.DEFAULT_LIST_LENGTH\n        );\n\n        this.scrollbarTrackRightOffsetPx =\n            this.listLength === this.displayedListLength ? 0 : 85;\n    }\n\n    public onShowMore(): void {\n        this.displayedListLength += this.DEFAULT_LIST_LENGTH;\n        if (this.displayedListLength >= this.listLength) {\n            this.displayedListLength = this.listLength;\n            this.scrollbarTrackRightOffsetPx = 0;\n        }\n    }\n\n    public onItemsRowAdd(): void {\n        this.onItemsAction.emit(eModalItems.ADD_ITEM);\n    }\n\n    public onItemsRowHover(index: number): void {\n        this.hoverIndex = index;\n    }\n\n    public onItemsRowReorder(): void {}\n}\n","@let isItemsFormArrayInvalid = itemsFormArray.invalid;\n\n@let itemsLength = itemsFormArray.length;\n\n@let hasNoDataImage = _itemsConfig.noDataImage && !itemsLength;\n@let hasNoCardVariation = _itemsConfig.hasNoCardVariation;\n@let hasPlusIcon = !hasNoCardVariation && !_itemsConfig.isDisabled;\n@let hasDivider = !hasNoCardVariation && !_itemsConfig.isDividerHidden;\n\n@let isCardOpen = hasNoDataImage || !!itemsLength;\n@let isDisabledCard = hasNoCardVariation || (!hasNoDataImage && !itemsLength);\n@let isAlwaysOpen = _itemsConfig.isAlwaysOpen || false;\n\n@let cardName = _itemsConfig.cardName || eStringPlaceholder.EMPTY;\n@let cardSubText = _itemsConfig.cardSubText || null;\n@let counter = hasNoCardVariation ? -1 : itemsLength;\n\n<app-ca-custom-card\n    [cardName]=\"cardName\"\n    [cardSubText]=\"cardSubText\"\n    [counter]=\"counter\"\n    [hasArrow]=\"false\"\n    [hasPlusIcon]=\"hasPlusIcon\"\n    [hasDivider]=\"hasDivider\"\n    [isCardOpen]=\"isCardOpen\"\n    [isPlusIconDisabled]=\"isItemsFormArrayInvalid\"\n    [isDisabledCard]=\"isDisabledCard\"\n    [isAlwaysOpen]=\"isAlwaysOpen\"\n    [plusIconTooltip]=\"eGeneralActions.ADD_NEW\"\n    [isHeaderHidden]=\"hasNoCardVariation\"\n    [customDividerClass]=\"'divider--dark divider--small'\"\n    [animationMarginParams]=\"{\n        marginTop: '0px',\n        marginBottom: hasNoCardVariation ? '0px' : '8px',\n    }\"\n    (onActionEvent)=\"onItemsRowAdd()\"\n>\n    <div class=\"d-flex flex-column modal-items-container\">\n        <!-- No Data -->\n\n        @if (hasNoDataImage) {\n            <!-- No Data Img -->\n\n            <ng-container *ngTemplateOutlet=\"noDataImg\"></ng-container>\n        } @else {\n            <!-- Data -->\n\n            @let gridTemplateColumns =\n                {\n                    'grid-template-columns':\n                        _itemsConfig.gridTemplateColumnValues,\n                };\n\n            <!-- Header and List -->\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    mainContent;\n                    context: {\n                        gridTemplateColumns,\n                    }\n                \"\n            ></ng-container>\n\n            <!-- Total Cost -->\n\n            <ng-container\n                *ngTemplateOutlet=\"modalItemsTotalCost\"\n            ></ng-container>\n        }\n    </div>\n</app-ca-custom-card>\n\n<!-- Templates -->\n\n<!-- Main Content Template -->\n\n<ng-template #mainContent let-gridTemplateColumns=\"gridTemplateColumns\">\n    @if (itemsLength) {\n        @if (_itemsConfig.stickyGridTemplateColumnValues) {\n            <!-- Sticky Layout -->\n\n            <div\n                class=\"d-flex align-items-center position-relative\"\n                scrollShadowBorder\n                [hasNoCardVariation]=\"hasNoCardVariation ?? false\"\n            >\n                @let stickyGridTemplateColumns =\n                    {\n                        'grid-template-columns':\n                            _itemsConfig.stickyGridTemplateColumnValues,\n                    };\n\n                <!-- Sticky Section -->\n\n                <div\n                    class=\"d-flex flex-column w-fit-content\"\n                    [class.p-b-10]=\"!hasNoCardVariation\"\n                >\n                    <!-- Sticky Section Header -->\n\n                    @let stickySectionHeaderContext =\n                        {\n                            gridTemplateColumns: stickyGridTemplateColumns,\n                            headerItems:\n                                _itemsConfig.headerItems | slice: 0 : 2,\n                            requiredIndex:\n                                _itemsConfig.stickyHeaderItemsRequiredIndex,\n                            isStickySection: true,\n                        };\n\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            headerSection;\n                            context: stickySectionHeaderContext\n                        \"\n                    ></ng-container>\n\n                    <!-- Sticky Section List -->\n\n                    @let stickySectionListContext =\n                        {\n                            gridTemplateColumns: stickyGridTemplateColumns,\n                            templateRef: stickyItemsRowTemplate,\n                        };\n\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            listSection;\n                            context: stickySectionListContext\n                        \"\n                    ></ng-container>\n                </div>\n\n                <!-- Scrollable Section -->\n\n                <div\n                    #scrollableColumns\n                    class=\"d-flex flex-column overflow-x-auto position-relative modal-items-scrollable-columns\"\n                    [class.native-scrollbar-hidden]=\"hasNoCardVariation\"\n                >\n                    <!-- Scrollable Section Header -->\n\n                    @let scrollableSectionHeaderContext =\n                        {\n                            gridTemplateColumns,\n                            headerItems: _itemsConfig.headerItems | slice: 2,\n                            requiredIndex:\n                                _itemsConfig.headerItemsRequiredIndex,\n                            alignRightIndex:\n                                _itemsConfig.headerItemsAlignRightIndex,\n                            alignLeftIndex:\n                                _itemsConfig.headerItemsAlignLeftIndex,\n                            justifyCenterIndex:\n                                _itemsConfig.headerItemsJustifyCenterIndex,\n                            isStickySection: false,\n                        };\n\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            headerSection;\n                            context: scrollableSectionHeaderContext\n                        \"\n                    ></ng-container>\n\n                    <!-- Scrollable Section List -->\n\n                    @let scrollableSectionListContext =\n                        {\n                            gridTemplateColumns,\n                            templateRef: itemsRowTemplate,\n                        };\n\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            listSection;\n                            context: scrollableSectionListContext\n                        \"\n                    ></ng-container>\n                </div>\n            </div>\n\n            @if (hasNoCardVariation) {\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        showMore;\n                        context: { stickyGridTemplateColumns }\n                    \"\n                ></ng-container>\n            }\n        } @else {\n            <!-- Standard Layout -->\n\n            <!-- Standard Layout Header -->\n\n            @let standardLayoutHeaderContext =\n                {\n                    gridTemplateColumns,\n                    headerItems: _itemsConfig.headerItems,\n                    requiredIndex: _itemsConfig.headerItemsRequiredIndex,\n                    alignRightIndex: _itemsConfig.headerItemsAlignRightIndex,\n                    alignLeftIndex: _itemsConfig.headerItemsAlignLeftIndex,\n                    justifyCenterIndex:\n                        _itemsConfig.headerItemsJustifyCenterIndex,\n                };\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    headerSection;\n                    context: standardLayoutHeaderContext\n                \"\n            ></ng-container>\n\n            @let adjustedGridTemplateColumns =\n                _itemsConfig.singleListItemGridTemplateColumnValues\n                    ? {\n                          'grid-template-columns':\n                              _itemsConfig.singleListItemGridTemplateColumnValues,\n                      }\n                    : gridTemplateColumns;\n\n            <!-- Standard Layout List -->\n\n            @let standardLayoutListContext =\n                {\n                    gridTemplateColumns: adjustedGridTemplateColumns,\n                    templateRef: itemsRowTemplate,\n                };\n\n            <ng-container\n                *ngTemplateOutlet=\"\n                    listSection;\n                    context: standardLayoutListContext\n                \"\n            ></ng-container>\n        }\n    }\n</ng-template>\n\n<!-- Header Section -->\n\n<ng-template\n    #headerSection\n    let-gridTemplateColumns=\"gridTemplateColumns\"\n    let-headerItems=\"headerItems\"\n    let-requiredIndex=\"requiredIndex\"\n    let-alignRightIndex=\"alignRightIndex\"\n    let-alignLeftIndex=\"alignLeftIndex\"\n    let-justifyCenterIndex=\"justifyCenterIndex\"\n    let-isStickySection=\"isStickySection\"\n>\n    <div\n        class=\"d-grid gap-px-4 align-items-center m-b-4 m-t-8\"\n        [ngStyle]=\"gridTemplateColumns\"\n    >\n        @for (\n            headerItem of headerItems;\n            let headerItemFirst = $first;\n            let headerItemLast = $last;\n            let headerIndex = $index;\n            track headerItem\n        ) {\n            @let isRequiredItem = requiredIndex?.includes(headerIndex);\n\n            @let isAlignRightItem = alignRightIndex?.includes(headerIndex);\n            @let isAlignLeftItem = alignLeftIndex?.includes(headerIndex);\n            @let isJustifyCenterItem =\n                justifyCenterIndex?.includes(headerIndex);\n\n            @let headerItemClass =\n                {\n                    headerItemFirst,\n                    headerItemLast,\n                    isJustifyCenterItem,\n                    isAlignLeftItem,\n                    isStickySection,\n                } | modalItemsHeaderClass;\n\n            <div class=\"d-flex align-items-center\" [ngClass]=\"headerItemClass\">\n                <p\n                    class=\"ca-font-bold text-size-11 text-color-muted\"\n                    [ngClass]=\"{ 'order-2': isAlignRightItem }\"\n                >\n                    @if (headerItem) {\n                        {{ headerItem }}\n                    } @else {\n                        @let hasSingleItemsRow = itemsLength <= 1;\n\n                        @if (hasSingleItemsRow) {\n                            #\n                        } @else {\n                            <div\n                                class=\"c-pointer\"\n                                (click)=\"onItemsRowReorder()\"\n                            >\n                                <svg-icon\n                                    class=\"svg-size-12 svg-fill-muted\"\n                                    [src]=\"sharedSvgRoutes.SORT_ARROWS_ICON\"\n                                ></svg-icon>\n                            </div>\n                        }\n                    }\n                </p>\n\n                @if (isRequiredItem) {\n                    <span\n                        class=\"ca-font-semi-bold text-size-11 text-color-red-11\"\n                        [class]=\"isAlignRightItem ? 'm-r-2' : 'm-l-2'\"\n                    >\n                        *\n                    </span>\n                }\n            </div>\n        }\n    </div>\n</ng-template>\n\n<!-- List Section -->\n\n<ng-template\n    #listSection\n    let-gridTemplateColumns=\"gridTemplateColumns\"\n    let-templateRef=\"templateRef\"\n>\n    <div class=\"d-flex flex-column\">\n        @for (\n            group of itemsFormArray.controls;\n            track group;\n            let index = $index\n        ) {\n            <div\n                class=\"br-2 h-26 m-b-4\"\n                [ngClass]=\"{\n                    'background-hover-light-grey-5': _itemsConfig.isDisabled,\n                    'd-none':\n                        index >= displayedListLength && hasNoCardVariation,\n                }\"\n            >\n                @let groupClass =\n                    {\n                        'background-white':\n                            group.valid &&\n                            !_itemsConfig.isDisabled &&\n                            hoverIndex !== index,\n                        'background-light-grey-5':\n                            !group.valid && hoverIndex !== index,\n                        'background-hover-bw2': !_itemsConfig.isDisabled,\n                        'background-bw2':\n                            !_itemsConfig.isDisabled && hoverIndex === index,\n                        'pe-none user-select-none': _itemsConfig.isDisabled,\n                    };\n\n                <div\n                    class=\"d-grid gap-px-4 align-items-center br-2\"\n                    [ngClass]=\"groupClass\"\n                    [ngStyle]=\"gridTemplateColumns\"\n                    (mouseenter)=\"onItemsRowHover(index)\"\n                    (mouseleave)=\"onItemsRowHover(-1)\"\n                >\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            templateRef;\n                            context: {\n                                $implicit: group,\n                                index,\n                                hoverIndex,\n                                parentFormArrayIndex,\n                            }\n                        \"\n                    ></ng-container>\n                </div>\n            </div>\n        }\n    </div>\n</ng-template>\n\n<!-- Total Cost Template -->\n\n<ng-template #modalItemsTotalCost>\n    @if (itemsTotalValue) {\n        <div\n            class=\"d-flex align-items-center justify-content-between m-t-4 p-x-6\"\n        >\n            <p class=\"text-size-14 text-color-muted ca-font-semi-bold\">\n                Total Cost\n            </p>\n\n            <p class=\"text-size-14 text-color-black ca-font-bold\">\n                {{ itemsTotalValue }}\n            </p>\n        </div>\n    }\n</ng-template>\n\n<!-- No Data Template -->\n\n<ng-template #noDataImg>\n    @let noDataImgRoute =\n        sharedSvgRoutes.COMMON_FOLDER_ROUTE + _itemsConfig.noDataImage;\n\n    @let noDataImgDimensions =\n        {\n            width: _itemsConfig.noDataImageDimensions?.width,\n            height: _itemsConfig.noDataImageDimensions?.height,\n        };\n\n    <img\n        class=\"prevent-text-selection\"\n        [src]=\"noDataImgRoute\"\n        [ngStyle]=\"noDataImgDimensions\"\n    />\n</ng-template>\n\n<!-- Show More Template -->\n\n<ng-template\n    #showMore\n    let-stickyGridTemplateColumns=\"stickyGridTemplateColumns\"\n>\n    <div class=\"position-sticky bottom-0 background-white p-y-12\">\n        <div class=\"d-flex position-relative d-flex align-items-center\">\n            <div class=\"d-grid\" [ngStyle]=\"stickyGridTemplateColumns\">\n                <app-ca-show-more\n                    class=\"position-absolute top--7 left-0 right-0\"\n                    [displayedDataCount]=\"displayedListLength\"\n                    [totalDataCount]=\"listLength\"\n                    (onShowMore)=\"onShowMore()\"\n                ></app-ca-show-more>\n            </div>\n            <app-ca-custom-horizontal-scrollbar\n                [scrollableElement]=\"scrollableElement\"\n                [trackRightOffsetPx]=\"scrollbarTrackRightOffsetPx\"\n            ></app-ca-custom-horizontal-scrollbar>\n        </div>\n    </div>\n</ng-template>\n","// modules\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { NgbModule, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// enums\nimport { eColor, ePosition } from '../../enums';\n\n// interfaces\nimport { IProgressBarColorConfig } from './interfaces';\n\n// pipes\nimport { ProgressBarLinePipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-progress-bar-v2',\n    imports: [\n        // modules\n        CommonModule,\n        NgbModule,\n        NgbTooltip,\n        // components\n        CaAppTooltipV2Component,\n        // pipes\n        ProgressBarLinePipe,\n    ],\n    templateUrl: './ca-progress-bar-v2.component.html',\n    styleUrls: ['./ca-progress-bar-v2.component.scss'],\n})\nexport class CaProgressBarV2Component {\n    @Input() progressPercentage: number = 0;\n    @Input() text: string | undefined;\n    @Input() tooltipText: string | undefined;\n    @Input() customText: string | undefined;\n    @Input() customTextPrice: string | undefined;\n    @Input() isTableColumn: boolean = false;\n    @Input() isSmallProgressBar: boolean = false;\n    @Input() colorConfig: IProgressBarColorConfig | undefined;\n    @Input() isFocused: boolean = false;\n    @Input() isBoldText: boolean = false;\n\n    public eColor = eColor;\n    public ePosition = ePosition;\n\n    constructor() {}\n}\n","<div\n    class=\"progress-bar br-2\"\n    [ngClass]=\"{\n        'small px-2 py-1': isTableColumn,\n        'background-black-2': isFocused,\n        'background-hover-dark-2': !isFocused && isTableColumn,\n    }\"\n>\n    @if (isTableColumn || isSmallProgressBar) {\n        <div\n            class=\"d-flex align-items-center gap-2\"\n            ngbTooltip\n            [mainCaTooltip]=\"tooltipText\"\n            [position]=\"ePosition.BOTTOM\"\n            [tooltipBackground]=\"eColor.BLACK\"\n        >\n            <div class=\"progress-bar-line-container br-2 small-line\">\n                <ng-container\n                    *ngTemplateOutlet=\"\n                        progressBarLineTemplate;\n                        context: {\n                            percentageValue: progressPercentage,\n                            colorConfig: colorConfig,\n                        }\n                    \"\n                ></ng-container>\n            </div>\n            \n            @let textWeightClass = isBoldText ? 'ca-font-semi-bold ' : 'ca-font-regular';\n            @let textColorClass =\n                isFocused\n                    ? 'text-color-white'\n                    : isBoldText\n                      ? 'text-color-black'\n                      : 'text-color-black-2';\n            @if (text) {\n                <span\n                class=\"progress-bar-text text-size-14\"\n                [ngClass]=\"[textWeightClass, textColorClass]\"\n                >\n                    {{ text }}\n                </span>\n            }\n        </div>\n    } @else {\n        <div class=\"d-flex text-size-14 text-color-black-2 ca-font-regular m-b-8\">\n            <div class=\"flex-1 text-start\">{{customText}} <span class=\"ca-font-semi-bold\">{{customTextPrice}}</span></div>\n            <div>{{text}}</div>\n        </div>\n        <div class=\"progress-bar-line-container br-2 full-line\">\n            <ng-container\n                *ngTemplateOutlet=\"\n                    progressBarLineTemplate;\n                    context: {\n                        percentageValue: progressPercentage,\n                        colorConfig: colorConfig,\n                    }\n                \"\n            ></ng-container>\n        </div>\n    }\n</div>\n\n<ng-template\n    #progressBarLineTemplate\n    let-percentageValue=\"percentageValue\"\n    let-colorConfig=\"colorConfig\"\n>\n    @if (colorConfig) {\n        <div\n            class=\"progress-bar-line-back\"\n            [style.backgroundColor]=\"colorConfig.backColor\"\n        ></div>\n        <div\n            class=\"progress-bar-line-front\"\n            [style.backgroundColor]=\"colorConfig.frontColor\"\n            [style.width.%]=\"percentageValue\"\n        ></div>\n    } @else {\n        <div\n            class=\"progress-bar-line-back\"\n            [ngClass]=\"'back' | progressBarLine: percentageValue\"\n        ></div>\n        <div\n            class=\"progress-bar-line-front\"\n            [ngClass]=\"'front' | progressBarLine: percentageValue\"\n            [style.width.%]=\"percentageValue\"\n        ></div>\n    }\n</ng-template>\n","import {\n    Directive,\n    ElementRef,\n    Input,\n    Renderer2,\n    AfterViewInit,\n    OnDestroy,\n} from '@angular/core';\n\n// interfaces\nimport { IRangeSliderConfig } from '../interfaces';\n\n@Directive({\n    selector: '[appRangeSlider]',\n})\nexport class RangeSliderDirective implements AfterViewInit, OnDestroy {\n    @Input() set rangeSliderConfig(config: IRangeSliderConfig) {\n        this._rangeSliderConfig = config;\n\n        this.updateRangeSlider();\n    }\n\n    @Input() value!: number;\n\n    private _rangeSliderConfig!: IRangeSliderConfig;\n\n    // unlisten input\n    private unlistenInput!: () => void;\n\n    constructor(\n        private elementRef: ElementRef,\n        private renderer: Renderer2\n    ) {}\n\n    ngAfterViewInit() {\n        this.updateRangeSlider();\n    }\n\n    private updateRangeSlider() {\n        const input: HTMLInputElement = this.elementRef\n            .nativeElement as HTMLInputElement;\n\n        const thumbSelector = '.range-slider-thumb';\n\n        const thumb = input.parentElement?.querySelector(\n            thumbSelector\n        ) as HTMLElement;\n\n        if (!input || !thumb) return;\n\n        // initial update\n        this.updateThumb(input, thumb);\n\n        // update on input events\n        this.unlistenInput = this.renderer.listen(input, 'input', () =>\n            this.updateThumb(input, thumb)\n        );\n    }\n\n    private updateThumb(input: HTMLInputElement, thumb: HTMLElement) {\n        const { min, max } = this._rangeSliderConfig;\n\n        // clamp value between min/max so percent is always 0–100\n        const safeValue = Math.min(Math.max(this.value, min), max);\n\n        const percent = ((safeValue - min) / (max - min)) * 100;\n\n        const thumbWidth = thumb.offsetWidth;\n        const trackWidth = input.offsetWidth;\n\n        // usable width so thumb edges align exactly with track edges\n        const usableWidth = trackWidth - thumbWidth;\n\n        const leftPx = (percent / 100) * usableWidth;\n\n        this.renderer.setStyle(thumb, 'left', `${leftPx}px`);\n\n        this.renderer.setStyle(\n            input,\n            'background',\n            `linear-gradient(to right, #3B73ED33 0%, #3B73ED33 ${percent}%, #424242 ${percent}%, #424242 100%)`\n        );\n    }\n\n    ngOnDestroy() {\n        if (this.unlistenInput) this.unlistenInput();\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    forwardRef,\n    Input,\n    Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// interfaces\nimport { IRangeSliderConfig } from './interfaces';\n\n// directives\nimport { RangeSliderDirective } from './directives';\n\n@Component({\n    selector: 'app-ca-range-slider',\n    templateUrl: './ca-range-slider.component.html',\n    styleUrls: ['./ca-range-slider.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => CaRangeSliderComponent),\n            multi: true,\n        },\n    ],\n    imports: [\n        // modules\n        CommonModule,\n\n        // directives\n        RangeSliderDirective,\n    ],\n})\nexport class CaRangeSliderComponent implements ControlValueAccessor {\n    @Input() rangeSliderConfig!: IRangeSliderConfig;\n    @Input() isDisabled = false;\n\n    @Output() rangeSliderChange = new EventEmitter<number>(); // helper if needed (value is handled via control value accessor)\n\n    public value!: number;\n\n    constructor() {}\n\n    // control value accessor\n    private onChange: (value: number) => void = () => {};\n\n    private onTouched: () => void = () => {};\n\n    public writeValue(value: number): void {\n        this.value = value ?? this.rangeSliderConfig.min;\n    }\n\n    public registerOnChange(fn: (value: number) => void): void {\n        this.onChange = fn;\n    }\n\n    public registerOnTouched(fn: () => void): void {\n        this.onTouched = fn;\n    }\n\n    // input change\n    public onRangeSliderChange(event: Event): void {\n        const input = event.target as HTMLInputElement;\n        const value = input.valueAsNumber;\n\n        this.value = value;\n\n        this.onChange(value);\n        this.onTouched();\n\n        this.rangeSliderChange.emit(value);\n    }\n}\n","<div class=\"d-flex align-items-center w-100 range-slider-container\">\n    <!-- Title -->\n\n    <p class=\"text-size-14 ca-font-medium text-color-white m-r-8\">\n        {{ rangeSliderConfig.title }}\n    </p>\n\n    <!-- Range Slider -->\n\n    <div\n        class=\"position-relative w-100 range-slider\"\n        [ngClass]=\"{ 'pe-none user-select-none': isDisabled }\"\n    >\n        <!-- Range Slider Input -->\n\n        <input\n            class=\"w-100 h-6 br-2 background-black c-pointer range-slider-input\"\n            type=\"range\"\n            appRangeSlider\n            [value]=\"value\"\n            [rangeSliderConfig]=\"rangeSliderConfig\"\n            [min]=\"rangeSliderConfig.min\"\n            [max]=\"rangeSliderConfig.max\"\n            [step]=\"rangeSliderConfig.step\"\n            [disabled]=\"isDisabled\"\n            (input)=\"onRangeSliderChange($event)\"\n        />\n\n        <!-- Range Slider Thumb -->\n\n        <div\n            class=\"d-flex align-items-center justify-content-center position-absolute top-2 min-w-40 h-18 br-2 p-x-6 pe-none range-slider-thumb\"\n            [class]=\"isDisabled ? 'background-bw6-2' : 'background-blue-18'\"\n        >\n            <div class=\"d-flex align-items-center\">\n                <p class=\"text-size-11 ca-font-semi-bold text-color-white\">\n                    {{ value }}\n                </p>\n\n                <span class=\"text-size-11 ca-font-medium text-color-blue-16\">\n                    {{ rangeSliderConfig.unit }}\n                </span>\n            </div>\n        </div>\n    </div>\n</div>\n","export class FuelPricesRangeConstants {\n    static FUEL_PRICES_RANGE_CIRCLE_SVG_CLASS_COLOR: Record<string, string> = {\n        'fuel-color-1': 'svg-fill-green',\n        'fuel-color-2': 'svg-fill-green-6',\n        'fuel-color-3': 'svg-fill-yellow-1',\n        'fuel-color-4': 'svg-fill-orange-4',\n        'fuel-color-5': 'svg-fill-red-10',\n        'fuel-color-outdated': 'svg-fill-dark-2',\n    };\n\n    static FUEL_PRICES_RANGE_ARROW_SVG_CLASS_COLOR: Record<string, string> = {\n        'fuel-color-1': 'svg-fill-first-path-child-green',\n        'fuel-color-2': 'svg-fill-first-path-child-green-6',\n        'fuel-color-3': 'svg-fill-first-path-child-yellow-1',\n        'fuel-color-4': 'svg-fill-first-path-child-orange-4',\n        'fuel-color-5': 'svg-fill-first-path-child-red-10',\n        'fuel-color-outdated': 'svg-fill-first-path-child-light-grey-2',\n    };\n\n    static FUEL_PRICES_RANGE_BACKGROUND_CLASS_COLOR: Record<string, string> = {\n        'fuel-color-1': 'background-green-5',\n        'fuel-color-2': 'background-green-14',\n        'fuel-color-3': 'background-yellow-11',\n        'fuel-color-4': 'background-orange-13',\n        'fuel-color-5': 'background-red-20',\n        'fuel-color-outdated': 'background-dark-3',\n    };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { LastFuelPriceProgressHelper } from '../../ca-last-fuel-price-progress/utils/helpers';\n\n@Pipe({\n    name: 'fuelPricesRange',\n})\nexport class FuelPricesRangePipe implements PipeTransform {\n    transform(lastFuelPriceData: {\n        minValue: number;\n        maxValue: number;\n        totalValue: number;\n        isOutdated?: boolean;\n        isCardVariation?: boolean;\n    }): { svgPosition: number; svgClass: string } {\n        const { minValue, maxValue, totalValue, isOutdated, isCardVariation } =\n            lastFuelPriceData;\n\n        return LastFuelPriceProgressHelper.calculateSvgPosition(\n            minValue,\n            maxValue,\n            totalValue,\n            isOutdated,\n            !isCardVariation,\n            isCardVariation\n        );\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n// components\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n// interfaces\nimport { IFuelPricesRangeConfig } from './interfaces';\n\n// constants\nimport { FuelPricesRangeConstants } from './utils/constants';\nimport { LastFuelPriceProgressConstants } from '../ca-last-fuel-price-progress/utils/constants';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// enums\nimport { eUnit } from '../../enums';\n\n// pipes\nimport { FuelPricesRangePipe } from './pipes';\n\n@Component({\n    selector: 'app-ca-fuel-prices-range',\n    templateUrl: './ca-fuel-prices-range.component.html',\n    styleUrl: './ca-fuel-prices-range.component.scss',\n    imports: [\n        CommonModule,\n\n        // components\n        SvgIconComponent,\n\n        // pipes\n        FuelPricesRangePipe,\n    ],\n})\nexport class CaFuelPricesRangeComponent {\n    @Input() fuelPricesRangeConfig!: IFuelPricesRangeConfig;\n    @Input() isCardVariation: boolean = false;\n\n    public isFuelLastPriceHovered = false;\n\n    // map fuel last price color key to svg fill class\n    public fuelPricesRangeCircleSvgClassColor =\n        FuelPricesRangeConstants.FUEL_PRICES_RANGE_CIRCLE_SVG_CLASS_COLOR;\n    public fuelPricesRangeArrowSvgClassColor =\n        FuelPricesRangeConstants.FUEL_PRICES_RANGE_ARROW_SVG_CLASS_COLOR;\n    public fuelPricesRangeColor =\n        LastFuelPriceProgressConstants.LAST_FUEL_PRICE_COLORS;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    // enums\n    public eUnit = eUnit;\n\n    constructor() {}\n\n    public onHoverFuelLastPrice(): void {\n        this.isFuelLastPriceHovered = !this.isFuelLastPriceHovered;\n    }\n}\n","@let fuelLastPrice = fuelPricesRangeConfig.value;\n@let fuelLowestPrice = fuelPricesRangeConfig.minValue;\n@let fuelHighestPrice = fuelPricesRangeConfig.maxValue;\n\n@let isFuelPriceOutdated = fuelPricesRangeConfig.isOutdated;\n\n<div class=\"d-flex align-itmes-center position-relative h-26 fuel-prices-range\">\n    @if (fuelLastPrice) {\n        <!-- Fuel Last Price -->\n\n        @let fuelPricesRange =\n            {\n                minValue: fuelLowestPrice,\n                maxValue: fuelHighestPrice,\n                totalValue: fuelLastPrice,\n                isOutdated: isFuelPriceOutdated,\n                isCardVariation,\n            } | fuelPricesRange;\n\n        <div\n            class=\"d-flex align-items-center\"\n            (mouseenter)=\"onHoverFuelLastPrice()\"\n            (mouseleave)=\"onHoverFuelLastPrice()\"\n        >\n            @let fuelPricesRangeCircleSvgClass =\n                fuelPricesRangeCircleSvgClassColor[fuelPricesRange.svgClass];\n\n            <svg-icon\n                class=\"svg-size-10 position-relative bottom-1 m-r-4\"\n                [ngClass]=\"fuelPricesRangeCircleSvgClass\"\n                [src]=\"sharedSvgRoutes.CIRCLE\"\n            ></svg-icon>\n\n            <p\n                class=\"text-color-black-2 text-size-14 text-truncate cursor-default\"\n            >\n                {{ fuelLastPrice | currency }}\n            </p>\n        </div>\n\n        <!-- Fuel Prices Range -->\n\n        @if (isFuelLastPriceHovered && !isFuelPriceOutdated ) {\n            @let fuelPricesRangeBarContainerClass =\n                isCardVariation\n                    ? 'left-100 m-l-8'\n                    : 'right-100 m-r-8';\n\n            <div\n                class=\"d-flex flex-column background-black-2 br-3 position-absolute h-26 p-b-2 p-t-8 p-x-4\"\n                [ngClass]=\"fuelPricesRangeBarContainerClass\"\n            >\n                <!-- Range -->\n\n                @let fuelPricesRangeBarClass =\n                    isCardVariation\n                        ? 'fuel-prices-range-bar-card'\n                        : 'fuel-prices-range-bar-table';\n\n                <div\n                    class=\"d-grid align-items-center h-4 position-relative fuel-prices-range-bar\"\n                    [ngClass]=\"fuelPricesRangeBarClass\"\n                >\n                    @for (\n                        fuelPriceColor of fuelPricesRangeColor;\n                        track fuelPriceColor\n                    ) {\n                        <div\n                            class=\"h-4 fuel-prices-range-bar-box\"\n                            [ngStyle]=\"{\n                                'background-color': fuelPriceColor,\n                            }\"\n                        ></div>\n                    }\n\n                    <!-- Range Icon -->\n\n                    @let fuelPricesRangeArrowSvgClass =\n                        fuelPricesRangeArrowSvgClassColor[\n                            fuelPricesRange.svgClass\n                        ];\n\n                    @let fuelPricesRangeArrowSvgStyle =\n                        {\n                            left:\n                                fuelPricesRange.svgPosition +\n                                eUnit.PERCENTAGE_SIGN,\n                        };\n\n                    <svg-icon\n                        class=\"position-absolute top--14\"\n                        [ngClass]=\"fuelPricesRangeArrowSvgClass\"\n                        [ngStyle]=\"fuelPricesRangeArrowSvgStyle\"\n                        [src]=\"sharedSvgRoutes.LAST_PRICE_ARROW_DOWN\"\n                    ></svg-icon>\n                </div>\n\n                <!-- Range Value -->\n\n                <div class=\"d-flex align-items-center justify-content-between\">\n                    <p\n                        class=\"text-color-white text-size-11 line-height-12 ca-font-semi-bold\"\n                    >\n                        {{ fuelLowestPrice | currency }}\n                    </p>\n\n                    <p\n                        class=\"text-color-white text-size-11 line-height-12 ca-font-semi-bold\"\n                    >\n                        {{ fuelHighestPrice | currency }}\n                    </p>\n                </div>\n            </div>\n        }\n    }\n</div>\n","// models\n\nimport { IMapStates } from '../interfaces';\n\nconst MAP_STATE_DEFAULT_COLOR = '#E5E5E5';\n\nexport class DashboardStateConstants {\n    static usaStates: IMapStates = {\n        AL: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Alabama',\n            value: null,\n            percent: null,\n        },\n        AK: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Alaska',\n            value: null,\n            percent: null,\n        },\n        AS: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'American Samoa',\n            value: null,\n            percent: null,\n        },\n        AZ: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Arizona',\n            value: null,\n            percent: null,\n        },\n        AR: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Arkansas',\n            value: null,\n            percent: null,\n        },\n        CA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'California',\n            value: null,\n            percent: null,\n        },\n        CO: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Colorado',\n            value: null,\n            percent: null,\n        },\n        CT: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Connecticut',\n            value: null,\n            percent: null,\n        },\n        DE: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Delaware',\n            value: null,\n            percent: null,\n        },\n        DC: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'District Of Columbia',\n            value: null,\n            percent: null,\n        },\n        FM: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Federated States Of Micronesia',\n            value: null,\n            percent: null,\n        },\n        FL: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Florida',\n            value: null,\n            percent: null,\n        },\n        GA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Georgia',\n            value: null,\n            percent: null,\n        },\n        GU: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Guam',\n            value: null,\n            percent: null,\n        },\n        HI: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Hawaii',\n            value: null,\n            percent: null,\n        },\n        ID: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Idaho',\n            value: null,\n            percent: null,\n        },\n        IL: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Illinois',\n            value: null,\n            percent: null,\n        },\n        IN: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Indiana',\n            value: null,\n            percent: null,\n        },\n        IA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Iowa',\n            value: null,\n            percent: null,\n        },\n        KS: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Kansas',\n            value: null,\n            percent: null,\n        },\n        KY: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Kentucky',\n            value: null,\n            percent: null,\n        },\n        LA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Louisiana',\n            value: null,\n            percent: null,\n        },\n        ME: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Maine',\n            value: null,\n            percent: null,\n        },\n        MH: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Marshall Islands',\n            value: null,\n            percent: null,\n        },\n        MD: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Maryland',\n            value: null,\n            percent: null,\n        },\n        MA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Massachusetts',\n            value: null,\n            percent: null,\n        },\n        MI: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Michigan',\n            value: null,\n            percent: null,\n        },\n        MN: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Minnesota',\n            value: null,\n            percent: null,\n        },\n        MS: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Mississippi',\n            value: null,\n            percent: null,\n        },\n        MO: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Missouri',\n            value: null,\n            percent: null,\n        },\n        MT: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Montana',\n            value: null,\n            percent: null,\n        },\n        NE: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Nebraska',\n            value: null,\n            percent: null,\n        },\n        NV: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Nevada',\n            value: null,\n            percent: null,\n        },\n        NH: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'New Hampshire',\n            value: null,\n            percent: null,\n        },\n        NJ: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'New Jersey',\n            value: null,\n            percent: null,\n        },\n        NM: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'New Mexico',\n            value: null,\n            percent: null,\n        },\n        NY: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'New York',\n            value: null,\n            percent: null,\n        },\n        NC: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'North Carolina',\n            value: null,\n            percent: null,\n        },\n        ND: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'North Dakota',\n            value: null,\n            percent: null,\n        },\n        MP: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Northern Mariana Islands',\n            value: null,\n            percent: null,\n        },\n        OH: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Ohio',\n            value: null,\n            percent: null,\n        },\n        OK: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Oklahoma',\n            value: null,\n            percent: null,\n        },\n        OR: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Oregon',\n            value: null,\n            percent: null,\n        },\n        PW: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Palau',\n            value: null,\n            percent: null,\n        },\n        PA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Pennsylvania',\n            value: null,\n            percent: null,\n        },\n        PR: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Puerto Rico',\n            value: null,\n            percent: null,\n        },\n        RI: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Rhode Island',\n            value: null,\n            percent: null,\n        },\n        SC: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'South Carolina',\n            value: null,\n            percent: null,\n        },\n        SD: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'South Dakota',\n            value: null,\n            percent: null,\n        },\n        TN: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Tennessee',\n            value: null,\n            percent: null,\n        },\n        TX: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Texas',\n            value: null,\n            percent: null,\n        },\n        UT: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Utah',\n            value: null,\n            percent: null,\n        },\n        VT: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Vermont',\n            value: null,\n            percent: null,\n        },\n        VI: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Virgin Islands',\n            value: null,\n            percent: null,\n        },\n        VA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Virginia',\n            value: null,\n            percent: null,\n        },\n        WA: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Washington',\n            value: null,\n            percent: null,\n        },\n        WV: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'West Virginia',\n            value: null,\n            percent: null,\n        },\n        WI: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Wisconsin',\n            value: null,\n            percent: null,\n        },\n        WY: {\n            color: MAP_STATE_DEFAULT_COLOR,\n            state: 'Wyoming',\n            value: null,\n            percent: null,\n        },\n    };\n\n    static usaStatesExample: IMapStates = {\n        AL: {\n            color: '#E5E5E5',\n            state: 'Alabama',\n            value: null,\n            percent: null,\n        },\n        AK: {\n            color: '#E5E5E5',\n            state: 'Alaska',\n            value: null,\n            percent: null,\n        },\n        AS: {\n            color: '#E5E5E5',\n            state: 'American Samoa',\n            value: null,\n            percent: null,\n        },\n        AZ: {\n            color: '#E5E5E5',\n            state: 'Arizona',\n            value: null,\n            percent: null,\n        },\n        AR: {\n            color: '#E5E5E5',\n            state: 'Arkansas',\n            value: null,\n            percent: null,\n        },\n        CA: {\n            color: '#E5E5E5',\n            state: 'California',\n            value: null,\n            percent: null,\n        },\n        CO: {\n            color: '#BED0F9',\n            state: 'Colorado',\n            value: '$44K',\n            percent: '1.75',\n        },\n        CT: {\n            color: '#BED0F9',\n            state: 'Connecticut',\n            value: '$1K',\n            percent: '0.04',\n        },\n        DE: {\n            color: '#E5E5E5',\n            state: 'Delaware',\n            value: null,\n            percent: null,\n        },\n        DC: {\n            color: '#E5E5E5',\n            state: 'District Of Columbia',\n            value: null,\n            percent: null,\n        },\n        FM: {\n            color: '#E5E5E5',\n            state: 'Federated States Of Micronesia',\n            value: null,\n            percent: null,\n        },\n        FL: {\n            color: '#E5E5E5',\n            state: 'Florida',\n            value: null,\n            percent: null,\n        },\n        GA: {\n            color: '#E5E5E5',\n            state: 'Georgia',\n            value: null,\n            percent: null,\n        },\n        GU: {\n            color: '#E5E5E5',\n            state: 'Guam',\n            value: null,\n            percent: null,\n        },\n        HI: {\n            color: '#E5E5E5',\n            state: 'Hawaii',\n            value: null,\n            percent: null,\n        },\n        ID: {\n            color: '#E5E5E5',\n            state: 'Idaho',\n            value: null,\n            percent: null,\n        },\n        IL: {\n            color: '#BED0F9',\n            state: 'Illinois',\n            value: '$8.5K',\n            percent: '0.34',\n        },\n        IN: {\n            color: '#E5E5E5',\n            state: 'Indiana',\n            value: null,\n            percent: null,\n        },\n        IA: {\n            color: '#E5E5E5',\n            state: 'Iowa',\n            value: null,\n            percent: null,\n        },\n        KS: {\n            color: '#E5E5E5',\n            state: 'Kansas',\n            value: null,\n            percent: null,\n        },\n        KY: {\n            color: '#E5E5E5',\n            state: 'Kentucky',\n            value: null,\n            percent: null,\n        },\n        LA: {\n            color: '#0B49D1',\n            state: 'Louisiana',\n            value: '$2.4M',\n            percent: '94.15',\n        },\n        ME: {\n            color: '#E5E5E5',\n            state: 'Maine',\n            value: null,\n            percent: null,\n        },\n        MH: {\n            color: '#E5E5E5',\n            state: 'Marshall Islands',\n            value: null,\n            percent: null,\n        },\n        MD: {\n            color: '#BED0F9',\n            state: 'Maryland',\n            value: '$2K',\n            percent: '0.08',\n        },\n        MA: {\n            color: '#E5E5E5',\n            state: 'Massachusetts',\n            value: null,\n            percent: null,\n        },\n        MI: {\n            color: '#E5E5E5',\n            state: 'Michigan',\n            value: null,\n            percent: null,\n        },\n        MN: {\n            color: '#E5E5E5',\n            state: 'Minnesota',\n            value: null,\n            percent: null,\n        },\n        MS: {\n            color: '#E5E5E5',\n            state: 'Mississippi',\n            value: null,\n            percent: null,\n        },\n        MO: {\n            color: '#E5E5E5',\n            state: 'Missouri',\n            value: null,\n            percent: null,\n        },\n        MT: {\n            color: '#E5E5E5',\n            state: 'Montana',\n            value: null,\n            percent: null,\n        },\n        NE: {\n            color: '#E5E5E5',\n            state: 'Nebraska',\n            value: null,\n            percent: null,\n        },\n        NV: {\n            color: '#E5E5E5',\n            state: 'Nevada',\n            value: null,\n            percent: null,\n        },\n        NH: {\n            color: '#E5E5E5',\n            state: 'New Hampshire',\n            value: null,\n            percent: null,\n        },\n        NJ: {\n            color: '#BED0F9',\n            state: 'New Jersey',\n            value: '$3.3K',\n            percent: '0.13',\n        },\n        NM: {\n            color: '#E5E5E5',\n            state: 'New Mexico',\n            value: null,\n            percent: null,\n        },\n        NY: {\n            color: '#BED0F9',\n            state: 'New York',\n            value: '$66K',\n            percent: '2.64',\n        },\n        NC: {\n            color: '#E5E5E5',\n            state: 'North Carolina',\n            value: null,\n            percent: null,\n        },\n        ND: {\n            color: '#E5E5E5',\n            state: 'North Dakota',\n            value: null,\n            percent: null,\n        },\n        MP: {\n            color: '#E5E5E5',\n            state: 'Northern Mariana Islands',\n            value: null,\n            percent: null,\n        },\n        OH: {\n            color: '#E5E5E5',\n            state: 'Ohio',\n            value: null,\n            percent: null,\n        },\n        OK: {\n            color: '#E5E5E5',\n            state: 'Oklahoma',\n            value: null,\n            percent: null,\n        },\n        OR: {\n            color: '#E5E5E5',\n            state: 'Oregon',\n            value: null,\n            percent: null,\n        },\n        PW: {\n            color: '#E5E5E5',\n            state: 'Palau',\n            value: null,\n            percent: null,\n        },\n        PA: {\n            color: '#BED0F9',\n            state: 'Pennsylvania',\n            value: '$7.8K',\n            percent: '0.31',\n        },\n        PR: {\n            color: '#E5E5E5',\n            state: 'Puerto Rico',\n            value: null,\n            percent: null,\n        },\n        RI: {\n            color: '#E5E5E5',\n            state: 'Rhode Island',\n            value: null,\n            percent: null,\n        },\n        SC: {\n            color: '#E5E5E5',\n            state: 'South Carolina',\n            value: null,\n            percent: null,\n        },\n        SD: {\n            color: '#E5E5E5',\n            state: 'South Dakota',\n            value: null,\n            percent: null,\n        },\n        TN: {\n            color: '#E5E5E5',\n            state: 'Tennessee',\n            value: null,\n            percent: null,\n        },\n        TX: {\n            color: '#E5E5E5',\n            state: 'Texas',\n            value: null,\n            percent: null,\n        },\n        UT: {\n            color: '#E5E5E5',\n            state: 'Utah',\n            value: null,\n            percent: null,\n        },\n        VT: {\n            color: '#E5E5E5',\n            state: 'Vermont',\n            value: null,\n            percent: null,\n        },\n        VI: {\n            color: '#E5E5E5',\n            state: 'Virgin Islands',\n            value: null,\n            percent: null,\n        },\n        VA: {\n            color: '#BED0F9',\n            state: 'Virginia',\n            value: '$12K',\n            percent: '0.49',\n        },\n        WA: {\n            color: '#E5E5E5',\n            state: 'Washington',\n            value: null,\n            percent: null,\n        },\n        WV: {\n            color: '#E5E5E5',\n            state: 'West Virginia',\n            value: null,\n            percent: null,\n        },\n        WI: {\n            color: '#BED0F9',\n            state: 'Wisconsin',\n            value: '$1.5K',\n            percent: '0.06',\n        },\n        WY: {\n            color: '#E5E5E5',\n            state: 'Wyoming',\n            value: null,\n            percent: null,\n        },\n    };\n}\n","export enum ePlacement {\n    AUTO = 'auto',\n    TOP = 'top',\n    TOP_START = 'top-start',\n    TOP_LEFT = 'top-left',\n    TOP_END = 'top-end',\n    TOP_RIGHT = 'top-right',\n    BOTTOM = 'bottom',\n    BOTTOM_START = 'bottom-start',\n    BOTTOM_LEFT = 'bottom-left',\n    BOTTOM_END = 'bottom-end',\n    BOTTOM_RIGHT = 'bottom-right',\n    START = 'start',\n    LEFT = 'left',\n    START_TOP = 'start-top',\n    LEFT_TOP = 'left-top',\n    START_BOTTOM = 'start-bottom',\n    LEFT_BOTTOM = 'left-bottom',\n    END = 'end',\n    RIGHT = 'right',\n    END_TOP = 'end-top',\n    RIGHT_TOP = 'right-top',\n    END_BOTTOM = 'end-bottom',\n    RIGHT_BOTTOM = 'right-bottom',\n}\n","import {\n    Component,\n    Input,\n    ElementRef,\n    ViewChild,\n    inject,\n    Renderer2,\n    EventEmitter,\n    Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// modules\nimport { NgbModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\n\n// interfaces\nimport { IMapState, IMapStates, ITopListByStateItem } from './interfaces';\n\n// constants\nimport { DashboardStateConstants } from './constants';\n\n// enums\nimport { ePlacement } from '../ca-icon-dropdown/enums/placement.enum';\n\n@Component({\n    selector: 'app-ca-heatmap-usa',\n    templateUrl: './ca-heatmap-usa.component.html',\n    styleUrls: ['./ca-heatmap-usa.component.scss'],\n    imports: [CommonModule, NgbModule, NgbPopoverModule],\n})\nexport class CaHeatmapUsaComponent {\n    @ViewChild('svgElement')\n    svgElement!: ElementRef<SVGElement>;\n\n    @Input() set stateItems(value: ITopListByStateItem[]) {\n        this._stateItems = value;\n        this.mapUsaStates();\n    }\n\n    /** Input to receive hovered state code from external source (e.g., table) */\n    @Input() set hoveredStateCode(stateCode: string | null) {\n        this._hoveredStateCode = stateCode;\n        this.handleExternalHover(stateCode);\n    }\n\n    /** Emits the currently hovered state when hovering on the map */\n    @Output() stateHover = new EventEmitter<{\n        item: ITopListByStateItem;\n        isHovered: boolean;\n    }>();\n\n    private renderer = inject(Renderer2);\n\n    private _hoveredStateCode: string | null = null;\n\n    public usaStates: IMapStates = structuredClone(\n        DashboardStateConstants.usaStates\n    );\n    public _stateItems!: ITopListByStateItem[];\n\n    public currentlyHoveredElement: SVGPathElement | null = null;\n    public currentlyHoveredState: IMapState | null = null;\n\n    // Enums\n    public ePlacement = ePlacement;\n\n    get hoveredStateCode(): string | null {\n        return this._hoveredStateCode;\n    }\n\n    private mapUsaStates(): void {\n        this.usaStates = structuredClone(DashboardStateConstants.usaStates);\n\n        this._stateItems.forEach((selectedMapItem: ITopListByStateItem) => {\n            const selectedState = this.usaStates[selectedMapItem.stateCode];\n            if (selectedState) {\n                selectedState.color = selectedMapItem.color;\n                selectedState.value = selectedMapItem.value;\n                selectedState.percent = selectedMapItem.percent;\n            }\n        });\n    }\n\n    private applyHover(\n        stateCode: string,\n        element: SVGPathElement,\n        emitEvent: boolean\n    ): void {\n        // Skip if same element is already hovered\n        if (this.currentlyHoveredElement === element) {\n            return;\n        }\n\n        // Clear previous hover\n        this.clearHoverStyling();\n\n        // Set new state\n        if (this.usaStates[stateCode]?.value) {\n            this.currentlyHoveredState = this.usaStates[stateCode];\n        }\n\n        this.currentlyHoveredElement = element;\n\n        // Apply styling\n        requestAnimationFrame(() => {\n            this.renderer.addClass(element, '__hover');\n        });\n\n        // Bring element to front\n        this.renderer.appendChild(this.svgElement.nativeElement, element);\n\n        // Emit event for map-initiated hovers\n        if (emitEvent && this.currentlyHoveredState) {\n            const item = this._stateItems.find(\n                (i) => i.stateCode === stateCode\n            );\n            if (item) {\n                this.stateHover.emit({ item, isHovered: true });\n            }\n        }\n    }\n\n    private clearHover(stateCode?: string): void {\n        if (stateCode) {\n            const item = this._stateItems.find(\n                (i) => i.stateCode === stateCode\n            );\n            if (item) {\n                this.stateHover.emit({ item, isHovered: false });\n            }\n        }\n\n        this.clearHoverStyling();\n    }\n\n    private clearHoverStyling(): void {\n        if (this.currentlyHoveredElement) {\n            this.renderer.removeClass(this.currentlyHoveredElement, '__hover');\n            this.currentlyHoveredElement = null;\n        }\n\n        // Fallback cleanup for any stray hover classes\n        this.svgElement?.nativeElement\n            .querySelectorAll('.__hover')\n            .forEach((el) => this.renderer.removeClass(el, '__hover'));\n    }\n\n    private handleExternalHover(stateCode: string | null): void {\n        if (!this.svgElement?.nativeElement) {\n            return;\n        }\n\n        if (stateCode) {\n            const stateElement = this.svgElement.nativeElement.querySelector(\n                `.state-${stateCode}`\n            ) as SVGPathElement | null;\n\n            if (stateElement) {\n                this.applyHover(stateCode, stateElement, false);\n                return;\n            }\n        }\n\n        this.clearHover();\n    }\n\n    public onStateHover(\n        stateCode: string,\n        isRemovingHover: boolean,\n        event?: MouseEvent,\n        stateElement?: Element\n    ): void {\n        const target = (event?.target ?? stateElement) as SVGPathElement;\n\n        if (isRemovingHover) {\n            this.clearHover(stateCode);\n            return;\n        }\n\n        if (target) {\n            this.applyHover(stateCode, target, true);\n        }\n    }\n}\n","@let lowestBlue = '#BED0F9';\n@let blueText = '#3B73ED';\n@let whiteText = '#FFFFFF';\n@let defaultColor = '#E5E5E5';\n\n<div class=\"d-flex justify-content-center align-items-center\">\n    <svg\n        #svgElement\n        width=\"458\"\n        height=\"296\"\n        viewBox=\"0 0 458 296\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        class=\"overflow-visible d-block\"\n    >\n        <path\n            d=\"M38.9082 287.444L38.5352 287.629V287.073H38.7219L38.9082 287.444Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.9727 287.258L38.3457 286.322V287.258H37.9727Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M38.9141 287.628L39.1006 287.817L38.9141 288.002V287.628Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M47.7402 283.162L48.1182 283.347V284.091L47.3672 283.906V283.536L47.7402 283.162Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M50.183 279.998L50.561 280.188L49.6172 280.932V280.557L50.183 279.998Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M54.8768 275.16H55.2548L54.8768 275.904L53.933 276.839L52.9957 277.953L52.8089 278.142L52.6227 277.768L52.8089 277.393H52.6227L52.0584 278.697L51.4956 279.256L50.9313 279.44L50.5583 278.886L49.994 277.951L49.8027 277.392L49.4297 277.022L49.6165 276.087L50.1807 275.532L51.1181 275.343V275.902L51.3093 276.461L51.6823 276.646L51.3093 276.276L51.1181 274.783L51.4961 274.414L52.6246 274.229L52.9977 274.039H53.562L53.3757 274.598L53.562 274.783L54.313 274.039L54.691 273.854L54.5043 274.598L54.8768 275.16Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M55.2621 271.995L55.4489 272.554L55.2621 272.929L53.7605 273.488L53.1912 273.113L53.0045 273.298L53.3825 273.673L53.1912 273.857L52.2539 273.487L53.005 272.369L53.7605 271.066L54.3203 270.881L54.1335 271.625V271.995L54.8846 271.81L55.2621 271.995Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M43.9863 280.559L44.3643 280.746H43.6133L43.8001 280.559H43.9863Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M50.936 279.998L51.6871 280.188L51.5003 280.373H50.7493L50.5625 280.188L50.936 279.998Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M97.8983 271.811H98.2713L98.085 272.186L97.707 272.001L97.8983 271.811Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M93.3915 263.247L93.5783 263.062L94.5156 262.877V263.062L96.0172 264.55H95.6442L95.0799 263.806L94.8887 263.991L96.204 265.294L96.3952 265.669L96.0172 266.228V266.782L95.4529 267.717L94.8887 266.973V265.855L93.9513 265.111L93.2003 263.623L92.4492 262.687V262.503H92.636L93.2003 263.062L93.3915 263.247Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M97.1447 267.901H97.7045L98.0825 268.649L97.7045 268.835V269.204L97.8957 269.763H98.2688V270.882L97.8957 270.507L98.082 271.443L97.704 271.253L97.331 270.324V269.765H97.704L97.331 269.391L96.3936 268.836L96.0156 268.277L96.2024 267.718L96.5804 267.533L97.1447 267.901Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M97.9013 268.09L97.71 267.901L97.337 267.716L97.1502 267.531L96.5859 267.157L96.7727 266.787H98.088L98.6955 267.11L98.088 266.783L98.6523 266.413L100.719 267.527L100.159 268.276H99.5902V267.901L98.6528 267.342V267.716L99.4039 268.086L99.5902 268.461L99.4039 268.83H98.8411L98.1521 267.612L98.8361 268.835V269.02L98.4631 269.205L97.9013 268.09Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M98.6445 271.624L98.8315 271.439V271.809L98.6445 271.624Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M63.5156 260.457L63.8925 260.646L63.5156 260.832V260.457Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M64.0828 259.715H63.7109L64.0828 259.528V259.715Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M62.9636 261.575L63.3416 261.016V262.879L62.7773 262.509L62.9636 261.575Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M64.4577 261.76L65.022 261.949L64.644 262.508L64.266 263.063L64.0792 264.181L63.3281 264.556V263.807L64.2655 262.319V261.95L64.4577 261.76Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M92.2617 267.531L92.453 267.342L93.204 268.086V268.646L92.826 268.83L92.2617 267.531Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-AK\"\n            (mouseenter)=\"onStateHover('AK', false, $event)\"\n            (mouseleave)=\"onStateHover('AK', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['AK'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M90.1916 263.433L89.0675 264.551L88.3164 264.181H87.9384L87.3741 263.992L85.504 263.247L85.499 263.252V262.878L84.9347 262.508L80.8069 261.573L80.6157 261.388V261.019H80.9937V260.645L80.4294 259.716L80.2381 260.271L79.4871 261.019L77.7982 261.204L76.6696 260.645L74.2302 260.83L71.5975 261.765L69.1536 261.016V260.457L68.3981 260.832L68.7761 261.201L67.2745 260.647L65.5811 262.135L65.2081 261.576L65.3949 261.017H65.7729L66.5239 260.647L66.897 260.273V259.903L65.9597 260.273H65.2086L65.0223 260.088L65.7734 259.529L65.9601 259.344L65.2091 259.714L65.0228 259.344L64.8316 259.529V258.6L63.7075 259.155L63.5162 259.714L62.2009 260.273H62.0141L62.2009 259.155L61.8279 259.344L61.6416 260.273L62.2014 260.458L62.7657 261.761L62.5789 262.509L63.33 263.247L62.952 263.807L61.6416 263.996L60.14 264.181L59.3889 264.551V265.669L58.0736 266.787L57.8868 266.597L57.5088 266.972L57.1357 267.901L55.4424 268.46L54.8781 268.085V267.53L56.1935 266.602L56.5715 265.853H56.1935L55.6297 266.413L55.2566 266.228L54.8786 265.853L55.0699 264.74L55.4429 263.805L55.6297 263.06V262.316L55.2566 261.572L56.0077 261.198L57.1362 260.084L57.5093 260.454H58.0736L58.6334 260.084L57.6961 259.34L57.8779 259.155H56.3807L56.0077 259.525L55.6297 259.895L54.6923 260.643L53.9368 261.946L53.1858 263.994V264.922L52.2484 266.41L51.3111 266.969L50.7468 267.713L50.1825 268.088L49.9958 269.201L50.1825 269.576L50.3688 269.386L51.1199 269.202L52.0636 269.946V270.135L51.8724 270.69V270.695H51.8674L51.4994 271.064L51.1214 271.249L50.7483 271.808L50.5615 273.112L50.1835 273.671L49.6192 274.04L49.2412 273.855L48.6814 274.04L48.3034 274.415L47.9254 275.343H47.5524L46.9866 276.088L46.6135 276.277L46.4223 276.088V276.462L45.2982 277.206V277.391L45.6712 277.206V277.95L43.6098 279.438L43.2318 279.253L43.045 279.997L41.9165 280.371V280.556H42.1032L42.2945 280.93H41.1659L40.7929 281.489L41.538 282.234L40.7929 283.162L38.349 283.721V284.28L38.1622 284.65L37.9709 284.28V283.906L37.5929 283.716L37.4062 284.091H37.0282L36.8414 284.465L35.9041 285.209L34.2107 285.769L33.4597 285.579L33.8377 284.65H33.2769L32.3331 286.882L31.582 287.257L31.0177 287.072V286.137L30.6447 285.952L30.4534 286.322L30.6447 286.696L30.8315 287.44L30.0804 287.624L29.7024 286.696L29.1381 286.881L29.5161 287.625V288.743L28.9518 288.558L28.2008 288.743H26.8859L26.5079 288.928L25.9481 289.487H25.0043L24.8176 288.928V288.558L25.3818 288.369L25.7549 287.815L27.8213 286.88H28.3856L28.5768 287.815H28.9498V286.697L30.0784 286.323L31.7718 284.465L32.8959 283.53L34.0244 283.16L35.153 283.53H34.9657V283.904L35.157 284.279L35.53 284.089L35.7213 283.715V283.16L36.2811 281.857L37.4096 280.928L39.6623 279.436L39.8535 279.625H40.4178L40.2311 278.881L40.6041 278.137L42.4837 276.275L42.8617 272.735L43.4216 271.807L43.7996 271.247L43.9863 270.503L43.7996 270.319L43.6128 270.688L41.3552 271.807L40.9772 271.621L40.2261 270.503L40.0393 270.688L39.8481 271.432L40.2261 272.361L39.6618 272.736H39.2873L38.1587 270.688L37.7807 270.503L37.5939 271.058H37.4072L36.4698 270.32L36.6566 270.13L36.4698 269.946L34.9632 270.874V270.879H34.772L34.2122 271.249V271.623L33.6479 271.808L32.3326 271.623L32.7106 271.433L33.0836 271.623L33.2749 270.879L33.0836 269.761L32.7106 269.017L33.4557 268.082L33.0826 266.968V266.787L32.1453 264.925L31.7723 265.669L30.452 266.413L29.1366 266.597L28.3856 266.228L28.1988 265.669L27.4477 264.551L25.7544 263.063L26.883 262.319L26.6962 261.76H26.3226V261.575L26.5094 261.39V261.201L26.8874 261.016L27.0742 260.646L26.3231 260.272L26.1364 260.646L25.5721 260.457L24.6338 258.594L24.8205 257.481L26.8869 254.873L27.8243 254.128L27.6375 253.569L28.0155 252.641L28.7666 251.706L29.5176 251.521L30.8329 252.639L31.3972 252.45L32.3346 251.521L32.8988 250.777L33.4587 250.962H34.2142L35.1515 250.777L35.7158 249.659L35.9026 249.1L35.3383 247.427L34.9652 246.868V246.315H35.3383L35.9026 245.945V245.386L35.1515 244.637L34.7785 245.196L33.2769 245.571L32.5213 246.13L29.5176 245.945L28.0115 246.315L25.9451 245.57L25.5721 245.196L25.3853 244.821L25.5721 244.267L25.3853 243.149L25.5721 242.964L25.7589 242.405L24.0655 241.661L22.9414 240.917V240.358L26.3226 238.496L26.6957 238.87L27.6395 239.055V238.87L27.0752 238.496V238.126L29.7079 237.191V237.196H30.4634L30.8364 237.381L30.4634 238.684L30.6501 239.428L34.0314 239.798L34.9752 238.869H35.5395L35.3482 238.5L34.7839 238.125L34.2241 237.756L33.4686 236.821L33.0955 236.636L32.9088 236.077L33.0955 235.892H33.4686L34.0329 237.196L34.7839 237.94L35.1619 237.755L34.7839 237.565L34.2241 236.821L34.5972 235.707L34.7839 235.892V235.707L34.2241 235.333L33.2803 235.518H32.5293L31.2139 234.959L30.6497 232.912L28.77 230.864L27.6459 230.305L27.0816 229.561L27.4547 228.443L27.6459 227.14L28.9613 227.329L30.6501 227.14L31.2144 226.955L32.3385 225.652L32.9078 223.979L34.0319 222.301L34.7829 221.557L35.3472 221.746L36.0983 221.372L37.2268 220.069L37.9779 219.325L38.5422 218.95L38.7285 219.325L38.3554 219.51H38.7285L40.6031 218.953L42.292 216.905L43.7986 217.649V218.024L43.2343 218.578V219.142L43.7986 218.953L44.1716 218.024L44.5496 217.649L45.1139 218.208L45.2977 218.953L45.862 219.142L46.0488 218.767L46.9861 218.578H48.4877L48.6745 218.767L48.3014 219.327V219.512L49.43 219.697L49.2388 220.256H49.9898L50.9336 219.697L53 219.512L54.3153 219.881H54.8796L55.4394 220.071L55.6307 220.256H56.3817L57.319 220.071H58.4476L59.763 220.44L60.141 220.255L60.892 219.696L61.0788 219.511L61.4568 219.141L62.7721 219.327L65.7759 220.255L66.7132 223.236L67.2775 225.093L70.4719 236.078L75.1685 252.269H75.1635L77.0432 258.6H77.0481L77.2349 258.974H78.1722L78.3635 258.6L79.4876 258.785L79.8656 258.041L80.9942 257.671L81.1809 258.785L81.554 258.974L82.4978 259.159L82.8708 259.718L85.6927 261.206L86.2525 262.504L87.3766 260.827L87.9409 260.642V258.78L88.692 257.851L88.6969 257.856L89.07 257.297L89.821 257.481L90.3853 257.856L90.7584 258.78L90.7633 258.785L90.9501 258.969H91.7011L92.0742 259.339L92.261 259.154L92.639 259.713H92.8302L93.2033 260.088L93.7675 260.272L95.6472 261.016V261.391L96.591 261.945L96.586 261.955L98.8387 263.77H98.8481L99.5892 264.367L100.158 264.926V265.485L100.928 265.47L101.005 266.105L100.861 266.84L100.455 267.005L99.7805 266.782L99.2162 266.413L99.0294 266.039L98.0856 266.228H97.5238L97.1125 266.157L97.0266 265.494L96.3952 264.366V264.001L96.2085 263.456V263.807H95.8354L94.5151 262.693L93.5778 263.063L92.0762 262.134L91.1324 260.457L90.5681 259.528L90.0038 259.154V259.339L90.9476 260.826L91.6987 261.944L92.636 263.432H91.8849L91.3207 262.878L90.3833 263.432L90.0053 262.318L89.441 261.759V262.129H89.2543L87.5609 261.759V261.944H88.3145L89.4386 262.319L90.1916 263.433Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['AK']['color']\"\n            />\n            <path\n                d=\"M47.874 247L50.655 240.7H52.41L55.2 247H53.346L51.168 241.573H51.87L49.692 247H47.874ZM49.395 245.776L49.854 244.462H52.932L53.391 245.776H49.395ZM57.2982 245.605L57.1992 243.607L59.9082 240.7H61.8702L59.1702 243.625L58.1802 244.66L57.2982 245.605ZM55.7052 247V240.7H57.4692V247H55.7052ZM59.9352 247L57.8832 244.399L59.0442 243.157L62.0052 247H59.9352Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['AK']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M62.3945 260.646V260.457L62.7664 260.646L62.5807 260.832L62.3945 260.646Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M96.4007 270.695V270.7H96.5875V271.255L96.2094 271.07L95.2721 270.135V269.58L94.8941 269.95L94.7073 269.58L94.143 269.391L93.77 268.277L93.392 267.902V267.533L93.0189 267.717L92.4542 267.343H92.0762L90.3873 265.856L89.823 265.671L89.6367 265.112L89.823 264.183L90.574 263.994L90.9521 263.624L93.0185 263.994L93.2047 264.368L93.3915 264.927L93.2047 265.112L92.8267 265.297L91.8894 265.112L92.8267 265.486L93.5822 265.112L94.142 266.041V266.23L93.5822 266.415L92.2619 265.856L92.0752 266.041L92.6394 266.785L92.8262 266.23L93.5817 266.6L94.3328 266.415L94.5191 266.784L94.1411 266.974H94.5191L95.8344 269.021L96.5855 270.694L96.4007 270.695Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M100.907 272.556L100.529 273.492L99.7734 273.307V272.748L100.529 272.373L100.907 272.556Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M99.9648 268.649L100.529 268.279L100.902 269.024L100.529 269.208H99.9648V268.649Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M104.09 272.37L105.034 274.044V274.603L104.47 274.792L103.341 273.857L101.652 273.303L102.59 274.606L102.968 274.231L103.341 274.416L103.719 275.352H103.153L100.895 273.859L100.709 273.489L101.46 272.745L100.895 272.186H100.335L99.3917 271.811L99.5785 271.627H99.9565L100.143 271.442L99.5785 270.697L99.3917 271.252L99.0186 271.442L98.8274 271.252L99.0186 270.697L98.6406 269.762V269.578L99.578 269.203L102.211 270.691L103.339 271.994L104.09 272.37Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M106.351 272.559L106.537 272.744V273.115H105.973L106.351 272.559Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M108.606 270.138V271.625L108.228 272.929L107.668 273.113L107.29 272.929L106.353 271.625L106.54 270.881L105.789 269.578L104.473 268.65L105.975 269.953L106.353 271.066L106.167 271.625L105.416 271.81L104.426 271.53L104.851 271.81L105.038 272.558L104.473 271.999L104.306 271.497L104.1 271.44V271.065L104.286 270.696L103.722 269.578L103.344 269.762L103.722 269.952V271.255H103.158L102.594 270.696H102.785L102.977 270.137L102.599 268.65L102.412 269.394L102.599 269.763L102.412 270.138L101.468 269.953L100.904 269.578V269.209L101.282 268.465L100.904 267.162L100.449 267.01L100.861 266.844L101.004 266.109L101.655 266.228L102.219 266.787L102.597 266.602L104.099 266.972L104.85 266.787L105.974 267.346H106.538L106.725 266.972L107.289 267.346V268.46L106.562 268.052L107.289 268.465L108.606 270.138Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M105.972 272.555L105.408 272.93L105.222 272.555L105.035 271.811L105.786 272L105.972 272.555Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M22.0057 265.11L21.4414 264.55V264.18L21.6282 263.996H22.7577L23.5088 263.437L23.6956 263.622L24.2599 263.437L25.1972 264.181L25.0109 265.295L24.8241 265.669L23.8868 266.039L22.0057 265.11Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M15.2395 249.666L14.6797 249.291V248.921L15.0577 247.803L15.2395 247.434V247.992L16.3681 248.736L17.3119 248.177L17.6849 248.362L18.0629 248.736V249.291L19.0002 250.039L20.5019 250.409L20.1288 251.153L19.3778 250.783L18.8135 251.153L18.2492 250.968L17.1191 249.666L16.3681 249.291H15.995L15.2395 249.666Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M22.5741 243.709L22.3828 243.338L22.7608 243.148L22.9476 243.524L22.5741 243.709Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M14.4863 279.071L14.1133 278.7L14.4863 278.886H14.6776L14.4863 279.071Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M36.8377 285.771H36.4647L36.2734 285.581L36.4647 285.396H36.8377V285.771Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M32.7083 250.408H32.1484L32.3352 250.037H32.7083V250.408Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M35.911 285.955H36.2841V286.324L35.911 286.884L35.16 286.699L34.9688 285.954L35.16 285.77H35.533L35.911 285.955Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M23.3187 290.235L22.9407 290.611L22.7539 290.05L22.9407 289.864H23.3187V290.235Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M23.6934 290.792L23.8846 290.98L23.3203 290.792H23.6934Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M13.5526 275.909L13.1746 276.28L12.9883 276.095V275.909H13.5526Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M26.8863 238.307L26.6953 238.493V238.307H26.8863Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M10.544 261.946L10.3528 261.576L9.79297 260.832L9.97924 260.457L10.1705 261.016L10.3523 261.391L11.1078 261.761L11.2941 261.946H10.544Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.4068 286.141L37.5936 286.885L36.6562 288.004V286.885L36.843 286.7L37.221 286.885L37.4068 286.141Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M31.0156 287.629L31.5799 287.443V287.819L31.3931 288.005L31.0156 287.629Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M30.0774 289.489L30.6417 289.674V289.864H30.0774L29.8906 289.674L30.0774 289.489Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M24.4504 290.608H24.6417V290.796H23.8906L24.4504 290.608Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M33.0877 286.884L33.2745 287.074H32.8965L32.5234 286.699L32.7102 286.514L33.0877 286.884Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-AL\"\n            (mouseenter)=\"onStateHover('AL', false, $event)\"\n            (mouseleave)=\"onStateHover('AL', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['AL'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M337.381 219.666L332.838 220.211L332.747 220.225L327.725 220.803L326.295 220.941V220.946L324.407 221.135L321.59 221.4H321.585L320.686 221.467L317.151 221.779L313.062 222.163V222.168L312.847 223.623L312.971 223.832L313.928 224.865L314.23 225.074L314.282 225.093L314.44 225.121L314.761 225.282L315.181 225.543L315.296 225.728L315.334 225.856L315.349 226.036L315.253 228.415L315.124 229.609L314.516 229.879L313.239 230.329L311.895 230.666L311.541 230.723L310.364 230.794L310.314 230.733L310.802 230.557L312.079 229.752L310.386 226.35L310.266 226.179L310.209 226.13L309.768 225.973L309.639 225.93L309.501 225.881L309.467 225.905L309.037 226.364L308.773 227.961L307.946 229.539L307.396 229.364L306.626 229.35L306.416 229.383L306.32 229.416L306.138 229.605L305.65 225.639L305.302 222.801L305.14 221.545V221.54L304.327 215.228L304.102 213.091L304.164 209.442L304.188 208.552C304.21 207.563 304.233 206.574 304.255 205.585L304.317 201.733L304.331 201.055V201.05L304.398 197.79L304.448 195.083L304.498 192.766L304.589 189.316L304.593 189.004L304.651 186.421V186.416L304.689 184.857L304.718 183.554V183.549L304.809 180.128L303.805 179.067L305.713 178.792L309.094 178.531L312.514 178.27V178.275L312.624 178.266V178.271L315.967 178.038L316.436 177.996V177.986L320.583 177.584H320.65V177.579L324.634 177.195L326.944 176.986V176.991L327.289 178.323L328.011 180.853L328.121 181.228L328.312 181.91L328.317 181.915V181.92L329.073 184.455L329.685 186.654L330.033 187.9L330.22 188.568L330.965 191.225L331.481 193.04L331.649 193.628L332.538 196.812L332.606 197.045L333.342 199.575L333.93 200.869L334.595 202.319L335.48 203.29H335.475L335.733 204.797L335.628 205.186L335.652 205.276L335.71 205.342L336.317 205.503L336.547 205.693L336.638 205.873L336.561 206.214L336.537 206.247L335.537 208.209V208.213L335.561 209.024L335.13 211.36L335.279 211.557L335.289 211.571L336.31 214.092L336.195 216.414L336.096 216.709L336.033 216.989L336.163 217.766L336.259 217.984L336.34 218.033H336.421L336.493 218.053L336.94 218.536L337.007 218.664L337.106 218.877L337.381 219.666Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['AL']['color']\"\n            />\n            <path\n                d=\"M312.874 204.001L315.655 197.701H317.41L320.2 204.001H318.346L316.168 198.574H316.87L314.692 204.001H312.874ZM314.395 202.777L314.854 201.463H317.932L318.391 202.777H314.395ZM320.705 204.001V197.701H322.487V202.588H325.493V204.001H320.705Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['AL']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-AR\"\n            (mouseenter)=\"onStateHover('AR', false, $event)\"\n            (mouseleave)=\"onStateHover('AR', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['AR'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M289.443 170.136L289.338 170.448L289.912 170.685L289.86 171.154L289.264 171.244L289.164 171.509L288.926 171.784L288.391 171.945L288.085 171.896L287.75 172.191L288.027 172.732L288.477 172.519L288.735 172.856L288.597 173.197L287.898 173.633L288.166 173.998L288.29 174.49L287.664 174.367L287.511 174.101L287.171 174.13L287.113 174.642L287.39 174.95L287.266 175.846L287.128 175.86L286.76 175.585L286.587 175.121L286.339 175.357L285.937 175.495L285.975 175.94L286.133 175.902V175.646L286.415 175.533L286.912 175.959L286.687 176.187L286.737 176.381L286.67 176.741L286.206 177.021L286.335 177.215L286.746 177.206L287 177.471L287.076 177.77L286.813 178.182L287.148 178.339L287.119 178.727L286.837 178.949L286.334 178.769L286.167 178.966L285.885 179.828L285.053 179.904L284.943 180.245L284.962 180.397L285.187 181.866L284.183 182.23V182.235L282.8 184.41V184.415L282.924 185.68L283.02 186.661L282.953 186.87L282.944 186.889L282.924 186.903L282.613 187.173L282.222 187.358L281.753 187.453L281.279 187.548L280.418 189.078L280.007 189.913L279.878 190.183L279.911 190.287L279.916 190.311L280.323 190.633L280.418 190.87L280.366 191.234L278.591 192.12L277.86 195.233L277.81 195.484L277.82 195.508L277.877 195.603L278.145 195.807L278.403 196.01V196.02L278.379 196.138L278.221 196.276L277.547 196.541L277.671 196.885L277.685 196.89L278.149 197.203L278.532 197.459L278.603 197.71L278.494 197.928L278.02 198.065L278.479 199.373L278.79 199.932L279.029 200.183L279.058 201.013V201.018L278.766 202.207L278.761 202.216L278.494 202.515L278.417 202.6L277.513 202.633L275.944 202.695L275.715 202.709L270.133 202.932V202.937L264.107 203.098L261.687 203.147V203.142L259.396 203.204L257.081 203.265H256.799L254.192 203.322H254.106L252.006 203.371L251.886 197.543H251.881L251.661 197.363L251.494 197.292L250.609 197.117L250.098 197.192L249.963 197.207L249.92 197.249L249.036 197.695L248.543 197.43L248.409 197.34L248.036 197.103L247.974 197.022L247.906 196.866L247.83 196.676L247.854 193.369V193.359L247.873 190.634L247.922 184.735V184.727L247.946 182.486C247.964 180.849 247.982 179.213 247.999 177.577L248.004 177.387V177.382L247.602 174.753L247.396 173.435H247.391L246.813 169.682H246.818L246.712 169.028L246.172 165.333L250.917 165.257L252.763 165.219V165.214L255.236 165.152L257.599 165.096H257.771V165.091L261.645 164.977L262.368 164.959V164.963L264.501 164.888L267.825 164.75V164.755L268.084 164.741L272.015 164.566L273.967 164.499V164.49L274.34 164.481H274.345L276.803 164.353L279.797 164.187L281.624 164.088L284.743 163.913L284.977 163.899L285.322 163.89L286.106 164.984L286.192 165.098L286.249 165.96L286.154 166.211L286.092 166.309L285.13 167.143H285.125L283.777 169.48L284.475 169.43V169.44L287.383 169.231L289.684 169.046L289.727 169.307L290.153 169.525L290.368 169.734L290.263 170.226L289.602 170.107L289.443 170.136Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['AR']['color']\"\n            />\n            <path\n                d=\"M258.874 186L261.655 179.7H263.41L266.2 186H264.346L262.168 180.573H262.87L260.692 186H258.874ZM260.395 184.776L260.854 183.462H263.932L264.391 184.776H260.395ZM266.705 186V179.7H269.585C270.161 179.7 270.656 179.793 271.07 179.979C271.49 180.165 271.814 180.435 272.042 180.789C272.27 181.137 272.384 181.551 272.384 182.031C272.384 182.505 272.27 182.916 272.042 183.264C271.814 183.606 271.49 183.87 271.07 184.056C270.656 184.236 270.161 184.326 269.585 184.326H267.695L268.487 183.579V186H266.705ZM270.602 186L269.036 183.705H270.935L272.51 186H270.602ZM268.487 183.768L267.695 182.949H269.477C269.849 182.949 270.125 182.868 270.305 182.706C270.491 182.544 270.584 182.319 270.584 182.031C270.584 181.737 270.491 181.509 270.305 181.347C270.125 181.185 269.849 181.104 269.477 181.104H267.695L268.487 180.285V183.768Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['AR']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-AZ\"\n            (mouseenter)=\"onStateHover('AZ', false, $event)\"\n            (mouseleave)=\"onStateHover('AZ', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['AZ'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M120.634 152.213L119.118 163.045L116.961 178.506L115.741 187.197H115.736L113.685 201.84L112.016 213.667L108.515 213.165L98.928 211.772H98.9231L94.1401 211.037L93.0304 210.781L90.6957 209.46V209.455L90.2556 209.204L88.8494 208.398L77.753 202.058L75.5336 200.807L73.7637 199.755V199.76L73.6107 199.665L61.2422 192.301L61.5437 190.993L61.5725 190.95L61.654 190.922L61.8119 190.955L62.2044 190.594L62.5774 190.059L63.5386 190.13L64.8157 189.343L65.2175 188.788L65.299 188.508L65.3849 187.793L65.1122 187.162L65.0625 187.105H65.0576L64.2539 186.972L64.1048 186.906L63.6841 186.611L63.4929 186.108L63.4834 186.089L64.0239 182.782L64.9468 182.554L66.0565 181.26L66.4107 180.03L66.6734 178.741L66.7231 178.386L66.9576 177.552L67.2159 177.109L68.0459 175.954L69.1794 175.528L69.9543 175.21L71.1067 174.552L71.1306 174.538L71.1594 174.064L70.7387 173.329L70.2459 172.788L69.6851 172.119L69.1158 169.75L69.087 169.314L68.4751 168.362L67.9917 167.111L67.9823 167.054L67.9967 166.903L68.2739 165.695L69.0965 164.33L69.1779 164.069L69.2276 163.851L69.237 163.609L69.2991 162.281L69.2847 161.958L69.2082 161.319L69.0935 159.973L69.1988 158.063L69.4377 154.941L69.5475 153.875L69.5569 153.808L69.6766 153.7L69.7626 153.65L70.7476 153.423H71.288L71.7902 153.527L72.9094 153.854L73.0291 153.963L73.2923 154.328L73.3976 154.598L73.417 154.678V154.702L73.4265 154.792L73.4885 154.977L73.6872 155.299L73.7687 155.375L73.8785 155.46L73.9282 155.47L74.1005 155.489L74.6315 155.498H74.641L74.6906 155.47L74.8054 155.337L75.9245 153.844L76.2926 151.93L76.5077 150.83L76.8554 148.855L76.8986 148.637L77.2428 146.841L77.5727 145.149L87.4397 146.97L90.5249 147.512L100.215 149.127V149.132L105.921 150.018L108.126 150.35L109.532 150.624L112.378 151.051L120.634 152.213Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['AZ']['color']\"\n            />\n            <path\n                d=\"M89.874 182L92.655 175.7H94.41L97.2 182H95.346L93.168 176.573H93.87L91.692 182H89.874ZM91.395 180.776L91.854 179.462H94.932L95.391 180.776H91.395ZM97.3902 182V180.884L101.098 176.483L101.314 177.113H97.4712V175.7H102.898V176.816L99.1902 181.217L98.9742 180.587H103.033V182H97.3902Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['AZ']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M18.103 165.316L18.8203 165.966L18.7964 166.331L18.7915 166.397L18.7532 166.407L17.4379 166.558L17.3231 166.563L16.969 166.208L16.9069 166.099L16.4961 165.188L18.103 165.316Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M22.9262 166.346L22.9883 166.436H22.9833L22.9783 166.445L22.9734 166.45L22.6753 166.678L22.5894 166.744L22.5273 166.754L21.0207 166.782L20.6909 166.706L20.3705 166.583L20.2508 166.526L19.9781 166.398L19.7392 166.223L19.7198 166.161L19.543 165.171L19.6051 165.095L19.6577 165.109L20.1311 165.294L20.9825 165.678V165.683L21.3223 165.919L22.2164 166.209L22.2452 166.19L22.2596 166.18L22.2834 166.176L22.3167 166.156L22.3664 166.128L22.3902 166.118L22.6341 166.133L22.9262 166.346Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M30.0329 181.627L30.1322 181.849L30.1084 181.878L29.4244 181.849L28.9892 181.319L28.9316 181.229L28.721 180.56L28.5312 179.371L28.7702 179.452L30.0329 181.627Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M31.8448 176.473L31.8686 176.658L31.8254 176.756L31.7012 176.827H31.6198L30.5101 176.311L30.4386 176.244L29.6492 174.462L29.611 174.434L29.6016 174.353L29.611 174.339L29.6492 174.348L30.1182 174.505L30.6442 174.922L31.0749 175.263L31.3953 175.533L31.8115 176.386L31.8448 176.473Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-CA\"\n            (mouseenter)=\"onStateHover('CA', false, $event)\"\n            (mouseleave)=\"onStateHover('CA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['CA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <!-- CA state -->\n            <path\n                d=\"M71.17 174.066L71.1412 174.539L71.1223 174.554L69.9694 175.212L69.19 175.525L68.0565 175.956H68.0515L67.2289 177.108L66.9706 177.551L66.7362 178.385L66.6865 178.74L66.4232 180.029L66.0646 181.266L64.9599 182.56L64.0414 182.787L63.495 186.09L63.5044 186.109L63.6957 186.616L64.1164 186.911L64.2694 186.977L65.0681 187.11L65.097 187.139L65.1208 187.167L65.3935 187.798L65.3076 188.513L65.2261 188.793L64.8243 189.347L63.5521 190.129L62.586 190.058H62.5303L55.7386 189.261L55.6045 189.247L54.8296 189.152L51.96 188.815L50.7355 188.673L49.8364 188.569L48.9756 188.465L47.2251 188.256L45.4414 188.052L42.921 187.757L40.5059 187.462H40.4532L40.0325 185.647L40.2049 182.955V182.865L40.2143 182.278L40.2193 182.05L40.1095 181.115L40.0663 180.784L39.8894 180.267L39.8706 180.224L39.3778 178.982L39.2288 178.638L39.2049 178.586L39.0062 178.169L38.7082 177.742L38.5264 177.553L38.3302 177.42V177.415L38.2726 177.183L38.1196 176.875L38.0237 176.737L36.3348 174.638L34.9813 172.994L34.6514 172.591L33.9674 172.676L33.2452 172.662L32.9154 172.529L32.7529 172.439L32.1121 172.026L31.9974 171.931L31.9259 171.547L31.9929 171.481L32.1986 171.324L32.3083 171.301L32.361 171.192L32.4186 170.917L32.3516 170.415L32.3083 170.173L32.2845 170.036L32.2319 169.752L32.1459 169.411L32.0217 169.079L32.0123 169.055L31.9979 169.022L31.9929 169.017L31.8971 168.832L31.8777 168.809L31.8012 168.704L31.7773 168.671L31.7535 168.648L31.6005 168.5L31.3755 168.415L30.4953 168.235L29.8063 168.14L29.4382 168.168L28.0812 167.57V167.574L26.8712 166.669L25.5464 164.385L24.6379 163.229L24.4272 162.964L24.3175 162.903L23.6767 162.32L23.1934 162.111L22.7006 162.041H22.5476L22.0216 162.017L20.9119 161.672L20.5294 161.293L19.8837 160.829L19.6204 160.725L18.9458 160.479L18.3766 160.327L17.7214 160.194L16.9703 160.099L16.0713 159.943L14.9184 158.455L14.9949 157.588L15.5591 154.711L15.7553 153.944V153.934H15.7603L15.8989 153.683L15.9133 153.664L16.0519 153.356L16.1617 153.061L16.2143 152.886L16.2526 152.701L16.267 152.652V152.633L16.2863 152.391V152.377L16.2625 152.201L16.2243 152.097L16.1428 152.012L15.8751 151.742L15.8368 151.709L15.7603 151.657L14.9655 149.51L13.4922 146.819L12.5261 145.335L12.3731 145.179L12.2872 145.075L12.1486 144.591L12.1153 143.648L11.8426 143.255L11.3881 142.421L11.4025 142.018L11.4119 141.824L11.4358 141.468L11.3831 141.156L11.3737 141.107L10.3599 138.946L10.1304 138.552L9.69525 138.06L9.57106 137.951H9.5661L9.48016 137.942L9.42999 137.918L9.34406 137.814L9.29141 137.695L9.07632 137.203L8.99983 137.023L8.99039 136.852L9.27253 134.08L9.88947 133.862L9.90884 133.867H10.0474L10.1527 133.818L10.3633 133.661L10.4975 133.528L10.5933 133.415L10.7558 133.164L10.9137 132.856L11.3394 131.951L11.3444 131.823L11.2947 131.425L11.2897 131.401V131.396L11.2277 131.059L11.0935 130.425L10.9977 130.192L10.9117 130.031L10.8352 129.927L10.6629 129.775L10.5814 129.756L10.1507 129.855L9.76827 129.835L9.56957 129.807L9.42999 129.777L9.36294 129.74L9.33065 129.725L9.20646 129.654L9.11556 129.602L8.78077 129.228L8.45094 128.754L8.20257 128.166L7.99196 127.546V127.541L7.9249 127.432L7.69045 127.053L7.37502 126.47L7.33678 126.362L7.35615 125.845L7.4997 123.021L7.76297 121.869L8.08833 120.727V120.719L8.09777 120.554L8.20754 119.933L8.30341 119.876L8.7008 119.795L9.03062 119.819L9.18858 119.857L9.2462 119.942L9.3083 120.131L9.25862 120.78L9.20597 120.937L9.00728 120.986V120.991H8.9879L8.80113 122.1L8.91588 122.28L10.2456 123.664L10.3415 123.721L10.571 123.802L10.7289 123.759L10.7339 123.749L10.7433 121.849L10.0787 119.935L10.2317 119.191L9.90189 118.954L9.58646 118.244L10.6793 118.007L10.8611 117.922L11.0955 117.737L11.1194 117.666L11.1099 117.561L10.2556 116.29V116.285L9.40416 116.518L9.09818 117.309L8.77779 118.309L8.75394 118.394L8.81157 118.484L8.95512 118.659L9.09867 118.892L9.14835 119.015V119.048L8.64119 119.54L8.4117 119.511L8.26814 119.435L8.17227 119.345L5.4651 116.265L5.91464 113.891L5.88583 113.694L5.78996 113.415L5.75668 113.33V113.325L5.21028 111.41L3.43099 108.036L2.89552 107.094L2.5031 106.397L1.91497 105.141L2.38389 100.341L2.4127 100.156L2.43207 100.071L2.59003 99.6821L2.77183 99.2796L2.96307 99.005L3.07285 98.8441L3.21641 98.6964L3.27403 98.6206L3.30284 98.5778L3.31227 98.5685L3.50352 98.2732L3.51792 98.1974L3.68532 97.1029L3.70916 96.8328L3.70419 95.1364L3.69923 95.1079L3.33115 94.132L3.1255 93.6059L2.8672 92.9474V92.9425L2.6854 92.6202L1.04967 89.5356L1 89.3983L1.20565 87.4224L1.23446 87.3732L1.93286 86.3732L2.42561 85.7477L2.61238 85.5346L2.95215 85.1793L3.45434 84.696L4.04744 84.0705L4.37279 83.7295L4.62612 83.4308L4.95148 82.9618L5.31012 82.3412L5.48249 81.9475L5.43927 81.7015L6.47247 79.2704L7.25184 77.4746L7.39042 76.5647L7.41923 75.9441L7.43364 74.7261L7.42867 74.6218L7.4093 74.4938L7.36608 74.3516L7.55732 72.5603L7.8345 71.5322L10.8645 72.4751L13.2414 73.1242V73.1292L15.4941 73.7497H15.5134L16.1016 73.8728L16.9386 74.1759L17.2828 74.2743L17.4884 74.3314L20.1524 75.0799L21.2094 75.3358L22.1706 75.5967L22.4239 75.6774L22.8591 75.8103L29.4308 77.7482V77.7532L33.879 78.9835L35.3379 79.3722H35.3523L38.2333 80.1306L38.5443 80.2113L40.8163 80.7753L38.5686 89.3874L37.6934 92.7708L36.7034 96.6659L36.2107 98.566L36.0527 99.1772L36.0477 99.1866L35.5073 101.215L34.6797 104.299L34.5148 104.922H34.5099L33.7255 107.865V107.87L33.3525 109.229V109.234L32.9412 110.836L32.8026 111.4L32.6879 111.883L33.123 113.518L35.1462 116.527L36.7913 118.958L37.8961 120.588L42.5926 127.587L46.5049 133.382L50.9258 139.955L51.0882 140.201L52.032 141.584L52.5819 142.414L55.4852 146.716L57.8382 150.213L58.1398 150.664L59.4024 152.534L59.5018 152.681L61.2284 155.231L62.9933 157.86L63.6008 158.756L63.8258 159.088L67.0878 163.921L68.2884 165.693L68.0157 166.906L67.9964 167.057L68.0058 167.114L68.4891 168.365L69.1011 169.313L69.1344 169.756L69.6987 172.125L70.2629 172.793L70.7507 173.329L71.17 174.066Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['CA']['color']\"\n            />\n            <!-- CA name -->\n            <path\n                d=\"M24.771 137.126C24.273 137.126 23.811 137.048 23.385 136.892C22.965 136.73 22.599 136.502 22.287 136.208C21.981 135.914 21.741 135.569 21.567 135.173C21.393 134.771 21.306 134.33 21.306 133.85C21.306 133.37 21.393 132.932 21.567 132.536C21.741 132.134 21.981 131.786 22.287 131.492C22.599 131.198 22.965 130.973 23.385 130.817C23.811 130.655 24.273 130.574 24.771 130.574C25.353 130.574 25.872 130.676 26.328 130.88C26.79 131.084 27.174 131.378 27.48 131.762L26.346 132.788C26.142 132.548 25.917 132.365 25.671 132.239C25.431 132.113 25.161 132.05 24.861 132.05C24.603 132.05 24.366 132.092 24.15 132.176C23.934 132.26 23.748 132.383 23.592 132.545C23.442 132.701 23.322 132.89 23.232 133.112C23.148 133.334 23.106 133.58 23.106 133.85C23.106 134.12 23.148 134.366 23.232 134.588C23.322 134.81 23.442 135.002 23.592 135.164C23.748 135.32 23.934 135.44 24.15 135.524C24.366 135.608 24.603 135.65 24.861 135.65C25.161 135.65 25.431 135.587 25.671 135.461C25.917 135.335 26.142 135.152 26.346 134.912L27.48 135.938C27.174 136.316 26.79 136.61 26.328 136.82C25.872 137.024 25.353 137.126 24.771 137.126ZM27.4131 137L30.1941 130.7H31.9491L34.7391 137H32.8851L30.7071 131.573H31.4091L29.2311 137H27.4131ZM28.9341 135.776L29.3931 134.462H32.4711L32.9301 135.776H28.9341Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['CA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-CO\"\n            (mouseenter)=\"onStateHover('CO', false, $event)\"\n            (mouseleave)=\"onStateHover('CO', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['CO'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M183.95 117.159L183.912 117.732L183.726 120.557H183.731L183.664 121.552L183.42 125.341L183.133 130.042V130.108L182.845 134.882L182.793 135.83L182.558 139.658L182.496 140.559L182.262 144.359H182.257L182.252 144.426L181.908 150.169L181.846 151.202L181.659 153.993L181.382 158.338L178.656 158.143L174.135 157.779L173.031 157.694L172.303 157.637V157.646L164.287 157.055L157.994 156.531L155.664 156.318L154.323 156.171V156.166L153.754 156.109L149.435 155.677L146.938 155.422L142.865 155.005L141.641 154.877L139.45 154.64L138.331 154.422L134.691 153.995L134.166 153.933V153.928L126.398 152.966L120.645 152.203L121.396 146.92L122.003 142.612H122.008L122.414 139.655L122.792 135.86H122.797L123.132 133.467L123.462 131.463L123.524 131.046L123.816 129.07L124.184 126.445V126.44L124.382 125.018L124.626 123.247L125.483 117.134L126.157 112.447L126.669 108.676L133.207 109.548L135.928 109.87V109.875L140.85 110.463L144.625 110.899L149.021 111.429L150.087 111.557H150.092L157.593 112.316L160.333 112.581V112.576L167.656 113.192L171.588 113.509H171.593V113.514L173.166 113.633L179.169 114.071V114.066L179.437 114.08V114.085L184.124 114.393L183.95 117.159Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['CO']['color']\"\n            />\n            <path\n                d=\"M149.771 138.126C149.273 138.126 148.811 138.048 148.385 137.892C147.965 137.73 147.599 137.502 147.287 137.208C146.981 136.914 146.741 136.569 146.567 136.173C146.393 135.771 146.306 135.33 146.306 134.85C146.306 134.37 146.393 133.932 146.567 133.536C146.741 133.134 146.981 132.786 147.287 132.492C147.599 132.198 147.965 131.973 148.385 131.817C148.811 131.655 149.273 131.574 149.771 131.574C150.353 131.574 150.872 131.676 151.328 131.88C151.79 132.084 152.174 132.378 152.48 132.762L151.346 133.788C151.142 133.548 150.917 133.365 150.671 133.239C150.431 133.113 150.161 133.05 149.861 133.05C149.603 133.05 149.366 133.092 149.15 133.176C148.934 133.26 148.748 133.383 148.592 133.545C148.442 133.701 148.322 133.89 148.232 134.112C148.148 134.334 148.106 134.58 148.106 134.85C148.106 135.12 148.148 135.366 148.232 135.588C148.322 135.81 148.442 136.002 148.592 136.164C148.748 136.32 148.934 136.44 149.15 136.524C149.366 136.608 149.603 136.65 149.861 136.65C150.161 136.65 150.431 136.587 150.671 136.461C150.917 136.335 151.142 136.152 151.346 135.912L152.48 136.938C152.174 137.316 151.79 137.61 151.328 137.82C150.872 138.024 150.353 138.126 149.771 138.126ZM156.32 138.126C155.816 138.126 155.351 138.045 154.925 137.883C154.499 137.721 154.127 137.493 153.809 137.199C153.497 136.899 153.254 136.551 153.08 136.155C152.906 135.759 152.819 135.324 152.819 134.85C152.819 134.376 152.906 133.941 153.08 133.545C153.254 133.149 153.497 132.804 153.809 132.51C154.127 132.21 154.499 131.979 154.925 131.817C155.351 131.655 155.816 131.574 156.32 131.574C156.83 131.574 157.295 131.655 157.715 131.817C158.141 131.979 158.51 132.21 158.822 132.51C159.134 132.804 159.377 133.149 159.551 133.545C159.731 133.941 159.821 134.376 159.821 134.85C159.821 135.324 159.731 135.762 159.551 136.164C159.377 136.56 159.134 136.905 158.822 137.199C158.51 137.493 158.141 137.721 157.715 137.883C157.295 138.045 156.83 138.126 156.32 138.126ZM156.32 136.65C156.56 136.65 156.782 136.608 156.986 136.524C157.196 136.44 157.376 136.32 157.526 136.164C157.682 136.002 157.802 135.81 157.886 135.588C157.976 135.366 158.021 135.12 158.021 134.85C158.021 134.574 157.976 134.328 157.886 134.112C157.802 133.89 157.682 133.701 157.526 133.545C157.376 133.383 157.196 133.26 156.986 133.176C156.782 133.092 156.56 133.05 156.32 133.05C156.08 133.05 155.855 133.092 155.645 133.176C155.441 133.26 155.261 133.383 155.105 133.545C154.955 133.701 154.835 133.89 154.745 134.112C154.661 134.328 154.619 134.574 154.619 134.85C154.619 135.12 154.661 135.366 154.745 135.588C154.835 135.81 154.955 136.002 155.105 136.164C155.261 136.32 155.441 136.44 155.645 136.524C155.855 136.608 156.08 136.65 156.32 136.65Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['CO']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M429.671 88.0992L429.795 88.0498L429.766 88.1925L429.608 88.3065L429.388 88.4679L429.283 88.6579H429.173L428.996 88.7483L429.087 88.463L429.178 88.458L429.228 88.501L429.29 88.3252L429.572 88.1732L429.671 88.0992Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-CT\"\n            (mouseenter)=\"onStateHover('CT', false, $event)\"\n            (mouseleave)=\"onStateHover('CT', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['CT'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M430.33 86.4791L430.196 86.6449L430.22 86.7965L430.32 86.9195L430.338 87.1282L430.434 87.2561L430.453 87.3605L430.343 87.5027L430.291 87.5406L430.241 87.6356L429.997 87.5371L429.524 87.6794L429.222 87.921L429.055 88.0489L428.438 88.1198L428.28 88.4151L428.065 88.4643L427.84 88.4313L427.701 88.327L427.558 88.3841L427.563 88.6828L427.146 88.8722L426.716 89.043L426.635 89.0524L426.553 89.0381L425.037 89.6586L424.613 89.6286L424.345 89.6951L423.236 90.0267L422.547 90.3156L422.169 90.3678L421.992 90.1498L421.925 90.1783L420.987 91.261L420.863 91.4362L420.71 91.7157L420.701 91.7585V91.7728L420.146 91.9204L418.755 92.9627L416.847 94.5689L416.797 94.659L416.773 94.7776L415.917 93.6782L416.513 93.0764L417.594 91.9676L416.824 91.2664L416.69 90.4987L416.388 88.7551V88.7502L416.125 87.2384H416.13L415.379 83.0973L418.832 82.3724V82.3773L419.186 82.2966L420.707 81.9413L420.817 82.3582L421.21 82.2396L421.233 81.8129L423.137 81.3675L426.093 80.6756L426.361 80.6235L426.7 80.5526L428.752 80.0693L428.805 80.2303L429.671 83.2154L429.91 84.1155H429.905L430.029 84.5751L430.488 86.4422L430.45 86.4752L430.33 86.4791Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['CT']['color']\"\n            />\n            <path\n                d=\"M432.771 99.126C432.273 99.126 431.811 99.048 431.385 98.892C430.965 98.73 430.599 98.502 430.287 98.208C429.981 97.914 429.741 97.569 429.567 97.173C429.393 96.771 429.306 96.33 429.306 95.85C429.306 95.37 429.393 94.932 429.567 94.536C429.741 94.134 429.981 93.786 430.287 93.492C430.599 93.198 430.965 92.973 431.385 92.817C431.811 92.655 432.273 92.574 432.771 92.574C433.353 92.574 433.872 92.676 434.328 92.88C434.79 93.084 435.174 93.378 435.48 93.762L434.346 94.788C434.142 94.548 433.917 94.365 433.671 94.239C433.431 94.113 433.161 94.05 432.861 94.05C432.603 94.05 432.366 94.092 432.15 94.176C431.934 94.26 431.748 94.383 431.592 94.545C431.442 94.701 431.322 94.89 431.232 95.112C431.148 95.334 431.106 95.58 431.106 95.85C431.106 96.12 431.148 96.366 431.232 96.588C431.322 96.81 431.442 97.002 431.592 97.164C431.748 97.32 431.934 97.44 432.15 97.524C432.366 97.608 432.603 97.65 432.861 97.65C433.161 97.65 433.431 97.587 433.671 97.461C433.917 97.335 434.142 97.152 434.346 96.912L435.48 97.938C435.174 98.316 434.79 98.61 434.328 98.82C433.872 99.024 433.353 99.126 432.771 99.126ZM437.563 99V94.113H435.628V92.7H441.271V94.113H439.345V99H437.563Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['CT']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-DE\"\n            (mouseenter)=\"onStateHover('DE', false, $event)\"\n            (mouseleave)=\"onStateHover('DE', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['DE'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M411.739 124.491L409.3 125.021L409.175 125.05L408.85 125.121L408.716 125.145L408.601 125.168L408.568 125.173L408.137 125.254L407.965 125.287L407.214 125.429H407.184L406.596 125.528L406.338 125.571L406.238 125.226L406.147 124.918L406.033 124.506L405.808 123.724V123.714L405.224 121.658L403.976 117.251L403.823 116.715L403.579 115.863L403.355 115.019L402.795 112.952L402.781 112.9L402.761 112.848L402.747 112.799L402.713 112.694L402.704 112.642L402.69 112.59L402.685 112.533L402.594 112.201L402.675 112.173L402.732 111.917L402.771 111.798L402.82 111.68L402.87 111.566L402.932 111.452L402.994 111.348L403.066 111.25L403.142 111.155L403.228 111.06L403.324 110.974L403.423 110.894L403.533 110.818L403.648 110.747L403.772 110.681L403.906 110.619L404.011 110.581L404.122 110.548L404.227 110.525L404.326 110.51L404.426 110.496L404.525 110.491H404.621L404.72 110.496L404.816 110.505L404.907 110.52L405.003 110.539L405.185 110.588L405.276 110.617L405.457 110.683L405.175 111.02L404.877 111.631L404.786 112.058L404.609 112.418L404.413 112.607L404.337 112.782L404.304 112.92L404.356 113.185L404.849 113.446L404.767 114.266L404.853 114.569L405.179 114.82L405.705 115.535L406.432 115.962L406.8 116.431L406.867 116.526L407.073 117.042L407.097 117.222L407.03 117.521L407.341 118.606L407.819 118.829L408.149 119.099L408.34 119.611L408.407 119.906L408.498 120.015L409.263 120.621L409.698 120.948L410.004 121.067L410.229 121.11L410.396 121.06L410.516 120.965L410.535 120.904L410.751 121.349L411.267 122.837L411.645 124.121L411.739 124.491Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['DE']['color']\"\n            />\n            <path\n                d=\"M416.63 127V120.7H419.609C420.305 120.7 420.917 120.829 421.445 121.087C421.973 121.345 422.384 121.708 422.678 122.176C422.978 122.644 423.128 123.202 423.128 123.85C423.128 124.492 422.978 125.05 422.678 125.524C422.384 125.992 421.973 126.355 421.445 126.613C420.917 126.871 420.305 127 419.609 127H416.63ZM418.412 125.578H419.537C419.897 125.578 420.209 125.512 420.473 125.38C420.743 125.242 420.953 125.044 421.103 124.786C421.253 124.522 421.328 124.21 421.328 123.85C421.328 123.484 421.253 123.172 421.103 122.914C420.953 122.656 420.743 122.461 420.473 122.329C420.209 122.191 419.897 122.122 419.537 122.122H418.412V125.578ZM425.704 123.139H428.629V124.471H425.704V123.139ZM425.83 125.623H429.124V127H424.066V120.7H429.007V122.077H425.83V125.623Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['DE']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <path\n            d=\"M404.75 112.73L404.813 112.998L404.663 113.017L404.625 112.792L404.75 112.73Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M369.505 261.558L369.5 261.549L370.696 261.439L370.466 261.558L370.437 261.608L370.012 261.674L369.901 261.576H369.878L369.815 261.68L369.753 261.89L369.772 262.156L369.657 262.189L369.619 261.893L369.57 261.745L369.52 261.602L369.505 261.558Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M374.546 284.762L374.613 285.17L374.135 285.242L374.035 285.047L374.203 284.785L374.546 284.762Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M372.056 264.662L372.563 264.757V264.78L372.123 265.141L372.013 265.193L371.936 265.202L371.778 265.193L371.477 265.113L370.975 264.847L370.932 264.809L370.882 264.767L370.805 264.634L369.792 262.781L369.672 262.411L369.868 262.303L369.95 262.762L370.877 264.485L371.007 264.604L371.188 264.708L371.824 264.86L371.92 264.727L372.056 264.662Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M386.28 280.847L386.333 280.961L386.283 281.023L385.757 281.269L385.322 281.663L384.743 282.057L384.404 282.218L384.184 282.09L384.265 281.995L384.246 281.962L385.09 281.487L386.267 280.838L386.28 280.847Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M382.437 282.8L382.466 282.894L382.284 283.013L381.691 283.302L380.687 283.378L380.634 283.165L380.423 283.207L380.428 283.653L380.137 283.729L379.214 284.259L378.568 284.653L377.889 284.686L377.645 284.743L377.621 284.724L377.578 284.549L377.597 284.478L377.746 284.281L378.201 284.167L378.291 284.158L378.344 284.214L378.394 284.229L378.741 284.068L378.885 283.987L379.268 283.67L379.746 283.191L379.755 283.077L379.865 282.954L380.104 282.921L380.303 282.656L380.585 282.551L380.81 282.561L380.819 282.163L381.025 282.31L381.231 282.113L381.57 282.279L381.781 282.346L382.25 282.478L382.307 282.706L382.437 282.8Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M382.486 282.003L382.506 282.212L382.032 282.131L381.707 282.046L381.779 281.927L382.09 281.761L382.486 282.003Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M383.038 282.599L383.081 282.775L382.676 282.885L382.805 282.599L383.038 282.599Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-FL\"\n            (mouseenter)=\"onStateHover('FL', false, $event)\"\n            (mouseleave)=\"onStateHover('FL', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['FL'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M388.672 275.63L388.519 276.261L388.122 276.545L387.701 276.594L387.596 276.879L387.332 276.928L387.117 276.691L386.199 276.573H386.194L385.601 277.047L384.802 277.359L384.007 277.544L383.844 277.477L383.409 277.226L383.318 277.16L382.912 276.586L382.883 276.335L382.902 275.857L382.941 275.473L382.965 275.383L383.032 275.278L383.089 275.25L383.218 275.278L383.242 275.208L383.232 275.098L382.821 274.814L382.539 274.026L381.992 273.682L382.122 273.397L381.399 272.307L380.704 271.635L380.369 271.536L380.226 270.7V270.695L380.159 270.567L380.109 270.515L379.645 270.259L379.397 270.16L379.325 270.137L378.368 269.933H378.249L377.101 270.146L377.005 270.208L376.923 270.306L376.914 270.42L376.885 270.623L376.847 270.756L376.78 270.747L376.727 270.69L376.108 269.805L375.242 268.345L375.137 267.942L375.07 267.672L374.817 266.791L374.602 266.194L374.434 265.857L374.429 265.848L374.42 265.843L374.109 265.355L373.612 264.895L372.929 264.462L372.551 264.401L372.527 264.211L372.097 264.074L371.948 264.216L371.904 264.453L371.565 264.524L371.538 264.195L371.022 262.949L370.587 262.589L370.505 262.338L371.042 262.226L371.448 262.62L371.587 261.402L371.606 261.103L371.497 260.506L371.415 260.17L371.142 260.146L371.066 259.757L371.324 259.659L371.29 259.54L371.147 259.469L370.841 259.527L370.755 259.576L370.296 259.983L370.246 260.054L370.696 260.926L370.701 261.438L369.5 261.552L368.243 260.03H368.233L366.495 257.422L366.395 257.28L366.246 257.086L366.155 256.958L365.715 256.422L365.467 256.171L364.945 255.655L364.39 255.138L364.079 254.57L364.333 254.456L364.668 254.238L365.308 253.215L365.347 253.134L365.414 252.807H365.409L366.389 251.362L366.409 251.319L366.624 250.802L366.673 250.523L366.515 250.049L366.377 249.869L365.947 249.849L365.612 249.679L365.669 250.368L365.818 250.533L365.847 250.822L365.46 250.855L365.067 250.557L365.192 250.344L364.924 249.359H364.576L364.285 249.416L364.012 249.492V249.497L363.361 249.672L363.328 249.705L363.304 249.79L363.362 249.913L363.476 249.984L363.73 250.098L364.208 250.017L364.246 250.32L364.524 250.439L364.915 250.273L364.968 250.548L364.681 250.704L364.839 251.017L364.499 251.533L364.595 252.04L364.413 252.344L363.753 252.519L363.777 252.87L363.911 253.007L364.01 253.302L363.69 253.397L363.537 252.398L363.121 251.767L362.48 251.213L362.054 250.516L362.494 249.796L362.499 249.772L362.549 249.208L362.578 248.72L362.482 247.948L362.405 247.768L362.353 247.697L362.185 247.502C362.459 246.512 362.733 245.522 363.008 244.532L362.922 241.689L362.764 240.073L362.702 239.728L362.635 239.591L361.367 238.629L361.387 238.269L361.287 237.98L360.699 237.719L360.943 237.416L360.719 237.046L360.484 236.948L358.944 237.057L358.705 237.455L358.375 237.412L357.959 236.237L357.06 235.991L356.888 235.394L356.557 234.891L356.371 234.631L356.141 234.522H355.912L355.465 234.325L354.714 233.941L354.494 233.822L354.474 233.761L354.168 232.24H354.163L353.838 232.159L352.891 231.78L352.785 231.69L352.699 231.586L352.37 231.14V231.088L352.307 230.884L352.193 230.719L351.705 230.145L351.274 229.847L351.193 229.797L350.155 229.347L349.591 229.186L348.706 228.792L348.089 228.437L348.094 228.432L347.277 228.409V228.414L345.674 228.636L344.804 229.063L344.655 229.144L344.631 229.513L344.717 229.907L344.741 229.936L344.946 230.177L345.013 230.367L345.042 230.471L345.066 230.552L345.071 230.566L345.062 230.685L345.009 230.836L344.956 230.869L344.684 230.95L344.244 230.893L344.138 230.869L344.039 230.798L343.943 230.642L343.388 230.846L343.173 230.944L341.8 231.991L341.178 232.502L340.632 232.9L340.12 233.227L339.087 233.554L338.676 233.644L338.331 233.592L338.054 233.625L337.868 233.682L336.987 234.009L336.982 234.018L336.083 234.089L336.059 233.007L336.031 232.888L335.892 232.656L335.342 231.967L335.113 231.754L335.074 231.725V231.72L334.085 231.419L333.87 231.334L333.803 231.291L333.54 231.106L333.21 230.803L331.129 229.609L330.98 229.528L330.871 229.467L330.765 229.41L330.602 229.329L330.239 229.144L330.09 229.073L329.966 229.016L329.817 228.954L329.64 228.874L329.487 228.817L328.919 228.614V228.609L324.995 227.813L321.183 228.098V228.103L320.078 228.382L317.892 229.057L317.81 229.076L317.753 229.09L317.423 229.175L316.844 229.289L315.371 229.633L314.51 229.88L315.113 229.609L315.242 228.415L315.338 226.037L315.323 225.856L315.29 225.729L315.175 225.543L314.75 225.283L314.429 225.117L314.271 225.088L314.219 225.069L313.921 224.865L312.96 223.832L312.84 223.623L313.05 222.168L317.14 221.785L320.674 221.472V221.467L321.578 221.401L324.395 221.136H324.4L326.285 220.946L327.71 220.804L332.732 220.226V220.231L332.828 220.216L337.371 219.667L339.031 222.642H339.04L343.598 222.339L344.542 222.273L346.407 222.145L347.13 222.096V222.091L349.621 221.925L350.869 221.844L353.275 221.678V221.683L353.73 221.655L353.739 221.66L355.36 221.546L359.589 221.257L360.593 221.186L361.77 221.101L362.152 221.073L364.079 220.954L364.357 222.48L364.452 222.721L364.629 222.972L364.821 223.124L364.883 223.138L365.959 222.934L366.009 222.181L366.061 221.432L366.052 220.707L365.932 220.371L365.641 219.996L365.497 219.778L365.454 219.551L365.535 218.376L366.564 217.785L366.965 218.05L368.429 218.363L369.534 218.486L370.117 218.457L370.921 218.359L371.064 218.345V218.35L371.409 220.491V220.496H371.414L371.595 220.615L371.758 220.752L372.026 221.61L372.136 222.254L372.241 222.642L372.347 222.955L372.437 223.168L373.58 226.111L374.388 228.02L374.402 228.058L374.522 228.3L374.613 228.489L374.996 229.181L376.464 231.631L377.186 232.825L377.774 233.721L378.229 234.417L378.497 234.782L379.305 235.758L381.079 237.881L382.829 239.729L382.849 239.753L382.925 239.829L382.94 239.852L383.638 241.118V241.203L383.318 241.411L383.227 241.53L383.128 241.734L383.118 241.786L383.113 241.8L383.079 241.966L383.06 242.261L383.075 242.565L383.104 242.835L383.238 243.404L383.515 244.233L383.893 245.076L384.151 245.545L384.362 245.868L384.649 246.299L384.663 246.327L385.453 247.398L385.458 247.393L387.208 250.421L387.213 250.426L388.93 253.364L390.624 256.288L390.796 256.662L390.987 257.065L391.15 257.416L391.409 258.06L391.571 259.075L391.705 260.023L391.755 260.487L391.864 263.012L391.85 263.183H391.845L392.051 266.923H392.046L392.055 266.952L392.155 267.554L392.269 268.35L392.289 268.596L392.313 269.093L392.26 269.339L392.21 269.448L392.148 269.661L392.143 270.424L391.914 270.258L391.891 269.608L391.795 269.466L391.671 269.504L391.379 269.679L391.283 269.783L391.259 269.868L390.752 271.958L390.702 272.328L390.74 272.551L391.018 273.385L391.08 273.446H391.185L391.235 273.498L391.22 273.621L391.029 274.029L390.613 274.645L390.593 274.669L390.33 274.958L390.34 275.28L389.981 275.337L389.775 275.56L389.598 275.904L389.058 275.601L388.672 275.63Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['FL']['color']\"\n            />\n            <path\n                d=\"M374.286 251.463H377.193V252.84H374.286V251.463ZM374.412 255H372.63V248.7H377.571V250.077H374.412V255ZM378.404 255V248.7H380.186V253.587H383.192V255H378.404Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['FL']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M388.213 279.359L388.29 279.409L388.175 279.645L387.773 280.006L387.376 280.347L386.888 280.522L386.845 280.532L386.84 280.522L386.883 280.47L387.356 280.005L388.213 279.359Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M392.381 272.232L392.204 273.029L391.94 273.791V273.796H391.935L391.878 273.839L391.734 274.104L391.141 275.621L391.122 275.687L391.194 275.844L391.132 276.014L390.988 276.298L390.293 277.113L389.905 277.729L389.413 278.426L389.363 278.483L388.579 279.221L388.555 279.197V279.188L388.56 279.136L388.875 278.662L389.095 278.472L389.33 278.288L389.339 277.923L389.554 277.946L389.852 277.586L390.039 277.074L390.053 276.999L389.755 276.885L389.789 276.748L390.186 276.961L390.377 276.8L390.224 276.411L390.535 276.382L390.708 276.136L390.597 275.857L391.032 275.454L391.009 275L390.731 274.81L391.219 274.521L391.702 273.749L391.807 273.242L392.18 271.991L392.257 271.858H392.3L392.381 272.232Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-GA\"\n            (mouseenter)=\"onStateHover('GA', false, $event)\"\n            (mouseleave)=\"onStateHover('GA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['GA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M374.427 203.448V203.546L374.393 203.712L374.294 203.935L372.754 206.396L372.687 206.49L372.256 206.983L372.189 207.011L371.978 206.962V206.967L371.625 207.043L371.591 207.123L371.778 207.289L372.026 207.36L372.083 207.327L372.098 207.275L372.121 207.261L372.212 207.241L372.294 207.27L372.361 207.72L372.399 208.057L372.241 208.663L372.15 208.838L372.093 208.853L371.94 208.748L371.696 211.809H371.691L370.51 215.057C370.695 216.155 370.88 217.253 371.064 218.351L370.921 218.365L370.122 218.459L369.539 218.488L368.429 218.365L366.966 218.052L366.564 217.787L365.541 218.377L365.459 219.552L365.498 219.775L365.647 219.998L365.934 220.373L366.058 220.704L366.067 221.434L366.015 222.178L365.965 222.932L364.889 223.14L364.827 223.126L364.63 222.975L364.453 222.724L364.363 222.482L364.085 220.956L362.153 221.07V221.075L361.77 221.104L360.593 221.189V221.184L359.594 221.255L355.361 221.544L353.731 221.657L353.276 221.686L353.267 221.681L350.87 221.847L349.622 221.922V221.927L347.13 222.098L346.408 222.147V222.142L344.543 222.275L343.605 222.337V222.342L339.047 222.645L338.948 222.432L338.962 222.257L338.943 222.432L339.042 222.645H339.033L337.376 219.667L337.098 218.88L336.993 218.662L336.926 218.534L336.479 218.05L336.407 218.031H336.328L336.246 217.982L336.15 217.764L336.021 216.992L336.088 216.707L336.188 216.419L336.302 214.097L335.284 211.576L335.116 211.358L335.551 209.022L335.527 208.207L336.527 206.25L336.546 206.217L336.623 205.872L336.532 205.692L336.307 205.503L335.695 205.342L335.637 205.275L335.618 205.185L335.717 204.797H335.722L335.464 203.3L334.589 202.325L333.925 200.879L333.341 199.581H333.336L332.599 197.046L332.532 196.819L331.638 193.63H331.643L331.476 193.047L330.959 191.232H330.964L330.219 188.575L330.033 187.906L329.678 186.665V186.66L329.066 184.461H329.062L328.31 181.926L328.114 181.237L328.004 180.863L327.282 178.328L326.938 176.996L328.119 176.873L329.085 176.775L329.96 176.656L332.493 176.339V176.344H332.522V176.339L334 176.163V176.159L334.306 176.121L335.678 175.955V175.96L338.342 175.637L340.055 175.44L341.155 175.303L341.767 175.222L345.194 174.725L345.778 174.635L349.093 174.118L348.901 174.985L348.084 175.611L347.496 176.672L347.347 177.497L347.352 177.502L347.528 177.797L349.81 179.185L350.36 179.564L350.92 179.64L351.015 179.588H351.025L351.384 179.502L351.704 179.46L351.895 179.512L351.986 179.583L351.981 179.611L352.283 180.066L353.234 181.398L353.574 182.27L355.172 184.222L355.545 184.786L355.55 184.791L356.908 185.587L356.965 185.601L357.089 185.552H357.133L357.917 185.946L358.156 186.112L358.72 186.571L359.084 187.254L360.141 188.173L361.031 188.543V188.548L361.18 188.685L361.256 188.756L361.687 189.158L362.299 189.865L362.514 190.689L363.107 191.523L363.112 191.528L363.964 192.163L365.499 192.873L366.25 193.286H366.255L368.001 196.347L368.398 197.939L369.359 198.318L369.536 198.384L370.354 199.053L371.33 201.014L371.449 201.583V201.592L371.499 201.805L371.585 202.236L371.705 202.71L371.748 202.753L372.269 202.95L373.977 203.267L374.297 203.3L374.383 203.314L374.427 203.448Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['GA']['color']\"\n            />\n            <path\n                d=\"M347.78 202.126C347.282 202.126 346.82 202.048 346.394 201.892C345.968 201.73 345.599 201.502 345.287 201.208C344.981 200.914 344.741 200.569 344.567 200.173C344.393 199.771 344.306 199.33 344.306 198.85C344.306 198.37 344.393 197.932 344.567 197.536C344.741 197.134 344.984 196.786 345.296 196.492C345.608 196.198 345.977 195.973 346.403 195.817C346.835 195.655 347.306 195.574 347.816 195.574C348.41 195.574 348.941 195.673 349.409 195.871C349.877 196.069 350.264 196.354 350.57 196.726L349.436 197.752C349.22 197.518 348.986 197.344 348.734 197.23C348.488 197.11 348.212 197.05 347.906 197.05C347.636 197.05 347.39 197.092 347.168 197.176C346.946 197.26 346.757 197.383 346.601 197.545C346.445 197.701 346.322 197.89 346.232 198.112C346.148 198.328 346.106 198.574 346.106 198.85C346.106 199.114 346.148 199.357 346.232 199.579C346.322 199.801 346.445 199.993 346.601 200.155C346.757 200.311 346.943 200.434 347.159 200.524C347.381 200.608 347.624 200.65 347.888 200.65C348.152 200.65 348.41 200.608 348.662 200.524C348.914 200.434 349.169 200.284 349.427 200.074L350.426 201.325C350.066 201.583 349.649 201.781 349.175 201.919C348.701 202.057 348.236 202.126 347.78 202.126ZM348.851 201.091V198.715H350.426V201.325L348.851 201.091ZM350.8 202L353.581 195.7H355.336L358.126 202H356.272L354.094 196.573H354.796L352.618 202H350.8ZM352.321 200.776L352.78 199.462H355.858L356.317 200.776H352.321Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['GA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n\n        <path\n            d=\"M125.471 264.445H125.953L125.791 265.56L124.987 265.877L124.504 266.674H124.346L124.184 266.513L124.346 265.56L125.307 264.925L125.471 264.445Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <g\n            class=\"zoomable-state state-HI\"\n            (mouseenter)=\"onStateHover('HI', false, $event)\"\n            (mouseleave)=\"onStateHover('HI', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['HI'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M181.834 287.84L181.513 288.475L179.748 290.067L178.304 290.863L177.017 291.024L175.573 292.133L174.769 292.611L173.645 294.683L173.325 295L172.684 294.521L171.077 293.886L170.752 293.407L170.594 293.09L170.752 290.545L169.628 287.839L168.987 287.199L168.504 286.564L168.666 286.086L169.628 285.133L170.752 283.702V283.067L169.948 281.952L169.79 281.317L169.948 280.682L170.274 280.521L171.235 280.682L171.555 281.156L173.004 281.796L174.769 282.113L176.696 282.909L177.983 283.705L178.624 284.501L178.786 285.771L179.585 285.615L179.91 286.089V286.729L180.709 287.363L181.834 287.84Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['HI']['color']\"\n            />\n\n            <path\n                d=\"M161.842 284.7H163.624V291H161.842V284.7ZM159.412 291H157.63V284.7H159.412V291ZM161.968 288.543H159.286V287.067H161.968V288.543ZM164.881 291V284.7H166.663V291H164.881Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['HI']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n\n            <path\n                d=\"M168.518 275.905L167.877 276.54L167.073 276.858L165.466 277.498H164.342L164.022 277.337L163.701 275.426L163.219 275.27L162.898 275.583L161.932 275.109L161.291 274.469L161.129 273.834L161.454 273.199L161.612 272.882H162.096L162.579 273.038L163.383 274.313L164.985 273.517L165.951 273.678V273.834L167.233 274.631L168.357 274.953L168.52 275.27L168.518 275.905Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['HI']['color']\"\n            />\n\n            <path\n                d=\"M150.525 270.338L151.008 270.495L150.362 270.974V270.813L149.401 271.13L148.597 270.656L146.99 270.813L146.349 270.974L146.029 270.178L145.546 269.86L145.388 269.381L144.905 268.903V268.425L144.422 268.112L146.029 267.79L146.833 266.676L147.311 266.358L147.794 266.515L148.598 267.951H148.756L148.918 268.268L148.756 268.586L148.918 269.06L149.559 269.543L149.721 269.06H150.042V269.543L150.362 269.699L150.525 270.338Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['HI']['color']\"\n            />\n\n            <path\n                d=\"M133.508 261.902L133.666 262.376V262.698L133.346 263.495V264.447L132.705 265.082L132.222 265.404L130.615 265.243L129.974 264.608L129.013 264.286L128.688 263.969V263.495L129.171 262.855L130.778 261.585H133.025L133.508 261.902Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['HI']['color']\"\n            />\n        </g>\n        <path\n            d=\"M159.669 274.792L159.989 275.27L159.831 275.905L158.387 276.385L158.225 275.744L158.067 275.27L157.426 274.63V274.469L157.904 274.312H159.028L159.669 274.792Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <path\n            d=\"M160.154 271.289L160.795 271.45L160.475 272.085L159.514 272.72H159.029L157.102 272.402L154.854 272.563H154.691L155.175 271.288H155.337L157.585 271.449L158.709 271.61V271.605L160.154 271.289Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M162.888 277.654L163.046 278.289L161.764 278.612L161.281 278.451L161.602 277.977L162.726 277.498L162.888 277.654Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <g\n            class=\"zoomable-state state-IA\"\n            (mouseenter)=\"onStateHover('IA', false, $event)\"\n            (mouseleave)=\"onStateHover('IA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['IA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M281.635 104.356L280.998 105.986L280.42 106.63L280.296 107.815L279.87 108.383L279.382 108.947L277.828 109.71L277.168 109.876L276.885 109.885L276.766 109.871H276.264L275.111 110.179L274.8 110.293L274.714 110.349H274.705L274.648 110.43L274.643 110.453L274.528 110.918L274.432 111.297L274.198 112.225L274.207 112.315V112.324L274.767 112.987L275.03 113.12L275.14 113.106L275.208 113.134L275.275 113.205L275.662 113.831L275.657 114.096L275.662 114.129L275.691 114.224L275.734 114.519L275.7 115.405L275.629 115.727L275.586 115.798L275.347 115.931L275.256 116.016L274.615 116.921L274.586 117.064L274.529 118.294L273.955 118.967L273.682 118.971L273.467 118.986H273.395L272.96 119.137L272.951 119.147L272.898 119.175L272.693 119.294L272.621 119.343L272.53 119.433L272.182 119.964L272.173 120.049L272.197 120.139L272.369 120.219L272.508 120.414L272.551 120.547L272.56 120.66L272.537 121.637L272.532 121.642L272.512 121.74L272.426 121.811L272.412 121.816L272.159 121.906L271.612 121.868L271.268 121.588L270.431 120.57L270.398 120.494L270.427 120.272L270.407 120.201L269.747 119.709L269.575 119.6V119.609L267.69 119.614L265.729 119.747V119.752L264.318 119.842L261.934 120.003V119.998L261.298 120.031L258.127 120.197L255.827 120.306L254.311 120.348L252.508 120.419L250.508 120.504L248.71 120.557L246.723 120.606V120.611L245.393 120.625L243.04 120.616L240.649 120.601L239.23 120.59V120.586L235.977 120.553L235.236 118.373L235.495 117.079C235.374 116.547 235.252 116.015 235.131 115.482L235.241 114.246L234.667 113.901L234.542 111.684L234.184 110.442V110.437L233.036 108.518L232.892 106.509L231.811 104.509L231.137 102.671L231.236 101.993L230.992 101.538L230.896 100.282L230.954 100.131L230.949 99.9651L230.916 99.8371L230.83 99.7234L230.724 99.6806L230.447 99.6619L230.16 98.8745H230.155L229.868 98.1118L229.657 97.7801L229.394 97.5385L229.184 97.3775L229.504 95.9135L229.829 95.0607H229.824L230.384 93.1557L230.508 92.8191L230.532 92.7482L230.226 91.6488L230.149 91.611H229.575L229.398 91.2173C229.389 91.0372 229.379 90.8567 229.369 90.6759L229.862 90.6474L229.838 89.8467L229.292 89.2355L229.259 88.5864L230.416 88.5958L233.606 88.6051C234.118 88.6051 234.625 88.6101 235.136 88.6101L238.375 88.5909H238.906L242.665 88.5579V88.553L243.148 88.5436L246.427 88.4944L247.986 88.4708L250.186 88.4378L252.749 88.3807L253.954 88.3522V88.3473L257.523 88.2429L257.719 88.2336V88.2385L261.469 88.1056L262.301 88.0771L265.231 87.9585L268.013 87.8399L268.96 87.7971V87.7922L272.089 87.6445V87.6494L272.228 88.486L272.218 89.0451L273.074 89.642L273.256 89.8743L273.5 90.2581L273.467 90.3954L272.855 91.419L272.644 92.2246L272.816 93.2581L272.993 94.0922L273.73 95.7078L273.829 95.9115L274.475 96.3382L274.7 96.4425L275.121 96.5409H275.126L276.169 96.7378L276.571 96.8328L276.661 96.8756L276.719 96.9327L277.231 97.8568L277.322 98.127L277.327 98.1885L277.293 98.2456L277.184 98.4351L277.179 98.4587L277.188 98.5202L277.207 98.5724L277.269 98.6432L277.461 98.7761L278.001 99.0507L278.697 99.529L278.72 99.5482L279.199 100.112L279.223 100.145L279.228 100.188L279.178 100.496L279.135 100.594V100.665L279.245 100.916L279.25 100.931L279.484 101.215L279.489 101.22L279.628 101.329L279.777 101.427L280.117 101.531L281.537 103.209H281.542L281.635 104.356Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['IA']['color']\"\n            />\n            <path\n                d=\"M251.63 108V101.7H253.412V108H251.63ZM253.924 108L256.705 101.7H258.46L261.25 108H259.396L257.218 102.573H257.92L255.742 108H253.924ZM255.445 106.776L255.904 105.462H258.982L259.441 106.776H255.445Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['IA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-ID\"\n            (mouseenter)=\"onStateHover('ID', false, $event)\"\n            (mouseleave)=\"onStateHover('ID', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['ID'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M115.56 74.0077L114.742 79.2202L114.455 81.0967C114.275 82.204 114.094 83.3112 113.914 84.4185L113.015 89.8914L112.121 95.4258L108.419 94.8525L103.579 94.0804H103.574L103.139 94.0095L102.551 93.8619L100.848 93.5666L98.777 93.2113L96.4384 92.8225L93.2146 92.2777L92.9802 92.2398L90.3113 91.7896L90.053 91.7467L89.369 91.633L89.2731 91.6139L88.6323 91.4623L88.0968 91.325L86.1884 90.9554H86.1834L84.4568 90.6188L82.3522 90.1449L81.1471 89.9082L80.1537 89.7517V89.7467L68.4328 87.2832L67.5099 87.0745L64.4058 86.3683L64.3438 86.3447L68.4139 68.395V68.3901L69.2653 66.3527L69.4948 65.9738L69.8679 65.2725L70.1694 64.0594L70.5568 63.5904L70.5663 63.5712L70.5757 63.5476L70.5946 63.5191V63.5136L70.609 63.4049L70.5802 63.3197L70.5752 63.3055L70.1639 62.5092L70.0874 62.4571L69.7814 62.3527H69.7382L69.6667 62.3857L68.71 61.9969L68.5953 61.8075L68.5809 61.651L68.5903 61.556L68.6092 61.4989L68.8769 59.7076L68.9728 59.5132L70.6756 57.1963L70.8524 57.0353L70.91 57.0117L71.0968 56.9689L71.8285 56.7228L72.2492 56.2725L72.4787 56.0265L72.6605 55.837L72.9188 55.3916L72.9238 55.3823L72.9143 55.2972L72.8646 55.1884L72.8408 55.0841L72.8314 54.8611L73.0226 54.4674L73.2665 54.2445L73.6395 53.9128L74.7875 52.06L75.0507 51.5186L76.3805 49.8272L77.1171 49.0787L77.3039 48.87L77.3327 48.7327L77.0695 47.3587L77.0168 47.1456L76.8678 46.9606L76.7386 46.7898H76.7337L76.4515 46.6712L75.7844 46.06L75.4367 45.7426L75.4129 45.6998L75.3796 45.6333L74.8406 43.9468L74.791 43.1934L75.159 42.1934L75.1094 41.2584L75.0329 40.6565L75.0234 40.6186L74.7845 39.6565L74.9425 39.1782L75.2246 37.9508L76.6308 31.753L76.9512 30.3598L77.2095 29.2279H77.2046L78.6535 22.7811V22.7762L78.8209 22.0607L80.7964 13.6454L81.1695 12.0391L88.2051 13.5509L87.0716 18.8107L86.4164 21.8387L85.8809 24.3485L85.8859 24.3535L86.1109 24.7516L87.5887 27.7368L87.6031 27.7747L87.6125 27.8032L87.6175 27.8175V27.8603L87.6125 28.4715L87.3642 29.097L87.1536 29.5754L87.01 30.4518V30.4612L87.0194 30.7264L88.1962 32.3377L88.3541 32.475L88.4833 32.5886L88.8852 32.783L89.4688 33.0153L89.598 33.1054L90.2676 34.598L90.8939 36.0433L91.2481 36.6974L91.4349 37.0419H91.4398V37.0468L91.5834 38.1462V38.1511L91.6167 38.2412L92.7264 39.7052L92.8366 39.7338L92.8863 39.748H93.2161L93.6394 40.8002L94.4644 40.9852L94.6368 40.936L94.7565 40.8868L94.9527 40.8489L95.3501 40.9011L95.4842 41.0098L95.5175 41.0428L95.5607 41.0807L95.5845 41.2087L95.5413 41.4454L95.2736 42.1939L94.8241 43.2175L94.1545 44.7008L92.0071 49.9985L91.7394 51.4581L91.6052 52.1963L91.5958 52.2342L91.6152 52.2578H91.6201L91.9599 52.307L92.2659 52.3828L92.3618 52.4256L92.9261 53.3114L92.9931 53.5767L93.3085 53.6259L94.8151 52.9433L95.7668 52.119L96.4414 51.7352V51.7401L96.5994 51.901L97.3445 52.9433L97.3877 53.0806L97.4736 53.9478L97.4686 54.2701L97.3693 54.4502L97.3464 55.0983L97.3559 55.9512L98.5609 60.3862L99.8331 62.1441L100.096 62.0776L100.369 62.2907L100.694 62.6554L100.843 62.8783L101.011 63.3995L101.236 64.3473V64.4324L101.186 64.5131L101.157 64.5368L101.143 65.8965L101.239 66.4132L101.449 66.7164L102.076 67.4083L102.274 67.4841L102.432 67.394L102.509 67.2754V67.2469L102.6 66.8394L102.715 66.6686L103.016 66.3463L103.538 66.2277L106.283 66.9054L107.455 66.4693L109.591 66.6873L111.141 67.1234L112.14 67.1519L113.47 65.6401L114.345 65.3133L114.713 65.6736L115.344 66.9009L115.689 67.8773L115.775 68.1381L116.401 68.7114L115.56 74.0077Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['ID']['color']\"\n            />\n            <path\n                d=\"M85.63 79V72.7H87.412V79H85.63ZM88.6798 79V72.7H91.6588C92.3548 72.7 92.9668 72.829 93.4948 73.087C94.0228 73.345 94.4338 73.708 94.7278 74.176C95.0278 74.644 95.1778 75.202 95.1778 75.85C95.1778 76.492 95.0278 77.05 94.7278 77.524C94.4338 77.992 94.0228 78.355 93.4948 78.613C92.9668 78.871 92.3548 79 91.6588 79H88.6798ZM90.4618 77.578H91.5868C91.9468 77.578 92.2588 77.512 92.5228 77.38C92.7928 77.242 93.0028 77.044 93.1528 76.786C93.3028 76.522 93.3778 76.21 93.3778 75.85C93.3778 75.484 93.3028 75.172 93.1528 74.914C93.0028 74.656 92.7928 74.461 92.5228 74.329C92.2588 74.191 91.9468 74.122 91.5868 74.122H90.4618V77.578Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['ID']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-IL\"\n            (mouseenter)=\"onStateHover('IL', false, $event)\"\n            (mouseleave)=\"onStateHover('IL', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['IL'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M306.324 137.13L306.32 137.395L306.2 138.087L306.114 138.239L306.047 138.296L305.372 139.149L305.21 139.592C305.005 140.176 304.801 140.761 304.597 141.345L302.942 143.525L302.928 143.574V143.579L302.875 144.721L302.755 147.241L302.732 147.291L302.727 147.3L302.707 147.314H302.693L302.282 147.328L302.717 148.29L302.602 148.707L302.564 148.816L302.497 148.935L302.391 149.043L301.994 149.332H301.985L301.846 149.593L301.779 149.712L301.764 149.735L301.721 149.854L301.707 149.93L301.712 149.944L301.762 150.19L301.766 150.199L301.948 150.697L302.02 150.82L302.704 151.531V151.706L302.536 151.89L302.45 151.91L301.25 152.161L301.068 152.198L300.919 152.241L300.866 152.256H300.848L300.637 152.379L300.599 152.407H300.589L300.44 152.544L300.225 152.833L299.718 152.667V152.677L299.665 152.7L299.516 152.767L299.454 152.816L299.378 152.868L299.263 153.016L299.22 153.12L298.971 154.196L298.966 154.267L299.043 154.504L299.407 154.94L299.521 155.001L299.631 155.105L299.875 155.647L299.751 156.253L299.645 156.533L299.447 156.623L299.385 156.632V156.637L298.753 156.57L295.449 155.177L295.399 155.192L293.457 157.068L293.868 157.978L292.195 157.803L291.616 157.334L291.31 156.585L290.774 155.595L290.554 155.283L290.54 154.33L290.855 154.245L290.955 154.196L290.964 154.187L290.969 154.177L290.979 154.168L291.012 154.064L291.046 153.727L291.051 153.713L291.046 153.703L290.996 153.523L290.991 153.504L290.986 153.495L290.847 153.182L290.742 153.049L290.513 152.826L290.355 152.59L290.106 152.135L290.049 151.917L290.044 151.819V151.757L288.547 149.307L286.227 148.667L283.793 146.469L283.358 146.142L282.636 145.446L282.612 145.422L282.583 145.384L282.425 145.171L282.326 144.925L282.211 144.437L282.197 143.977L282.202 143.868L282.221 143.819L282.345 143.397L282.384 143.322L282.407 143.293L283.001 141.767L283.039 141.635L283.603 140.189H283.608L283.431 139.313L284.048 138.564L284.068 138.46L284.101 138.209L284.092 138.147L284.058 138.086L283.221 137.583L283.063 137.489L282.848 137.39L282.628 137.324L281.112 136.954V136.959L279.309 137.428L278.854 136.215L278.831 136.14L278.84 136.107L279.074 135.751L279.079 135.614L278.682 134.278L276.621 132.463V132.458H276.616L274.592 130.373L273.406 129.482L272.91 128.695L272.073 126.677L271.484 123.9L271.534 123.37L272.151 121.92L272.404 121.83L272.414 121.825L272.505 121.754L272.524 121.659L272.528 121.654L272.548 120.674L272.543 120.565L272.493 120.432L272.355 120.235L272.187 120.154L272.158 120.064L272.173 119.984L272.521 119.448L272.549 119.415L272.583 119.387L272.607 119.358L272.679 119.309L272.889 119.19L272.939 119.162L272.953 119.152L273.388 119.005H273.455L273.675 118.99L273.943 118.986V118.976L274.522 118.303L274.58 117.073L274.608 116.931L275.254 116.026L275.34 115.941L275.579 115.808L275.629 115.737L275.696 115.415L275.729 114.529L275.686 114.234L275.657 114.139L275.652 114.11L275.657 113.849L275.269 113.219L275.202 113.148L275.135 113.119L275.025 113.134L274.762 113.006L274.202 112.342V112.333L274.193 112.243L274.427 111.314V111.309L274.523 110.935L274.638 110.47L274.643 110.447L274.705 110.366H274.71L274.801 110.309L275.107 110.2L276.259 109.888H276.762L276.881 109.902L277.163 109.893L277.824 109.727L279.378 108.964L279.866 108.4L280.292 107.832L280.417 106.647L280.995 106.002V105.993L281.627 104.369H281.63L281.539 103.232L280.118 101.554L279.778 101.44L279.629 101.345L279.491 101.237L279.486 101.232L279.251 100.947L279.246 100.933L279.132 100.682V100.604L279.181 100.5L279.231 100.192L279.226 100.149L279.202 100.116L278.719 99.5615L278.7 99.5428H278.695L277.999 99.0689L277.459 98.7893L277.272 98.6565L277.205 98.59L277.186 98.533L277.176 98.4714L277.181 98.4478L277.296 98.2583L279.023 98.1732L283.055 97.9409V97.9316L283.772 97.8888V97.8937L287.287 97.7136L287.574 97.6944L291.008 97.5049V97.5098L292.328 97.4247L292.888 97.3868L296.131 97.1215L296.968 97.0364L300.191 96.8135L300.23 97.0315L300.253 97.9837L300.182 98.2111L300.149 98.249L300.096 98.5935V98.9158L300.172 99.2524L300.345 99.655L300.465 99.906L300.847 100.484L301.66 101.567L302.1 102.794L302.196 103.126L302.282 103.486L302.364 103.737L302.392 103.808L302.449 103.931L302.688 104.362L303.191 105.172L303.411 107.774C303.465 108.399 303.519 109.024 303.573 109.65V109.655L303.702 111.095L303.86 112.797C304.031 114.689 304.202 116.581 304.372 118.473H304.367L304.381 118.63L304.663 122.231L304.912 125.131L305.194 128.145L305.328 129.567H305.323L304.931 132.007L304.821 133.139L304.993 133.722L305.391 134.186L306.003 135.269L305.979 135.62L305.917 135.791L305.867 135.861L305.934 136.397L305.939 136.406H305.972L305.991 136.435L306.324 137.13Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['IL']['color']\"\n            />\n            <path\n                d=\"M287.63 129V122.7H289.412V129H287.63ZM290.68 129V122.7H292.462V127.587H295.468V129H290.68Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['IL']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-IN\"\n            (mouseenter)=\"onStateHover('IN', false, $event)\"\n            (mouseleave)=\"onStateHover('IN', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['IN'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M329.125 133.974L327.265 135.22L325.868 136.168V136.163L324.676 135.755L324.083 137.527L324.106 138.216L322.542 139.974L321.347 141.115L320.548 142.423L320.533 142.338L320.543 142.423L320.332 144.338L319.916 144.475L319.658 144.56L318.419 144.499L318.357 144.489L317.984 144.347L317.596 144.091L317.553 144.063L317.534 144.034L317.481 143.958L317.423 143.745L317.414 143.726L317.409 143.674V143.579L317.433 143.28L315.702 144.379L315.649 144.384L315.472 144.417L315.429 144.446L315.391 144.495L315.376 144.614L315.444 145.268L314.884 146.533L314.645 146.718L314.53 146.756H314.463L312.933 145.181L311.598 146.053L311.063 146.551L310.422 147.702L309.164 146.873V146.868L308.858 146.655L307.539 146.305V146.31L306.816 146.518L306.333 145.968L306.127 146.765L306.515 147.229L306.189 147.68L305.687 147.552L305.797 146.841L305.433 146.939V146.934L303.487 147.091L303.42 147.361L303.826 148.01L303.615 148.152L303.434 148.461L303.113 148.257L302.716 148.29L302.285 147.323L302.696 147.309H302.711L302.73 147.295L302.735 147.285L302.759 147.236L302.878 144.716L302.931 143.573L302.94 143.521L304.6 141.342L305.212 139.598L305.375 139.153L306.049 138.3L306.116 138.243L306.202 138.091L306.322 137.399L306.327 137.129L305.997 136.433L305.978 136.404H305.945L305.874 135.855L305.923 135.788L305.985 135.613L306.009 135.268L305.397 134.186L304.999 133.721L304.822 133.134L304.937 132.002L305.329 129.566L305.195 128.139H305.2L304.918 125.121L304.674 122.226L304.387 118.625L304.377 118.468L304.133 115.782L303.866 112.792L303.708 111.09L303.574 109.645L303.191 105.167L305.731 105.868V105.863L307.998 104.697L308.826 104.077L311.269 103.845V103.84L313.695 103.594L315.019 103.456L317.224 103.238L318.286 103.125V103.12L321.27 102.783L322.045 102.698L325.063 102.354L325.303 103.026L325.528 104.832H325.523L325.661 105.969L325.872 107.651V107.656L325.896 107.853L326.24 110.724L326.331 111.449C326.417 112.155 326.503 112.861 326.589 113.565L326.788 115.267L327.061 117.66L327.118 118.124L327.457 121.45V121.455L327.557 122.417L327.791 124.498L327.99 126.237L328.048 126.729L328.291 129.098H328.296L328.545 131.277L328.157 132.149L328.152 132.154L329.004 133.495L329.125 133.974Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['IN']['color']\"\n            />\n            <path\n                d=\"M311.63 126V119.7H313.412V126H311.63ZM314.68 126V119.7H316.147L319.621 123.894H318.928V119.7H320.674V126H319.207L315.733 121.806H316.426V126H314.68Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['IN']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M291.3 162.933L291.329 163.052V163.119L291.324 163.147L291.295 163.256L291.286 163.299L291.271 163.327L291.185 163.488L290.712 163.512L290.516 163.247L290.501 163.232L290.411 163.028L290.406 163.019L290.396 162.97L290.387 162.937L290.396 162.899L290.411 162.85L290.42 162.807L290.434 162.788L290.534 162.655L290.586 162.622L290.749 162.599L290.993 162.637L291.131 162.674L291.15 162.689L291.17 162.703L291.184 162.712L291.242 162.798L291.247 162.807L291.3 162.933Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-KY\"\n            (mouseenter)=\"onStateHover('KY', false, $event)\"\n            (mouseleave)=\"onStateHover('KY', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['KY'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M355.072 145.149L352.542 148.158L352.222 148.57L350.921 149.295L350.586 149.537L350.49 149.598H350.485L349.299 150.641L349.366 151.569L348.587 152.034L348.214 152.378L348.181 153.203L347.999 153.516L347.434 153.966L346.602 154.004L346.263 155.269L345.732 155.312L344.077 156.26L343.551 156.43L341.777 157.369L339.571 157.793L339.078 157.842L336.992 158.084L336.691 158.117L332.18 158.534H332.113L330.511 158.609L327.814 158.78L327.641 158.809V158.804L326.426 159.022V159.027L323.355 159.316L321.71 159.414V159.419L319.711 159.5L317.898 159.566L316.578 159.883H314.823L312.24 160.192L311.766 160.249L309.843 160.434L307.18 160.708L306.725 160.76H306.72L305.338 160.921V160.585L303.908 160.556L303.396 160.585V160.59L303.936 162.154L303.712 162.556L299.895 162.817L299.661 162.831L297.035 163.021L296.939 163.03L296.872 163.035L292.395 163.352L291.773 163.442L292.452 161.931L293.012 162.447L293.414 162.414L293.534 161.903L293.778 161.637C293.891 161.134 294.004 160.63 294.117 160.126V160.121L293.61 159.86H293.605V159.609H293.61L293.854 159.472H293.859L294.189 158.372L293.873 157.978L293.467 157.064L295.409 155.194V155.189L295.458 155.175L298.758 156.563L298.763 156.568L299.395 156.635L299.462 156.625L299.661 156.54L299.766 156.256L299.895 155.649L299.647 155.108L299.541 155.009L299.427 154.943L299.058 154.507L298.987 154.274L298.992 154.199L299.236 153.128L299.285 153.019L299.396 152.877L299.472 152.82L299.534 152.77L299.683 152.704L299.741 152.68L300.243 152.846V152.841L300.463 152.552L300.612 152.42H300.617L300.66 152.391L300.866 152.263H300.885L300.943 152.249L301.092 152.206L302.474 151.917L302.56 151.898L302.722 151.713V151.538L302.038 150.828L301.967 150.7L301.785 150.208L301.78 150.198L301.73 149.952L301.725 149.938L301.74 149.862L301.789 149.739L301.799 149.715L301.87 149.597L302.009 149.341H302.014L302.416 149.052L302.515 148.938L302.582 148.82L302.626 148.711L302.735 148.298V148.293L303.133 148.26L303.453 148.464L303.63 148.156L303.845 148.014L303.439 147.365L303.506 147.099L303.501 147.094H303.506L305.452 146.938L305.811 146.843L305.706 147.554L306.208 147.677L306.528 147.231L306.141 146.767L306.346 145.97L306.834 146.515L307.552 146.311L308.872 146.662L309.178 146.875L310.436 147.705L311.076 146.553L311.612 146.061L312.953 145.18L314.469 146.743L314.478 146.738V146.752H314.545L314.66 146.715L314.9 146.529L315.459 145.264L315.392 144.61L315.407 144.492L315.445 144.442L315.488 144.414L315.665 144.381L315.67 144.386L315.72 144.381L317.451 143.277L317.428 143.585V143.603L317.432 143.679V143.728L317.442 143.747L317.504 143.96L317.554 144.036L317.573 144.064L317.616 144.093L318.004 144.349L318.377 144.497L318.439 144.506L319.681 144.563L319.934 144.482V144.477L320.35 144.34L320.561 142.421L321.36 141.118L322.555 139.976H322.56L324.129 138.218H324.124L324.1 137.529L324.693 135.762L325.885 136.17L327.282 135.222L329.142 133.976L329.023 133.502L328.178 132.161L328.57 131.284L330.268 131.432V131.427L331.229 131.076V131.081L332.898 131.692L333.831 133.204L333.912 133.707L335.491 134.152L336.753 134.019V134.014L337.045 134.052L337.144 134.09L337.202 134.133L337.947 134.905L338.612 135.232L339.104 135.175L339.154 134.791L339.221 134.682L339.307 134.626L339.977 134.331L340.082 134.307L340.153 134.316H340.168L340.512 134.401L341.426 134.619L341.449 134.629L341.736 134.762L341.755 134.767L342.243 135.131L342.587 134.828L343.405 134.709L343.554 134.131L344.185 133.511V133.516L344.338 133.445L345.046 133.127L345.281 133.023H345.333L345.419 133.061L345.462 133.104L345.472 133.123L345.496 133.156L345.51 133.184L345.515 133.199V133.213L345.534 133.279L345.539 133.355V133.364L345.544 133.369L345.534 133.502L345.616 133.847L345.855 134.557L345.874 134.6L345.931 134.719L346.003 134.799L346.008 134.814L346.194 134.937L346.232 134.956V134.951L347.605 135.477L348.265 136.482L348.337 137.06L348.624 137.391L348.643 137.837L348.528 138.216L348.313 139.151L348.304 139.392L348.686 139.596V139.605L348.849 139.904L349.102 140.009L349.538 140.697L350.116 140.906L350.131 140.92L350.136 140.93V140.991L349.911 141.37L350.695 142.166L351.695 143.379L351.709 143.446L352.03 143.934L352.666 144.304L352.964 144.128L353.227 144.626L353.782 145.105H353.787L354.347 145.228L354.859 145.048L355.072 145.149Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['KY']['color']\"\n            />\n            <path\n                d=\"M329.223 149.605L329.124 147.607L331.833 144.7H333.795L331.095 147.625L330.105 148.66L329.223 149.605ZM327.63 151V144.7H329.394V151H327.63ZM331.86 151L329.808 148.399L330.969 147.157L333.93 151H331.86ZM335.516 151V148.336L335.93 149.407L333.113 144.7H334.994L337.028 148.111H335.939L337.982 144.7H339.71L336.902 149.407L337.298 148.336V151H335.516Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['KY']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-LA\"\n            (mouseenter)=\"onStateHover('LA', false, $event)\"\n            (mouseleave)=\"onStateHover('LA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['LA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M301.371 242.942V242.951L301.342 243.099V243.108L301.166 243.502L300.868 244.174L299.992 244.691L299.38 244.316L298.055 244.349L296.993 243.131L296.964 243.103L296.835 242.98L296.821 242.966L296.715 242.895L296.672 242.881L296.39 242.776L296.179 242.7L294.845 242.217L294.634 242.16L294.596 242.151L294.397 242.108L294.316 242.089H294.259L294.06 242.074L293.773 242.051L293.098 242.108L293.232 241.567L293.356 241.353L293.39 241.278V241.179L293.38 241.123L293.165 240.388L293.16 240.355L293.098 240.327L293.007 240.278L292.888 240.306L292.758 240.363L292.52 240.511L292.367 240.696L292.247 240.862L292.027 240.885L291.936 240.824L291.812 240.691V240.677L291.338 240.833L291.353 242.064L290.783 242.756L291.071 243.315L291.08 243.324L291.343 243.272L291.549 243.039L292.104 242.618L292.185 242.627L292.2 242.66L292.195 242.689L292.142 242.769L291.539 243.215L291.018 243.745L290.932 243.84H290.927L290.822 243.939L290.798 243.967L290.181 244.474L290.152 244.503L290.123 244.517L289.688 244.744L288.555 245.119H288.502V245.109L288.493 245.052L288.718 244.915L288.923 244.877L289.029 244.858L289.119 244.809L289.356 244.699L289.4 244.67L289.567 244.481L289.558 244.284L288.84 243.985L288.791 243.597L288.987 243.265L288.681 242.857L288.508 242.734L288.183 242.787L288.001 243.028L287.829 243.654L286.662 243.592L286.609 243.275L286.907 242.919L286.315 242.632L285.803 242.935L286.114 243.286L286.109 243.561L285.44 243.636L285.258 244.442L284.196 244.759L283.79 244.972L283.976 245.261L285.459 244.91L285.698 245.114L283.751 245.545L282.352 244.207L279.445 243.548L279.206 243.359L278.88 243.022L278.895 242.942L279.421 242.657L279.603 242.155L280.066 242.288L280.157 242.183L280.119 241.97L279.99 241.638L279.932 241.51L279.894 241.473L279.383 241.065H279.173L278.772 240.989L276.878 240.582L276.801 240.212L276.744 239.904L276.61 239.492L275.883 239.378L275.906 238.412L275.797 238.336L274.792 238.307L274.649 238.326L273.491 238.663L273.482 238.668V237.597L272.538 237.805L271.926 238.076L271.73 238.189L271.261 238.507L270.917 238.824L270.879 239.042L271.056 239.431L271.271 239.843L271.448 239.872L272.361 239.9L273.074 239.644L273.299 239.592L273.619 239.641L275.126 240.305L275.15 240.348L275.135 240.419L274.6 241.153L274.49 241.22L274.117 241.338L273.955 241.286L272.113 240.414L271.964 240.258L271.915 240.229H271.34L270.848 240.3H270.838L270.331 240.527L269.963 240.797L269.715 240.864H269.636L269.464 240.878H269.421L267.015 240.57L266.465 240.489H266.446V240.494L266.102 240.409L265.222 240.12L264.423 239.776L263.988 239.591L263.313 239.273L262.997 239.145H262.983L261.883 238.794L261.026 238.591L260.544 238.529H260.161L258.174 238.681L257.572 238.762L256.653 238.899L256.189 238.97L255.639 239.103L255.611 239.112L255.558 239.131L255.405 239.18L255.094 239.346L254.908 239.469L254.731 239.621L254.095 239.17L253.747 238.334L254.591 237.656L254.644 237.192L255.737 235.68H255.742V235.675L255.747 233.577L255.455 231.871V231.866H255.46L255.465 231.861L255.829 231.558L255.867 231.463L255.872 231.406L255.738 230.728L255.47 230.411L255.446 230.382L255.551 230.003L256.9 227.487L257.072 226.752H257.067L257.034 223.298L257.029 223.293L256.599 223.407L256.503 222.843L256.436 222.483L256.153 221.275L255.293 220.033L254.284 218.986L253.815 216.181L252.504 214.731L252.203 212.376H252.208L252.088 206.951L252.05 204.894L252.012 203.383L254.111 203.34H254.197L256.804 203.283V203.274H257.086L259.396 203.212V203.207L261.692 203.146V203.151L264.112 203.102L270.133 202.945H270.138L275.72 202.718V202.723L275.945 202.708L277.509 202.647L277.514 202.638L278.428 202.599V202.604L278.127 203.087L278.031 203.431L278.045 203.516L278.782 206.828L278.835 206.961L278.849 206.98L278.878 207.013L278.887 207.033L278.907 207.047L278.993 207.123L279.016 207.142L279.308 207.232L279.375 207.38L279.165 208.081L279.184 208.256V208.27L279.208 208.308L279.246 208.365L279.255 208.384L280.284 209.469L280.346 211.037L279.274 211.17V211.175L280.212 212.26L278.303 215.023L277.237 216.416L277.146 216.577L276.997 216.828L276.992 216.837L275.987 218.832L275.964 218.875L275.93 218.951L275.925 218.96L275.577 221.798L275.352 222.974L275.123 224.675L279.456 224.471L280.549 224.419L282.749 224.296V224.291L285.183 224.154H285.188L285.365 224.149L287.249 224.03L288.077 223.978L292.056 223.717L293.065 223.646L293.084 223.987L292.97 224.561L292.874 224.769L292.816 224.779L292.74 224.788L292.716 224.812L292.592 225.323L292.453 226.02L292.337 226.594L292.231 227.371L293.81 229.527L293.824 229.541L293.887 229.603L294.475 230.787L294.489 230.991L294.403 231.209L294.379 231.304L294.389 231.361L294.69 231.925L294.781 232.1L294.987 232.342L295.058 232.423L295.082 232.437L295.115 232.461L295.134 232.475H295.154L295.594 232.446L294.68 232.816L294.274 233.299L294.097 233.811L293.734 233.877L293.666 234.29L292.997 234.11L292.571 234.612V234.617L292.628 234.854L292.719 235.086L292.781 235.19L292.877 235.257L293.107 235.37L293.614 235.257L293.564 235.601L294.229 235.938L294.535 235.976L294.75 235.952L294.979 235.848L295.118 235.739L295.171 235.564L295.28 234.875L295.266 234.61L295.974 233.833L296.304 233.672L296.701 233.795L296.949 233.998L296.744 234.107L296.591 234.259L296.6 234.439L296.615 234.572L297.174 235.178L297.284 235.259L297.739 235.491L297.844 235.548L297.208 236.604L296.84 237.145L296.293 237.349L295.863 237.188L294.869 237.15L294.707 237.203L294.745 237.52L294.798 237.615L295.276 237.876L295.501 237.971L295.663 237.999L295.888 237.985L296.357 238.383L296.381 238.45L296.372 238.492L296.195 238.388L295.889 238.222L295.061 238.184L294.875 238.298L294.569 238.549L294.493 238.814L294.397 239.71L294.406 239.767L294.478 239.843L294.755 240.023L296.539 240.958L296.821 240.939L297.566 240.906L299.553 241.474L300.065 242.104L300.323 242.455L300.711 242.678L301.069 242.517L301.136 242.545L301.208 242.612L301.371 242.942Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['LA']['color']\"\n            />\n            <path\n                d=\"M260.63 219V212.7H262.412V217.587H265.418V219H260.63ZM265.429 219L268.21 212.7H269.965L272.755 219H270.901L268.723 213.573H269.425L267.247 219H265.429ZM266.95 217.776L267.409 216.462H270.487L270.946 217.776H266.95Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['LA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n\n        <g\n            class=\"zoomable-state state-MA\"\n            (mouseenter)=\"onStateHover('MA', false, $event)\"\n            (mouseleave)=\"onStateHover('MA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M443.793 79.8791L442.186 80.7369L442.11 81.0814L441.88 80.8683L441.334 80.9869L441.284 81.1576L440.753 81.475L440.466 82.1955L439.428 82.603L439.155 82.944H439.146L438.802 83.3608L438.486 83.8913L438.132 84.005L437.936 84.2702L437.683 84.4361L437.329 84.5877L437.233 84.5827L437.324 84.3933L437.659 84.3081L437.85 84.038L438.52 83.4474L438.591 83.2294L438.854 82.9071H438.859L439.118 82.3623L438.898 81.3102L438.725 81.1251L438.898 80.9121L438.721 80.8077L438.109 80.7935L438.219 81.2059L437.97 81.1916L438.023 81.7821L437.559 81.7442L437.798 82.0429L437.559 82.2796L437.41 82.2703L437.046 82.3225L436.897 82.5168L436.806 82.6305L436.792 82.6591L436.821 83.0144L436.859 83.1423L436.979 83.2939L436.283 83.8815L435.862 83.9051L435.618 84.194L435.274 83.1561L435.145 83.0473L435.14 82.8343L435.006 82.4976L434.509 82.4455L434.559 82.2939L434.678 82.1463L434.564 82.132L434.219 82.0277L434.152 82.1261L433.789 81.7993L433.253 81.6763L433.172 81.667L433.122 81.5863L433.027 81.5105L432.984 81.3683L432.912 81.2595L432.945 81.1173L432.893 81.0464V80.8569L432.749 80.5582L432.735 80.4539L432.419 80.6055L432.156 79.6247L432.065 79.2551L431.147 79.5204L428.803 80.231L428.75 80.0701L426.698 80.5533L426.359 80.6242L426.091 80.6763L423.135 81.3683L421.232 81.8111L421.208 82.2378L420.81 82.3564L420.705 81.9396L419.184 82.2949L418.83 82.3756V82.3805L415.372 83.1054L415.295 83.1246L415.113 82.755L415.233 77.95L415.305 75.2729L417.208 74.8655V74.8606L417.94 74.709L421.656 73.9216L423.039 73.6263L425.832 73.0294L426.066 72.9772L428.013 72.5461L428.133 72.5176L428.166 72.5083L430.815 71.902L431.012 71.4423V71.4374L431.017 71.4325L431.066 71.3237L431.521 71.3001L431.33 70.8026L431.502 70.4616L431.607 70.3528L432.253 70.3198L432.363 69.7135L433.104 69.1688L433.171 69.1402L433.224 69.1117L433.458 69.0974L433.741 69.2396L434.023 69.0645V69.0694L434.08 69.2967L434.378 69.998L434.837 70.87L435.316 71.0831L435.656 71.0688L435.933 70.562L436.043 70.6112L436.153 70.8956L436.351 70.8292L436.401 71.0851L436.205 71.2558L436.11 71.8006L436.004 71.8577L435.87 71.744L435.755 71.9192L434.938 72.3409L434.847 72.5117L434.507 72.649L434.627 72.8458L434.89 72.9167L434.943 73.1534L434.823 73.1962L434.632 73.3621L434.57 73.5752L434.359 73.5801L434.297 73.6938L434.402 73.9546L434.632 74.0117L434.656 74.0609L434.383 74.1273L434.333 74.0894L434.195 73.7769L434.095 73.9378L434.023 74.1701L434.052 74.4309L434.449 74.8576L434.052 74.9191L433.995 75.1799L434.206 75.4501L434.411 75.7675L434.722 75.6588L434.971 75.7203L435.061 75.36L434.846 75.2464L435.09 75.2036L435.425 75.4688L435.712 75.4501L436.143 75.5116L436.693 75.8861L437.678 76.9761L437.592 77.6587L437.348 77.9476L438.242 78.3413L438.644 78.2369L439.113 78.8481L439.251 79.1611L439.304 79.6916V79.6965L439.433 79.6729L439.596 79.7915L439.83 79.9195L440.041 79.9766L440.557 80.0051L440.868 79.9864L441.399 79.8299L441.729 79.9529L442.002 79.6306L442.542 79.2896L442.953 79.015L443.288 78.8255L443.37 78.6503L443.503 78.5696L443.407 78.2522L443.258 77.8634L443.187 77.6503L442.934 77.2901L442.804 77.2665L442.728 77.4181L442.771 77.861L442.566 77.3964L442.322 76.5815L442.116 76.3398L441.987 76.2547L441.843 76.1976L441.619 76.1455L441.561 76.1597L441.451 76.2212L441.394 76.2734L441.344 76.3541L441.32 76.487L441.325 76.5441L440.876 76.3689L440.847 76.3359L440.876 76.2271L440.957 76.142L441.096 76.0662L441.229 76.0234L441.468 75.9998L441.851 76.019L442.149 76.0805L442.378 76.1789L442.646 76.364L442.899 76.6149L443.22 76.9796L443.473 77.3398L443.865 78.0317L444.047 78.387L444.295 79.1168L444.448 79.6429L444.472 79.8796L444.391 80.1877L444.372 81.0878L444.204 81.1635L444.271 80.7039L444.204 80.1163L444.185 80.0592L444.147 79.9884L443.948 79.8934L443.793 79.8791Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MA']['color']\"\n            />\n\n            <path\n                d=\"M438.63 73V66.7H440.097L442.707 70.984H441.933L444.471 66.7H445.938L445.956 73H444.318L444.3 69.193H444.579L442.68 72.379H441.888L439.935 69.193H440.277V73H438.63ZM446.461 73L449.242 66.7H450.997L453.787 73H451.933L449.755 67.573H450.457L448.279 73H446.461ZM447.982 71.776L448.441 70.462H451.519L451.978 71.776H447.982Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['MA']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <path\n            d=\"M445.554 83.9784L445.549 84.0921L445.544 84.1157L445.487 84.1916L445.3 84.3339L445.195 84.3831L444.54 84.5308L444.367 84.5638L443.913 84.5353L443.138 84.3836L443.033 84.3344L442.961 84.2728L442.918 84.1876L443.038 84.1591L443.143 84.1827L443.193 84.197L443.595 84.1827L444.164 84.0311L444.412 83.9222L444.484 83.8843L444.613 83.7366L444.704 83.5657L444.766 83.3427L444.728 83.1245L444.684 83.0487L444.598 82.968L444.521 82.9108L444.478 82.8729L444.469 82.8301L444.612 82.8586L444.78 83.0064L445.511 83.8267L445.554 83.9784Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M441.237 83.7318L441.347 84.1868L441.338 84.2533L439.324 84.8126L439.047 85.083L438.932 85.3818L438.42 85.2302L438.301 85.0027L438.808 84.884L439.119 83.9169L439.205 83.7746L439.439 83.4856L439.74 83.1631H439.79L439.828 83.2532L440.13 83.201L440.345 83.6038L440.752 83.7604L440.977 83.8554L441.135 83.4856L441.237 83.7318Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <path\n            d=\"M404.466 130.351L404.337 130.313L404.103 130.142L403.859 129.957L403.839 129.938L403.83 129.943L403.758 129.815L403.699 129.602L403.637 129.152L403.756 129.004L403.948 128.961L404.23 129.193L404.244 129.255L404.297 129.416V129.421L404.417 129.696L404.536 130.056L404.598 130.251L404.56 130.312L404.466 130.351Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M404.94 131.002L404.921 131.329L404.955 131.48V131.485L404.979 131.556L404.993 131.76L404.974 131.969L404.74 132.035L404.587 131.884L404.534 131.647L404.51 131.58V131.575L404.443 131.334L404.376 130.997L404.371 130.878L404.395 130.798L404.553 130.689L404.62 130.665L404.696 130.684L404.979 130.798L405.036 130.847L405.056 130.951L404.94 131.002Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-MD\"\n            (mouseenter)=\"onStateHover('MD', false, $event)\"\n            (mouseleave)=\"onStateHover('MD', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MD'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M411.773 125.181L411.763 125.569L411.73 125.925L411.506 128.422L411.482 128.573L411.453 128.678L411.403 128.853L411.379 128.981L411.222 129.379L410.954 130.265L410.652 131.487L410.164 131.326L410.519 131.236V131.158L410.131 131.168L410.495 130.485L410.705 129.988L410.887 129.495H410.892L411.303 128.699L411.371 128.429L411.414 127.913L411.567 126.591L411.467 127.056L411.2 127.259L411.143 126.909L410.875 127.106L410.631 128.191L410.554 128.683L410.325 128.749L410.339 129.067L410.181 129.018L410.191 129.714L410.176 129.927L409.875 130.136L409.899 130.32L409.799 131.017V131.272L409.952 131.367L409.929 131.372L409.857 131.422L409.838 131.45L409.809 131.479L409.756 131.545L409.722 131.597L409.684 131.649L409.655 131.702L409.536 131.943L409.383 132.346L409.129 133.497L409.096 133.706L409.235 135.133L409.12 135.901L408.876 136.133L408.914 136.228L408.685 136.047L408.665 135.787L408.598 135.763L408.536 135.943L408.437 135.867L408.513 135.72L408.414 135.653L408.39 135.492L408.247 135.402L408.089 135.938L408.418 136.013L408.414 136.122L407.973 136.212L407.868 136.383L407.758 136.487L407.715 136.389L407.734 136.299L407.763 136.185L407.713 135.742L407.23 135.548L406.398 135.794L406.348 135.699L406.339 135.642L406.388 135.225L406.47 134.955L407.044 133.264L407.264 132.941L407.115 132.799L406.981 132.936L406.828 132.813L407.139 132.515L407.44 132.68L407.579 132.495L407.617 132.42L407.766 131.988L407.771 131.856L407.809 131.413L407.226 131.47L407.307 131.219L407.724 130.996L406.71 130.967L406.198 131.616L405.887 131.715L405.882 131.302L405.695 131.07L405.901 130.62L405.844 130.454L406.112 130.293L406.265 129.976L405.917 129.914L405.818 130.175L405.641 129.872L405.966 129.317L405.473 129.274L405.076 129.682L404.877 129.597L404.81 128.881L405.58 128.578L405.418 128.266L404.916 128.095V128.086L404.652 128.327L404.317 128.104L403.97 127.711L404.268 127.573L404.454 127.398L404.201 127.01L403.909 126.991V127.407L403.665 127.801L403.914 128.09L403.981 128.645L403.646 128.497L403.373 128.488L403.297 128.143L402.78 128.186L402.713 128.437L403.21 128.65L403.057 128.844L402.636 128.579L402.492 128.382L402.272 128.226L401.974 128.127L401.936 128.099L401.816 127.886L402.046 127.62L401.654 127.563L401.295 126.867L400.821 126.337L401.391 126.041L401.458 125.762L400.951 125.417L401.089 125.005L401.139 124.924L401.33 124.768L401.407 124.725L402.105 124.531L402.11 124.535L402.134 124.483L402.014 124.27L401.593 124.185L401.146 123.588L401.003 123.602L400.864 123.873L400.539 123.764L400.51 123.782L400.424 123.986V124.095L400.558 124.223L400.573 124.332L400.443 124.45L400.348 124.303L400.248 123.582L400.258 123.345L400.42 122.715L400.439 122.687L400.66 122.426L400.889 122.653L401.272 122.644L401.209 122.255V122.25L401.066 121.667L400.967 121.478L400.718 121.321L400.58 121.587L400.407 121.53L400.225 121.649L400.288 121.862L399.929 121.914L400.049 122.379L399.771 122.748L399.766 122.354L399.57 121.625L399.905 120.459L400.197 120.989L400.876 120.891L401.11 120.445L400.938 120.119L401.02 119.882L400.991 119.593L400.632 119.759L400.79 120.527L400.465 120.498L400.374 119.75L399.863 119.249L399.854 119.026L399.883 118.851L400.237 117.221L400.333 117.055L400.739 116.52L401.629 116.326L401.59 116.198L401.327 116.193L401.342 116.003L401.653 115.548L401.385 115.453L401.547 114.553L401.427 114.293L400.633 114.624L400.418 115.212L400.877 115.421L400.972 115.624L400.15 116.586L399.825 116.961L399.523 117.392L399.537 117.614L399.384 117.565L399.25 117.191L399.054 117.048L399.011 116.95L399.049 117.048H399.011L398.867 117.115L399.064 117.636L398.666 117.773L398.585 118.247L398.728 118.318L398.778 118.304L398.768 118.385L398.74 118.475L398.515 118.854L398.395 118.996L397.878 118.944L397.634 118.894H397.62L397.471 119.174L398.266 119.469L398.658 119.863L398.84 120.195L398.759 120.507L399.156 120.772L399.214 120.891L398.635 121.412L398.908 121.739L398.697 122.411L398.606 122.824L398.821 122.909L398.386 123.795L398.458 124.036L398.515 124.131L398.763 124.328V124.476L398.816 124.703L399.251 126.177L399.289 126.285L399.423 126.527L399.586 126.74L399.968 127.015L400.676 127.583L400.71 127.64L400.748 127.868L400.686 128.356V128.361L401.088 129.403L401.777 130.066L401.7 130.303L402.011 131.113L401.629 130.99L401.227 130.612L400.639 130.375L400.572 130.683L399.984 130.394L399.4 129.853L398.639 129.687L398.004 129.824L397.884 129.928L397.482 129.739L397.147 129.294L397.19 129.573V129.71L397.171 129.796L396.334 129.417L396.248 129.242L395.813 128.991L395.273 128.019L394.909 128.27L394.684 128.578L394.45 128.621L394.321 128.844L393.874 129.275L393.783 129.256L393.462 129.1L393.276 128.787L393.047 128.076L393.066 127.732L393.2 127.263L393.544 126.647L393.917 126.187L393.501 125.808L393.778 125.794L393.888 125.495L394.137 125.347V125.338L394.347 124.39L394.342 124.341L395.213 122.976L394.256 122.403L393.816 122.18L393.347 122.939L393.041 122.706L392.635 122.744L392.52 122.716H392.338L392.147 122.568L392.138 122.236L391.827 122.141L391.343 121.944L390.946 121.987L390.535 122.006L390.229 121.987L390.214 121.982L389.668 121.622L389.615 121.584H389.61L389.561 121.518L389.499 121.333V121.324L389.508 121.225L389.527 121.088L389.532 121.039L389.565 120.949L389.833 120.835L389.904 120.428L389.149 120.172L388.833 119.778L388.374 119.892L387.862 119.717V119.712L387.537 119.75L387.207 119.579L387.24 118.735L386.691 118.665L386.585 118.074L386.346 118.069L386.102 117.936L385.729 117.363L386.102 117.211L386.059 116.922L385.757 116.965L385.346 117.113L385.025 117.127L384.624 117.275L384.389 117.019L384.246 116.862L383.863 116.587L383.557 116.474L383.246 116.441L382.959 116.431L382.909 116.45L382.852 116.516L382.632 116.857L382.334 117.399L382.234 117.413L381.787 117.328L380.907 118.821L379.305 118.906L378.291 118.508L376.908 120.389L376.004 120.192L374.44 122.059L373.993 122.87L373.319 123.599L373.06 123.694L372.156 118.112L372.855 117.984L376.667 117.295L377.68 117.11L381.215 116.466L381.526 116.409V116.404L383.556 116.031L388.754 115.055V115.06L388.836 115.046V115.041L390.83 114.647V114.642L392.618 114.287L394.369 113.922V113.927L396.157 113.557V113.552L398.869 112.993L398.922 112.984L399.725 112.813L402.576 112.207L402.667 112.539L402.676 112.596L402.686 112.653L402.7 112.705L402.715 112.757L402.729 112.806L402.748 112.859L402.763 112.911L402.782 112.963L403.566 115.866L403.81 116.719L403.963 117.261L404.269 118.343L405.8 123.726H405.795L406.019 124.508V124.517L406.134 124.92L406.225 125.232L406.324 125.577L406.583 125.534L407.171 125.436H407.199L407.951 125.293L408.127 125.26L408.553 125.18L408.586 125.175L408.701 125.151L408.84 125.127L409.16 125.057L409.284 125.028V125.023L411.724 124.493L411.767 124.895L411.773 125.181Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MD']['color']\"\n            />\n            <path\n                d=\"M413.63 142V135.7H415.097L417.707 139.984H416.933L419.471 135.7H420.938L420.956 142H419.318L419.3 138.193H419.579L417.68 141.379H416.888L414.935 138.193H415.277V142H413.63ZM422.217 142V135.7H425.196C425.892 135.7 426.504 135.829 427.032 136.087C427.56 136.345 427.971 136.708 428.265 137.176C428.565 137.644 428.715 138.202 428.715 138.85C428.715 139.492 428.565 140.05 428.265 140.524C427.971 140.992 427.56 141.355 427.032 141.613C426.504 141.871 425.892 142 425.196 142H422.217ZM423.999 140.578H425.124C425.484 140.578 425.796 140.512 426.06 140.38C426.33 140.242 426.54 140.044 426.69 139.786C426.84 139.522 426.915 139.21 426.915 138.85C426.915 138.484 426.84 138.172 426.69 137.914C426.54 137.656 426.33 137.461 426.06 137.329C425.796 137.191 425.484 137.122 425.124 137.122H423.999V140.578Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['MD']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <path\n            d=\"M444.341 49.5996L444.508 49.8034L444.48 50.3771L444.288 50.8084L444.016 50.5474L444.174 49.9167L444.088 49.4474L444.064 49.1914L444.179 48.9639L444.399 48.9924L444.504 49.277L444.341 49.5996Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M445.984 54.5466L446.108 54.6453L445.979 54.8067L445.773 54.393L445.831 54.2598L445.941 54.317L445.984 54.5466Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M446.075 51.9836L446.114 52.0737L446.085 52.216L446.051 52.2731L445.941 52.51L445.869 52.5715L445.554 52.7424L445.472 52.7611L445.329 52.7183L444.912 52.0072L444.683 52.0309L444.664 52.0023L444.678 51.7935L444.76 51.5705L445.181 51.0539L445.339 50.9688L445.401 51.018L445.855 51.2548L445.544 51.3971L445.602 51.4922L445.798 51.5444L446.075 51.9836Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M446.849 50.0176L446.907 50.5676L446.792 50.8001L446.63 50.9044L446.601 51.0989L446.515 51.0374L446.366 50.9566L446.175 50.9187L445.998 50.3973L445.988 50.3544L445.993 50.1698L446.122 50.1934L446.189 49.8566V49.7759L446.17 49.7094L446.132 49.6764L446.17 49.6621L446.232 49.6813L446.639 49.8L446.763 49.8901L446.849 50.0176Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M447.068 48.6969L447.073 48.4546L446.93 48.2028L447.049 48.0938L447.174 48.2221L447.503 48.5879L447.408 48.7448L447.068 48.6969Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M447.212 51.252L447.51 51.4937L447.501 52.2427L447.333 52.1762L447.128 52.3279L447.089 51.963L446.922 51.6503L447.212 51.252Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M447.943 49.9086L447.785 49.847L447.79 49.6006L447.933 49.7381L448.024 49.8366L447.943 49.9086Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M448.664 50.1368L448.693 50.2888L448.54 50.6215L448.382 50.6452L448.253 50.474L448.1 50.4789L447.809 50.4601L447.952 50.1082L448.296 49.8564L448.664 50.1368Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M447.999 50.8076L448.056 50.9796L447.898 51.0653L447.84 50.8126L447.999 50.8076Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M449.059 49.5459L448.983 49.7427L449.002 49.9701L448.711 49.8992V49.6906L448.873 49.5813L449.059 49.5459Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M449.254 48.8289L449.635 48.668L449.536 48.8481L449.522 48.9711L449.297 49.042L449.254 48.8289Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-ME\"\n            (mouseenter)=\"onStateHover('ME', false, $event)\"\n            (mouseleave)=\"onStateHover('ME', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['ME'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M456.953 40.0946L456.967 40.1704L456.761 40.6536L456.092 42.0316L455.915 42.3583L455.403 42.913L455.112 42.9745L455.236 42.5385L455.011 42.4533L454.872 41.8893L454.385 42.2683L454.705 42.6851L454.547 43.2584L454.203 43.4292L453.6 43.159L453.402 43.5335L453.6 44.2299L453.302 44.5188L452.747 44.6846L452.57 45.1393L451.499 44.7505L451.786 46.3381L451.48 46.4946L451.221 46.6083L451.154 46.6319L451.169 46.817L451.083 46.9779L451.025 46.9922L450.987 46.9543L450.901 46.8834L450.806 47.0256L450.777 47.2343L450.748 47.3819L450.739 47.5763L450.734 47.6378V47.7279L450.643 47.7422H450.638L450.58 47.7185L450.15 47.2825L450.025 47.1309L449.834 46.688L449.791 46.5365L449.796 46.4415L449.753 46.375L449.7 46.3465L449.48 46.375L449.182 46.4366L448.915 46.4887L448.642 46.6073L448.599 46.9912L448.312 47.2707L448.053 47.4459L447.881 47.6024L447.752 47.8485L447.719 47.877L447.666 47.8864L447.608 47.8485L447.541 47.5876L447.522 47.4454L447.422 47.379H447.351L447.308 47.4119L447.279 47.469L447.274 47.5448L447.384 47.815L447.475 48.1467L447.446 48.1752L447.347 48.1944L447.28 48.0994L447.27 47.9951L447.022 47.5591L446.836 48.0237L446.587 48.033L446.75 48.4119L446.874 49.0232L446.893 49.0724L446.922 49.1216L447.004 49.1831L447.142 49.1546L447.223 49.2397L447.396 49.4764L447.41 49.5286L447.453 49.7608L447.248 49.846L447.238 49.8268L447.123 49.751L446.731 49.5665L446.492 49.5L445.665 49.3435L445.32 49.4523L445.186 49.6373L444.923 49.6659L444.905 49.6167L444.665 48.6359L444.656 48.4228L444.675 48.3942L444.737 48.3184L444.766 47.9961L444.757 47.8731L444.666 47.9252V47.9203L444.575 47.9774L444.144 48.4941L443.958 48.3426L443.776 48.3568L443.747 48.5537L443.403 48.7953L443.379 48.9326L443.478 49.1078L443.555 49.2062L443.675 49.2392L443.88 49.4572L443.93 49.8017V49.9154L443.565 50.9882L443.671 51.5788L443.537 51.7116L443.632 52.034L443.613 52.2471L443.663 52.5217L444.041 52.3322L444.117 52.5596L443.954 52.7205L443.94 52.9242L443.195 53.9857L443.281 54.2746L442.893 54.5876L442.592 54.3647L441.851 54.4926L441.652 54.469L441.499 54.4503L441.379 54.6019L441.346 54.6398L441.341 54.8957L441.394 55.3174L441.26 56.1048L441.197 56.1949L440.184 56.6452L439.94 56.7209H439.758V56.7259L439.686 57.4793L439.107 58.062L438.572 57.5359V57.531L438.165 57.8341L437.95 58.2323L437.621 58.4266L437.77 57.5925L437.573 57.0334L437.501 56.9813L437.43 57.0049L436.834 58.0049L436.533 58.5261L436.322 59.3745V59.4453L436.475 59.6063L437.154 60.3976L436.757 60.7244L435.905 61.1269C435.894 61.3815 435.883 61.6358 435.872 61.8897L436.159 62.2972L435.733 63.4783L435.25 63.6299L435.002 64.7859L435.332 65.0275L434.873 66.7499L434.605 66.5983L434.567 66.6741L434.368 66.8493L433.292 66.4227L432.99 65.2332L432.966 65.2046L432.038 64.6549L431.651 64.4655L431.512 64.3946L431.287 64.0865L431.215 63.93L431.158 63.6884L431.024 62.2052L430.053 59.7032L428.484 54.5477L427.04 50.0084L426.925 49.6437L425.29 44.7875L424.992 43.9533L425.518 43.658L426.58 44.2407L426.69 44.2929H426.915L427.006 44.2077L427.025 44.1649L427.016 43.9041V43.9016L427.006 43.5414L427.001 43.1905L427.101 41.0203L427.211 40.442L427.278 40.3047L427.359 40.1438L427.55 39.8027L427.842 39.2767L427.866 39.2388L427.947 39.1404V39.1354L428.009 39.0547L428.435 38.5523L429.428 36.1733L429.443 35.9981L429.428 35.5479L429.309 35.4529L429.185 35.3958H428.816L428.672 34.9312L428.548 34.4243L428.314 33.0548L428.41 32.3166L428.529 31.4308L428.534 31.4214L428.616 31.1847L428.688 31.071L428.702 31.0617L428.721 31.0523L428.961 30.8771L429.391 30.2231L429.3 29.5267L429.171 28.5125V28.5075L429.007 27.2187L429.003 27.1857L429.012 27.1572L429.211 26.5696L429.771 24.9456L430.857 21.823L432.315 17.6341L432.912 17.5819L433.619 17.5677L433.725 17.5962L433.854 17.7714L433.883 17.8206L433.83 17.8915L433.821 17.9057L433.806 18.1616L434.189 19.389L434.303 19.4874L434.36 19.516L435.513 19.8856L435.805 19.6346L436.609 18.8811L437.488 18.0849L438.851 16.9038L439.038 16.7995L439.397 16.6858L439.732 16.6572L439.865 16.6858L440.482 16.8944L442.27 17.6528L443.882 18.6572L443.906 18.7094L446.474 26.825L447.975 31.6345L447.856 31.8146L447.846 31.9189L448.09 32.9947L448.219 33.1035V33.0941L450.807 33.2127L450.893 33.1512L451.051 33.0991L451.1 33.1084L451.354 33.2979L451.392 33.3687L452.028 35.3682L452.09 35.7521L452.004 36.2688L451.971 36.321L451.847 36.4297L451.851 36.5434L452.162 36.8702L452.85 37.5533L453.305 37.79L453.319 37.7993L453.348 37.8136L453.429 37.8328L453.468 37.8234L453.659 37.5488L453.63 37.3687V37.0656L453.668 37.0085L453.764 36.9893L454.668 37.0321H454.673L455.012 37.2737L455.199 37.4396L456.825 39.4012L456.997 39.7279L456.953 40.0946Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['ME']['color']\"\n            />\n            <path\n                d=\"M432.63 44V37.7H434.097L436.707 41.984H435.933L438.471 37.7H439.938L439.956 44H438.318L438.3 40.193H438.579L436.68 43.379H435.888L433.935 40.193H434.277V44H432.63ZM442.855 40.139H445.78V41.471H442.855V40.139ZM442.981 42.623H446.275V44H441.217V37.7H446.158V39.077H442.981V42.623Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['ME']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M449.745 47.8752L449.802 48.0318L449.716 48.1928L449.712 48.2022L449.683 48.2352L449.463 48.4863L449.147 48.5764L449.051 48.6616L449.013 48.7601L449.036 48.8585L449.056 48.8915L449.08 48.9009L449.156 49.0383L449.027 49.3372L448.869 49.4081L448.31 49.2372L448.099 49.0476L447.937 48.8201L447.898 48.6724L447.948 48.3597L448.047 47.9377L448.124 47.8334L448.323 47.6817L448.571 47.5773L448.915 47.3828L449.432 47.468L449.441 47.4774L449.59 47.629L449.745 47.8752Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M449.105 50.3916L449.31 50.5253L449.086 50.6635L448.91 50.6491L448.953 50.4203L449.105 50.3916Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M323.171 50.7148L323.152 50.4494L323.497 50.2928L323.664 49.9609L324.08 49.9939L324.162 50.0033L324.267 50.1264L324.248 50.3233L324.166 50.6646L324.051 50.7217L323.956 51.1343L324.304 51.7129L324.686 52.1255L324.294 52.1305L324.06 51.6848L323.649 51.4524L323.409 50.8123L323.171 50.7148Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M324.677 52.6428L324.768 53.022L324.528 53.1643L324.479 53.3731L324.407 53.1643L324.202 52.7211L323.977 52.5266L324 52.3085L324.182 52.2041H324.292L324.368 52.2799L324.677 52.6428Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-MI\"\n            (mouseenter)=\"onStateHover('MI', false, $event)\"\n            (mouseleave)=\"onStateHover('MI', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MI'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M342.553 86.3L342.5 89.3422L342.438 90.4131L342.404 90.6783L342.375 90.7541L341.973 91.3983L341.935 91.4475L341.801 91.4854L341.342 91.5755L340.902 91.1488L340.873 91.073L341.017 90.7285L341.166 90.5957L341.362 90.6385L341.461 90.5012L341.495 90.4397L341.504 90.3447L341.485 90.2463L341.418 90.1656L341.38 90.1464L341.045 90.0657L340.954 90.0465L340.834 90.0701L340.638 90.1744L340.629 90.1793L339.844 92.8471L339.777 93.4297L339.749 93.5341L339.562 93.9701L339.299 94.1453L339.074 94.2589L338.875 94.3111L338.842 94.316L338.494 94.4961L338.384 94.6147L338.274 94.8327L338.097 95.4233L338.102 95.4612V95.4991L338.152 96.1295L338.094 97.1196L337.951 97.7643L337.037 98.9202L336.602 99.6924L336.255 100.318L336.221 100.384L336.212 100.433L336.226 101.277L333.734 101.694H333.729L332.785 101.86L328.911 102.485C328.806 102.504 328.701 102.518 328.596 102.537L325.31 103.04L325.075 102.362V102.357L322.062 102.708L321.287 102.788L318.298 103.129L317.236 103.243V103.248L315.031 103.466L313.707 103.608L311.282 103.854L308.838 104.086L308.843 104.082L309.201 103.783L309.651 103.356L309.928 103.048L310.363 102.465L310.512 102.186L310.611 101.911L310.755 101.262L311.176 100.058L311.338 99.7219L312.034 98.4567C312.123 98.122 312.213 97.7872 312.304 97.4523C312.394 97.1173 312.484 96.784 312.574 96.4523L312.699 92.6094C312.397 91.3535 312.103 90.0996 311.8 88.8423L311.709 88.6528L311.361 88.0416L310.591 86.7857L310.471 86.5534L310.194 85.9422L310.045 85.5677L309.892 85.1411L309.318 84.0511L309.227 83.8759L309.128 83.62L309.094 83.4541L309.08 83.3262L309.085 83.1697L309.138 82.9517L309.262 82.715L309.458 82.4069L309.597 82.1559L309.696 81.8715L309.739 81.6746L309.758 81.3794L309.753 81.3464C309.614 80.8016 309.471 80.2638 309.332 79.7165L308.797 79.0202L309.428 78.0724L309.701 77.3997L310.165 75.5232L310.236 74.9027L310.241 74.6847L310.246 73.6188L310.285 73.2743L310.294 73.0799L310.222 72.7846L310.155 72.6281L309.94 72.2207L309.883 72.0597L309.874 71.8088L309.883 71.7473L309.926 71.6666L310.046 71.5765L310.495 71.3678L310.997 71.2069L311.117 71.074L311.184 70.8846L311.204 70.7566L311.199 70.6617H311.204L311.118 69.7188L311.099 69.2921L311.297 69.2163L311.393 69.4579L311.824 69.2828L311.867 68.7852L312.288 68.6243L312.556 68.9038L313.263 68.1164L313.335 67.6617L313.689 67.4108L314.258 65.836L314.751 65.5186H314.833L314.966 65.7317L314.325 66.3621L314.613 67.2149L314.478 67.8546L314.622 68.6981L314.588 68.7217L314.478 69.1435L314.464 69.2522L314.469 69.5268L314.498 69.7163L314.697 70.3068H314.702L314.969 70.482L315.036 69.9181L315.275 69.6528L315.204 69.364L315.419 69.1838L315.121 69.0323L315.331 68.5205L315.461 67.8901L315.776 68.1553L315.59 68.5441L315.686 69.2926L315.433 69.6951L315.251 70.4958L315.514 70.5052L315.581 70.0219L316.313 69.1263C316.332 69.0741 316.356 69.0219 316.375 68.9698L316.49 68.6287L316.547 68.4107L316.6 67.6667L316.604 66.8896L316.542 66.3685L316.275 65.4113V65.4064L316.225 65.1077L316.316 64.7096L316.493 64.4487L316.642 64.3114L316.756 64.1978L317.455 63.6387L317.551 63.5816L317.948 63.434L318.498 63.4246V63.4296L318.885 63.3681L319.359 63.2116L319.67 62.9886L319.684 62.8799L319.675 62.8041L319.641 62.7234L319.584 62.6855L319.125 62.6525L319.058 62.7047L318.656 62.624L318.408 62.406L318.241 62.2308L318.021 61.7712L317.954 61.5817L317.882 61.2643V61.1978L317.925 61.0748L318.154 60.5724L318.24 60.4493L319.053 59.5822L318.666 59.0409L320.11 59.0503L320.187 58.9887L320.029 58.6571L320.569 58.5527L320.722 58.7757L322.817 59.7658L323.468 59.657L323.812 59.5148L324.73 59.7279L324.826 59.7988L325.529 60.6422L328.162 61.6609L329.851 62.1776L330.076 62.2062L330.506 62.154L330.631 62.0167L330.693 62.0261L331.09 62.4714L331.686 63.5329V63.5378L332.313 64.2204L332.887 65.3621L332.848 65.4049L332.714 65.3906L332.289 65.277L332.145 65.1962L332.049 65.0777L331.791 65.0255L331.547 65.1962L331.494 65.277L331.427 65.462L331.422 65.4999L331.518 65.9452L331.618 66.3478L331.675 66.4664L331.733 66.5471L331.8 66.6086L332.077 66.8315L332.708 67.2297C332.775 67.3281 332.838 67.424 332.905 67.5249L333.287 68.7523L333.297 69.0224L333.239 70.9909H333.234L333.277 71.261L333.327 72.0381L333.231 72.9623L332.59 73.6965L332.447 73.6537H332.318L332.155 73.7108L332.097 73.7536L331.992 73.9012L331.906 74.0622L331.849 74.2944L331.815 75.0006C331.825 75.1379 331.83 75.2801 331.839 75.4174L331.844 75.692L331.825 76.1896L331.16 76.9666L330.514 77.1418L330.328 77.1654H329.998L329.859 77.2697L329.81 77.3219L329.657 77.5399L329.48 78.0187L329.461 78.0994H329.466L329.409 79.7628L330.604 80.905L331.575 81.2888L333.206 79.6255V79.6206L333.221 79.5635L333.307 79.1324L333.527 78.4405L334.473 76.8057L336.631 75.4411L337.028 75.3367L338.056 75.7206L338.468 75.9622L338.535 76.0237L338.826 76.4361L339.501 77.4026L339.606 77.6206L339.826 78.284L339.912 78.5871L340.036 79.1132L340.074 79.3406L340.218 80.0561L340.261 80.1934L340.644 80.9138L341.146 81.9138L341.419 84.0604L341.471 84.1933L341.667 84.6578L341.686 84.7243L341.844 85.1839L341.906 85.3497L342.553 86.3Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MI']['color']\"\n            />\n\n            <path\n                d=\"M322.63 94V87.7H324.097L326.707 91.984H325.933L328.471 87.7H329.938L329.956 94H328.318L328.3 90.193H328.579L326.68 93.379H325.888L323.935 90.193H324.277V94H322.63ZM331.217 94V87.7H332.999V94H331.217Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['MI']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n\n            <path\n                d=\"M308.988 57.9546L308.568 58.1819L308.309 58.5043L308.257 58.6027L308.252 59.1932L308.166 59.7951L308.084 59.8901L307.649 59.9186L307.535 60.2631L307.415 60.3202L307.386 60.3108V60.3157L306.97 60.4142L306.879 60.8453L306.539 60.8832L306.544 61.4186L306.209 61.4993L306.42 62.0962L305.889 61.954L305.583 61.6366L305.511 61.3142L305.76 61.1814L305.765 60.954L306.109 60.2291L306.606 60.1534L306.414 60.0205L306.749 59.3315L306.529 58.8055L306.118 59.1322L305.865 59.6243L305.334 59.5535L305.099 59.3212L304.807 59.4442L304.845 60.1598L304.467 60.984L303.554 61.6617L303.439 60.7424L303.348 60.3256L303.277 60.1312L303.128 59.9132L303.453 59.3684L303.304 58.9846L303.089 59.3591L303.07 59.738L302.778 60.0554L302.606 60.4491L302.904 60.9324L302.464 61.6213L301.981 61.8772L301.617 62.7138L301.43 63.1306L301.425 63.1449H301.43L301.287 63.6946L301.043 64.4766L300.335 66.0592L299.838 66.8599L299.36 68.3145L299.012 68.2575L298.813 68.2245H298.809L298.201 67.5897L298.168 67.5326L298.096 67.3097V67.3047L298.091 67.2998L298.587 65.6699L298.14 65.2762L297.748 65.6788H296.656L297.411 64.0583L297.335 62.0898L297.105 61.8103L297.086 61.7911L297.071 61.7818L296.928 61.6632H296.923L295.105 61.1799L295.006 61.1942H294.997L294.891 61.1656L294.829 61.1514L294.531 60.9147H294.526L294.477 60.8197L294.486 60.7818L294.491 60.7724L294.625 60.6017L294.678 60.5589L294.802 60.3881L294.907 60.2035L294.898 60.1657L294.874 60.1327L294.649 59.8153L294.529 59.7395V59.7301L294.352 59.6115L294.054 59.4742L293.863 59.4457H293.849L291.61 59.1662L290.266 59.3084L290.108 59.0289L288.157 58.5368L287.693 58.3094L287.147 58.0442L286.626 57.869L286.3 57.8025L285.884 57.7174L280.374 56.5993L279.599 56.4384L278.892 56.2908L277.347 54.4094L276.477 53.9404L276.984 53.533L277.137 53.4478L278.352 52.9646L278.825 52.8317L279.236 52.6609L279.361 52.5901L279.595 52.3671L280.15 51.8224L280.349 51.5379L280.636 51.1826L280.76 51.0842L281.061 50.909L281.587 50.7481L281.935 50.691L282.034 50.7053L282.173 50.7624L283.718 50.5015L283.876 50.4445L284.191 50.2786L286.903 48.5823L287.367 48.1512L287.544 47.5494L287.643 47.3835L288.165 46.9003L288.949 46.166L289.088 46.0381L289.107 46.4269L289.432 46.9682L290.159 47.0912L290.422 47.7452L291.197 48.3899L291.092 48.7924H291.087L290.934 49.4701L290.925 50.0606L290.934 50.1221L291.025 50.3308L291.125 50.5345L291.301 50.5202L291.33 50.4445L291.459 50.2358L291.827 49.724L292.651 48.8717L293.291 48.4357L293.377 48.4071L293.463 48.4499L294.176 48.9332L295.261 48.8717L295.94 49.0469L296.184 49.1133L297.37 49.753L297.686 50.0419L297.748 50.3593L297.829 50.601L299.498 52.6954L299.566 52.7712L299.685 52.8661L299.809 52.9277L300.125 52.9941H300.527L301.512 52.8425L301.598 52.8189V52.8238L301.871 52.5778L302.306 52.3361H302.373L302.617 52.379L302.727 52.4774L302.89 52.814L303.411 53.2308L303.482 53.2736L303.678 53.2879L303.913 52.7958L304.31 52.8809L304.487 53.1225L304.922 53.0846L304.937 53.3169L305.19 53.3361L305.271 52.938L305.434 52.8671L305.606 52.3932L305.86 52.2889L306.013 52.0045L307.022 51.5542L308.452 50.4169L310.408 49.8756L310.863 49.7713V49.7762L311.384 49.819H311.723L312.962 49.7147L313.302 49.6817L313.546 49.6325L313.752 49.5616L314.555 49.1069L315.502 48.5429V48.5572L315.98 48.4199L317.014 48.3348L317.583 48.074L317.272 48.6566L317.195 48.8417L317.157 49.0075V50.8746L317.181 51.0025L317.234 51.1113L317.372 51.2722L317.444 51.3214L317.525 51.35L318.013 51.1748L318.29 51.2884L318.692 51.2791L318.979 51.5744L319.381 51.3706L320.007 50.9253L320.462 50.9681L320.816 51.3426L320.859 51.5557L321.496 51.3327L321.794 51.3042L321.827 50.7451L321.999 50.5936L322.446 50.4371L322.844 50.5178L323.145 50.878L323.38 51.1147L323.529 51.7402L323.768 51.9961L323.864 52.5837L324.045 52.7446L324.232 53.0763L324.04 53.1284L323.662 53.4695L323.83 53.9006L324.318 53.8021L325.518 54.186L325.308 54.437L325.25 54.7214L325.58 55.0339L325.906 55.2376L326.355 55.1884L326.632 55.5152L326.809 55.5437L326.9 55.8424L326.833 56.0841L325.79 56.0605L325.226 56.0413L325.106 55.9891L325.029 55.9399H324.996L323.417 56.371L321.806 56.0201L320.519 55.6599L320.32 56.8537L320.488 57.6072L320.234 57.9024L318.135 56.4005L317.207 56.121L315.586 55.7942L314.992 55.7657L314.878 55.775L314.328 55.8887L314.237 55.9217L314.17 55.9709L314.041 56.1131L313.615 56.7007L313.539 56.9467L313.3 57.3542L313.237 57.4349L312.989 57.5333L311.688 57.5826V57.5732L311.282 57.8385L310.125 57.772H309.943L309.173 57.8906L308.988 57.9546Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MI']['color']\"\n            />\n        </g>\n        <path\n            d=\"M327.037 55.7013L326.984 55.4925L327.114 55.1606L327.257 55.2099L327.377 55.5181L327.601 55.3994L327.764 55.039L328.122 54.9203L328.438 54.8017L328.376 54.4983L327.912 54.3418L327.998 54.1994L328.5 54.1143L328.571 54.1236L328.926 54.2186L329.825 55.1291L329.887 55.2049L329.901 55.2478L329.696 55.8785L329.652 55.945L329.59 56.0066L329.327 56.1109H328.021L327.681 56.0538L327.572 55.9061L327.442 55.7687L327.037 55.7013Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <path\n            d=\"M311.113 67.3002L310.807 67.0633L310.754 66.7644L311.165 66.499L311.563 66.6177L311.73 67.438L311.668 67.6419L311.314 67.5754L311.113 67.3002Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M284.469 39.471L284.297 39.22L284.35 39.0827L284.57 38.7938L284.818 38.5477L285.414 38.1451L286.136 37.7233L287.772 36.7044L288.336 36.3255L288.389 36.227L288.403 36.1985L288.523 36.0612L288.829 35.8667L289.302 35.6108L290.211 35.3691L289.913 35.7388L289.191 36.3072L289.138 36.4923L289.224 36.7246L289.071 36.8856L288.459 37.427L287.885 37.7351L287.312 37.8335L286.119 38.682L286.124 38.8573L286.655 38.8381L285.307 39.6625L285.058 39.7334L284.81 39.6669L284.469 39.471Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M310.778 67.8643L310.854 67.9733L310.805 68.2587L310.57 68.5296L310.379 68.3253V68.002L310.778 67.8643Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M304.552 52.4306L304.355 51.9658L304.714 51.7949L305.044 52.1696L304.982 52.6059L305.116 52.6675L305.154 52.5394L305.278 52.5109L305.307 52.6768L305.13 52.9186L305.021 52.8994L305.026 52.8043L304.93 52.7379L304.853 52.9747L304.715 52.9934L304.629 52.8984L304.705 52.6374L304.552 52.4306Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M289.211 45.9564L290.321 45.1792V45.1743H290.326L290.673 44.5581L290.95 44.1978L291.161 44.0369L292.391 43.2405L292.644 43.1268L293.691 42.8379L294.146 42.7621L294.519 42.7385L295.48 42.7148L295.824 42.8236L296.03 42.9324L296.145 43.0175L296.221 43.3822L296.212 43.4344L295.456 43.6761L295.365 43.6672L294.347 43.8803L293.218 45.444L293.007 45.7142L292.534 45.9323L292.003 45.9815V45.9864L292.534 45.9372L291.266 48.3066L290.511 47.6859L290.238 46.9895L289.502 46.8758L289.224 46.3875L289.211 45.9564Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M314.098 61.0513L314.212 60.7622L314.15 60.421L314.404 59.9941L314.399 59.5342L314.872 59.6007L314.748 59.7144L314.944 59.8518L314.925 60.3934L315.102 60.8582L315.058 61.1473L314.705 61.5363L314.179 61.4984L314.098 61.0513Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M322.814 58.2591L323.459 58.292L323.301 58.9415L322.526 58.913L321.93 58.1685L321.543 58.2064L322.007 57.9932L322.814 58.2591Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M320.988 57.4194L321.165 57.3623L321.37 57.6989L321.15 57.784L320.988 57.4194Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-MN\"\n            (mouseenter)=\"onStateHover('MN', false, $event)\"\n            (mouseleave)=\"onStateHover('MN', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MN'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M282.436 37.85L282.426 37.9544L282.397 37.9829L281.977 38.3097L281.853 38.3997L280.263 39.3284L279.249 39.8731L278.671 40.1856L278.13 40.4179L277.465 40.6408L276.953 40.821L275.543 41.4036L274.847 41.6989L273.407 42.6339L272.459 43.4159L271.355 44.4661V44.471L271.193 44.566L270.61 45.2137L270.404 45.4504L269.482 46.72L268.275 48.1516L268.126 48.3081L267.825 48.5119L267.423 48.7299L266.476 49.692L266.242 49.9479L265.831 50.4311L265.486 50.6019L265.18 50.8293L263.889 51.9193L263.693 52.0994L263.635 52.1703L263.688 52.3219L263.879 52.6206L264.185 52.9808L264.271 53.03L264.233 53.0586L264.122 53.0094L263.687 52.5876L263.482 52.6019L262.946 52.9621L262.903 53.0522L262.893 53.1329L262.922 53.1993V53.2087L262.96 53.2515L262.965 53.2609L262.975 53.3839L262.876 53.6491L262.837 53.6821L262.799 53.7057L262.574 53.72L262.363 53.7008L262.191 53.5822C262.224 54.4729 262.256 55.3639 262.287 56.2549L262.392 59.0792L262.412 59.5531L262.426 59.9798L261.307 60.6717L259.709 61.714H259.704L259.326 62.0408L259.227 62.1688L259.131 62.3395L258.361 63.875L258.05 64.8228L258.036 64.9935L258.041 65.0644L258.06 65.3533L258.089 65.5664L258.194 65.6471L258.562 65.7086L258.715 65.685L259.323 66.0118L259.701 66.7224L259.854 67.4901L259.562 68.2283L259.364 68.4793L259.349 68.4886L259.258 68.5693L259.136 69.5152L258.973 70.9507L258.997 71.306L259.188 71.7135L259.356 72.4763L259.296 73.3045L259.023 74.5885L259.578 74.9108L260.391 75.5934L260.477 75.6977L260.497 75.802L261.066 76.366L261.19 76.4226L261.525 76.4605L262.582 76.5033L262.716 76.5319L262.802 76.5747L262.879 76.6362L262.907 76.679L262.951 77.2002L263.529 77.6027L264.706 78.0811L265.596 78.4935L266.036 78.896L266.05 79.1376L266 79.3084L266.187 79.4693L266.355 80.0663L266.479 80.3173L268.985 82.0943L270.219 82.4496L271.372 83.8994L271.563 85.2168L272.089 87.6573L268.959 87.8049L268.013 87.8477L265.224 87.9614L262.293 88.08V88.0849L261.466 88.1135L257.712 88.2464L257.515 88.2557L253.952 88.3541L252.742 88.3827V88.3876L250.179 88.4447L247.983 88.4777H247.978L246.424 88.5013L243.152 88.5505V88.5554L242.665 88.5648L238.905 88.5977H238.374V88.5928L235.132 88.612H233.606V88.6071L230.42 88.5977L230.435 84.7784L230.458 80.989L230.482 77.2031L230.492 76.2509C230.495 75.616 230.498 74.981 230.501 74.3459V74.3409L230.516 69.2942H230.511L230.382 68.6638L230.238 68.3272L229.985 68.1303L229.244 67.7701L228.647 67.6943L228.116 66.5285L227.576 65.8179L227.437 65.6427L227.409 65.5998L227.514 65.2352L227.543 65.1737L227.572 65.1451L227.581 65.1309L228.284 64.5718L228.552 64.401L228.85 64.2401L229.003 64.0836L229.543 63.2923L229.552 63.2637L229.562 63.2495L229.571 63.2258L229.576 63.1737L229.595 63.0753L229.624 62.8385L229.657 62.5497L229.662 62.5354V62.5118L229.705 62.0379L229.6 61.095V61.09L229.744 60.6963L229.763 60.6299L229.777 60.4119L229.754 60.2175L229.462 57.9336L228.405 55.4129C228.296 55.0986 228.188 54.7843 228.08 54.47L228.075 53.8588L228.224 51.4897L228.133 51.2387L227.812 50.2008L227.803 48.8229L227.76 47.8751L227.621 45.0463V45.0414L227.368 43.1649L226.397 40.976L225.684 38.4219L225.507 37.7585V37.724H225.512L225.517 37.506L225.756 36.5818L225.706 33.9849L225.534 33.7762L225.476 33.7477L225.443 33.729L225.983 32.2457L225.658 31.5208L225.52 31.0991L224.989 29.3835L224.945 29.1562L224.955 28.9953L224.988 28.8343L225.021 28.8014L231.057 28.8629H238.988L240.23 28.8535L240.216 27.1857L240.21 26.4825L240.201 25.3595L240.196 25.0514V25.0371L241.626 25.1744L242.08 25.3831L242.606 25.8191L243.203 27.8043V29.0346L243.6 29.3712L243.791 30.2197L243.657 31.1911L243.997 31.4992L244.117 31.6035L244.604 31.8737L244.815 31.9874L244.829 31.9967L244.935 32.0061L245.303 32.044L245.585 31.9209V31.9258L245.684 31.883L245.883 31.8688L246.476 31.8781L246.605 31.9017L246.835 32.0203L246.902 32.1576L246.907 32.2334L246.916 32.4465L246.959 32.4751L247.112 32.5129L247.835 32.5558L248.375 32.5464L249.939 32.6837L249.989 32.7216L250.08 32.8875L250.2 33.2285L250.219 33.3235L250.181 33.6079L250.128 33.6886V33.7408L250.157 33.7787L250.31 33.8874H250.592L251.287 33.8638L252.153 33.7029L252.717 33.5085L252.767 33.4514L252.791 33.3328V33.2713L252.753 33.2004L252.714 33.0582L252.729 33.0061L253.58 32.6124L254.259 32.418L254.607 32.4086L254.813 32.5887L255.076 32.5794H255.09L255.488 32.5366V32.5508H256.282L261.497 35.4111L261.688 35.2782L263.218 35.1694L263.414 35.5203L263.749 36.2167L263.783 36.2688L263.845 36.354L265.193 36.8043V36.8092L265.61 36.7427L265.808 36.792L265.818 36.8062L265.842 36.8554L265.951 37.3815L265.894 37.6182L265.87 37.6847V37.7132L266.406 37.8697L267.554 38.1399L268.74 38.0547L269.022 38.0055L269.199 37.944L269.314 37.8825H269.319L270.873 36.6409V36.6315L271.265 36.3092L271.925 35.9868H272.213L272.236 35.9962L272.275 36.039L272.566 36.693L272.695 37.0484V37.0577L272.935 37.536L273.011 37.6069L274.352 37.3609L277.265 37.1286L277.566 37.1143L277.901 37.1758L278.035 37.2044L278.418 37.3559L278.628 37.6404L278.667 37.7304L278.647 37.8781L278.685 37.9539L278.877 38.0912L279.423 38.3471L279.605 38.3564L279.787 38.2713L281.202 38.0105L282.436 37.85Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MN']['color']\"\n            />\n            <path\n                d=\"M237.63 64V57.7H239.097L241.707 61.984H240.933L243.471 57.7H244.938L244.956 64H243.318L243.3 60.193H243.579L241.68 63.379H240.888L238.935 60.193H239.277V64H237.63ZM246.217 64V57.7H247.684L251.158 61.894H250.465V57.7H252.211V64H250.744L247.27 59.806H247.963V64H246.217Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['MN']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-MO\"\n            (mouseenter)=\"onStateHover('MO', false, $event)\"\n            (mouseleave)=\"onStateHover('MO', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MO'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M293.613 159.849L294.116 160.11L293.781 161.622L293.537 161.887L293.417 162.399L293.015 162.432L292.456 161.916L292.46 161.925L291.776 163.437L291.686 163.849L291.38 164.001L291.155 163.835L291.183 163.498L291.269 163.337L291.284 163.309L291.293 163.266L291.322 163.157L291.326 163.128V163.062L291.298 162.943L291.245 162.815L291.24 162.806L291.183 162.721L291.169 162.711L291.155 162.697L291.131 162.683L290.997 162.645L290.748 162.607L290.59 162.631L290.533 162.664L290.433 162.797L290.419 162.816L290.409 162.859L290.395 162.911L290.386 162.949L290.395 162.982L290.404 163.031L290.409 163.04L290.505 163.237L290.515 163.251L290.711 163.531L290.835 164.128L291.17 164.573L291.165 165.175L290.782 165.303L290.778 165.294L290.361 165.36L290.878 165.744L291.06 166.109L290.553 166.417L289.811 166.364L290.151 166.999L290.715 167.274L290.648 167.668L290.075 167.98L290.008 168.549L289.682 169.041L287.382 169.231V169.226L284.474 169.434L283.771 169.484L285.129 167.143L286.09 166.306L286.152 166.211L286.248 165.96L286.191 165.093L286.105 164.979L285.32 163.885L284.976 163.894L284.742 163.908L284.737 163.913L281.623 164.088L279.796 164.183L276.798 164.354V164.349L274.339 164.482L273.966 164.491L272.015 164.558V164.563L268.083 164.738L267.821 164.752L264.497 164.885L262.368 164.961V164.966L261.646 164.989L257.776 165.103H257.604L255.241 165.16V165.165L252.768 165.227L250.918 165.265V165.26L246.168 165.331L246.144 163.483L246.126 162.4L246.082 159.22V159.215L246.039 156.131L246.034 155.842H246.039L245.986 152.662L245.982 152.449L245.958 148.455L245.953 148.199L245.903 144.593L245.894 143.617C245.889 142.661 245.884 141.705 245.879 140.75L245.874 139.556L245.85 137.395L245.836 136.632L245.874 136.126L244.248 135.694L242.736 133.315L241.594 132.074L241.929 131.074L242.028 130.932L242.315 130.515L242.349 130.477L242.956 129.946L243.133 129.918L243.31 129.53L243.243 129.226L243.176 128.904L242.477 128.02L242.185 128.343L242.181 128.352L242.131 128.401L242.069 128.425L241.748 128.453H241.71L241.677 128.444L241.519 128.382L241.308 128.307L240.897 128.046L239.883 127.136L239.831 127.055L239.826 126.957L237.769 124.095L237.774 124.057L237.778 123.862V123.848L237.783 123.829L237.76 123.772L237.181 123.208L236.641 121.862L236.591 121.668L236.687 121.583L236.869 121.26L236.558 120.986L236.447 121.218L235.988 120.555L239.236 120.588L240.657 120.597L243.048 120.611V120.616L245.396 120.626L246.731 120.611L248.711 120.562V120.557L250.509 120.5L252.513 120.419L254.316 120.344V120.349L255.832 120.306L258.132 120.197L261.308 120.036L261.944 120.003L264.321 119.842L265.732 119.747L267.694 119.614L269.578 119.609L269.75 119.714L270.411 120.206L270.43 120.277L270.401 120.5L270.43 120.575L271.272 121.594L271.616 121.874L272.163 121.912L271.551 123.361L271.493 123.897L272.082 126.675H272.087L272.924 128.689L273.426 129.471L274.607 130.366L276.631 132.446L278.687 134.256H278.697V134.266L279.094 135.602L279.085 135.739L278.855 136.09L278.846 136.123L278.869 136.199L279.324 137.417L281.127 136.957V136.952L282.639 137.317L282.859 137.383L283.074 137.482L283.236 137.577L284.068 138.079L284.106 138.136L284.111 138.203L284.083 138.454L284.063 138.552V138.557L283.446 139.306H283.441L283.619 140.182L283.054 141.627L283.016 141.765L282.428 143.286L282.404 143.314L282.366 143.39L282.242 143.812L282.223 143.861L282.218 143.975L282.232 144.43L282.347 144.922L282.446 145.163L282.604 145.376L282.633 145.414L282.652 145.438L283.374 146.134L283.809 146.461L286.243 148.66L288.563 149.295L290.053 151.74V151.806L290.058 151.904L290.116 152.122L290.364 152.577L290.527 152.814L290.752 153.037L290.861 153.17L290.996 153.478L291.001 153.488L291.006 153.506L291.055 153.691L291.06 153.701L291.055 153.715L291.022 154.052L290.989 154.15L290.984 154.159L290.965 154.178L290.865 154.23L290.554 154.315L290.569 155.277L290.789 155.586L291.324 156.576L291.63 157.324L292.2 157.789L292.209 157.779V157.794L293.883 157.969L294.194 158.367L293.864 159.457H293.859L293.615 159.594H293.61L293.613 159.849Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MO']['color']\"\n            />\n            <path\n                d=\"M258.63 149V142.7H260.097L262.707 146.984H261.933L264.471 142.7H265.938L265.956 149H264.318L264.3 145.193H264.579L262.68 148.379H261.888L259.935 145.193H260.277V149H258.63ZM270.394 149.126C269.89 149.126 269.425 149.045 268.999 148.883C268.573 148.721 268.201 148.493 267.883 148.199C267.571 147.899 267.328 147.551 267.154 147.155C266.98 146.759 266.893 146.324 266.893 145.85C266.893 145.376 266.98 144.941 267.154 144.545C267.328 144.149 267.571 143.804 267.883 143.51C268.201 143.21 268.573 142.979 268.999 142.817C269.425 142.655 269.89 142.574 270.394 142.574C270.904 142.574 271.369 142.655 271.789 142.817C272.215 142.979 272.584 143.21 272.896 143.51C273.208 143.804 273.451 144.149 273.625 144.545C273.805 144.941 273.895 145.376 273.895 145.85C273.895 146.324 273.805 146.762 273.625 147.164C273.451 147.56 273.208 147.905 272.896 148.199C272.584 148.493 272.215 148.721 271.789 148.883C271.369 149.045 270.904 149.126 270.394 149.126ZM270.394 147.65C270.634 147.65 270.856 147.608 271.06 147.524C271.27 147.44 271.45 147.32 271.6 147.164C271.756 147.002 271.876 146.81 271.96 146.588C272.05 146.366 272.095 146.12 272.095 145.85C272.095 145.574 272.05 145.328 271.96 145.112C271.876 144.89 271.756 144.701 271.6 144.545C271.45 144.383 271.27 144.26 271.06 144.176C270.856 144.092 270.634 144.05 270.394 144.05C270.154 144.05 269.929 144.092 269.719 144.176C269.515 144.26 269.335 144.383 269.179 144.545C269.029 144.701 268.909 144.89 268.819 145.112C268.735 145.328 268.693 145.574 268.693 145.85C268.693 146.12 268.735 146.366 268.819 146.588C268.909 146.81 269.029 147.002 269.179 147.164C269.335 147.32 269.515 147.44 269.719 147.524C269.929 147.608 270.154 147.65 270.394 147.65Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['MO']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-MS\"\n            (mouseenter)=\"onStateHover('MS', false, $event)\"\n            (mouseleave)=\"onStateHover('MS', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MS'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M306.129 229.613L306.12 229.774L305.445 230.205L305.369 230.234L302.991 230.149L302.815 230.111L302.174 229.751L301.834 229.556V229.551L301.121 229.726L299.615 230.115L297.768 230.641L297.175 230.239L297.003 231.22L295.582 232.442L295.142 232.47H295.123L295.103 232.456L295.065 232.433L295.041 232.418L294.974 232.338L294.769 232.101L294.673 231.921L294.375 231.357L294.365 231.3L294.389 231.21L294.475 230.987L294.461 230.783L293.872 229.598L293.805 229.532H293.791L292.213 227.376L292.318 226.599L292.433 226.021L292.576 225.324L292.701 224.817L292.72 224.794L292.796 224.785L292.858 224.775L292.949 224.567L293.069 223.988L293.049 223.652L292.04 223.718L288.056 223.979L287.233 224.028L285.349 224.147L285.167 224.152L282.733 224.294L280.528 224.417V224.422L279.435 224.474L275.102 224.678C275.177 224.109 275.252 223.541 275.327 222.972L275.556 221.802L275.904 218.959L275.909 218.949L275.942 218.879L275.966 218.836L276.965 216.841L276.975 216.831L277.124 216.58L277.215 216.419V216.414L278.281 215.026V215.021L280.19 212.265L279.252 211.175L280.324 211.047L280.257 209.473L279.233 208.39L279.223 208.371L279.185 208.31L279.156 208.272V208.255L279.142 208.08L279.353 207.384L279.286 207.236L278.994 207.146L278.97 207.127L278.884 207.051L278.865 207.037L278.855 207.018L278.822 206.985L278.813 206.966L278.76 206.833L278.023 203.521L278.004 203.436L278.104 203.091L278.405 202.608L278.477 202.523L278.745 202.22L278.754 202.21L279.041 201.021V201.012L279.017 200.187L278.778 199.936L278.467 199.377L278.003 198.069L278.476 197.932L278.586 197.714L278.515 197.463L278.137 197.207L277.668 196.894L277.658 196.89L277.534 196.545L278.204 196.275L278.366 196.138L278.39 196.024V196.015L278.132 195.806L277.859 195.602L277.806 195.507L277.797 195.484L277.846 195.237L278.578 192.124L280.352 191.238L280.405 190.869L280.31 190.632L279.903 190.31L279.898 190.296L279.87 190.191L279.999 189.921L280.405 189.087L281.266 187.556L282.213 187.367L282.606 187.182L282.917 186.912L282.936 186.897L282.945 186.878L283.008 186.67L282.912 185.689L282.787 184.419L284.17 182.235L285.174 181.874L284.949 180.405L290.177 180.088L290.89 180.036L293.496 179.865L294.874 179.767V179.772L296.486 179.653L298.224 179.52H298.229L298.55 179.491L302.176 179.207L302.325 179.198L303.788 179.079L304.797 180.131L304.706 183.557L304.672 184.861C304.642 186.244 304.612 187.628 304.581 189.012L304.572 189.32L304.486 192.769H304.481V192.774L304.431 195.087L304.379 197.794H304.384L304.317 201.059L304.307 201.741H304.302L304.24 205.594L304.173 208.555L304.149 209.446L304.087 213.095L304.312 215.232L304.676 218.075H304.681L305.128 221.553L305.29 222.813H305.285L305.639 225.652L306.129 229.613Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MS']['color']\"\n            />\n            <path\n                d=\"M285.63 207V200.7H287.097L289.707 204.984H288.933L291.471 200.7H292.938L292.956 207H291.318L291.3 203.193H291.579L289.68 206.379H288.888L286.935 203.193H287.277V207H285.63ZM296.431 207.126C295.915 207.126 295.417 207.063 294.937 206.937C294.463 206.805 294.076 206.637 293.776 206.433L294.361 205.119C294.643 205.299 294.967 205.449 295.333 205.569C295.705 205.683 296.074 205.74 296.44 205.74C296.686 205.74 296.884 205.719 297.034 205.677C297.184 205.629 297.292 205.569 297.358 205.497C297.43 205.419 297.466 205.329 297.466 205.227C297.466 205.083 297.4 204.969 297.268 204.885C297.136 204.801 296.965 204.732 296.755 204.678C296.545 204.624 296.311 204.57 296.053 204.516C295.801 204.462 295.546 204.393 295.288 204.309C295.036 204.225 294.805 204.117 294.595 203.985C294.385 203.847 294.214 203.67 294.082 203.454C293.95 203.232 293.884 202.953 293.884 202.617C293.884 202.239 293.986 201.897 294.19 201.591C294.4 201.285 294.712 201.039 295.126 200.853C295.54 200.667 296.056 200.574 296.674 200.574C297.088 200.574 297.493 200.622 297.889 200.718C298.291 200.808 298.648 200.943 298.96 201.123L298.411 202.446C298.111 202.284 297.814 202.164 297.52 202.086C297.226 202.002 296.941 201.96 296.665 201.96C296.419 201.96 296.221 201.987 296.071 202.041C295.921 202.089 295.813 202.155 295.747 202.239C295.681 202.323 295.648 202.419 295.648 202.527C295.648 202.665 295.711 202.776 295.837 202.86C295.969 202.938 296.14 203.004 296.35 203.058C296.566 203.106 296.8 203.157 297.052 203.211C297.31 203.265 297.565 203.334 297.817 203.418C298.075 203.496 298.309 203.604 298.519 203.742C298.729 203.874 298.897 204.051 299.023 204.273C299.155 204.489 299.221 204.762 299.221 205.092C299.221 205.458 299.116 205.797 298.906 206.109C298.702 206.415 298.393 206.661 297.979 206.847C297.571 207.033 297.055 207.126 296.431 207.126Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['MS']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-MT\"\n            (mouseenter)=\"onStateHover('MT', false, $event)\"\n            (mouseleave)=\"onStateHover('MT', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['MT'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M175.126 26.3883L174.796 30.3164L174.576 32.9463H174.571L174.232 37.1786V37.1835L173.677 43.6303L173.61 44.3552L172.974 51.7946L172.879 52.8847L172.635 55.709L172.329 59.3339L172.276 60.0259L171.683 67.2852L171.348 69.6164L163.743 68.9057L163.197 68.8536L157.471 68.2852L155.994 68.2094L154.243 68.0199L149.408 67.4559L147.92 67.2807L147.509 67.1956L143.85 66.7502L141.645 66.485L138.89 66.1439V66.139L136.021 65.7552L133.636 65.4427L132.618 65.3054L132.46 65.2817L131.03 65.0209L126.945 64.4761V64.4811L125.19 64.2109L124.544 64.1065L123.678 64.0637L121.119 63.7227H121.1L119.943 63.5426L119.608 63.4289L118.652 63.2345L117.356 63.0377V63.0426L116.768 66.4825L116.404 68.7192L115.778 68.1459L115.692 67.8851L115.347 66.9043L114.716 65.6818L114.348 65.3172V65.3122L113.473 65.639L112.143 67.1508L111.144 67.1223L109.594 66.6863L107.458 66.4682L106.291 66.9043L103.541 66.2266L103.024 66.3496L102.718 66.6671L102.608 66.8378L102.517 67.2453L102.512 67.2739L102.436 67.3925L102.278 67.4776L102.079 67.4067L101.453 66.7148L101.242 66.4117L101.151 65.8949L101.161 64.5352L101.19 64.5116L101.239 64.4309V64.3437L101.014 63.3959L100.847 62.8748L100.703 62.6474L100.373 62.2872L100.101 62.0741L99.8375 62.1405L98.5654 60.3777L97.3603 55.9486L97.3509 55.0958L97.3702 54.4467L97.4696 54.2715L97.4746 53.9447L97.3886 53.0825L97.3454 52.9452L96.6003 51.9029L96.4473 51.742H96.4423L95.7633 52.1307L94.8161 52.9506L93.3095 53.6396L92.9941 53.5874L92.9225 53.3222L92.3582 52.4408L92.2624 52.398L91.9609 52.3222L91.6211 52.273L91.5972 52.2444L91.6067 52.2065L91.7408 51.4683L92.0085 50.0087L94.143 44.7081L94.8175 43.2248L95.2671 42.2012L95.5348 41.4527L95.578 41.2159L95.5542 41.088L95.511 41.0452H95.506L95.4727 41.0122L95.3386 40.9034L94.9412 40.8513L94.745 40.8892L94.6253 40.9384L94.4529 40.9876L93.6348 40.8168L93.6204 40.8026L93.2042 39.7691H92.8743L92.8247 39.7548L92.7149 39.7263L91.6102 38.2573L91.5769 38.1672V38.1623L91.4279 37.0629L91.2366 36.712L90.8825 36.0536L90.2596 34.6048L89.59 33.1122L89.4658 33.0221L88.8777 32.7898L88.4758 32.5954L88.3516 32.4818L88.1892 32.3489L87.0124 30.7377L87.003 30.4675V30.4581L87.1466 29.5817V29.5674L87.3616 29.0935L87.61 28.4631L87.615 27.8568V27.814L87.61 27.7997L87.5956 27.7712L87.5862 27.7333L86.1084 24.748L85.8789 24.3455L86.4144 21.8386V21.8293L87.0696 18.8111L88.2031 13.5518L93.9284 14.7599L97.0995 15.3903L97.6832 15.504L102.423 16.439H102.428L103.131 16.5763L105.125 16.97L109.281 17.7235L110.047 17.8564L115.939 18.8942V18.8893L118.393 19.3061L119.057 19.4198L120.889 19.7185L122.607 19.9981L126.427 20.594L135.515 21.9228H135.52L136.281 22.0271L138.629 22.3637L139.064 22.4301H139.107L142.386 22.8662L142.788 22.9183L144.615 23.155V23.16L152.301 24.0979V24.1029L160.075 24.9739V24.969L167.761 25.7411L175.126 26.3883Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['MT']['color']\"\n            />\n            <path\n                d=\"M127.63 48V41.7H129.097L131.707 45.984H130.933L133.471 41.7H134.938L134.956 48H133.318L133.3 44.193H133.579L131.68 47.379H130.888L128.935 44.193H129.277V48H127.63ZM137.558 48V43.113H135.623V41.7H141.266V43.113H139.34V48H137.558Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['MT']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M412.438 152.691V152.696L412.596 152.767L412.754 152.89L412.96 153.099L413.113 153.365L413.232 153.796L413.194 153.877L413.161 153.882L412.75 153.811L412.673 153.754L412.027 152.818L411.978 152.737L411.973 152.714L412.04 152.656L412.15 152.633H412.284L412.438 152.691Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M408.195 146.72L408.156 146.644L408.434 146.582L408.592 146.631L408.587 146.55L409.022 146.46L409.161 147.078L408.749 147.054L408.616 147.145L408.496 147.095L408.525 146.763L408.195 146.72Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M409.697 147.514L409.238 146.41L409.334 146.391L411.013 149.57V149.575L411.018 149.584L411.496 150.286L411.764 150.698L412.07 151.043L412.496 151.587L412.922 152.175L413.505 153.194L413.931 153.843L413.888 153.966L413.017 153.009L412.669 152.241L412.196 152.099L411.904 151.492L411.479 150.639L410.947 149.632L410.603 149.077L410.282 149.028L410.129 148.644L410.392 148.734L410.254 148.407L409.895 147.796L409.9 147.668L409.697 147.514Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M415.369 158.896L415.364 159.862L415.315 159.96H415.215L415.072 159.946L414.899 159.995L414.646 160.09L414.44 160.218L413.531 160.806H413.526L413.364 160.896L413.206 161.024L412.809 161.337L412.254 161.816L412.005 162.029L411.728 162.351L411.599 162.541L411.513 162.621L411.484 162.588L411.494 162.546L411.632 162.157L411.79 161.934L412.345 161.451L413.19 160.778L413.453 160.665V160.66L413.615 160.575L413.744 160.49L414.44 160.011L415.185 159.466L415.204 159.291L415.166 158.187L415.113 157.449L415.018 156.354L414.908 155.862L414.826 155.611L414.712 155.355L414.573 155.185L414.463 155.047L414.016 154.099L414.049 154.062L414.099 154.071H414.119L414.133 154.095L414.362 154.369L414.448 154.506L414.716 155.009L414.874 155.374L415.089 155.852L415.156 156.321L415.175 156.458L415.252 157.126L415.328 158.103L415.369 158.896Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-NC\"\n            (mouseenter)=\"onStateHover('NC', false, $event)\"\n            (mouseleave)=\"onStateHover('NC', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NC'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M410.955 157.535L410.716 158.161L410.75 158.284L410.745 158.397L410.695 158.748L410.681 158.824L410.642 158.9L410.312 159.416L409.766 160.007L409.713 160.04L407.485 160.253H407.403L406.681 160.163L406.102 160.072L405.691 160.731L406.662 160.722L406.839 160.774L406.973 160.959L407.054 161.148L407.088 161.314L406.959 161.882L406.71 162.939L406.572 163.261L406.084 164.223V164.228L406.122 164.299L406.28 164.465L406.639 164.427L407.299 164.058L407.476 163.223L407.863 163.712L408.318 164.155L408.906 164.056L408.437 163.44L409.202 163.672L409.479 164.388L408.92 165.236L408.7 165.255L408.485 165.551L408.652 165.953L410.206 163.603L410.986 162.451L411.144 162.664L410.393 163.659L409.946 164.712L409.09 165.939L408.205 167.801L407.937 168.392L407.755 168.074L407.454 167.97L406.531 167.795L406.076 167.847L405.698 167.923L405.287 168.041L404.527 168.316L403.814 168.611L403.737 168.644L403.708 168.658L403.479 168.767L403.283 168.881L402.948 169.07L402.804 169.146V169.151L399.653 171.994L398.208 173.932H397.979L397.983 173.937H398.208L398.041 174.183L397.888 174.515L397.481 175.514L397.414 175.775L397.261 176.529L397.247 176.619L397.013 178.206V178.211L396.922 178.96L396.611 179.102L396.371 178.789L395.649 178.728H395.267L394.898 178.777L394.023 178.957L393.115 179.242L393.086 179.251H393.081L392.038 179.848L391.78 180.057L390.617 179.232V179.237L386.169 176.088H386.164V176.083L382.18 173.211L382.06 173.126L382.055 173.131L379.726 171.591L377.597 171.936V171.931L374.111 172.433L371.968 172.746L370.05 173.031L369.868 172.998L369.863 172.893L369.806 171.78L369.175 171.154L368.458 170.429L368.123 170.282L367.401 171.002L367.137 170.827L367.333 170.159L367.123 169.846L364.59 170.074L364.245 170.107L360.676 170.478L359.733 170.573L358.891 170.663V170.668L356.691 170.891L355.449 170.948L353.617 171.9L352.043 172.966L350.886 173.261L349.948 173.706L349.097 174.119L345.778 174.635L345.194 174.725L341.767 175.223L341.154 175.298L340.055 175.436L338.342 175.633L338.309 173.226L339.036 172.595L339.983 172.572L340.318 172.297L340.524 172.018V172.013L340.887 170.06L340.959 170.084V170.089L343.364 168.582H343.563L344.821 168.454L344.926 168.383L346.452 167.189L346.772 166.725L346.734 166.528L349.178 165.324L349.522 163.602L349.92 163.503L350.695 162.783L351.249 162.242L351.402 162.133L351.622 161.972L351.666 161.967L351.8 162.052L351.967 162.209V162.214L351.871 162.82L352.368 163.128L352.674 162.811L352.908 162.758L353.535 161.627L355.103 160.466L356.414 160.845L357.447 158.93L357.538 158.665V158.66L357.605 158.489L358.007 158.039L358.447 157.74L358.456 157.731L358.506 157.702L358.559 157.825L358.793 157.901L358.927 157.896H358.946L359.128 157.835L359.095 157.319V157.314L359.138 155.086L361.969 154.802V154.807L365.905 154.333L366.465 154.271L368.421 153.968L369.923 153.807V153.812L373.285 153.343L373.51 153.305L376.213 152.855L377.982 152.56L378.33 152.493L379.422 152.304L380.499 152.107L381.194 151.989L384.145 151.458V151.453L384.681 151.355L387.072 150.909L387.067 150.914L388.21 150.687L390.606 150.232L391.868 149.981V149.986L393.007 149.773L397.063 148.977L398.191 148.735V148.73L400.32 148.332L400.263 148.251L403.541 147.612L403.972 147.517L405.498 147.194H405.503L407.138 146.853V146.856L407.947 146.686L408.023 147.017L408.463 147.737L408.726 147.709L408.841 147.856L408.559 147.875L409.09 148.544L409.071 148.169L409.047 147.726L409.233 147.764L409.386 148.536L410.52 150.02L410.926 150.962L411.069 151.271L411.079 151.389H411.026L410.663 151.242L410.543 151.161L410.309 150.929L410.06 150.611L408.644 150.649L407.568 151.606L405.73 152.473L405.725 152.478L405.194 153.014L404.792 153.492L403.948 153.237L403.632 153.516L403.599 154.369V154.374L403.608 154.379L403.785 154.45H403.843L404.35 154.312L405.192 153.986L405.455 153.81L405.546 153.682L406.057 153.427L406.139 153.459L406.23 153.53L406.488 153.805V153.81L407.172 153.327L407.641 153.056L407.952 152.933L408.942 152.73L409.32 152.896L409.43 152.99L409.645 153.569L410.013 152.872L410.076 152.802L410.386 152.605L410.554 152.548L410.721 152.515H410.817L411.205 152.623L411.511 152.903L412.132 153.775L412.232 153.936L412.648 155.239L412.658 155.288L412.672 156.051L412.385 156.634L412.208 156.729L411.869 156.837L411.563 156.771V156.776L411.364 156.927L410.981 157.486L410.955 157.535Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NC']['color']\"\n            />\n            <path\n                d=\"M378.63 166V159.7H380.097L383.571 163.894H382.878V159.7H384.624V166H383.157L379.683 161.806H380.376V166H378.63ZM389.022 166.126C388.524 166.126 388.062 166.048 387.636 165.892C387.216 165.73 386.85 165.502 386.538 165.208C386.232 164.914 385.992 164.569 385.818 164.173C385.644 163.771 385.557 163.33 385.557 162.85C385.557 162.37 385.644 161.932 385.818 161.536C385.992 161.134 386.232 160.786 386.538 160.492C386.85 160.198 387.216 159.973 387.636 159.817C388.062 159.655 388.524 159.574 389.022 159.574C389.604 159.574 390.123 159.676 390.579 159.88C391.041 160.084 391.425 160.378 391.731 160.762L390.597 161.788C390.393 161.548 390.168 161.365 389.922 161.239C389.682 161.113 389.412 161.05 389.112 161.05C388.854 161.05 388.617 161.092 388.401 161.176C388.185 161.26 387.999 161.383 387.843 161.545C387.693 161.701 387.573 161.89 387.483 162.112C387.399 162.334 387.357 162.58 387.357 162.85C387.357 163.12 387.399 163.366 387.483 163.588C387.573 163.81 387.693 164.002 387.843 164.164C387.999 164.32 388.185 164.44 388.401 164.524C388.617 164.608 388.854 164.65 389.112 164.65C389.412 164.65 389.682 164.587 389.922 164.461C390.168 164.335 390.393 164.152 390.597 163.912L391.731 164.938C391.425 165.316 391.041 165.61 390.579 165.82C390.123 166.024 389.604 166.126 389.022 166.126Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['NC']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-ND\"\n            (mouseenter)=\"onStateHover('ND', false, $event)\"\n            (mouseleave)=\"onStateHover('ND', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['ND'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M229.792 60.3897L229.777 60.6127L229.758 60.6791L229.614 61.0772L229.72 62.0201L224.612 61.9709L218.85 61.8666L218.625 61.8572L213.124 61.6963L210.967 61.6205V61.6254L205.5 61.4168L204.258 61.3597L199.509 61.1323H199.413V61.1274H199.408L197.67 61.0374L197.497 61.028H197.435L196.512 60.9788L195.817 60.9409L192.804 60.78L192.354 60.7514L191.389 60.6973L190.232 60.6264L189.127 60.5649L188.199 60.5034L188.08 60.4941H187.994L180.786 60.002L180.375 59.9734V59.9685L172.34 59.3381L172.646 55.7083L172.89 52.884L172.986 51.794L173.622 44.3547L173.689 43.6249L174.244 37.1856V37.1743L174.584 32.9476L174.804 30.3177V30.3128H174.809L175.138 26.3848L183.241 27.0294H183.246L189.951 27.4841L193.787 27.7115L203.405 28.1997V28.1948L208.217 28.3842V28.3891L212.067 28.5171L219.753 28.71L225.038 28.7951L225 28.8281L224.966 28.989L224.961 29.1499L225.005 29.3773L225.531 31.0928L225.674 31.5096L226 32.2394L225.459 33.7158L225.497 33.7394L225.555 33.7679L225.727 33.9766L225.777 36.5735L225.533 37.4977L225.528 37.7206V37.7491L225.7 38.4125L226.417 40.9665L227.383 43.1555H227.388L227.642 45.0319L227.78 47.8655H227.775L227.814 48.8084L227.823 50.1863L228.143 51.2241L228.234 51.4751L228.091 53.8442L228.096 54.4504C228.204 54.7647 228.313 55.079 228.421 55.3933L229.478 57.9139L229.77 60.1978L229.792 60.3897Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['ND']['color']\"\n            />\n            <path\n                d=\"M195.63 48V41.7H197.097L200.571 45.894H199.878V41.7H201.624V48H200.157L196.683 43.806H197.376V48H195.63ZM202.881 48V41.7H205.86C206.556 41.7 207.168 41.829 207.696 42.087C208.224 42.345 208.635 42.708 208.929 43.176C209.229 43.644 209.379 44.202 209.379 44.85C209.379 45.492 209.229 46.05 208.929 46.524C208.635 46.992 208.224 47.355 207.696 47.613C207.168 47.871 206.556 48 205.86 48H202.881ZM204.663 46.578H205.788C206.148 46.578 206.46 46.512 206.724 46.38C206.994 46.242 207.204 46.044 207.354 45.786C207.504 45.522 207.579 45.21 207.579 44.85C207.579 44.484 207.504 44.172 207.354 43.914C207.204 43.656 206.994 43.461 206.724 43.329C206.46 43.191 206.148 43.122 205.788 43.122H204.663V46.578Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['ND']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NE\"\n            (mouseenter)=\"onStateHover('NE', false, $event)\"\n            (mouseleave)=\"onStateHover('NE', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NE'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M239.828 126.952H239.56L235.811 126.966H232.035L230.156 126.957L227.296 126.928L226.368 126.919L222.575 126.867L218.792 126.81V126.805L217.869 126.786L215.004 126.719L213.076 126.676L211.22 126.624V126.619L208.37 126.534L207.437 126.506V126.51L203.697 126.378H203.673V126.368L199.076 126.188L198.947 126.179V126.184L194.389 125.971L194.227 125.956V125.951L189.497 125.7V125.705L188.769 125.667L183.422 125.341L183.661 121.551L183.909 117.737L183.953 117.164L184.125 114.397L179.438 114.084H179.433L179.17 114.069L173.162 113.633L171.584 113.515L167.652 113.192L168.02 108.914H168.025L168.303 105.582L168.59 102.261H168.595L169.523 91.3574L173.904 91.7078V91.7127L177.936 92.0208L179.605 92.1438V92.1532L185.282 92.537L186.937 92.6413L188.936 92.7929L192.122 92.9588L194.695 93.0916L197.598 93.2245L199.162 93.3003L199.732 93.3288L200.372 93.3618V93.3569L205.696 93.5749L207.934 93.6556L213.999 93.8308L215.486 95.1482V95.1531L216.61 95.66L217.486 96.4085L217.663 96.4842L217.801 96.5079L217.935 96.5029L218.347 96.4414L218.452 96.375L218.677 96.1713L218.849 95.9296L219.054 95.6737L219.15 95.3785L219.528 95.317L219.772 95.5916L220.045 95.6152L220.289 95.2884L220.537 95.3549L220.736 95.6723L221.051 95.3312L221.349 95.3691L221.406 95.5965L221.842 95.4877L222.095 95.3977V95.3927L222.592 95.5064L222.984 95.3406L223.371 95.2599L223.874 95.473L224.376 95.5345L224.39 95.9282L224.849 96.2505L225.854 96.6722V96.6772L227.537 97.2977L228.192 97.7101L228.283 97.9069L228.333 98.0871L228.3 98.2199L228.295 98.3183L228.318 98.4133L228.897 99.2662L230.451 99.6598L230.724 99.679L230.834 99.7219L230.92 99.8355L230.953 99.9635L230.958 100.129L230.9 100.281L230.996 101.537L231.24 101.991H231.245L231.145 102.664L231.815 104.508L232.896 106.493L233.039 108.502L234.187 110.431L234.541 111.682H234.546L234.666 113.896L235.24 114.237C235.204 114.653 235.167 115.068 235.131 115.483L235.499 117.075L235.24 118.369L235.981 120.544L236.445 121.217L236.555 120.985L236.866 121.255L236.684 121.577L236.588 121.662L236.638 121.857L237.179 123.207L237.757 123.766L237.781 123.823V123.856L237.772 124.053V124.086L239.828 126.952Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NE']['color']\"\n            />\n            <path\n                d=\"M198.63 114V107.7H200.097L203.571 111.894H202.878V107.7H204.624V114H203.157L199.683 109.806H200.376V114H198.63ZM207.519 110.139H210.444V111.471H207.519V110.139ZM207.645 112.623H210.939V114H205.881V107.7H210.822V109.077H207.645V112.623Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['NE']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NH\"\n            (mouseenter)=\"onStateHover('NH', false, $event)\"\n            (mouseleave)=\"onStateHover('NH', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NH'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M434.355 66.8502L434.02 69.0676L433.738 69.2428L433.456 69.1006L433.221 69.1149L433.169 69.1434L433.107 69.172H433.102L432.361 69.7167L432.251 70.3235L431.605 70.3565L431.5 70.4652L431.332 70.8063L431.519 71.3038L431.069 71.3274H431.064L431.014 71.4411L430.816 71.9101L428.161 72.5168L428.128 72.5262L428.008 72.5547L426.067 72.9814L425.832 73.0336L423.044 73.6305L421.662 73.9258L420.781 73.2245L420.494 72.8077L420.312 72.5469L420.489 72.0444L420.37 71.6015L420.853 71.104L420.633 70.4972L420.714 69.8053L420.537 69.3132L420.528 69.3038L420.499 68.4983L420.533 67.546L420.334 67.4181L420.368 67.1194L420.201 67.1287L419.986 65.3852L419.914 64.8118L420.282 64.4093L420.109 64.2046L420.248 63.5983L420.138 63.3237L420.334 62.9211L420.492 62.8311L420.769 62.3572L420.798 61.8075L420.669 61.2578L420.97 60.6515L421.023 60.0876L420.832 59.8602L420.985 59.0595L421.123 58.657L420.956 58.5094L420.985 57.9597L420.85 57.8612L420.707 57.6669L420.458 56.7948V56.7284L420.482 56.6147L420.741 56.1551L420.764 56.1364L420.803 56.0985L421.338 55.7717L421.874 55.4351L422.39 54.7767L422.553 54.791L422.801 54.6108L422.82 54.5823L422.93 54.445L422.973 54.3786L423.007 54.3293L423.385 53.666L423.423 53.5995L423.514 53.3579L423.361 52.851L423.615 52.4081L423.418 52.0858L423.38 52.0336L423.189 51.7969L422.835 51.3658L422.548 51.0863L422.481 50.9018L423.036 48.9545L422.496 48.2296L422.677 47.8551L422.615 47.206L422.797 45.2376L423.419 44.4369L423.5 44.3754L423.668 44.4605L423.735 44.5934L423.773 44.6313L424.017 44.7543L424.419 44.7829L424.758 44.712L424.811 44.6741L424.993 43.9492L425.291 44.7834L426.917 49.64L427.032 50.0047L428.472 54.5488L430.041 59.6993L431.012 62.2012L431.146 63.6844L431.203 63.9305L431.275 64.082L431.5 64.3901L431.643 64.461L432.026 64.6504L432.959 65.2001L432.983 65.2287L433.281 66.4181L434.355 66.8502Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NH']['color']\"\n            />\n            <path\n                d=\"M411.63 40V33.7H413.097L416.571 37.894H415.878V33.7H417.624V40H416.157L412.683 35.806H413.376V40H411.63ZM423.093 33.7H424.875V40H423.093V33.7ZM420.663 40H418.881V33.7H420.663V40ZM423.219 37.543H420.537V36.067H423.219V37.543Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['NH']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NJ\"\n            (mouseenter)=\"onStateHover('NJ', false, $event)\"\n            (mouseleave)=\"onStateHover('NJ', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NJ'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M415.677 108.832L415.969 109.131L415.864 109.581L415.045 111.093L415.481 111.671L415.232 111.932L415.405 112.307L414.897 113.41L413.835 114.472L413.488 115.007L413.382 115.192L413.268 115.481L413.076 115.988L412.871 116.713V116.746L412.876 116.751L412.885 116.765L412.574 117.865L412.349 118.409L412.058 118.901L411.632 119.138L411.522 119.167L411.273 119.195L411.23 119.176L411.177 119.11L411.168 118.428L411.182 118.262L411.226 118.034L411.388 117.409L411.407 117.276L411.45 117.096L411.455 116.774L411.35 116.613L411.159 116.475L411.077 116.466L410.114 116.461L410.023 116.286L409.397 116.457L409.186 116.774L408.904 116.665L408.818 116.321L408.335 116.079L408.11 116.03L408.187 115.869L408.062 115.732L407.747 115.808L407.713 115.945L407.45 115.803L407.202 115.428L406.891 115.49L406.714 115.395L406.605 115.215L406.317 115.172L406.016 114.859L405.877 114.693L405.652 114.651L405.514 114.532L405.323 114.489L405.107 114.181L405.265 114.138L405.131 113.556L405.299 113.243L404.796 113.002L404.734 112.736L404.988 112.258L404.959 111.921L405.088 111.647L405.246 111.043H405.251L405.371 110.92L405.442 110.688L405.989 109.999L406.974 109.629L407.303 109.165H407.298L407.925 108.009L408.456 107.246L409.36 106.487L409.47 106.137L409.809 106.108L410.259 105.734L408.045 104.047L407.987 104.014L407.188 103.535L406.566 102.293L405.385 101.815L405.294 101.644L405.242 101.546L405.036 100.769L404.95 100.115L405.094 99.7878L405.156 99.7686L405.28 99.7829L405.404 99.7637L405.571 99.5363L405.849 98.6998L405.854 98.6333L405.825 98.5669L405.046 97.657L405.94 96.0035L405.89 95.9464L406.221 95.4917L406.445 94.9612L406.495 94.6344L406.48 94.4543L406.447 94.4213L406.461 94.2737L406.56 93.847L406.604 93.7284L406.8 93.3259L407.029 93.0798L407.517 92.7354L410.53 93.7826L410.535 93.7732L411.74 94.1807V94.1856L411.931 94.2427L414.839 95.1049L414.854 95.9956L414.82 96.3509L414.6 97.3981L414.524 98.4217L414.419 98.3981L414.204 98.6304L414.294 98.8533L414.118 98.9621L414.156 99.09L413.572 99.2558V99.2608L413.4 99.3272L413.381 99.3365L413.572 99.2873L413.725 99.2731L413.83 99.2445L413.916 99.2209L414.17 99.1166L414.256 99.1023L414.323 99.1687L414.385 99.3439L414.552 99.5334L414.528 99.652L414.222 100.254L414.026 100.448L413.988 100.439V100.434L413.955 100.448L413.878 100.553L413.754 100.661H413.72L413.596 100.789L413.52 100.838L413.462 100.929L413.266 101.009L413.217 100.981L413.159 100.919L413.145 100.843L413.183 100.768L413.097 100.507L413.202 100.341L413.288 100.336L413.365 100.199L413.37 99.8483L413.317 99.744L413.336 99.8341L413.341 99.9999L413.35 100.061L413.345 100.189L413.307 100.279L413.288 100.329H413.235L413.178 100.334L413.063 100.466L413.058 100.552L413.153 100.77L413.086 101.114L413.081 101.128L413.072 101.251L413.144 101.36L413.306 101.403L413.531 101.484H413.536L413.66 101.554L413.809 101.294L414.173 101.289L414.62 101.327L415.06 101.523L415.491 101.533L415.366 101.068L415.27 101.059L415.266 100.978L415.127 100.898V100.827L415.165 100.775L415.194 100.742H415.251L415.361 100.794L415.667 101.192L415.853 101.926L415.915 102.177L415.92 102.196L415.987 102.708L416.007 102.926L416.021 103.395L415.997 104.954L415.993 105.158L416.042 106.048L416.057 106.299L416.124 107.053L415.789 108.162L415.677 108.832Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NJ']['color']\"\n            />\n            <path\n                d=\"M420.63 112V105.7H422.097L425.571 109.894H424.878V105.7H426.624V112H425.157L421.683 107.806H422.376V112H420.63ZM429.258 112.126C428.796 112.126 428.376 112.048 427.998 111.892C427.626 111.73 427.317 111.499 427.071 111.199L428.043 110.047C428.211 110.263 428.385 110.428 428.565 110.542C428.745 110.65 428.934 110.704 429.132 110.704C429.66 110.704 429.924 110.398 429.924 109.786V107.077H427.746V105.7H431.688V109.678C431.688 110.5 431.481 111.115 431.067 111.523C430.653 111.925 430.05 112.126 429.258 112.126Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['NJ']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NM\"\n            (mouseenter)=\"onStateHover('NM', false, $event)\"\n            (mouseleave)=\"onStateHover('NM', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NM'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M173.027 157.697L172.621 163.17L172.257 163.383L172.123 165.137L171.913 168.013L171.654 171.472C171.621 171.899 171.588 172.325 171.555 172.752L171.191 177.557L170.999 180.064H170.994L170.826 182.319L170.458 187.067L170.449 187.181L170.028 192.394L169.775 195.161V195.166L169.589 197.151L169.163 201.826L168.45 211.332L168.379 212.274L168.153 212.26L167.632 212.217L166.977 212.165L166.493 212.132L165.947 212.089L162.271 211.805L159.887 211.611L159.476 211.578L151.847 210.9L151.192 210.838L141.2 209.829L137.7 209.46V209.469L135.681 209.256L135.299 209.227H135.294L135.141 209.298L135.122 209.45L135.271 209.511L135.172 210.085L134.966 210.217L135.016 210.435L135.021 210.573L135.226 210.791L135.317 210.909L136.039 211.677L128.918 210.867V210.862L120.481 209.821L120.075 212.901L119.841 214.702L113.862 213.929L113.771 213.915L113.034 213.816L112.016 213.674L113.685 201.847L114.22 198.047L114.875 193.375L116.962 178.512L117.535 174.379L119.114 163.049L120.63 152.215L126.384 152.978L134.151 153.94L134.677 154.001V154.006L138.317 154.433L139.441 154.646L141.632 154.883L142.851 155.016L146.931 155.423L149.427 155.679V155.684L153.746 156.115L154.316 156.172L155.657 156.32L157.991 156.533L164.285 157.054L172.297 157.644L173.027 157.697Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NM']['color']\"\n            />\n            <path\n                d=\"M135.63 188V181.7H137.097L140.571 185.894H139.878V181.7H141.624V188H140.157L136.683 183.806H137.376V188H135.63ZM142.881 188V181.7H144.348L146.958 185.984H146.184L148.722 181.7H150.189L150.207 188H148.569L148.551 184.193H148.83L146.931 187.379H146.139L144.186 184.193H144.528V188H142.881Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['NM']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NV\"\n            (mouseenter)=\"onStateHover('NV', false, $event)\"\n            (mouseleave)=\"onStateHover('NV', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NV'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M88.0993 91.3342L86.019 102.038L84.1393 111.544V111.549L83.6923 113.818L82.9268 117.732L81.0999 127.062L80.8748 128.194L79.9902 132.771L78.8278 138.633L77.5795 145.148L77.2517 146.846V146.851L76.9075 148.642L76.8643 148.86L76.5165 150.836L76.3059 151.936L75.9329 153.85L74.8187 155.343L74.699 155.476L74.6493 155.504H74.6399L74.1089 155.495L73.9365 155.476L73.8869 155.466L73.7771 155.381L73.7006 155.305L73.4949 154.983L73.4328 154.798L73.4279 154.708L73.4229 154.684L73.4035 154.604L73.2982 154.333L73.035 153.969L72.9153 153.86L71.8011 153.533L71.2939 153.429H70.7535L69.7685 153.656L69.6825 153.705L69.5628 153.814L69.5534 153.881L69.4436 154.947L69.2047 158.07L69.0994 159.979L69.2141 161.324L69.2956 161.964L69.305 162.287L69.2429 163.615L69.2335 163.857L69.1838 164.075L69.1024 164.336L68.2798 165.7L67.0792 163.923L63.8172 159.095L63.5921 158.763L62.9846 157.863L61.2198 155.238L59.4931 152.689V152.684L59.3938 152.542L58.1311 150.671L57.8296 150.221L55.4766 146.719L52.5732 142.417L52.0233 141.592L51.0795 140.204L50.9171 139.962L46.4962 133.385L42.579 127.595L37.8869 120.596H37.8819V120.591L36.7772 118.97V118.965L35.138 116.534L33.1148 113.526L32.6797 111.891L32.7944 111.417V111.412L32.933 110.848V110.843L33.3443 109.237L33.7174 107.872L34.5017 104.93L34.6691 104.309L35.5011 101.224L36.0366 99.1964L36.0416 99.1871L36.1995 98.5758L36.6962 96.6757L37.6818 92.7806L38.562 89.3972L40.8097 80.792L45.846 82.0666L46.1281 82.1375L50.4422 83.2132L55.0434 84.2605L64.3367 86.3549L64.3988 86.3786V86.3835L67.5029 87.0848L68.4258 87.2979L80.1437 89.7619L81.1371 89.9135L82.3422 90.1551L84.4468 90.629L86.1784 90.9657L88.0993 91.3342Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NV']['color']\"\n            />\n            <path\n                d=\"M54.63 121V114.7H56.097L59.571 118.894H58.878V114.7H60.624V121H59.157L55.683 116.806H56.376V121H54.63ZM63.7984 121L61.1074 114.7H63.0334L65.3014 120.154H64.1674L66.4894 114.7H68.2534L65.5534 121H63.7984Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['NV']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-NY\"\n            (mouseenter)=\"onStateHover('NY', false, $event)\"\n            (mouseleave)=\"onStateHover('NY', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['NY'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M431.006 90.2321L430.907 90.4643L430.062 91.1607L429.192 91.8762L427.226 93.5677L426.676 93.9515L426.647 93.8994L426.858 93.6434L426.82 93.4919L426.566 93.4825L426.368 93.5632L426.425 93.6297L426.396 93.8856L426.463 93.9092L426.583 93.7719H426.659L426.602 93.9284L426.622 93.9805L426.502 94.0755L426.325 94.1705L425.459 94.7581L424.675 95.2463L424.637 95.2084L425.311 94.7488L425.216 94.6966L424.972 94.8482L424.699 94.799L424.522 95.1498L424.211 95.1735L424.116 95.4343L423.948 95.5293L423.81 95.6902L423.566 95.7802L423.489 95.6474L423.191 95.6966L423.081 95.9289L422.723 95.9195L422.446 96.0854L422.082 96.417L421.57 96.4928L421.527 96.7916L420.943 96.8107L420.829 96.7256L420.57 97.1144L419.925 97.5268L419.478 97.7118C419.42 97.7448 419.367 97.7733 419.31 97.8068L418.98 97.9254L419.114 98.044L419.182 98.1247L419.071 98.1862L418.942 98.2763L418.569 98.5652L418.407 98.48L418.12 98.5509L417.617 98.797L417.503 98.8255L417.135 99.0105L417.479 98.9869L417.89 98.8117L418.034 98.8068L418.148 98.7084L418.44 98.6419V98.7935L418.034 98.9215L417.393 99.078L417.02 99.1301L417.035 99.073L416.982 99.106L416.886 99.1109L416.393 99.4234L415.929 99.7551L415.618 99.9638L415.614 99.8122L415.843 99.6227L416.091 99.4096L415.618 99.5376L415.072 99.7605L414.804 99.7891V99.6754L414.957 99.6232V99.5145L414.78 99.453L414.656 99.4579L414.541 99.169L414.69 98.828L414.599 98.667L414.671 98.577L414.77 98.2975L414.66 98.4205L414.67 98.4726L414.675 98.5534L414.618 98.6242H414.565L414.57 98.5342L414.546 98.4205L414.618 97.3969C414.691 97.0461 414.764 96.6954 414.838 96.3447L414.871 95.9938L414.857 95.1031L411.949 94.2409L411.757 94.1843L410.557 93.7768L407.534 92.7345L406.884 92.1041L406.52 92.142L405.875 92.175L405.731 92.1085L404.856 91.6582L404.608 91.4259L404.253 91.0815L404.033 90.5839L402.727 88.2621L401.79 88.2764L401.465 87.5515L401.316 87.4142L400.832 87.0731L400.679 87.0401L399.694 87.2582L394.743 88.3197L394.418 88.3905L391.137 89.0539L388.191 89.6366L387.885 89.703V89.7079L382.75 90.7365L381.631 90.9594L377.977 91.642L377.169 91.7985L374.854 92.2202L372.635 92.6469L372.28 92.7084L371.138 92.9028L366.742 93.6749L366.618 93.6986L365.525 93.8836L365.272 92.4564L365.061 91.2483L365.012 90.9594L365.337 90.7414L365.854 90.3054L366.557 89.6513L367.202 89.0116L367.365 88.7887L367.503 88.4899L367.862 88.0303L368.651 87.4142L369.416 86.8595H369.421L369.436 86.6322L369.535 86.3477L369.879 85.4476L370.094 85.2675L370.625 84.8364L370.821 84.7464L371.151 84.3197L371.247 84.1445V84.0594L370.956 83.4289L370.513 82.6165L370.414 82.4836L370.289 82.4078L369.95 82.3463L369.605 82.2041L369.52 82.1091L369.452 81.8768L369.314 81.3507L369.056 81.2936L368.965 81.1327L368.597 79.2941L370.343 78.3655L371.83 77.65L372.49 77.394L372.94 77.2518H373.146L376.838 76.6357L377.168 76.5865L378.435 76.6101L379.253 76.8045L379.631 77.0131L379.689 77.0417L380.363 77.3163L380.588 77.3542L380.722 77.3399L381.879 76.6293L382.343 76.5013L383.668 76.1647L383.912 76.1126H384.28L384.558 76.1647L385.154 76.0604L385.203 76.0461L386.346 75.3778L386.532 75.2405L386.838 74.9039V74.899L387.479 73.9275V73.9369L387.852 73.5245L388.818 72.5102L388.868 72.4817L389.189 72.3832L389.399 72.4782L389.514 72.4689L389.777 72.4074L390.217 72.1323L390.267 72.0752L390.324 71.933L390.353 71.7578L390.367 71.587L390.343 71.3075L390.253 70.777L390.153 70.4689H390.148L389.641 69.18L389.129 68.9832L389.326 68.6845L389.608 68.6608L390.029 68.3907L390.186 68.0732L390.22 68.0117L390.201 67.8508L390.033 67.4148L389.981 67.3483L389.919 67.3296L389.244 67.2726L388.771 67.0757L388.026 66.5452L387.906 66.2371L387.901 66.1141L387.915 65.868L388.102 65.0959L389.858 63.248L391.115 62.182H391.12L391.359 61.3671L391.584 60.8223L391.991 60.1589L393.22 58.2682L393.579 57.78L396.386 54.6196L396.53 54.5212L397.558 53.9306L397.757 53.9021L398.335 53.8642L398.534 53.8548L401.681 53.2579L402.781 53.0163L403.585 52.784L403.671 52.7554L404.813 52.4287L406.701 51.9547L408.815 51.3721L408.8 51.5571L409.101 51.8603L409.183 52.254L409.025 52.7658L409.044 53.2205L409.522 53.5615L409.465 54.4099L409.503 55.1634L409.57 55.5851L409.704 56.0448L409.833 56.1491L410.058 56.2771L410.422 56.72L410.532 56.9567L410.676 57.3356L410.681 57.3405L410.69 57.4591L410.608 58.1132L410.907 59.2411L410.586 60.151L410.581 61.0511V61.4065L410.6 61.7711L410.844 61.9419L411.533 63.9512L411.667 64.1929L411.954 64.7425L411.805 65.5526L411.755 65.9955L411.837 66.6303L411.866 66.6731L412.129 66.7819L412.124 66.057L412.641 65.9812L412.856 66.4123L413.234 66.5403L413.449 67.0708L413.913 69.2125L414.735 73.1928L414.95 74.1214L414.783 74.6136L415.113 75.3384L415.323 75.2769L415.251 77.9541L415.132 82.7587L415.314 83.1233L415.39 83.1046V83.114L416.141 87.2552L416.404 88.7621L416.705 90.5057L416.839 91.2734L417.609 91.9796L416.529 93.0834L415.932 93.6897L416.793 94.7842L416.048 96.1346L416.091 96.2822L416.235 96.2916L416.221 96.4195L416.149 96.5425L416.086 96.5475L416.029 96.449L415.958 96.3639L415.858 96.4254L415.925 96.7143L415.983 96.7094L416.074 96.7901L416.173 96.8851L416.15 96.9043L415.997 96.8614L415.867 96.8993L415.834 96.9608L415.719 96.8993L415.676 97.013L415.547 97.0037L415.528 97.1021V97.235L415.456 97.2778L415.375 97.2542L415.36 97.1498L415.393 97.1168L415.336 97.0839L415.279 97.1331L415.229 97.2182V97.2231H415.234L415.363 97.2989L415.378 97.3939L415.435 97.4033L415.464 97.3275L415.54 97.3181L415.739 97.451L415.768 97.3988L415.677 97.2236L415.734 97.1149L415.815 97.1006L415.882 97.0056L416.006 97.0342L416.112 97.0056L416.179 97.0627L416.255 96.9727L416.485 97.1621L416.518 97.0814L417.03 97.3043L416.523 97.077L416.312 96.7975L416.322 96.5229L416.709 96.6178L416.766 96.452L416.556 96.4569L416.46 96.3482L416.484 96.173L416.613 96.0686L416.901 96.0922L417.235 96.4904L417.015 95.9028L417.183 95.5898L417.67 95.3152L417.828 95.2916L418.025 95.2015L418.13 95.3388L418.111 95.4761L418.302 95.3954L418.352 95.4997L418.501 95.5947C418.554 95.6139 418.611 95.6277 418.663 95.6469L418.161 94.9978L418.233 94.8226L418.673 94.8718L418.755 95.0849L419.362 94.9761L419.319 94.8575L418.927 94.9426L418.877 94.5539L419.063 94.611L419.379 94.7438L419.761 94.6631L420.421 94.7532L420.943 94.3742L420.78 93.9805L421.115 93.8004L421.77 93.7197L422.937 93.4309L423.889 93.1892L424.505 92.9476L425.357 92.5687L425.744 91.9289L426.079 91.673L426.251 91.2941L426.591 91.1425L426.797 90.5406L427.003 90.4978L427.361 90.1804L427.696 90.1518L427.653 90.4407L427.404 90.6823L427.165 90.5022L426.993 90.7252L426.894 90.9574L426.717 91.2463L426.545 91.6159L426.837 91.6016L426.841 91.7493L426.463 91.8251L426.406 91.986L426.555 92.3305L426.254 92.174L426.211 92.4063L425.818 92.6523L425.78 92.8984L425.598 93.2109L425.378 93.263L425.359 93.4432L425.722 93.3723L426.33 93.4215L426.574 93.2128L426.66 92.8147L426.923 92.5918L427.081 92.0706L427.468 91.9427L427.301 91.6302L427.454 91.5544L427.66 91.8669L427.875 91.829L427.927 91.6961L428.037 91.6582L428.052 91.2744L428.444 91.331L428.625 91.0465L428.855 91.1316L428.893 91.326L429.194 91.5913H429.314L429.405 91.4063L429.587 91.2119L429.783 91.1548L430.027 90.7237L430.156 90.8137L430.208 90.487L430.586 90.2074L431.006 90.2321Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['NY']['color']\"\n            />\n            <path\n                d=\"M395.63 80V73.7H397.097L400.571 77.894H399.878V73.7H401.624V80H400.157L396.683 75.806H397.376V80H395.63ZM404.474 80V77.336L404.888 78.407L402.071 73.7H403.952L405.986 77.111H404.897L406.94 73.7H408.668L405.86 78.407L406.256 77.336V80H404.474Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['NY']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M424.553 95.2588L424.603 95.311L423.775 95.875L423.517 96.0645L422.976 96.4533L422.417 96.9317L421.756 97.2827L421.57 97.42L421.316 97.5573L420.886 97.8418L420.479 97.9368L420.43 97.7945L420.564 97.7187L420.669 97.7566L420.851 97.7138L421.162 97.5573L421.267 97.4244L421.477 97.3535L421.683 97.2162L422.362 96.8372L423.017 96.2688L423.216 96.1359L423.326 96.0172L423.44 95.9936L423.665 95.8327L423.9 95.719L424.553 95.2588Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M427.576 91.0343L427.705 91.2673L427.739 91.5428L427.409 91.3907L427.246 91.5521L427.06 91.5615L426.797 91.3285L427.127 90.8389L427.265 90.9766L427.576 91.0343Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M420.465 97.6822L420.336 97.791L419.681 98.2834L419.666 98.2455L419.145 98.5409L418.872 98.6498L418.518 98.8915L418.484 98.863L418.566 98.73L418.695 98.6493L418.939 98.4405L419.168 98.2435L419.427 98.0958L419.546 97.9062L420.015 97.693L420.512 97.5557L420.895 97.3232L420.994 97.3562L421.061 97.3799L421.114 97.4843L420.903 97.6123L420.465 97.6822Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M428.838 90.6171L428.656 90.5268V90.2607L429.149 90.3748L429.202 90.8501L429.12 90.9074L428.971 90.6078L428.838 90.6171Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M427.999 89.9455L427.855 89.8787L427.989 89.6736L428.232 89.6543L428.07 89.7737L427.999 89.9455Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-OH\"\n            (mouseenter)=\"onStateHover('OH', false, $event)\"\n            (mouseleave)=\"onStateHover('OH', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['OH'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M361.873 113.231L361.773 113.62L361.831 113.804L361.525 114.099L361.448 114.402L361.391 114.739L361.228 115.08L361.343 115.687L361.114 116.052L361.219 116.199L361.205 116.469L361.166 116.73L361.315 117.18L361.157 117.476L361.31 117.845L361.161 117.968L360.87 117.93L361.068 118.352L360.901 118.549L360.825 118.724L360.906 119.084L360.604 119.61L360.959 119.985L360.982 120.231L360.767 120.329L360.806 120.95L360.633 121.301L360.203 121.367L359.529 122.216L359.49 121.865H359.485L359.524 122.209L359.003 123.233L358.892 123.437L358.557 123.593L358.361 123.888L358.28 124.229L357.916 124.215L357.094 124.936L356.85 124.869L356.606 124.426L356.453 124.275L356.357 124.265L356.195 124.308L355.974 124.711L355.527 125.109L355.551 125.929L354.786 125.981L354.609 126.09L354.556 126.398L354.542 126.611L354.356 126.706V126.711L354.207 127.034V127.038L354.326 127.489L354.37 128.043L354.144 128.233L353.839 128.266L353.882 128.417L353.973 128.536L354.271 128.725L354.424 128.976L354.28 129.45L354.486 129.598L354.51 129.849L354.227 129.944L353.888 129.759L353.812 129.925L353.712 130.436L353.282 130.607L353 130.422L352.971 130.337L353.176 129.948L352.794 129.399L352.483 129.451H352.478L352.225 129.1L352.057 129.072L351.908 129.494L351.664 129.731L351.64 129.882L351.597 129.385H351.592L351.636 129.877L351.468 130.517L351.344 130.683H351.349L351.445 131.019L351.402 131.322L351.143 131.602L350.899 131.777L350.876 132L351.086 132.209L351.177 132.484L351.326 132.681L351.264 133.046L351.546 133.647L351.47 133.96L351.24 134.097L350.781 134.064L350.661 134.187L350.656 134.661L350.652 134.685L350.613 135.467L350.599 135.548L350.584 135.618L350.435 135.846L350.043 135.993L349.745 135.979L349.032 136.368L348.539 136.577L348.238 136.482L347.573 135.477L346.211 134.952L346.172 134.932L345.986 134.809L345.976 134.795L345.909 134.714L345.852 134.596L345.833 134.553L345.594 133.842L345.512 133.498L345.522 133.365L345.517 133.36V133.351L345.512 133.275L345.492 133.209L345.488 133.194V133.18L345.473 133.151L345.449 133.118L345.435 133.1L345.397 133.057L345.311 133.019H345.258L345.024 133.123L344.311 133.441L344.162 133.512L343.525 134.128L343.382 134.706L342.564 134.829L342.22 135.128V135.133L341.732 134.772L341.708 134.768L341.421 134.63L341.402 134.621L340.483 134.403L340.139 134.322H340.13L340.053 134.313L339.948 134.336L339.283 134.625L339.192 134.687L339.125 134.791L339.082 135.175L338.585 135.232L337.92 134.905L337.175 134.137L337.117 134.094L337.018 134.056L336.726 134.019L335.464 134.151L333.885 133.706L333.804 133.204L332.872 131.692L331.203 131.081L330.241 131.425L328.544 131.283L328.29 129.103L328.046 126.734L327.984 126.242C327.918 125.663 327.853 125.083 327.788 124.503L327.554 122.423L327.454 121.461L327.114 118.13L327.057 117.665L326.79 115.268L326.584 113.571L326.326 111.455L326.235 110.73L325.891 107.859L325.867 107.662L325.656 105.975V105.97L325.518 104.838L325.293 103.033L328.579 102.53V102.535L328.89 102.486L332.764 101.856L333.712 101.69V101.695L336.203 101.273L336.054 101.529L336.451 101.742L337.006 101.69L337.188 101.477L337.536 101.709L338.66 102.142L339.541 102.346L340.081 102.863L340.669 103.072L340.99 102.896L341.229 102.626L341.171 102.314L341.377 102.129L341.736 102.583L342.434 102.574L342.544 102.891L341.339 103.218L340.478 103.464L340.42 103.654L339.746 103.848L339.884 103.938L340.037 103.862L340.172 103.867L340.31 104.052L340.425 104L340.353 103.849L340.482 103.816L340.645 104.001L340.856 104.062L341.032 103.967L341.076 103.962L341.274 103.792L341.628 103.606L341.671 103.412L341.901 103.393L342.188 103.654L342.441 103.457L343.034 103.481L342.694 103.177L342.714 103.03L343.445 103.65L343.967 103.892L344.349 104.011L344.474 104.025L344.623 104.006L344.781 103.925L345.001 103.777L345.627 103.334V103.339L346.273 103.164L346.746 102.676L348.028 101.941L348.578 102.046L348.635 102.095L348.674 102.118L348.85 102.175L349.353 102.19L349.869 101.962L350.424 101.986L350.467 101.962L350.673 101.787L351.237 101.27L351.477 101.015L351.883 100.299L352.174 100.209L352.256 100.114V100.109L352.557 99.5972L352.935 99.1612L353.183 98.896L353.666 98.46L355.426 97.3084L355.79 97.0811L359.465 95.1338L359.695 96.5176L360.321 100.299H360.316L360.335 100.418L360.976 104.265H360.981L360.995 104.355L361.393 106.795L361.489 107.317L361.871 109.62L361.589 109.816L361.436 109.968L361.259 109.935L360.968 110.12L360.752 110.423L360.767 110.551L361.015 110.755L361.173 110.94L361.279 111.201L361.494 111.442L361.537 111.708L361.46 112.02L361.51 112.262L361.411 112.428L361.688 112.624L361.683 112.885L361.873 113.231Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['OH']['color']\"\n            />\n            <path\n                d=\"M338.807 121.126C338.303 121.126 337.838 121.045 337.412 120.883C336.986 120.721 336.614 120.493 336.296 120.199C335.984 119.899 335.741 119.551 335.567 119.155C335.393 118.759 335.306 118.324 335.306 117.85C335.306 117.376 335.393 116.941 335.567 116.545C335.741 116.149 335.984 115.804 336.296 115.51C336.614 115.21 336.986 114.979 337.412 114.817C337.838 114.655 338.303 114.574 338.807 114.574C339.317 114.574 339.782 114.655 340.202 114.817C340.628 114.979 340.997 115.21 341.309 115.51C341.621 115.804 341.864 116.149 342.038 116.545C342.218 116.941 342.308 117.376 342.308 117.85C342.308 118.324 342.218 118.762 342.038 119.164C341.864 119.56 341.621 119.905 341.309 120.199C340.997 120.493 340.628 120.721 340.202 120.883C339.782 121.045 339.317 121.126 338.807 121.126ZM338.807 119.65C339.047 119.65 339.269 119.608 339.473 119.524C339.683 119.44 339.863 119.32 340.013 119.164C340.169 119.002 340.289 118.81 340.373 118.588C340.463 118.366 340.508 118.12 340.508 117.85C340.508 117.574 340.463 117.328 340.373 117.112C340.289 116.89 340.169 116.701 340.013 116.545C339.863 116.383 339.683 116.26 339.473 116.176C339.269 116.092 339.047 116.05 338.807 116.05C338.567 116.05 338.342 116.092 338.132 116.176C337.928 116.26 337.748 116.383 337.592 116.545C337.442 116.701 337.322 116.89 337.232 117.112C337.148 117.328 337.106 117.574 337.106 117.85C337.106 118.12 337.148 118.366 337.232 118.588C337.322 118.81 337.442 119.002 337.592 119.164C337.748 119.32 337.928 119.44 338.132 119.524C338.342 119.608 338.567 119.65 338.807 119.65ZM347.453 114.7H349.235V121H347.453V114.7ZM345.023 121H343.241V114.7H345.023V121ZM347.579 118.543H344.897V117.067H347.579V118.543Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['OH']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-OK\"\n            (mouseenter)=\"onStateHover('OK', false, $event)\"\n            (mouseleave)=\"onStateHover('OK', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['OK'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M247.994 177.58L247.941 182.48L247.917 184.726L247.898 187.152V187.157L247.869 190.63L247.826 196.683L245.449 196.005L244.32 195.546L242.756 194.309L241.694 193.404L241.116 193.215H241.053L241.02 193.229H241.011L240.814 193.524L240.81 193.538V193.558L240.805 193.567L240.81 193.576L240.843 193.647V193.661L240.858 193.756L240.843 193.865L240.794 193.979L240.741 194.028L240.497 194.184L240.426 194.194L240.291 194.208L240.028 194.241H240.023L239.406 194.27L239.067 194.241L238.167 194.122L238.134 194.094L238.096 194.032V193.971L238.12 193.89L238.125 193.819L238.029 193.578L237.957 193.549L237.666 193.535L237.001 193.876L236.235 194.283L235.455 194.572L235.015 194.492L234.489 194.387L234.365 194.402L234.169 194.416L233.145 194.501L232.686 194.61L232.61 194.875L232.552 195.136L232.547 195.164L232.538 195.193L232.514 195.278L232.49 195.349L232.485 195.358L232.475 195.372L232.389 195.463L232.375 195.477L232.213 195.548L232.021 195.597L230.668 195.929L230.577 195.81L230.185 195.279L230.065 195.242L229.956 195.227L229.492 195.312H229.477L229.396 195.255L228.463 194.635L228.453 194.606L228.444 194.554L228.439 194.421L228.468 194.246V194.237L227.559 194.644H227.55L227.11 194.72L226.253 194.459L226.158 194.393L226.008 194.232L225.55 193.289L225.454 193.346L224.086 195.696L224.047 195.753L223.952 195.824L223.822 195.867L223.673 195.847L223.549 195.805L223.009 194.914L223.353 193.985L222.712 193.677L221.431 194.805L220.9 194.657L220.818 194.605L220.766 194.539L220.761 194.52L220.737 194.463L220.555 193.648L219.856 193.837V193.832L219.527 193.605L218.607 192.987L218.296 193.376L217.818 193.868L217.363 194.223L217.081 194.304L216.971 194.295L216.167 193.934L216.068 193.84L216.302 193.337L216.384 192.754L216.044 192.622L215.729 192.697H215.518L215.136 192.584H215.121L215.097 192.56L214.939 192.248V192.243L214.39 191.347L212.983 190.911L212.639 190.835L212.462 190.93L212.099 191.39L211.611 191.821L211.606 191.83H211.601L211.343 191.735L210.912 191.053L210.706 190.877L210.508 190.745L210.417 190.74L209.594 190.991L209 190.97L208.168 190.766L207.331 190.268L207.202 190.207H207.193L206.361 190.14L205.993 190.145L205.825 190.155L205.486 190.079L205.304 190.022L205.189 189.989L205.184 189.984L205.026 189.14L205.036 188.904L205.045 188.653H205.04V188.643L204.614 187.909L204.165 187.667L203.767 187.454L203.38 188.143L203.375 188.153L203.366 188.172H203.356L203.289 188.2L202.983 188.172L202.685 187.897L202.465 187.769L202.326 187.707L201.896 187.658L201.797 187.644L201.747 187.663L201.393 188.099H200.967L200.69 188.038L200.063 187.441L199.834 187.175L199.365 186.573L198.05 185.924L198.112 183.901L198.241 180.788L198.312 179.115L198.422 176.49V176.485L198.518 174.339L198.638 171.472V171.467L198.719 169.558L198.901 164.686V164.681L194.142 164.468L190.565 164.293L189.413 164.231L184.694 163.966L181.121 163.738V163.743L179.979 163.672L172.625 163.165L173.032 157.692L174.137 157.773L178.657 158.143L181.378 158.332L181.498 158.341H181.503L185.616 158.564V158.569L189.873 158.777L190.93 158.83V158.835L193.647 158.948L198.387 159.143L199.142 159.176L203.166 159.356L203.907 159.384L207.872 159.517L211.842 159.64V159.631L213.568 159.688V159.693L215.617 159.738L218.323 159.787L221.288 159.837V159.841L224.029 159.874L227.491 159.907L229.452 159.917L234.03 159.931L234.345 159.936H235.89L238.2 159.922H239.194V159.917L242.111 159.888H242.685L246.086 159.86L246.119 162.399L246.138 163.482V163.487L246.167 165.335L246.707 169.031L246.812 169.68L247.597 174.754H247.592V174.759L247.994 177.389V177.58Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['OK']['color']\"\n            />\n            <path\n                d=\"M220.807 180.126C220.303 180.126 219.838 180.045 219.412 179.883C218.986 179.721 218.614 179.493 218.296 179.199C217.984 178.899 217.741 178.551 217.567 178.155C217.393 177.759 217.306 177.324 217.306 176.85C217.306 176.376 217.393 175.941 217.567 175.545C217.741 175.149 217.984 174.804 218.296 174.51C218.614 174.21 218.986 173.979 219.412 173.817C219.838 173.655 220.303 173.574 220.807 173.574C221.317 173.574 221.782 173.655 222.202 173.817C222.628 173.979 222.997 174.21 223.309 174.51C223.621 174.804 223.864 175.149 224.038 175.545C224.218 175.941 224.308 176.376 224.308 176.85C224.308 177.324 224.218 177.762 224.038 178.164C223.864 178.56 223.621 178.905 223.309 179.199C222.997 179.493 222.628 179.721 222.202 179.883C221.782 180.045 221.317 180.126 220.807 180.126ZM220.807 178.65C221.047 178.65 221.269 178.608 221.473 178.524C221.683 178.44 221.863 178.32 222.013 178.164C222.169 178.002 222.289 177.81 222.373 177.588C222.463 177.366 222.508 177.12 222.508 176.85C222.508 176.574 222.463 176.328 222.373 176.112C222.289 175.89 222.169 175.701 222.013 175.545C221.863 175.383 221.683 175.26 221.473 175.176C221.269 175.092 221.047 175.05 220.807 175.05C220.567 175.05 220.342 175.092 220.132 175.176C219.928 175.26 219.748 175.383 219.592 175.545C219.442 175.701 219.322 175.89 219.232 176.112C219.148 176.328 219.106 176.574 219.106 176.85C219.106 177.12 219.148 177.366 219.232 177.588C219.322 177.81 219.442 178.002 219.592 178.164C219.748 178.32 219.928 178.44 220.132 178.524C220.342 178.608 220.567 178.65 220.807 178.65ZM226.834 178.605L226.735 176.607L229.444 173.7H231.406L228.706 176.625L227.716 177.66L226.834 178.605ZM225.241 180V173.7H227.005V180H225.241ZM229.471 180L227.419 177.399L228.58 176.157L231.541 180H229.471Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['OK']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-OR\"\n            (mouseenter)=\"onStateHover('OR', false, $event)\"\n            (mouseleave)=\"onStateHover('OR', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['OR'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M77.348 48.7253L77.3191 48.8626L77.1324 49.0713L76.3957 49.8198L75.066 51.5068L74.8027 52.0516L73.6548 53.9089L73.2817 54.2534L73.0378 54.4714L72.8466 54.8695L72.856 55.0924L72.8848 55.1968L72.9281 55.3055L72.9425 55.3907L72.933 55.4L72.6747 55.8429L72.4979 56.0324L72.2634 56.2784L71.8472 56.7238L71.1105 56.9699L70.9238 57.0127L70.8711 57.0363L70.6893 57.1972L68.9865 59.5141L68.8906 59.7036L68.6229 61.49V61.4994H68.6179L68.5986 61.5486L68.5891 61.6436L68.6035 61.8001L68.7183 61.9895L69.675 62.3734L69.7515 62.3404H69.7947L70.0962 62.4492L70.1777 62.4984L70.584 63.2991L70.5934 63.3133L70.6173 63.3985L70.6078 63.5072V63.5166H70.6029L70.5885 63.5451L70.579 63.5687L70.5646 63.5879L70.1772 64.0619L69.8757 65.27L69.5026 65.9713L69.2731 66.3551L68.4287 68.3925L64.3585 86.3467L55.0652 84.2522V84.2615L50.464 83.2143L46.1499 82.1316L45.8677 82.0608L40.8264 80.7906L38.5594 80.2222L38.2484 80.1415L35.3644 79.3831H35.355L33.8961 78.9943V78.9894L29.4479 77.7591L22.8761 75.8211L22.441 75.6883L22.1877 75.6075L21.2265 75.3467L20.1695 75.0908L17.5055 74.3423L17.2998 74.2852L16.9556 74.1809L16.1186 73.8822L15.5305 73.7591H15.5111V73.7542L13.2585 73.1287L10.8816 72.4796L7.85156 71.5367L7.55004 70.9063L7.19141 69.8305L7.27287 67.5038L7.54557 66.6037L7.77506 66.0067L7.82772 65.8739L8.27726 65.457L8.50675 64.3576L7.94246 63.1918L7.9519 62.9123L7.95687 61.9123L8.89419 60.8886L10.7405 58.0835L10.5875 57.3916L11.3431 57.1785L12.9117 55.1313L13.0076 54.6431V54.6382L14.2847 52.1362L15.9348 47.9143L16.2264 47.3695L16.6561 46.4985L16.7058 46.3848L17.3659 44.5605L18.5665 41.5846L19.2311 40.1486V40.1437L19.4989 39.6649L19.5321 39.6078V39.5984L19.7522 39.191L19.7666 39.1624L19.8287 39.0202L20.0011 38.5984L21.6845 33.8598L21.8335 33.3677L21.8623 33.1733V33.0975L21.8479 32.5291L22.4648 31.1693L22.2498 30.7048L22.8761 30.4632L23.0251 29.9371L23.0346 29.6054L23.0634 29.2073L23.1255 28.9986L23.0261 28.0365L23.1553 27.9277L23.3465 27.9799L23.5999 28.4824L23.8676 28.7432L24.2218 28.5301L24.7384 28.5252L24.9917 28.9041L25.9146 29.0084L26.0726 28.7289L26.4168 28.6059L26.4551 28.4971L26.9478 28.5257L26.991 28.5542L27.0149 28.5685L27.0437 28.6177L27.1584 28.8145L27.2399 29.0704L27.0675 29.5586L27.3929 30.0562L27.4455 30.0754H27.4505V30.066L28.6367 30.1182L29.0291 30.0473L29.3927 30.1949L30.6316 31.7018L30.7081 31.9907L30.9187 33.1752L30.8447 34.2126L30.787 34.3878L30.5883 35.7195V35.7244H30.5834L30.4254 35.9946L30.3489 36.189L30.3584 36.4592L30.5074 36.6486L30.8998 37.0561L31.1054 37.2077L33.2384 38.5108L33.4868 38.6339H33.4962L33.7068 38.686H33.8504L36.5764 38.3071L36.7915 38.1176L37.1169 37.9518L37.5714 37.9232L38.1024 38.2121L38.308 38.2613L38.9443 38.3105L39.7719 38.3248L40.2934 38.7751V38.78L40.8195 38.8558L41.0827 38.9129L42.03 39.4483L42.1497 40.3105L43.1779 39.8794L43.8764 40.2062L44.0388 40.4193L44.4451 40.3007L45.1197 40.1964L45.9422 40.0827L46.2721 39.9262L46.4345 39.874L46.7599 39.9547L46.9749 40.1024L47.1736 40.4769L47.2645 40.6097L47.4225 40.7082L48.0186 40.8125L49.5346 40.9026L49.9364 40.6038L50.1803 40.5423L51.3333 40.405H52.3903L53.122 40.4808L53.9207 40.5517L54.2605 40.2072L54.6579 39.9798L55.0741 40.2121L55.4139 40.373L55.849 40.4016V40.3967L56.2842 40.4203L57.4371 40.5768L57.6477 40.6855L57.8439 40.7347L58.1787 40.7584L58.4509 40.7087L59.0107 40.5477L59.1781 40.4769L59.3932 40.2968V40.3017L66.7825 42.0595L66.9211 42.0925L69.7142 42.7608L70.6327 42.9788L74.8509 43.9547L75.3913 45.6279L75.4246 45.6894L75.4485 45.7322L75.7962 46.0546L76.4658 46.6609L76.7479 46.7839L76.882 46.9498L77.031 47.1392L77.0837 47.3479L77.348 48.7253Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['OR']['color']\"\n            />\n            <path\n                d=\"M39.807 65.126C39.303 65.126 38.838 65.045 38.412 64.883C37.986 64.721 37.614 64.493 37.296 64.199C36.984 63.899 36.741 63.551 36.567 63.155C36.393 62.759 36.306 62.324 36.306 61.85C36.306 61.376 36.393 60.941 36.567 60.545C36.741 60.149 36.984 59.804 37.296 59.51C37.614 59.21 37.986 58.979 38.412 58.817C38.838 58.655 39.303 58.574 39.807 58.574C40.317 58.574 40.782 58.655 41.202 58.817C41.628 58.979 41.997 59.21 42.309 59.51C42.621 59.804 42.864 60.149 43.038 60.545C43.218 60.941 43.308 61.376 43.308 61.85C43.308 62.324 43.218 62.762 43.038 63.164C42.864 63.56 42.621 63.905 42.309 64.199C41.997 64.493 41.628 64.721 41.202 64.883C40.782 65.045 40.317 65.126 39.807 65.126ZM39.807 63.65C40.047 63.65 40.269 63.608 40.473 63.524C40.683 63.44 40.863 63.32 41.013 63.164C41.169 63.002 41.289 62.81 41.373 62.588C41.463 62.366 41.508 62.12 41.508 61.85C41.508 61.574 41.463 61.328 41.373 61.112C41.289 60.89 41.169 60.701 41.013 60.545C40.863 60.383 40.683 60.26 40.473 60.176C40.269 60.092 40.047 60.05 39.807 60.05C39.567 60.05 39.342 60.092 39.132 60.176C38.928 60.26 38.748 60.383 38.592 60.545C38.442 60.701 38.322 60.89 38.232 61.112C38.148 61.328 38.106 61.574 38.106 61.85C38.106 62.12 38.148 62.366 38.232 62.588C38.322 62.81 38.442 63.002 38.592 63.164C38.748 63.32 38.928 63.44 39.132 63.524C39.342 63.608 39.567 63.65 39.807 63.65ZM44.2413 65V58.7H47.1213C47.6973 58.7 48.1923 58.793 48.6063 58.979C49.0263 59.165 49.3503 59.435 49.5783 59.789C49.8063 60.137 49.9203 60.551 49.9203 61.031C49.9203 61.505 49.8063 61.916 49.5783 62.264C49.3503 62.606 49.0263 62.87 48.6063 63.056C48.1923 63.236 47.6973 63.326 47.1213 63.326H45.2313L46.0233 62.579V65H44.2413ZM48.1383 65L46.5723 62.705H48.4713L50.0463 65H48.1383ZM46.0233 62.768L45.2313 61.949H47.0133C47.3853 61.949 47.6613 61.868 47.8413 61.706C48.0273 61.544 48.1203 61.319 48.1203 61.031C48.1203 60.737 48.0273 60.509 47.8413 60.347C47.6613 60.185 47.3853 60.104 47.0133 60.104H45.2313L46.0233 59.285V62.768Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['OR']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-PA\"\n            (mouseenter)=\"onStateHover('PA', false, $event)\"\n            (mouseleave)=\"onStateHover('PA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['PA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M410.255 105.729L409.806 106.108L409.467 106.137L409.352 106.487L408.453 107.241V107.246L407.922 108.008L407.295 109.164L406.97 109.629L405.984 109.999L405.438 110.691L405.347 110.653L405.261 110.624L405.079 110.567L404.984 110.548L404.893 110.529L404.797 110.515L404.701 110.505L404.606 110.501H404.506L404.41 110.505L404.311 110.515L404.206 110.534L404.1 110.557L403.995 110.59L403.885 110.628V110.623L403.751 110.685L403.627 110.751L403.512 110.822L403.402 110.898L403.303 110.983L403.207 111.068L403.121 111.158L403.045 111.253L402.973 111.357L402.906 111.462L402.849 111.57L402.799 111.684L402.75 111.803L402.712 111.926L402.683 112.049L402.654 112.182L402.572 112.2L399.727 112.807H399.722V112.812L398.918 112.983L398.865 112.992V113.001L396.153 113.561L394.365 113.93L392.614 114.295L390.821 114.645L388.826 115.039L388.75 115.053L383.546 116.025L381.533 116.403L381.222 116.461L377.687 117.105V117.11L372.862 117.982L372.857 117.977L372.161 118.1L369.777 118.517L368.519 118.73V118.735L364.334 119.431L363.521 119.559L363.091 116.948C362.973 116.234 362.855 115.52 362.737 114.807L362.311 112.215L362.162 111.366L361.875 109.618L361.492 107.32C361.459 107.143 361.427 106.966 361.397 106.789L360.999 104.354V104.349L360.985 104.268L360.344 100.42V100.415L360.32 100.297L359.698 96.5108L359.469 95.1329L360.884 94.2471L362.157 93.2048L362.238 92.8111L362.42 92.6024L362.707 92.5503L362.745 92.7161L364.223 91.5222L364.998 90.9583L365.048 91.2471L365.258 92.4553L365.511 93.8824L366.604 93.6929L366.728 93.6693V93.6743L371.124 92.9016L372.262 92.7073H372.267L372.615 92.6502L374.839 92.2191L377.149 91.7973L377.957 91.6408L381.611 90.9583L382.726 90.7354H382.731L387.862 89.7019L388.168 89.6355L391.114 89.0528L394.393 88.3845L394.723 88.3181L399.673 87.2522L400.659 87.0342L400.812 87.0671L401.295 87.4038L401.444 87.5411L401.769 88.2709L402.707 88.2517L404.012 90.5734V90.5784L404.233 91.0759L404.587 91.4169L404.835 91.6536L405.71 92.1039L405.854 92.1704L406.5 92.1374L406.858 92.0995L407.513 92.7299L407.031 93.0744L406.801 93.3253L406.605 93.7235L406.562 93.8465L406.462 94.2682L406.448 94.4159L406.481 94.4488L406.496 94.629L406.446 94.9557L406.216 95.4862L405.891 95.9409V95.9458L405.934 95.998L405.04 97.6564L405.82 98.5663L405.848 98.6279L405.843 98.6943L405.566 99.5309L405.398 99.7632L405.274 99.7824L405.15 99.7681L405.088 99.7868L404.949 100.109L405.031 100.768L405.236 101.545L405.289 101.643L405.38 101.809V101.814L406.561 102.288L407.187 103.537L407.985 104.015L408.038 104.044L410.255 105.729Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['PA']['color']\"\n            />\n            <path\n                d=\"M378.63 106V99.7H381.51C382.086 99.7 382.581 99.793 382.995 99.979C383.415 100.165 383.739 100.435 383.967 100.789C384.195 101.137 384.309 101.551 384.309 102.031C384.309 102.505 384.195 102.916 383.967 103.264C383.739 103.612 383.415 103.882 382.995 104.074C382.581 104.26 382.086 104.353 381.51 104.353H379.62L380.412 103.579V106H378.63ZM380.412 103.768L379.62 102.949H381.402C381.774 102.949 382.05 102.868 382.23 102.706C382.416 102.544 382.509 102.319 382.509 102.031C382.509 101.737 382.416 101.509 382.23 101.347C382.05 101.185 381.774 101.104 381.402 101.104H379.62L380.412 100.285V103.768ZM384.105 106L386.886 99.7H388.641L391.431 106H389.577L387.399 100.573H388.101L385.923 106H384.105ZM385.626 104.776L386.085 103.462H389.163L389.622 104.776H385.626Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['PA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M435.515 84.2831L435.534 84.411L435.391 84.5011L435.338 84.667L435.171 84.7998L435.142 84.539L434.922 84.3116L434.956 84.1886L434.889 84.1556L434.826 83.8947L434.717 83.8711L434.673 83.7382L434.745 83.686L434.646 83.4631L434.698 83.2662L434.599 83.2047L434.503 82.8729L434.465 82.6027L434.515 82.4551L435.017 82.5073L435.151 82.8439L435.155 83.0526L435.284 83.1663L435.629 84.2043L435.515 84.2831Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M433.725 84.7532L433.802 84.8433L433.792 84.9004L433.663 84.9497L433.644 85.0777L433.62 85.1107L433.629 85.1816L433.567 85.3003L433.538 85.251L433.543 85.1373L433.529 85.0329L433.448 84.8852L433.452 84.833L433.557 84.8187L433.61 84.7995L433.56 84.7665L433.565 84.6715L433.494 84.6286L433.394 84.472L433.404 84.2967L433.375 84.0998L433.38 83.9718L433.433 83.9053H433.505L433.61 84.1141L433.596 84.2514L433.672 84.4883L433.663 84.5262L433.749 84.569L433.71 84.6828L433.725 84.7532Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-RI\"\n            (mouseenter)=\"onStateHover('RI', false, $event)\"\n            (mouseleave)=\"onStateHover('RI', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['RI'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M433.269 85.1016L433.26 85.2202L433.327 85.2694L433.298 85.4067L433.159 85.5543L433.265 85.8004L433.136 86.1227L433.126 86.265L433.155 86.3786L433.105 86.3836L433.034 86.3265L432.881 86.2979V86.2364L432.943 86.1606L432.981 86.0706L432.957 86.0091L432.948 85.9475L432.898 85.9146L432.865 85.7915L432.774 85.8201L432.788 85.8816L432.783 86.166L432.764 86.2276L432.798 86.3033L432.66 86.384L432.598 86.3934H432.593L432.42 86.4643L432.243 86.5922L432.014 86.6872L431.894 86.7856L431.488 87.0701L431.426 87.1887L431.326 87.2408L431.241 87.2595L431.121 87.3304L430.997 87.3496L430.891 87.3988L430.518 87.5956L430.427 87.6621L430.351 87.7807L430.293 87.7315L430.222 87.7644L430.136 87.8166L430.112 87.7502L430.308 87.6793L430.346 87.5892V87.5085L430.456 87.3663L430.437 87.262L430.341 87.134L430.323 86.9209L430.223 86.8023L430.199 86.6508L430.333 86.48L430.458 86.4849L430.496 86.452L430.037 84.5849L429.917 84.1302L429.678 83.2345V83.2296L428.812 80.2445L431.156 79.5338V79.5289L432.075 79.2637L432.165 79.6283L432.428 80.6091L432.744 80.4575L432.758 80.5619L432.902 80.865V81.055L432.951 81.1258L432.922 81.2631L432.994 81.3719L433.037 81.5141L433.128 81.5899L433.181 81.675L433.262 81.6799L433.798 81.803L434.161 82.1297L434.166 82.2774L434.104 82.3202L434.047 82.2872L433.966 82.1785L433.937 82.2021L433.951 82.2971L434.1 82.4299L434.182 82.5151L434.191 82.6135L434.11 82.6893L434.095 82.7557L434.105 82.8886L434.076 82.9073L434.026 82.8743L433.983 82.7842L433.93 82.7557L433.887 82.6986L433.811 82.7178L433.791 82.9122L433.729 82.9215L433.667 82.7321L433.691 82.6706L433.734 82.5756L433.681 82.4147L433.705 82.1686L433.676 81.9978V81.9363L433.581 81.8276L433.531 81.9176L433.541 81.9747L433.459 81.9698L433.392 81.9034L433.412 81.8369L433.345 81.7848L433.283 81.804L433.297 81.9555L433.364 82.0362L433.563 82.1406L433.596 82.1927L433.577 82.2592V82.3541L433.553 82.3591L433.491 82.2606L433.381 82.2227L433.299 82.2557L433.232 82.237L433.175 82.1233L433.06 82.0141L433.022 82.0426L433.007 81.9855L432.95 81.9098H432.916L432.888 81.8812V81.7769L432.749 81.5589L432.634 81.4875V81.4167L432.684 81.1214L432.655 80.9738L432.569 80.9309L432.545 81.0294L432.56 81.1573L432.542 81.3994L432.475 81.3945L432.452 81.4275L432.566 81.584L432.648 81.6076L432.691 81.6568L432.672 81.709L432.762 81.955V81.96L432.772 82.0121L432.815 82.0451L432.853 82.116L432.906 82.1302L432.882 82.1794L432.92 82.2695L432.93 82.3359L433.04 82.3881L433.184 82.3551L433.193 82.3787L433.083 82.4639L433.127 82.6676L433.098 82.7862L433.131 82.862L433.122 82.9521L432.987 82.895L432.997 82.8049L432.935 82.8L432.882 82.7906L432.844 82.7385L432.801 82.7478L432.816 82.8143L432.5 82.8428L432.562 83.0795L432.615 83.1031L432.73 83.0416L432.873 83.0795L432.888 83.1553V83.1602L432.95 83.3261L433.007 83.421L432.957 83.4589L432.943 83.5111L433.014 83.5062L433.064 83.5677L432.978 83.672L433.035 83.7148L433.107 83.6956L433.131 83.7665L433.107 83.8236L432.915 83.9565L432.83 83.9614L432.801 84.0135L432.872 84.0942L433.045 84.2173L433.078 84.2881L433.177 84.4304L433.249 84.6533L433.216 84.7517L433.259 84.9082L433.308 84.9889L433.332 85.074L433.269 85.1016Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['RI']['color']\"\n            />\n\n            <path\n                d=\"M443.63 88V81.7H446.51C447.086 81.7 447.581 81.793 447.995 81.979C448.415 82.165 448.739 82.435 448.967 82.789C449.195 83.137 449.309 83.551 449.309 84.031C449.309 84.505 449.195 84.916 448.967 85.264C448.739 85.606 448.415 85.87 447.995 86.056C447.581 86.236 447.086 86.326 446.51 86.326H444.62L445.412 85.579V88H443.63ZM447.527 88L445.961 85.705H447.86L449.435 88H447.527ZM445.412 85.768L444.62 84.949H446.402C446.774 84.949 447.05 84.868 447.23 84.706C447.416 84.544 447.509 84.319 447.509 84.031C447.509 83.737 447.416 83.509 447.23 83.347C447.05 83.185 446.774 83.104 446.402 83.104H444.62L445.412 82.285V85.768ZM450.292 88V81.7H452.074V88H450.292Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['RI']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <path\n            d=\"M433.875 83.5812L433.822 83.6905L433.755 83.7427L433.693 83.7378L433.626 83.5433L433.655 83.4389L433.622 83.2779L433.487 83.2872L433.402 83.238L433.387 83.1395L433.445 83.0588L433.363 82.945L433.435 82.8643L433.516 82.9686L433.573 83.1203L433.808 83.2055L433.904 83.2907L433.875 83.5812Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M433.958 82.918L434.034 82.9798L433.991 83.056L433.915 83.0416L433.91 82.9847L433.958 82.918Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M433.042 88.4066L433.24 88.6296L433.154 88.7104L432.929 88.7911L432.771 88.9049L432.714 88.8478L432.664 88.5523L432.746 88.4194L432.88 88.4622L432.923 88.4051L432.808 88.2722L432.841 88.182L432.76 87.959L432.946 87.992L433.013 88.1722L433.004 88.3145L433.042 88.4066Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M434.67 84.5119L434.746 84.5783L434.741 84.7063L434.703 84.7112L434.693 84.6305L434.603 84.5783H434.55L434.483 84.597L434.478 84.6679L434.416 84.6822L434.387 84.6393L434.305 84.6964L434.291 84.7722L434.32 84.8529L434.291 84.943L434.286 85.0567L434.157 85.0237L434.042 85.1423L433.99 85.1374L433.927 85.1989L433.828 85.1138L433.838 85.0287L433.952 84.8436L433.995 84.8928L434.134 84.784L434.034 84.6364L434.005 84.5178L433.987 84.4469L433.937 84.4233L433.932 84.3381L434.042 84.3573L433.985 84.0399L434.052 83.7509L434.042 83.5378L434.08 83.4049L434.075 83.2105L434.133 83.1396L434.166 82.992L434.319 82.8936L434.377 82.7705L434.492 83.0594L434.363 83.1682L434.391 83.4856L434.516 83.59L434.544 83.7987L434.63 84.0118L434.697 84.0497V84.2466L434.669 84.345L434.67 84.5119Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n\n        <g\n            class=\"zoomable-state state-SC\"\n            (mouseenter)=\"onStateHover('SC', false, $event)\"\n            (mouseleave)=\"onStateHover('SC', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['SC'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M391.792 180.059L391.419 180.201L390.692 180.632L390.347 180.888L389.888 181.324L389.845 181.373L389.663 181.568L389.581 181.663L389.447 181.838L389.261 182.08L389.208 182.15L388.662 182.98L388.337 183.596L388.222 183.814L387.654 184.897L387.63 184.963L387.568 185.124L387.549 185.174L387.544 185.192L387.539 185.202L387.353 185.846L387.334 185.951L387.301 186.107L387.292 186.14L387.263 186.713L387.253 187.012L387.244 187.51L387.239 187.524H387.244L387.268 187.661L387.273 187.694L387.407 188.021L387.33 188.4L387.278 188.495L386.9 189.016L386.522 189.248V189.253L386.263 189.552L386.134 190.395L385.469 190.433L385.039 190.637L384.934 190.651L384.79 190.372L384.513 190.4L384.145 190.76L383.847 191.41L383.985 191.585H384.33L384.311 191.846L383.627 192.3L383.363 192.684L383.134 192.893V193.073L381.962 193.983L382.005 194.201L381.867 194.727L381.192 195.381L381.159 195.566L380.848 195.708L380.446 195.898L380.35 195.936L380.269 195.978L379.971 196.139L379.272 196.646L378.914 196.991H378.909L378.904 196.986L378.244 197.663H378.191L377.861 197.526L377.656 197.701L377.392 197.739L377.325 197.542L376.99 197.651L376.918 197.784L377.11 198.339L377.33 198.371L377.449 198.547L377.499 198.642L377.523 198.77L377.504 198.935L377.404 199.494L377.313 199.589L375.639 200.613L375.61 200.916L375.041 201.935L374.515 202.357L374.257 202.333L373.975 202.76V202.765H373.98V203.276L372.272 202.954L371.751 202.757L371.708 202.714L371.593 202.245L371.502 201.809L371.452 201.596L371.333 201.018L370.358 199.056L369.54 198.388L369.363 198.322L368.402 197.943L368.005 196.351L366.259 193.294L365.503 192.882L363.973 192.171H363.968V192.176L363.112 191.537L362.516 190.7L362.301 189.876L361.693 189.169L361.262 188.767L361.186 188.691L361.033 188.554L360.148 188.179L360.143 188.174L359.096 187.269L358.732 186.587L358.168 186.127L357.929 185.961L357.145 185.568H357.101L356.972 185.617L356.915 185.603L355.557 184.802L355.179 184.234L353.576 182.272L353.241 181.4L352.285 180.071L351.987 179.612L351.992 179.583L351.896 179.512L351.709 179.46L351.384 179.503L351.03 179.593L350.925 179.642L350.365 179.571L349.815 179.187L347.533 177.799L347.352 177.504L347.501 176.68L348.094 175.618L348.907 174.993L349.098 174.126L349.954 173.713L350.892 173.268L352.049 172.973L353.623 171.907L355.455 170.954L356.697 170.897L358.897 170.674L359.739 170.579L359.743 170.584L360.681 170.489L364.249 170.115L364.597 170.082L367.13 169.85L367.34 170.162L367.144 170.835L367.407 171.006L368.129 170.29L368.464 170.432L369.176 171.153L369.808 171.783L369.87 172.897L369.875 172.995L370.057 173.028L371.974 172.749L371.979 172.754L374.115 172.441L377.602 171.938H377.607L379.725 171.594L382.06 173.133L382.184 173.219L386.168 176.095L386.173 176.09L390.622 179.24L391.792 180.059Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['SC']['color']\"\n            />\n            <path\n                d=\"M368.844 187.126C368.328 187.126 367.83 187.063 367.35 186.937C366.876 186.805 366.489 186.637 366.189 186.433L366.774 185.119C367.056 185.299 367.38 185.449 367.746 185.569C368.118 185.683 368.487 185.74 368.853 185.74C369.099 185.74 369.297 185.719 369.447 185.677C369.597 185.629 369.705 185.569 369.771 185.497C369.843 185.419 369.879 185.329 369.879 185.227C369.879 185.083 369.813 184.969 369.681 184.885C369.549 184.801 369.378 184.732 369.168 184.678C368.958 184.624 368.724 184.57 368.466 184.516C368.214 184.462 367.959 184.393 367.701 184.309C367.449 184.225 367.218 184.117 367.008 183.985C366.798 183.847 366.627 183.67 366.495 183.454C366.363 183.232 366.297 182.953 366.297 182.617C366.297 182.239 366.399 181.897 366.603 181.591C366.813 181.285 367.125 181.039 367.539 180.853C367.953 180.667 368.469 180.574 369.087 180.574C369.501 180.574 369.906 180.622 370.302 180.718C370.704 180.808 371.061 180.943 371.373 181.123L370.824 182.446C370.524 182.284 370.227 182.164 369.933 182.086C369.639 182.002 369.354 181.96 369.078 181.96C368.832 181.96 368.634 181.987 368.484 182.041C368.334 182.089 368.226 182.155 368.16 182.239C368.094 182.323 368.061 182.419 368.061 182.527C368.061 182.665 368.124 182.776 368.25 182.86C368.382 182.938 368.553 183.004 368.763 183.058C368.979 183.106 369.213 183.157 369.465 183.211C369.723 183.265 369.978 183.334 370.23 183.418C370.488 183.496 370.722 183.604 370.932 183.742C371.142 183.874 371.31 184.051 371.436 184.273C371.568 184.489 371.634 184.762 371.634 185.092C371.634 185.458 371.529 185.797 371.319 186.109C371.115 186.415 370.806 186.661 370.392 186.847C369.984 187.033 369.468 187.126 368.844 187.126ZM375.598 187.126C375.1 187.126 374.638 187.048 374.212 186.892C373.792 186.73 373.426 186.502 373.114 186.208C372.808 185.914 372.568 185.569 372.394 185.173C372.22 184.771 372.133 184.33 372.133 183.85C372.133 183.37 372.22 182.932 372.394 182.536C372.568 182.134 372.808 181.786 373.114 181.492C373.426 181.198 373.792 180.973 374.212 180.817C374.638 180.655 375.1 180.574 375.598 180.574C376.18 180.574 376.699 180.676 377.155 180.88C377.617 181.084 378.001 181.378 378.307 181.762L377.173 182.788C376.969 182.548 376.744 182.365 376.498 182.239C376.258 182.113 375.988 182.05 375.688 182.05C375.43 182.05 375.193 182.092 374.977 182.176C374.761 182.26 374.575 182.383 374.419 182.545C374.269 182.701 374.149 182.89 374.059 183.112C373.975 183.334 373.933 183.58 373.933 183.85C373.933 184.12 373.975 184.366 374.059 184.588C374.149 184.81 374.269 185.002 374.419 185.164C374.575 185.32 374.761 185.44 374.977 185.524C375.193 185.608 375.43 185.65 375.688 185.65C375.988 185.65 376.258 185.587 376.498 185.461C376.744 185.335 376.969 185.152 377.173 184.912L378.307 185.938C378.001 186.316 377.617 186.61 377.155 186.82C376.699 187.024 376.18 187.126 375.598 187.126Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['SC']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-SD\"\n            (mouseenter)=\"onStateHover('SD', false, $event)\"\n            (mouseleave)=\"onStateHover('SD', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['SD'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M230.394 93.1583L229.839 95.0633L229.514 95.9161L229.193 97.3757L229.404 97.5366L229.667 97.7783L229.878 98.11L230.17 98.8727L230.457 99.6601L228.902 99.2664L228.329 98.418L228.305 98.3196L228.31 98.2212L228.339 98.0932L228.295 97.9131L228.204 97.7163L227.549 97.3039L225.86 96.6784L224.86 96.2616L224.397 95.9392L224.382 95.5456L223.88 95.484L223.378 95.271L222.99 95.3517L222.603 95.5175L222.101 95.4038L221.847 95.4939L221.407 95.6076L221.355 95.3753L221.057 95.3374L220.741 95.674L220.542 95.3566L220.294 95.2951L220.05 95.6174L219.777 95.5938L219.534 95.3192L219.156 95.3807L219.06 95.676L218.854 95.9319L218.682 96.1735L218.457 96.3772L218.347 96.4437L217.941 96.5052L217.806 96.5101L217.663 96.4865L217.491 96.4107L216.625 95.6725H216.615L215.485 95.1563L213.997 93.8345L213.992 93.8296L207.942 93.6544L205.699 93.5815V93.5766L200.376 93.3537L199.739 93.3207L199.166 93.2922L197.606 93.2213L194.703 93.0884L192.13 92.9556V92.9605L188.944 92.7946L186.945 92.6431L185.291 92.5343L179.608 92.1455L177.939 92.0225L173.908 91.7115L169.527 91.3562L169.962 86.1536L169.982 85.879L170.307 82.0696V82.0602L170.58 78.9377L170.607 78.6159C170.728 77.1625 170.85 75.7093 170.972 74.2563L171.355 69.6221L171.69 67.2909H171.695L172.283 60.0268L172.335 59.3379L180.37 59.9683L180.782 59.9968V60.0017L187.994 60.4939V60.4796H188.009V60.4939H188.076L188.2 60.5032L189.128 60.5603L190.228 60.6218L191.39 60.6976L192.352 60.7498L192.799 60.7783L195.812 60.9392L196.51 60.9771L197.429 61.0263H197.491L197.668 61.0357L199.406 61.1257H199.502L199.507 61.1351L204.247 61.3674V61.3624L205.489 61.4195L205.494 61.4244L210.961 61.6213L213.118 61.6971V61.702L218.618 61.8629L218.843 61.8723L224.605 61.9707L229.713 62.0199V62.0248L229.67 62.4987V62.5223L229.665 62.5366L229.632 62.8255L229.603 63.0622L229.584 63.1606L229.579 63.2128L229.569 63.2364L229.565 63.2507L229.55 63.2792L229.015 64.0705L228.857 64.227L228.559 64.3879L228.291 64.5587L227.588 65.1177L227.578 65.132L227.564 65.1507L227.549 65.1601L227.525 65.2216L227.415 65.5862L227.448 65.6291L227.587 65.8042L228.123 66.5149L228.654 67.6807L229.25 67.7565L229.991 68.1167L230.244 68.3135L230.393 68.6501L230.522 69.2756L230.513 72.4502H230.508V72.4551L230.503 74.3316L230.493 76.2365L230.484 77.1888H230.489L230.465 80.9702V80.9751L230.441 84.7644L230.427 88.5881L229.269 88.5787L229.303 89.2327L229.85 89.8439L229.869 90.6446L229.381 90.6732L229.405 91.2086L229.581 91.6023H230.155L230.232 91.6402L230.538 92.7395L230.394 93.1583Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['SD']['color']\"\n            />\n            <path\n                d=\"M196.844 81.126C196.328 81.126 195.83 81.063 195.35 80.937C194.876 80.805 194.489 80.637 194.189 80.433L194.774 79.119C195.056 79.299 195.38 79.449 195.746 79.569C196.118 79.683 196.487 79.74 196.853 79.74C197.099 79.74 197.297 79.719 197.447 79.677C197.597 79.629 197.705 79.569 197.771 79.497C197.843 79.419 197.879 79.329 197.879 79.227C197.879 79.083 197.813 78.969 197.681 78.885C197.549 78.801 197.378 78.732 197.168 78.678C196.958 78.624 196.724 78.57 196.466 78.516C196.214 78.462 195.959 78.393 195.701 78.309C195.449 78.225 195.218 78.117 195.008 77.985C194.798 77.847 194.627 77.67 194.495 77.454C194.363 77.232 194.297 76.953 194.297 76.617C194.297 76.239 194.399 75.897 194.603 75.591C194.813 75.285 195.125 75.039 195.539 74.853C195.953 74.667 196.469 74.574 197.087 74.574C197.501 74.574 197.906 74.622 198.302 74.718C198.704 74.808 199.061 74.943 199.373 75.123L198.824 76.446C198.524 76.284 198.227 76.164 197.933 76.086C197.639 76.002 197.354 75.96 197.078 75.96C196.832 75.96 196.634 75.987 196.484 76.041C196.334 76.089 196.226 76.155 196.16 76.239C196.094 76.323 196.061 76.419 196.061 76.527C196.061 76.665 196.124 76.776 196.25 76.86C196.382 76.938 196.553 77.004 196.763 77.058C196.979 77.106 197.213 77.157 197.465 77.211C197.723 77.265 197.978 77.334 198.23 77.418C198.488 77.496 198.722 77.604 198.932 77.742C199.142 77.874 199.31 78.051 199.436 78.273C199.568 78.489 199.634 78.762 199.634 79.092C199.634 79.458 199.529 79.797 199.319 80.109C199.115 80.415 198.806 80.661 198.392 80.847C197.984 81.033 197.468 81.126 196.844 81.126ZM200.457 81V74.7H203.436C204.132 74.7 204.744 74.829 205.272 75.087C205.8 75.345 206.211 75.708 206.505 76.176C206.805 76.644 206.955 77.202 206.955 77.85C206.955 78.492 206.805 79.05 206.505 79.524C206.211 79.992 205.8 80.355 205.272 80.613C204.744 80.871 204.132 81 203.436 81H200.457ZM202.239 79.578H203.364C203.724 79.578 204.036 79.512 204.3 79.38C204.57 79.242 204.78 79.044 204.93 78.786C205.08 78.522 205.155 78.21 205.155 77.85C205.155 77.484 205.08 77.172 204.93 76.914C204.78 76.656 204.57 76.461 204.3 76.329C204.036 76.191 203.724 76.122 203.364 76.122H202.239V79.578Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['SD']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n\n        <g\n            class=\"zoomable-state state-TN\"\n            (mouseenter)=\"onStateHover('TN', false, $event)\"\n            (mouseleave)=\"onStateHover('TN', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['TN'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M359.152 155.083L359.108 157.319L359.142 157.836L358.955 157.898H358.941L358.802 157.903L358.573 157.832L358.52 157.709L358.471 157.737L358.461 157.747L358.021 158.042L357.619 158.492L357.552 158.667L357.461 158.928H357.456V158.933L356.423 160.847L355.117 160.468H355.112L353.548 161.624L352.922 162.756L352.682 162.813L352.376 163.131L351.88 162.823L351.975 162.216L351.808 162.056L351.674 161.975L351.636 161.98L351.411 162.141L351.258 162.249L350.703 162.791L349.928 163.511L349.531 163.609L349.527 163.604L349.187 165.327L346.743 166.53V166.535L346.781 166.739L346.465 167.204L344.94 168.397L344.83 168.468L343.572 168.596H343.374V168.587L340.972 170.094L340.896 170.07L340.537 172.022L340.327 172.302L339.992 172.576L339.045 172.6L338.318 173.23V173.235C338.329 174.038 338.34 174.84 338.351 175.642L335.687 175.965L334.319 176.13H334.315L334.013 176.168L332.53 176.339H332.502L329.968 176.652L329.093 176.77L328.141 176.875L328.132 176.884L326.951 177.002L324.64 177.211L320.652 177.59H320.585V177.595L316.438 177.998L315.969 178.04V178.041L312.626 178.274L312.516 178.283L309.101 178.544V178.549L305.714 178.805L303.801 179.08L302.342 179.198L302.199 179.208H302.192L298.571 179.492L298.241 179.521L296.51 179.658L294.893 179.772L293.516 179.867L290.909 180.037L290.192 180.09L284.969 180.407L284.949 180.255L285.059 179.914L285.891 179.839L286.173 178.976L286.341 178.78L286.843 178.955L287.125 178.737L287.154 178.343L286.819 178.187L287.077 177.779L287.006 177.48L286.752 177.21L286.341 177.224L286.212 177.028L286.676 176.753L286.743 176.392L286.693 176.195L286.918 175.968L286.422 175.541L286.139 175.66V175.911L285.981 175.954L285.943 175.499L286.345 175.362L286.593 175.125L286.766 175.594L287.134 175.874L287.272 175.859V175.854L287.397 174.954L287.119 174.646L287.177 174.139L287.516 174.111L287.669 174.376L288.296 174.499L288.172 174.007V174.002L287.904 173.647L288.607 173.211L288.741 172.866L288.482 172.535L288.035 172.748L287.753 172.203L288.088 171.908L288.394 171.957L288.93 171.8L289.168 171.521L289.268 171.256L289.861 171.17L289.919 170.697L289.344 170.464L289.444 170.147L289.606 170.118L290.261 170.237L290.266 170.228L290.372 169.749L290.151 169.54L289.726 169.322L289.683 169.052L290.012 168.564L290.079 167.995L290.653 167.678L290.72 167.284L290.156 167.009L289.817 166.374L290.558 166.427L291.065 166.118L290.883 165.754L290.362 165.37L290.783 165.299L291.165 165.171L291.17 164.574L290.84 164.129L290.711 163.532L291.185 163.508L291.156 163.84L291.385 164.011L291.687 163.854L291.783 163.447L292.4 163.362V163.367L296.876 163.044H296.943L297.034 163.035L299.66 162.845L299.899 162.831L303.716 162.566L303.936 162.158L303.4 160.595L303.912 160.566L305.342 160.595L305.337 160.932L306.724 160.771L307.188 160.718L309.847 160.444L311.77 160.259V160.254L312.243 160.202L314.831 159.894H316.581V159.889L317.897 159.571V159.576L319.709 159.51L321.713 159.429L323.358 159.331L326.429 159.035L327.644 158.817L327.811 158.789V158.784L330.509 158.613V158.618L332.116 158.542H332.183L336.698 158.121V158.126L336.996 158.093L339.082 157.856V157.851L339.575 157.802L341.78 157.38V157.385L343.55 157.191L347.792 156.66L349.134 156.48L351.056 156.21V156.205L353.792 155.802L354.228 155.741L355.072 155.622L356.913 155.361L356.971 155.105L357.808 155.007L359.372 154.794L359.152 155.083Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['TN']['color']\"\n            />\n            <path\n                d=\"M314.971 172V167.113H313.036V165.7H318.679V167.113H316.753V172H314.971ZM319.343 172V165.7H320.81L324.284 169.894H323.591V165.7H325.337V172H323.87L320.396 167.806H321.089V172H319.343Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['TN']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M222.339 277.627L222.511 278.982L222.461 278.973H222.438L222.357 278.864L222.266 278.129L222.28 277.793L222.23 277.394L222.135 276.778L221.944 275.892L221.829 275.548L221.69 275.268V275.263L220.945 273.216L221.247 273.225L221.859 275.263H221.864L222.136 276.4L222.222 276.827L222.339 277.627Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M223.75 259.76L223.803 259.897L222.043 262.693L220.766 265.896L220.737 266L220.598 266.621L220.517 267.151L220.445 267.796L220.417 268.369V268.966L220.479 269.866L220.522 270.236L220.531 270.274L220.651 270.963L220.823 271.735L221.129 272.834L221.158 272.919L221.249 273.218L220.948 273.209L220.297 270.82V269.47L220.306 268.323L220.311 267.873L220.326 267.201L220.369 266.679L220.412 266.419L220.511 265.897V265.892L221.789 262.632L223.75 259.76Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M229.646 254.525L229.765 254.722L228.837 255.173L228.703 255.234L228.689 255.244L227.986 255.675L227.269 256.187L226.647 256.67L225.748 257.442L225.704 257.485L223.81 259.888L223.758 259.75L225.943 256.94V256.935L226.073 256.438L228.268 254.95L228.383 254.898L228.89 254.679L229.646 254.525Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-TX\"\n            (mouseenter)=\"onStateHover('TX', false, $event)\"\n            (mouseleave)=\"onStateHover('TX', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['TX'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M255.543 229.989L255.438 230.368L255.462 230.397L255.73 230.714L255.864 231.392L255.859 231.449L255.82 231.544L255.457 231.847L255.447 231.856L255.739 233.567C255.739 234.273 255.734 234.975 255.734 235.68L254.641 237.182V237.197L254.589 237.656L253.737 238.338L254.091 239.172L254.722 239.623L253.838 239.765H253.163L252.637 239.888L251.915 240.172L249.81 241.13C249.757 241.148 249.7 241.172 249.648 241.191L249.36 241.319L248.509 241.708L248.442 241.736L248.404 241.76L247.634 242.115L247.514 242.172L247.17 242.352L247.108 242.39L246.912 242.513L246.797 242.585L246.764 242.608L246.649 242.694L246.567 242.746L246.529 242.795L246.505 242.819L246.434 242.894L246.41 242.927L246.328 243.05L246.29 243.112L246.241 243.221L246.221 243.263L245.93 243.344L245.762 243.353L245.729 243.325L245.724 243.197L245.877 243.003L246.685 242.15L246.767 242.088L247.503 241.744L247.991 241.573L248.115 241.559L248.206 241.521L248.156 241.402V241.246L246.157 240.928L246.401 240.478L246.54 239.725V239.626L246.511 239.413L246.229 238.858L246.125 238.742L246.073 238.723L245.585 238.946L245.355 239.06L244.255 239.96V239.965L243.447 241.282H243.442V241.287L243.882 241.775L245.461 243.448L246.226 243.671L245.705 244.126L245.538 244.254L244.629 244.87L243.481 245.652L243.414 245.701L243.29 245.796L242.946 246.062L242.884 246.111L242.845 246.139L242.711 246.272L242.606 246.367L242.525 246.476L242.467 246.59L240.052 248.684L238.799 249.248H238.794L238.612 249.367L238.21 249.623L238.028 249.727L235.852 250.987L235.157 251.332L234.028 251.82L233.277 252.161L231.895 252.862L231.407 253.185L231.368 253.208L230.713 253.663L230.426 253.881L230.345 254.004L230.321 253.923L230.378 253.833L231.942 252.667L232.181 250.668L232.131 250.619L232.069 250.595L231.873 250.624L231.426 250.728L231.239 250.785L231.081 250.912L230.895 251.23L230.299 251.509L229.347 251.893L228.567 251.192L228.481 250.941L228.414 250.443L227.798 250.472H227.793L227.74 250.501L227.702 250.524L227.591 250.619L228.103 251.822L228.132 251.851L228.557 251.932L228.825 252.112L229.954 253.121L230.04 253.206L230.121 253.315L230.107 253.391L228.275 254.301L228.193 254.334L227.486 254.528L227.237 254.452L227.17 254.386L226.548 253.727L226.333 254.703V254.708L226.252 255.206L226.366 255.391V255.452L226.237 255.732L226.142 255.803L224.917 256.627H224.645L224.21 256.589L223.985 256.916L223.793 257.892L222.937 259.176C222.712 259.366 222.487 259.551 222.262 259.74L221.545 259.396H221.54L221.363 259.429L220.723 259.718L220.536 259.85L220.407 260.106L220.387 260.443L220.459 260.618L220.626 260.893L220.832 261.073L221.13 261.21L221.618 261.589L221.312 262.281L221.025 262.849V262.854L220.528 264.565L220.23 265.271L220.201 265.333L220.12 265.423L220.048 265.466L219.173 265.911L217.901 265.849L217.877 265.93L217.882 266.12L217.92 266.19L217.982 266.24L218.827 266.396L219.047 266.377L219.152 266.334L219.219 266.285L219.248 266.236L219.401 266.169L219.741 266.046L220.004 266.037L220.018 266.103L219.784 267.624L219.076 267.762L219.363 268.871L218.454 268.88L218.688 270.064L218.631 270.993L219.449 271.481L219.693 272.837L219.717 273.187C219.678 273.519 219.635 273.856 219.597 274.187L219.028 274.258L219.348 275.22L220.051 275.604C220.07 275.613 220.084 275.618 220.104 275.627L220.142 276.182L220.367 277.04L220.357 277.85L220.798 278.741L221.845 279.731L221.869 279.76L221.749 280.134L220.549 280.163L219.975 280.627L219.931 281.215L219.051 280.945L218.908 280.86L218.773 280.755L218.204 280.31L217.367 279.386L217.329 279.263L216.19 279.066L215.435 278.938V278.933L215.373 278.914L215.177 278.886L214.282 278.895L213.981 278.9L213.943 278.952L213.617 279.08L212.383 278.843L211.656 278.701L211.431 278.582L211.288 278.487L210.231 277.772L209.728 277.175L209.461 277.052L209.437 277.042L208.275 276.649H208.27V276.644L207.806 276.71L207.088 276.397L206.117 275.431L204.993 275.099L203.73 274.902L203.166 274.542L203.286 273.85L202.698 273.485L202.588 273.239L202.569 273.163L202.554 273.106L202.405 272.528L202.233 271.822V271.813L201.935 270.73L201.696 270.133L201.194 269.427L200.639 269.11L200.844 268.674L200.424 268.143L200.003 268.128L199.965 267.702L199.979 267.659L200.022 267.622L200.195 267.366L200.266 266.484L200.142 265.684L200.043 265.527C199.981 265.518 199.923 265.513 199.861 265.503L199.65 265.371L199.631 265.366L199.569 265.169L199.526 265.12L199.512 265.1L199.502 265.091L199.493 265.048L199.536 264.992L199.546 264.508L199.699 264.144L199.756 263.935L199.861 263.12L199.574 262.949L199.512 262.158L199.307 261.803L199.177 261.708L198.742 261.395L198.517 261.357L198.106 261.347L197.417 260.916L196.676 259.898L196.423 259.865L196.117 259.509L195.944 259.026L196.011 258.538L195.696 258.216L195.691 257.68L195.112 257.424L194.954 256.699L194.93 256.642L194.251 255.775L194.202 255.737L193.054 255.154H193.039L193.006 255.116L192.59 254.666L192.284 254.272L192.334 253.623L191.855 252.941L192.104 251.865L191.463 251.377L191.52 250.885L191.152 250.676L191.1 250.335L190.612 249.88L190.562 249.203L190.256 248.303L189.783 247.502L189.336 246.896L189.049 245.346L187.944 243.583L187.939 243.578L185.691 241.583L185.538 240.934L184.793 240.626L184.602 240.314L183.994 240.058L184.071 239.191L183.507 239.01L183.445 238.726L182.804 238.437L182.392 237.674L181.919 237.509L181.996 237.196L181.402 237.291L181.173 236.779L180.503 237.423L180.283 237.414L179.001 237.271V237.262L178.829 237.213L178.762 237.189L177.843 236.976L177.265 236.886L176.342 236.952L176.246 237.002L175.62 236.883L173.782 235.859L173.289 236.172L172.868 236.878L172.058 236.577L170.346 237.131L170.126 237.264L170.102 237.278L168.81 239.368L168.031 241.149L167.663 242.353L167.228 242.894L166.673 242.97L166.329 243.691L165.621 244.06L165.434 244.97L165.028 245.074H164.961L163.837 244.795L163.301 244.141L162.89 244.354L161.598 242.733L159.848 242.373L159.757 242.278L159.375 241.89L159.169 241.459L157.566 240.942L155.859 239.52L155.634 238.686L155.137 238.269L154.286 237.974L153.746 237.458L152.799 236.596L152.612 235.643L151.536 233.563L151.412 232.227L151.68 231.658L151.589 230.231L151.149 229.563L150.618 228.582L150.354 228.26L150.255 227.203L149.907 225.952L149.411 225.635L149.406 225.64L149.207 224.915L148.595 224.72L148.169 224.109L147.15 223.294L146.748 223.379L145.648 222.654L145.81 222.365L144.198 221.037L144.049 220.188L143.547 219.647L142.992 219.344L142.906 219.074L142.443 218.889L142.28 218.458L141.654 217.539L141.247 217.25L140.98 216.681L140.506 216.51L140.258 216.359L139.708 216.24L139.393 215.951L139.196 215.913L138.809 215.569L138.685 215.47V215.461L138.647 215.423L138.637 215.409L138.561 215.286L138.312 214.514L137.977 214.281L137.934 213.93L137.762 213.457L137.537 212.732L137.231 212.556L137.289 212.353L137.036 212.13L136.227 212.063L136.045 211.676L135.323 210.908L135.232 210.789L135.021 210.567V210.429L134.969 210.216L135.179 210.084L135.279 209.505L135.13 209.448L135.144 209.292L135.302 209.221H135.307L135.69 209.254L137.708 209.462L141.214 209.832V209.827L151.198 210.836L151.853 210.898L159.482 211.576L159.893 211.609V211.614H159.898L162.275 211.803L165.951 212.092V212.087L166.497 212.13L166.975 212.163L167.631 212.215L168.152 212.258L168.382 212.272L168.453 211.329L168.807 206.595V206.586C168.927 204.998 169.046 203.416 169.166 201.829C169.305 200.27 169.448 198.706 169.587 197.147H169.592L169.779 195.162L170.032 192.395L170.453 187.178L170.462 187.064L170.83 182.316L170.998 180.056L171.189 177.549H171.194L171.557 172.749H171.552L171.652 171.47L171.915 168.015H171.92L172.126 165.134L172.26 163.381L172.623 163.168L179.97 163.675V163.67L181.112 163.746L184.689 163.969V163.974L189.408 164.239L190.556 164.296L194.132 164.471L198.896 164.684L198.714 169.556L198.633 171.471L198.513 174.337V174.342L198.314 179.123H198.309L198.238 180.786L198.108 183.9H198.104L198.046 185.923V185.928L199.368 186.577L199.837 187.179L200.062 187.444L200.693 188.035L200.971 188.101H201.396L201.751 187.658L201.8 187.639L201.9 187.654L202.33 187.706L202.469 187.763L202.689 187.891V187.886L202.987 188.165L203.293 188.194L203.36 188.165H203.369L203.379 188.146L203.384 188.137L203.771 187.445L204.169 187.658L204.618 187.9L205.044 188.634V188.648L205.034 188.899L205.025 189.136L205.183 189.979L205.188 189.984L205.303 190.017L205.484 190.074L205.824 190.15L205.992 190.141L206.36 190.136L207.192 190.202H207.206L207.33 190.264C207.612 190.43 207.89 190.591 208.172 190.756L209.004 190.96L209.597 190.979L210.42 190.728V190.737L210.511 190.742L210.71 190.87L210.915 191.045L211.346 191.734L211.604 191.824H211.609L211.619 191.815L212.102 191.384L212.465 190.934L212.642 190.839L212.987 190.914L214.393 191.35L214.943 192.246V192.251L215.101 192.563L215.124 192.587H215.139L215.521 192.701H215.732L216.047 192.625L216.382 192.758H216.387L216.306 193.341L216.071 193.843L216.171 193.937L216.974 194.298L217.084 194.307L217.366 194.222L217.821 193.872L218.299 193.379L218.61 192.991L219.533 193.602L219.863 193.829L220.561 193.644C220.623 193.914 220.681 194.185 220.743 194.455L220.767 194.511L220.776 194.53L220.829 194.597L220.91 194.649L221.436 194.791L222.718 193.663L223.359 193.971L223.015 194.906L223.561 195.797L223.686 195.84L223.835 195.859L223.964 195.816L224.055 195.745L224.098 195.688L225.461 193.347L225.466 193.342L225.552 193.299L226.011 194.234L226.164 194.4L226.255 194.462L227.111 194.722L227.558 194.652H227.563L228.476 194.244L228.443 194.419L228.452 194.552L228.457 194.604L228.467 194.633L229.399 195.253L229.485 195.31H229.495L229.964 195.225L230.069 195.24L230.189 195.277L230.586 195.808L230.677 195.922L232.031 195.59L232.222 195.541L232.384 195.47L232.399 195.456L232.485 195.366L232.494 195.351L232.499 195.342L232.523 195.271L232.547 195.186L232.556 195.157L232.561 195.129L232.619 194.868L232.695 194.603L233.154 194.494L234.177 194.409L234.374 194.395L234.498 194.38L235.024 194.485L235.459 194.565H235.464L236.239 194.277H236.244L237.004 193.883L237.67 193.542L237.968 193.556L238.035 193.585L238.134 193.826L238.129 193.902L238.1 193.978L238.105 194.035V194.044L238.138 194.106L238.172 194.134L239.076 194.253L239.415 194.281L240.032 194.253H240.037L240.3 194.22C240.35 194.211 240.391 194.206 240.439 194.196L240.51 194.187L240.75 194.03L240.802 193.981L240.852 193.872L240.871 193.759L240.852 193.664V193.65L240.819 193.579L240.814 193.569L240.819 193.56V193.541L240.824 193.527L241.02 193.231H241.034L241.063 193.217H241.125L241.704 193.406L242.77 194.307L244.33 195.543L245.458 196.003L247.835 196.681L247.907 196.866L247.979 197.027L248.036 197.107L248.414 197.339L248.548 197.43L249.036 197.695L249.92 197.249L249.97 197.207L250.104 197.192L250.616 197.121L251.5 197.297L251.668 197.363L251.888 197.543L251.955 200.619L252.013 203.371L252.051 204.883L252.089 206.94C252.113 208.034 252.137 209.129 252.161 210.224V210.229L252.211 212.37L252.509 214.721V214.726L253.819 216.176L254.288 218.981L255.297 220.033L256.158 221.269L256.44 222.478L256.507 222.838L256.603 223.397V223.402L257.038 223.288L257.077 226.738L256.904 227.472L255.543 229.989Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['TX']['color']\"\n            />\n            <path\n                d=\"M204.971 226V221.113H203.036V219.7H208.679V221.113H206.753V226H204.971ZM208.422 226L211.176 222.175L211.167 223.444L208.521 219.7H210.528L212.22 222.139L211.365 222.148L213.03 219.7H214.956L212.31 223.372V222.112L215.1 226H213.048L211.329 223.435H212.148L210.456 226H208.422Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['TX']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-UT\"\n            (mouseenter)=\"onStateHover('UT', false, $event)\"\n            (mouseleave)=\"onStateHover('UT', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['UT'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M126.164 112.449H126.169L125.499 117.13L124.638 123.248L124.395 125.019L123.825 129.071L123.534 131.047L123.472 131.469L123.142 133.473L122.807 135.861V135.866L122.429 139.662L122.018 142.615L121.406 146.927L120.655 152.21L112.405 151.049L109.554 150.622L108.148 150.348L105.948 150.016L100.235 149.13L90.546 147.515L87.4608 146.973L77.5938 145.153L78.842 138.632L80.0029 132.772V132.767L80.8876 128.194L81.1126 127.067L82.9396 117.736V117.731L83.705 113.822V113.817L84.1521 111.547L86.0317 102.037L88.112 91.333L88.6475 91.4659L89.2882 91.6175L89.3841 91.6366L90.0681 91.7553L90.3214 91.7981L92.9948 92.2484L93.2293 92.2862L96.4481 92.8276L98.7867 93.2164L100.858 93.5717L102.56 93.8669L103.148 94.0146V94.0195L103.589 94.0859L108.424 94.8576V94.8527L112.126 95.426L110.82 103.546V103.551L110.373 106.299L114.817 107.024L118.514 107.55L118.901 107.607H118.911L120.092 107.778L121.234 107.934L121.555 107.983L125.391 108.49L126.677 108.675L126.164 112.449Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['UT']['color']\"\n            />\n            <path\n                d=\"M101.537 129.126C100.607 129.126 99.881 128.871 99.359 128.361C98.837 127.851 98.576 127.128 98.576 126.192V122.7H100.358V126.138C100.358 126.678 100.463 127.065 100.673 127.299C100.889 127.533 101.183 127.65 101.555 127.65C101.927 127.65 102.218 127.533 102.428 127.299C102.638 127.065 102.743 126.678 102.743 126.138V122.7H104.498V126.192C104.498 127.128 104.237 127.851 103.715 128.361C103.193 128.871 102.467 129.126 101.537 129.126ZM106.95 129V124.113H105.015V122.7H110.658V124.113H108.732V129H106.95Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['UT']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M408.878 146.319L409.002 146.457L408.567 146.547L408.543 146.372L408.701 146.31L408.863 146.187L408.878 146.319Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M406.279 138.742L406.25 138.425L406.255 138.268L406.293 137.112L406.336 136.358L406.36 136.112L406.399 135.795L407.231 135.549L407.713 135.743L407.763 136.186L407.691 136.3L407.642 136.333L407.627 136.361L407.666 136.442L407.723 136.48V137.044L407.995 137.267L407.446 137.476L407.125 138.319L407.274 140.082L407.403 140.518L407.336 140.542L407.064 140.608L407.049 140.372L406.556 139.628L406.332 139.092L406.279 138.742Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M408.26 138.913L408.184 138.823L408.207 138.486L408.322 138.799L408.26 138.913Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M407.841 139.841L408.037 139.338L408.186 139.059L408.434 139.082L408.385 139.324L408.299 139.485L408.203 139.651L408.198 139.66L407.82 140.239L407.805 140.267L407.743 140.348L407.676 140.41L407.652 140.419L407.841 139.841Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M408.587 137.664L408.654 136.617L408.477 136.422L408.917 136.228L408.96 136.308L408.965 136.489L408.683 137.835L408.367 138.309L408.587 137.664Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-VA\"\n            (mouseenter)=\"onStateHover('VA', false, $event)\"\n            (mouseleave)=\"onStateHover('VA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['VA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M409.329 146.384L409.23 146.408L409.153 146.271L409.11 146.053L409.014 145.872L408.965 145.74L408.73 145.399L408.596 145.251L408.587 145.388L408.548 145.516L408.371 145.35L408.338 145.127L408.487 145.014L408.329 144.929L408.133 145.014L408.152 145.293L408.114 145.582L408.267 146.141L408.282 146.397L408.42 146.577L408.143 146.634L408.028 146.402L407.698 146.184L407.67 146.25L407.842 146.482L407.941 146.677L407.133 146.852V146.847L405.497 147.188L403.971 147.51L403.536 147.6L400.265 148.24L400.322 148.33L398.194 148.724L397.065 148.97H397.06L393.009 149.761H393.004L391.866 149.974L390.608 150.225L388.217 150.68L387.069 150.907L384.677 151.35V151.355L384.146 151.459L381.195 151.985L380.497 152.108V152.103L379.426 152.298V152.302L378.33 152.492H378.325L377.981 152.553L376.211 152.849V152.854L373.509 153.304L373.284 153.342C372.165 153.498 371.041 153.65 369.922 153.806L368.42 153.967L366.464 154.27L365.904 154.327L361.968 154.801L359.137 155.086L359.366 154.787H359.361L357.797 154.996L356.965 155.094L356.903 155.345L355.065 155.61H355.06V155.615L354.216 155.729L353.785 155.786V155.791L351.049 156.194L349.127 156.464L347.785 156.649L343.548 157.179L341.773 157.374L343.548 156.431L344.074 156.26L345.728 155.312L346.259 155.269L346.599 154.004L347.431 153.961L347.995 153.516L348.177 153.203V153.199L348.211 152.374L348.589 152.03L349.364 151.566L349.302 150.642L350.488 149.599L350.579 149.538V149.533H350.584L350.919 149.291L352.215 148.566L352.541 148.154L355.066 145.152L355.364 145.261L355.335 145.432L354.948 145.776L354.924 145.852L354.986 146.013L355.608 146.364L355.728 147.056L356.45 147.681H356.455L356.554 147.733L357.53 148.078L358.108 148.414L359.113 148.22L359.142 148.206L359.52 147.861L359.525 147.852L360.156 147.188L360.504 146.492L361.944 147.468L362.948 146.872L363.953 146.511L364.57 146.208L365.005 145.753L364.632 145.427L364.781 145.176L364.748 144.873L365.609 145.365L366.675 144.568L366.766 144.498L367.632 143.82L368.043 144.407V144.412L368.454 144.033L368.827 143.768L368.861 143.631L369.2 143.451L369.373 143.276L369.459 143.034L369.359 142.972L369.23 143.133L368.996 143.067L369.149 142.948L369.053 142.707L369.351 142.427L369.848 141.837L369.087 141.249L369.709 139.576L370.666 138.088C370.862 137.638 371.063 137.188 371.259 136.738L371.493 136.293L371.34 135.53L371.977 134.771L372.283 134.326V134.321L372.077 133.914V133.899L372.082 133.862L372.608 133.052L372.833 132.251L372.876 131.479L372.891 130.579L373.742 130.782L373.914 130.858L374.077 131.015L374.599 131.782L376.072 132.028L376.662 131.178L377.528 127.871L377.92 126.966L379.102 127.567L379.566 126.203L379.752 126.023L379.828 125.748L380.058 125.658L380.101 125.919L380.421 125.587L380.526 125.218L380.732 124.929L380.931 125.052L381.208 124.393L381.064 124.322L381.222 123.967V123.962L381.461 123.503L381.719 123.342L381.896 123.147L381.925 122.934L382.145 122.626L381.954 122.489L381.935 122.394L381.83 122.327L382.035 121.783L381.839 121.733L381.911 121.653L381.978 121.387L382.212 120.985L382.298 120.573L382.099 120.558L382.176 120.198L382.013 120.013L382.057 119.35L383.156 119.909L385.044 120.922L387.034 121.96L387.541 119.757L387.871 119.719L388.383 119.894L388.837 119.781L389.152 120.174L389.913 120.425L389.841 120.842L389.573 120.956L389.54 121.046L389.535 121.098L389.516 121.235L389.507 121.33V121.34L389.564 121.529L389.616 121.591H389.621L389.674 121.629L390.22 121.993L390.235 121.998L390.536 122.017L390.953 121.998L391.35 121.955L391.355 121.95L391.838 122.147L392.144 122.242L392.153 122.569L392.344 122.721L392.531 122.716L392.646 122.744L393.052 122.706L393.354 122.939V122.944L393.674 123.199L394.057 123.37L394.287 123.801L394.301 123.949V123.954L394.344 124.343L394.349 124.392H394.354L394.143 125.344L393.895 125.492L393.785 125.79L393.507 125.8L393.928 126.184L393.617 126.217L393.631 126.392L393.373 126.477L393.235 126.325L393.369 126.192L393.269 126.074L393.088 126.183C392.978 126.751 392.872 127.32 392.762 127.893L392.786 128.499L392.944 129.021L392.839 129.006L392.399 128.684L392.349 128.717L392.66 129.034L393.206 129.309L393.077 129.498L392.63 129.565L392.635 129.631L392.955 129.688L393.577 129.698L393.922 129.503L394.256 129.408L394.39 129.11L394.873 129.011L395.055 128.613L395.17 128.523L395.505 128.765L395.591 129.248L395.528 129.404L395.256 129.39L395.174 129.518L395.169 129.641L395.275 129.575L395.447 129.556L395.658 129.66L395.844 129.759L395.839 129.764L396.198 129.901L396.284 130.417L396.025 130.522L396.04 130.574L396.212 130.531L396.384 130.46L396.719 130.509L396.7 130.746H396.767L396.844 130.566L397.073 130.727L397.532 130.712L397.991 130.58L398.245 130.859L398.403 130.873L398.484 131.054L398.594 131.144L398.693 131.082L398.636 130.921L398.612 130.537L398.731 130.542L399.205 130.874L399.105 130.575L399.364 130.552L399.546 130.737L399.407 130.912L400.196 131.144L400.246 131.263L400.395 131.396L400.261 131.457L400.112 131.334L400.04 131.495L400.136 131.576V131.674L400.141 131.669V131.679H400.94L400.734 131.929L400.849 132.001L401.126 131.916L401.524 132.072L401.911 132.115L402.47 132.281L403.035 132.508L403.097 132.75L403.102 133.375L402.968 133.46L402.81 133.362L402.504 133.063L402.38 133.144L402.174 133.125L401.887 133.021L401.676 133.026L401.653 133.087L401.906 133.137L402.026 133.217L402.389 133.26L402.489 133.232L402.632 133.393L402.738 133.701L402.948 133.729L402.972 133.833L402.848 133.943L402.963 134.251L402.795 134.336L402.776 134.464L402.953 134.592L402.972 134.805L402.532 134.772C402.642 134.838 402.752 134.9 402.862 134.966L402.881 135.085L402.761 135.137L402.895 135.256L402.924 135.445L403.034 135.426L403.201 135.289L403.474 135.535L403.435 135.633L403.33 135.682L403.244 135.607L403.195 135.512L403.084 135.668L402.786 135.625L402.724 135.758L402.456 135.616L402.284 135.665L402.212 135.589L402.031 135.566L402.08 135.443L402.2 135.448L402.209 135.334L402.09 135.31L402.023 135.22L401.961 135.329L401.899 135.518L401.813 135.528L401.798 135.423L401.678 135.405L401.683 135.338L401.76 135.248L401.813 135.139L401.736 135.078L401.717 134.964L401.841 134.879L401.875 134.774L401.946 134.689L401.97 134.58L401.836 134.585L401.779 134.761L401.621 134.798L401.64 134.912L401.588 134.931L401.526 134.846H401.406L401.324 134.756L401.272 134.567H401.128L401.138 134.794L401.243 134.818L401.252 134.908L401.367 134.903L401.496 135.059L401.453 135.083L401.577 135.211L401.501 135.296L401.525 135.471L401.453 135.5L401.568 135.604L401.419 135.708L401.108 135.533L400.959 135.079L400.744 135.029L400.6 134.845L400.581 134.632L400.485 134.39L400.317 134.433L399.997 134.319L400.121 134.148C400.083 134.134 400.045 134.125 400.006 134.111L399.897 134.101L399.825 134.267L399.59 134.148V134.073L399.533 134.011L399.462 134.134L399.342 134.153L399.179 134.049L399.103 134.025L399.045 133.868L398.959 133.845L398.907 133.707L398.849 133.622L399.002 133.524L398.944 133.475L398.854 133.503L398.71 133.645L398.624 133.399L398.265 133.196L398.16 133.219L398.074 133.124L397.945 133.134L397.773 132.982L397.782 132.849L397.744 132.754L397.667 132.683L397.591 132.769L397.514 132.683L397.352 132.669L397.28 132.442L397.166 132.219L397.089 132.025L396.798 131.764H396.793V131.769L396.64 131.736L396.415 131.731L396.315 131.665L396.31 131.566L396.181 131.552L396.086 131.595V131.647L395.981 131.751L395.904 131.685L395.784 131.676L395.746 131.41L395.689 131.149L395.536 131.079L395.459 131.174L395.301 131.141L395.196 131.245L395.081 131.269L395.005 131.121L394.895 131.225L394.775 131.145L394.599 131.258L394.393 131.201L394.517 131.32L394.575 131.377L394.666 131.386L394.833 131.268L394.953 131.358L395.049 131.538L395.235 131.618L395.25 131.746L395.24 131.618L395.259 131.422H395.331L395.365 131.554L395.523 131.536L395.528 131.417L395.633 131.45L395.691 131.801L395.844 131.834L395.964 131.967L396.097 131.976L396.226 131.768L396.379 131.872L396.829 131.948L397.087 132.374L397.016 132.535L397.14 132.649L397.078 132.829L397.198 132.914L397.503 132.905L397.46 133.09L397.537 133.147L397.628 133.176L397.876 133.37L398.124 133.422L398.129 133.526L398.259 133.621L398.383 133.598L398.608 133.893L398.737 134.012L398.771 134.116L399.254 134.566L399.517 134.59L399.623 134.718L399.613 134.789C399.666 134.827 399.718 134.86 399.771 134.897L400.173 134.874L400.244 135.049L400.374 135.058L400.512 135.281L400.617 135.613L400.713 135.684L400.436 135.632L400.402 135.727L400.713 135.76L400.699 135.873L400.933 136.001L401.201 136.124L402.105 135.949L402.201 136.205L402.541 136.262L402.938 136.181L403.048 136.262L403.402 136.243L403.321 136.47L403.163 136.409L403.192 136.622L403.024 136.579L402.78 136.636L402.482 136.698L402.42 136.883L402.271 136.873L402.204 136.944L401.869 136.755L401.759 136.84L401.534 136.712L401.435 136.745L401.64 136.906L401.817 136.901L402.016 136.967L402.26 137.052L402.494 136.995L402.566 136.9L402.628 136.857L402.599 136.763L402.905 136.743L402.963 136.895H403.178L403.307 136.956L403.312 137.027L403.13 137.042L403.144 137.103L403.321 137.108L403.465 137.103L403.46 136.909L403.426 136.639L403.632 136.667L404 137.012L403.895 137.061L403.713 136.966L403.575 137.023L403.694 137.137L403.613 137.227L403.46 137.231L403.541 137.412L403.67 137.289L403.761 137.326L403.986 137.336L404.001 137.175L404.135 137.294L404.13 137.512L404.302 137.886L404.183 138.066L404.13 138.312L404.125 138.706L404.206 138.767L404.135 138.962L404.015 138.924L404.058 138.805L403.719 138.554L403.503 138.426L403.46 138.028L403.331 137.952L403.322 137.782L403.231 137.825L403.211 138.005L403.302 138.062L403.446 138.195L403.393 138.285L403.288 138.294L403.092 138.223L402.953 138.166L402.881 138.024V137.801L402.657 137.787L402.69 137.929L402.494 137.948L402.437 137.73V137.725L402.312 137.627L402.389 137.859L402.289 138.02L402.395 138.029L402.711 138.078L402.878 138.457L402.6 138.391L402.333 138.277L402.06 138.164L402.074 138.282L402.294 138.363L402.275 138.652L402.581 138.628L402.896 138.756L402.959 138.993L402.667 138.944L402.528 138.934L402.648 139.082L402.744 139.148L402.973 139.105L403.284 139.228L403.208 139.573L402.988 139.682L402.59 139.852L402.303 139.91L402.098 139.692L401.945 139.654L401.457 139.303L401.404 139.142L401.213 139.071L400.678 138.644L400.648 138.56L400.404 138.55L400.175 138.157L400.07 138.105L399.811 137.787L399.433 137.55L399.404 137.446L399.309 137.327L399.232 137.422L399.133 137.46L399.061 137.318L398.962 137.237L398.789 137.356L398.732 137.484L398.646 137.541L398.593 137.488L398.693 137.308L398.649 137.124L398.535 136.972L398.32 137.095L398.41 137.327L398.291 137.36L398.229 137.218L398.129 137.204L397.881 137.408L397.843 137.597L397.747 137.575L397.786 137.419L397.714 137.253L397.614 137.168L397.409 137.249L397.452 137.372L397.284 137.377L397.289 137.197L397.14 137.182L397.064 137.249L397.117 137.362L397.222 137.528L397.313 137.485L397.49 137.556L397.576 137.461L397.547 137.3L397.596 137.272L397.668 137.423L397.659 137.49L397.606 137.588L397.625 137.678L397.951 137.754L397.994 137.455L398.108 137.347L398.266 137.498L398.396 137.48L398.491 137.356L398.463 137.124L398.515 137.072L398.554 137.356L398.448 137.522L398.498 137.679L398.627 137.66L398.756 137.665L398.838 137.414L398.943 137.324L399.063 137.495L399.139 137.571L399.159 137.836L399.556 137.964L399.695 138.097V138.102L400.048 138.446L400.297 138.583L400.574 138.977L400.727 139.026L400.784 139.168L400.966 139.282L401.047 139.457L401.449 139.746H401.53L401.564 139.845H401.846L401.995 139.977L402.181 140.096L402.31 140.139L402.43 140.224L402.669 140.286L403.086 140.091L403.138 139.993L403.363 139.912L403.368 140.031L403.23 140.092L403.13 140.177L403.135 140.244L403.27 140.192L403.369 140.282L403.393 140.419L403.407 140.533L403.311 140.5L403.201 140.424L403.034 140.481L403.053 140.53L403.22 140.473L403.287 140.539L403.292 140.677L403.216 140.738L403.166 140.871L403.186 140.932L403.042 140.951L403.076 141L403.248 140.981L403.258 140.877L403.363 140.857V141.028L403.368 140.857L403.373 140.734L403.583 140.701L403.593 140.877L403.742 140.824L403.69 140.621L403.867 140.569L403.929 140.729L404.168 140.924L404.182 140.819L404.48 140.99L404.43 141.057L404.267 141.132L404.172 141.137L404.047 141.223L403.898 141.156L403.812 141.123L403.654 141.18V141.185L403.555 141.28L403.689 141.256L403.713 141.308L403.928 141.313L403.995 141.403L404.115 141.417L404.096 141.512L403.938 141.635L403.952 141.839L404.019 141.91L404.048 141.839L404.038 141.778L404.163 141.598L404.144 141.479L404.211 141.45L404.206 141.327L404.287 141.299L404.345 141.441L404.412 141.493V141.427L404.383 141.289L404.493 141.233L404.531 141.152L404.627 141.181L404.677 141.375L404.615 141.972L404.634 142.147L404.558 142.299L404.462 142.342L404.447 142.261L404.543 142.133L404.529 142.01L404.479 142.019L404.455 142.114L404.406 142.19L404.262 142.199L404.212 142.194L404.174 142.332L404.002 142.427L403.858 142.525L403.743 142.743L403.694 142.933L403.531 142.883L403.359 142.632L403.364 142.495L403.254 142.443L403.168 142.306L402.969 142.197L402.854 142.202L402.534 142.05L402.481 141.946L402.531 141.875L402.521 141.747L402.469 141.761L402.402 141.828L402.311 141.814V141.747L402.115 141.525L402.053 141.548V141.624L402.268 141.847V141.923L402.177 141.928L402.095 141.899L402.061 141.804L401.76 141.624H401.602L401.526 141.553L401.602 141.012L401.492 140.941L401.44 140.789L401.277 140.619L401.119 140.538L400.741 140.587L400.691 140.696L400.4 140.762L400.271 140.782L400.256 140.831L400.405 140.888L400.377 141.021L400.252 141.03L400.071 140.859L399.832 140.651L399.597 140.601L399.2 140.687L399.205 140.568L399.128 140.431L399.085 140.236L399.171 140.218L399.224 140.128L399.075 140.075L399.046 140.019L399.103 139.957L398.989 139.886L398.898 139.991L398.927 140.076L398.998 140.119L398.979 140.237L399.028 140.47L399.072 140.522L399.048 140.602L398.943 140.635L398.933 140.726L398.828 140.745L398.799 140.892L398.593 140.869L398.416 140.764L398.149 140.551L398.034 140.272L397.819 140.173L397.666 140.334L397.398 140.657L397.293 140.595L397.264 140.296L397.297 140.145L397.077 140.306L396.939 140.334L396.815 140.429L396.36 140.5L396.183 140.402L395.801 140.52L395.701 140.572L395.659 140.444L395.601 140.321L395.51 140.473L395.395 140.525L395.381 140.729L395.486 140.696L395.577 140.611L395.649 140.729L395.821 140.801L395.907 140.758L395.997 140.701L395.988 140.582L396.112 140.634L396.208 140.611L396.241 140.758L396.347 140.816L396.446 140.783L396.537 140.65L396.642 140.645L396.685 140.588L396.781 140.578H396.891L397.035 140.503L397.107 140.38L397.164 140.437L397.246 140.74L397.499 140.844L397.58 140.768L397.638 140.602L397.748 140.465L397.844 140.38L397.868 140.323L397.997 140.356L397.973 140.504L398.098 140.637L398.193 140.888L398.098 140.926L398.002 141.024L398.021 141.209C398.04 141.186 398.054 141.157 398.074 141.133L398.223 140.925L398.357 140.934L398.548 140.967L398.995 141.218L399.239 141.085L399.852 140.962L399.87 141.137L400.033 141.123L400.143 141.265L400.292 141.315L400.45 141.49L400.574 141.518L400.723 141.438L400.776 141.153L400.826 141.068L400.802 140.97L400.864 140.884L401.098 141.05L401.055 141.202L401.122 141.476L401.308 141.756L401.323 141.936L401.29 142.197L401.328 142.424L401.543 142.538L401.935 142.462L402.131 142.538L402.119 142.693L401.908 142.779L401.87 142.907L402.061 142.826L402.195 142.764L402.405 142.707L402.778 142.987L403.065 143.039L403.123 143.219H402.932L403.031 143.376L403.022 143.499L402.835 143.641L403.07 143.603L403.199 143.494L403.19 143.755L403.065 143.845L402.951 144.162L402.826 144.428L402.707 144.47L402.756 144.613L402.886 144.646L402.836 144.518L403.008 144.437L403.099 144.295L403.06 144.238L403.113 144.181L403.127 144.062L403.247 144.043L403.271 143.891L403.519 143.758L403.548 143.578L403.692 143.529L403.94 143.548V143.553L404.112 143.525L404.108 143.24L404.385 143.207L404.434 143.62L404.568 143.762L404.535 143.88L404.764 143.862L404.798 143.952L404.947 143.938L405.014 144.046L405.248 143.975L405.258 143.88L405.105 143.895L404.909 143.843L404.859 143.72L404.66 143.639L404.751 143.53L404.727 143.359L404.88 143.316L405.062 143.459L405.112 143.364L404.963 143.265L404.767 143.213L404.618 143.28L404.484 143.242L404.384 142.663L404.484 142.654L404.503 142.758L404.702 142.735L404.725 142.833L404.941 142.753L404.917 142.644L404.668 142.687L404.635 142.597L404.927 142.559L405.328 142.777L405.563 142.8L405.75 142.795L405.774 142.975L405.883 143.046L406.065 143.292L406.218 143.202L405.955 142.975L405.926 142.8H406.137L406.529 142.88L406.404 143.25H406.504L406.461 143.459L406.599 143.378L406.561 143.051L406.681 143.046L406.795 143.127L406.819 143.392L406.918 143.364L406.923 143.241L407 143.136L406.88 143.075L406.847 142.933L406.617 142.942L406.589 142.823L406.828 142.738L406.952 142.553L407.167 142.501L407.426 142.572L407.493 142.743L407.866 143.634L408.153 144.164L408.454 144.615L408.802 145.156L409.132 145.796L409.247 146.061L409.329 146.384Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['VA']['color']\"\n            />\n            <path\n                d=\"M380.565 145L377.874 138.7H379.8L382.068 144.154H380.934L383.256 138.7H385.02L382.32 145H380.565ZM384.413 145L387.194 138.7H388.949L391.739 145H389.885L387.707 139.573H388.409L386.231 145H384.413ZM385.934 143.776L386.393 142.462H389.471L389.93 143.776H385.934Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['VA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M407.312 139.345L407.494 138.672L407.351 138.601L407.475 137.795L407.729 137.7L407.571 138.534L407.877 138.79L407.686 138.966L407.681 139.43L407.513 140.146L407.312 139.345Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-VT\"\n            (mouseenter)=\"onStateHover('VT', false, $event)\"\n            (mouseleave)=\"onStateHover('VT', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['VT'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M423.37 52.8475L423.522 53.3543L423.437 53.596L423.398 53.6624L423.016 54.3258L422.983 54.375L422.939 54.4414L422.829 54.5787L422.81 54.6073L422.566 54.7874L422.399 54.7731L421.887 55.4365L421.352 55.7731L420.816 56.0998L420.778 56.1377L420.754 56.1569L420.496 56.6215L420.472 56.7302V56.7967L420.72 57.6687L420.864 57.8631L420.998 57.9615C420.988 58.1462 420.978 58.3311 420.969 58.5161L421.141 58.6637L420.998 59.0663L420.845 59.867L421.036 60.0899L420.983 60.6583L420.685 61.2601L420.809 61.8098L420.786 62.3595L420.508 62.8334L420.35 62.9235L420.151 63.326L420.261 63.6011L420.122 64.2123L420.299 64.4092L419.931 64.8117L420.003 65.3801L420.218 67.1286L420.385 67.1192L420.352 67.4179L420.548 67.5459L420.515 68.4981H420.51L420.539 69.2988L420.72 69.8057L420.639 70.4946L420.859 71.1058L420.376 71.6033L420.5 72.0463L420.323 72.5487L420.5 72.8095L420.787 73.2263L421.667 73.9276L417.951 74.715L417.219 74.8666L415.316 75.2789L415.1 75.3405L414.771 74.6107L414.938 74.1225L414.727 73.1875L413.905 69.2073L413.436 67.0656L413.225 66.5302L412.843 66.4071L412.628 65.976L412.116 66.0518V66.7767L411.858 66.668L411.825 66.6251L411.748 65.9903L411.791 65.5474L411.94 64.7418V64.7369L411.658 64.1921L411.524 63.9505L410.829 61.9412L410.589 61.7704L410.57 61.4058V61.0515L410.575 60.1514L410.896 59.2464V59.2415L410.598 58.1185L410.679 57.4645L410.67 57.3459L410.665 57.3409L410.521 56.9571L410.411 56.7204L410.048 56.2844L409.823 56.1564L409.694 56.0428L409.559 55.5831L409.497 55.1614L409.454 54.408L409.512 53.5596L409.033 53.2185L409.015 52.7638L409.172 52.2569L409.091 51.8588L408.793 51.5557L408.802 51.3706L409.936 51.0675V51.0626L414.824 49.9066L416.819 49.4799L417.153 49.4607L418.78 48.9775L419.723 48.6694L422.689 47.8545L422.502 48.229L423.043 48.9539L422.493 50.9012L422.555 51.0862L422.846 51.3657L423.201 51.7968L423.392 52.0335L423.425 52.0857L423.624 52.408L423.37 52.8475Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['VT']['color']\"\n            />\n            <path\n                d=\"M399.565 48L396.874 41.7H398.8L401.068 47.154H399.934L402.256 41.7H404.02L401.32 48H399.565ZM405.712 48V43.113H403.777V41.7H409.42V43.113H407.494V48H405.712Z\"\n                fill=\"#E5E5E5\"\n                [attr.fill]=\"\n                    usaStates['VT']['color'] === defaultColor\n                        ? defaultColor\n                        : blueText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-WA\"\n            (mouseenter)=\"onStateHover('WA', false, $event)\"\n            (mouseleave)=\"onStateHover('WA', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['WA'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <!-- WA state -->\n            <path\n                d=\"M81.1717 12.0422L80.7987 13.6484L78.8232 22.0636L78.6558 22.7791L77.2088 29.2332L76.9555 30.365L76.6351 31.7582L75.2288 37.9558L74.9517 39.1861H74.9467L74.7843 39.66L75.0281 40.6265L75.0376 40.6644L75.1091 41.2663L75.1588 42.2013L74.7952 43.2013L74.8384 43.9547L70.6246 42.9784V42.9833L69.7112 42.7603V42.7653L66.9131 42.097L66.7745 42.064V42.0591L59.3896 40.3013L59.3847 40.3062L59.1696 40.4814L59.0071 40.5572L58.4429 40.7136L58.1702 40.7565L57.8354 40.7328L57.6392 40.6836L57.4285 40.5749L56.2756 40.4184L55.8405 40.3948L55.4098 40.3662L55.0656 40.2097L54.6493 39.973L54.2569 40.2053L53.9172 40.5498L53.1184 40.474L52.3818 40.3982H51.3247L50.1718 40.5355L49.9279 40.597L49.5261 40.8957L48.0101 40.8057L47.414 40.7013L47.256 40.6029L47.1651 40.4701L46.9664 40.0956L46.7513 39.9479L46.426 39.8672L46.2636 39.9194L45.9337 40.0759L45.1111 40.1895L44.4366 40.2939L44.0347 40.4125L43.8673 40.1994L43.1719 39.8726L42.1437 40.3037L42.024 39.4415L41.0772 38.9061L40.8139 38.849L40.2879 38.7732L39.7619 38.323L38.9393 38.3087L38.303 38.2595L38.0924 38.2073L37.5663 37.9184L37.1118 37.947L36.7865 38.1178L36.5664 38.3072L33.8404 38.6817H33.6968L33.4862 38.6296H33.4768L33.2284 38.5065L31.0954 37.2034L30.8898 37.0518L30.4974 36.6444L30.3483 36.4549L30.3389 36.1847L30.4154 35.9903L30.5778 35.7158L30.7765 34.3841H30.7815L30.8342 34.2089L30.9057 33.171L30.6906 31.9865L30.6191 31.6977L29.3772 30.1908L29.0186 30.0432L28.6262 30.114L27.434 30.0619L27.3764 30.0427L27.056 29.5452L27.2234 29.057L27.142 28.806L27.0322 28.6092L26.9989 28.557L26.9751 28.5476L26.9318 28.5191L26.4391 28.4906L25.2147 27.7799L23.9758 27.9768L23.7463 27.8439L23.3638 27.3272L23.3877 27.0811L23.2108 26.9104L22.9575 26.7775L22.6133 26.8626L22.8045 26.6067L23.713 23.47L23.7036 24.0197L23.498 24.7825L23.2302 26.2751L23.4597 26.3366L23.718 26.531L23.8233 26.2278L24.1775 26.0192L24.3926 26.1993L24.407 26.4739L24.56 26.531L24.6414 26.1865L24.479 25.9498L24.2589 25.7933L24.3116 25.6368L24.2157 25.2766L24.5028 25.2151L24.6797 24.9542L24.6702 24.5896L24.5649 24.0113L24.7994 24.3524L25.01 24.1201L24.8809 23.874L24.9097 23.4095L25.5172 23.3603L25.546 23.692L25.699 23.7584L26.0914 23.6875L26.0626 23.5025L25.7948 23.4882L25.6513 23.0379L25.4218 22.815L25.4074 22.5261L25.1347 22.5498L24.9385 22.7013L24.6514 22.4267L24.4889 22.5975L24.2594 22.408L24.0826 22.4887L23.9296 22.3514L24.1209 21.726H24.1159L24.1209 20.5036L24.2788 20.5794L24.2883 20.5843L24.2023 21.3564L24.408 21.2334L24.5133 21.5286L24.8148 21.4794V21.1714L24.8769 20.9912L25.2976 20.7117L26.142 20.6832L26.3238 20.6453H26.3328L26.7058 20.6596L26.7873 20.4322L26.4143 20.4371L25.3522 19.8638L25.3855 19.4372L25.1372 19.2428L24.7592 19.0011L24.3573 19.0297L24.2137 19.9061L24.0796 19.8919L24.3568 18.949L24.5818 18.1291L24.6812 16.1863L24.4229 15.954L24.3131 15.4279L24.3181 15.2906L24.3851 14.7645L24.6384 13.5087L24.6623 13.3807L24.712 12.9378L24.7552 12.4211L24.7885 11.2366L24.779 11.1416L24.5828 10.2794L24.5396 10.2036L24.2242 9.61311L24.2147 9.60376L24.2053 9.58949L24.0761 9.43792L23.9232 9.35721L23.8417 9.14413L23.8273 8.17762L24.0617 7.1304L24.2868 6.81299L24.1377 6.13043L24.4104 6.06892L24.6211 5.56204L24.5828 5.41047L24.7934 5.26825L24.8843 5.04089L25.09 4.88932L25.1893 4.51975L24.9693 4.27812L24.7443 3.89427L24.8158 3.87508L25.2703 4.00303L25.5236 4.22596L25.7581 4.42969L26.0402 4.70921L26.1311 4.80419L26.6775 5.44885L28.8587 7.50047L29.3132 7.78491L30.0925 8.12939L31.078 8.45173L31.4367 8.51324L31.6473 8.67908L31.8097 8.88774L32.3263 8.91628L32.4793 9.13921L33.1251 9.44235L33.5746 9.65543L34.419 9.86409L34.9406 9.77895L35.4239 9.7883L35.6822 10.1628L35.6773 10.8119L35.792 11.3532L36.0071 11.2253L36.0741 10.6899L36.4328 10.6328L36.6052 10.7843L36.4904 11.1446L36.7437 11.3813L36.7532 11.6465L36.6538 11.8788L36.936 11.9772L37.2514 11.4275L37.0527 10.9207L37.3925 10.4989L37.7705 10.5132L37.9379 10.5624L37.8996 10.7991L37.5648 10.8276L37.4262 11.0835L37.536 11.4861L37.5857 11.8463L37.7292 11.9364L37.8008 12.7238L37.9299 13.1406V13.5909L37.5325 13.4924L37.4511 13.8571L36.9871 14.146L36.7432 14.5771L36.6091 14.6199L36.3608 15.1696L36.1407 15.141L36.7626 13.9658L36.8341 13.4398L36.5614 13.4206L36.4084 14.1218L36.2987 14.1169L36.3846 13.5722L36.1263 13.6573L35.9495 14.4939L35.5431 15.0623L35.1269 15.361L34.6773 15.6735L34.5194 15.7114L34.4697 15.7399L33.9437 16.1617L33.7713 16.574L33.3789 16.8821L32.7903 17.515L32.5558 17.9603L32.7947 18.3156L33.0337 18.1547L33.5304 18.3206L34.0271 18.1404L34.3813 18.1897L34.9123 18.0238L35.1418 17.9288L35.2233 17.5844L34.8646 17.6695L34.3575 17.8171L33.6879 17.9121L33.3481 17.8978L33.0466 17.6941L33.9407 16.8836L34.1891 16.514V16.5091H34.194L34.2993 16.3954L34.8015 16.0509L35.1939 16.0224L35.2799 15.7808L36.3558 15.7237L36.7144 15.4063L36.9106 14.8945L37.4416 14.5579L37.5907 14.3256L38.2026 14.084L38.5325 13.8044L38.4704 13.2026L38.7719 13.3256L38.8817 13.5057L38.9055 13.7946L38.7619 14.4058L38.829 14.6666L38.7048 14.7995L38.8196 15.1883L38.5518 15.2025L38.2747 15.0175L37.9876 15.362L37.7531 15.4284L37.5047 14.8694L37.2658 15.1346L37.5529 15.5135L37.3999 15.9072L37.5673 16.2768L37.3761 16.6134L37.0507 16.732L37.0661 16.1331L36.9702 15.8014L36.6499 16.2374L36.7934 16.4791L36.9658 16.4741L36.9419 16.7586L36.7269 16.9102L36.4686 17.0952L36.6027 17.2325L36.8133 17.1833L37.0716 17.1926L37.3776 17.1026L37.5355 16.8988L37.6696 17.079L37.5549 17.4864L37.7799 17.6665L37.0845 18.6901L35.3956 18.1596L37.0845 18.6951L36.9077 19.2497L36.6096 19.3727L36.709 19.8466L36.4745 20.1497L36.1447 19.8796L35.9008 19.7846L35.9534 19.5666L36.0632 19.2255L36.623 18.761L36.1208 18.6626L35.6902 18.7999L35.3842 19.4303L35.2744 19.9421L34.9635 20.6197L34.801 20.226L34.7772 19.7093L35.1552 19.231L35.2511 18.634L35.1125 18.3117L34.73 18.8663L34.3281 19.0321L33.9934 19.1409L33.8498 19.5105L33.8736 19.8185L33.9407 20.2309L33.51 20.1123L33.1703 20.2211L32.8593 20.3776L32.8355 20.572L32.5916 20.5912L32.4386 20.9135L32.6636 20.7806L32.9746 20.6669L33.0943 20.5247L33.2617 20.5296L33.4385 20.4017L33.6153 20.3687L33.6918 20.5818L33.4047 21.16L33.4097 21.6482L33.5865 21.6152L33.7301 21.255L33.8354 20.7668L34.0698 20.6684L34.0843 21.0473L34.1419 21.3648L34.2949 21.3977L34.424 20.758L34.5437 21.1517L34.802 21.6207L35.0891 21.7914V21.7963L35.3872 21.6541L35.6405 21.3318L35.9226 21.3367L36.0756 21.0478L36.3816 20.7826L36.6494 20.4795L36.9792 20.1286L37.0557 19.7118L37.2281 20.0956L37.467 20.5459L37.7586 20.4701L37.9498 20.2664L37.8008 20.0154L37.9106 19.8185L38.5657 19.7664L38.8047 19.1788L38.6517 18.6429L38.7664 18.387L38.7167 17.7994L38.7694 17.2925L38.8986 17.2217L39.0709 17.5061L39.2622 17.3732L39.3436 17.0416L38.9323 16.5676L38.9229 16.2881L39.4827 15.8428L39.4445 15.1046H39.4395L39.4445 15.081L39.5259 14.8443L40.5924 13.5082L40.8219 13.489L41.037 13.5175L41.2138 13.4368L41.2521 13.3847L41.3812 12.9723L41.3718 12.8158L41.0802 12.5126L40.7787 11.8872L40.7071 11.5747L40.7022 11.5555L40.7836 11.2853L40.8601 11.053L40.884 10.4797L40.9416 10.148L41.1234 9.74057V9.73565L40.9943 9.38034L40.5969 9.01569L40.1905 8.66038L40.1409 8.22929L40.2651 7.93058L40.1265 7.83216L39.9879 7.99308L39.8254 8.03097H39.6198L39.4956 7.97881L39.4718 7.66139L39.5915 7.57134L39.6412 7.36268L39.5915 7.20619L39.4147 7.12548L39.4529 6.97391L39.6635 7.01181L40.0177 6.94094L40.2045 6.97391L40.2571 7.34349L40.4558 7.23473L40.5899 7.79377L40.7886 7.90253L40.9704 7.74604L40.9515 7.37646L41.0568 7.05905L40.9992 6.75591L40.6451 6.50001L40.7444 6.37698L41.103 6.67569L41.2704 6.87008L41.6867 6.51477L41.5908 6.23033L41.3852 5.94589H41.3837L41.3643 5.14522L41.6753 4.83273L41.3355 4.43904H40.9481L40.5224 4.86078L40.6947 4.87013L40.7568 5.01235L40.6326 5.19739L40.3843 5.01727L40.3411 4.60045L40.5944 4.32093L40.6182 4.06011L40.427 3.84211L40.2646 3.98433L40.3987 3.35885L40.0425 2.73141L40.3723 2.57984L40.3818 2.2767L39.9228 2.17237L39.9278 2.13448L39.9948 2.03015L40.1935 1.87366L40.3992 1.75506L40.5482 1.66992L43.0318 2.3761L45.1986 2.98731L47.6325 3.71711L52.0614 4.87308L54.0125 5.39423L62.1589 7.5172L66.2003 8.52161L68.3049 9.03833L72.8584 10.1284L72.8634 10.1234L78.3398 11.3931V11.398L81.1717 12.0422Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['WA']['color']\"\n            />\n            <!-- WA name -->\n            <path\n                d=\"M51.187 28L49.144 21.7H50.98L52.699 27.154H51.772L53.581 21.7H55.219L56.929 27.154H56.038L57.811 21.7H59.512L57.469 28H55.561L54.103 23.365H54.616L53.095 28H51.187ZM59.1748 28L61.9558 21.7H63.7108L66.5008 28H64.6468L62.4688 22.573H63.1708L60.9928 28H59.1748ZM60.6958 26.776L61.1548 25.462H64.2328L64.6918 26.776H60.6958Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['WA']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M35.4496 20.5757L35.3398 20.2796L35.6652 20.2559L35.8326 20.5792L35.4496 20.5757Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M35.261 20.6875L35.4284 20.7398L35.4522 21.0725L35.2083 21.3006L35.0742 20.9012L35.261 20.6875Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M35.9688 19.9199L36.3612 20.381L36.165 20.4797L35.9688 19.9199Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M36.2854 5.19819L36.1562 5.02289L36.1707 4.95642L36.2521 4.86138L36.4245 4.73828L36.6207 4.78112L36.9937 4.90422L36.8864 5.113L37.1115 5.40844L37.341 5.74032L37.3171 5.95353L37.4939 6.00277L37.6137 6.12144L37.4512 6.25882L37.26 6.20662L37.1691 6.41048L37.1929 6.71872L37.4656 6.81376L37.4035 6.97477L37.1214 6.87038L36.9157 6.70937L36.4424 6.20662L36.3276 6.03133L36.2844 5.92251L36.2462 5.73293L36.1965 5.36806L36.2854 5.19819Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M23.7135 25.8931L23.7569 25.7218L23.707 25.5244L23.712 25.3008L23.8946 25.4341L23.8851 25.8857L23.8178 26.0047L23.7135 25.8931Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M34.6359 19.0869L34.4208 19.6226L34.4869 20.2012L34.1044 20.4903L34.0855 20.0633L34.0234 19.3666L34.3006 19.21L34.6359 19.0869Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M38.152 12.1082L37.9414 11.7098L37.9911 11.1741L38.2891 11.1455L38.2176 11.5675L38.152 12.1082Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.9303 16.9514L37.8444 16.6067L37.6055 16.6559L37.7729 15.9666L38.0838 15.4688L38.3372 15.7913L38.213 16.5023L38.1986 16.9386L37.9303 16.9514Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.6287 18.4984L37.7911 18.228L37.9635 18.0478L38.045 17.8203L38.1547 17.8819L38.0832 18.1428L38.1026 18.7401L38.045 18.9863L38.3559 19.1523L38.1359 19.2473L37.7882 19.3138L37.5204 19.4748L37.2383 19.5176L37.4151 18.9868L37.6287 18.4984Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.8594 5.9785L37.625 5.84523L37.5917 5.59842L37.4531 5.52241L37.5823 5.34668L37.7591 5.44195L37.9578 5.56535L38.1729 5.76971L38.0676 5.8551L37.929 5.82203L37.8594 5.9785Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M38.5649 1.4168L38.1836 1.27951L38.2123 1L38.2618 1.01427L38.6005 1.11269L38.6243 1.39712L38.5649 1.4168Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M36.3049 4.18411L36.1758 3.94727L36.3814 3.95219L36.592 4.14669L36.8791 4.3791L36.903 4.5544L36.9889 4.75136L36.5776 4.50959L36.3049 4.18411Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.565 4.29538L37.4453 4.1241L37.6654 4.00514L37.9525 3.98145L37.9286 4.16704L37.8571 4.40447L37.5173 4.47555L37.565 4.29538Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.6508 5.13618L37.4258 5.12683V4.95153L37.7174 4.74275L38.3537 4.34883L38.5449 4.3252L38.7173 4.35819L38.8415 4.41974L39.0998 4.65658L39.6258 5.21595L39.6308 5.23023L39.5066 5.31542L39.2582 5.40553V5.41045L39.0332 5.47692L39.0282 5.70441L38.8295 5.70934L38.7913 5.40109L38.6333 5.06922L38.6716 4.55712L38.4729 4.50492L38.4441 4.80381L38.5206 5.25436L38.535 5.53404L38.4774 5.64286L38.1426 5.69506L37.999 5.46757L37.9752 5.24451L38.0084 5.03573L37.846 4.98354V5.22186L37.7646 5.36958L37.6508 5.13618Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M38.8514 6.40781L38.684 6.39843L38.6602 6.03711L38.689 5.85645L38.8946 5.88508L39.0476 6.04204L39.1052 6.29379L38.8514 6.40781Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M40.1456 10.6896L40.1267 10.9642L40.2847 11.3766L40.5479 11.9451L40.5862 12.2862L40.4044 12.2577L40.3805 12.0017L40.2514 11.7315L40.1078 11.5799L39.9931 11.3338L39.8401 11.3624L39.7442 11.2014L39.7109 10.66L39.7874 10.565L39.7159 10.38L39.9454 9.94389L40.1987 9.90107L40.3517 10.0098L40.5142 9.81543L40.8489 10.1851L40.8201 10.4503L40.7238 10.4287L40.6617 10.3101L40.5276 10.2722L40.4843 10.4287L40.3934 10.6748L40.1456 10.6896Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M40.0865 4.87538L39.9375 4.70008L40.1362 4.36328L40.2559 4.64789L40.3612 5.12651L40.5599 5.37763L40.541 5.69523L40.3498 5.59675L40.1248 5.24123L40.0865 4.87538Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M39.7668 5.94821L39.7618 6.14294L39.8194 6.29971L39.7096 6.34901L39.6237 6.49691L39.3987 6.58713L39.4131 6.32584L39.3555 6.06455L39.5944 5.79883L39.7668 5.94821Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M37.7808 7.36952L37.8241 6.99037L37.6328 6.86234L37.6616 6.57773L37.8196 6.35468L38.0252 5.98981L38.1742 5.99916L38.2736 5.85686L38.3695 5.80762L38.4127 6.02575L38.3938 6.18677L38.5518 6.25324L38.3367 6.4502L38.1981 6.60186L38.3471 6.82L38.3089 6.99086L38.3585 7.06177L38.4827 6.74417L38.4971 6.45513L38.8607 6.48812L38.8846 6.73432L38.5547 6.97609L38.5354 7.28876L38.4922 7.51182L38.4107 7.56106L37.9562 7.47588L37.8941 7.44732L37.7808 7.36952Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M39.8438 6.78597L40.0688 6.16797L40.3603 6.64332L40.3936 6.90938L39.8438 6.78597Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M39.9461 8.31044L39.7548 8.69926L40.2138 9.22049L40.252 9.34846L40.2327 9.4528L40.2183 9.47642L40.0603 9.57142L39.9932 9.58569L39.8403 9.55271L39.797 9.53499L39.7205 9.36913L39.6629 9.31696L39.5531 9.28398H39.4041L39.3326 9.32188L39.0743 9.51629L38.8831 9.73925L38.4911 9.67281L38.4961 9.94744L38.9432 9.96172L39.2541 10.1748L39.3256 10.5873L39.3589 11.2222L39.1721 11.4191L39.3157 11.7415L39.2059 12.149L39.2491 12.4098L39.493 12.1967L39.4836 11.8222L39.5695 11.5377L39.7657 11.5992L39.8949 11.8552L39.9942 12.1633L40.1904 12.4L40.4249 12.528L40.329 12.8883L40.3787 13.2057L40.2352 13.5183L39.9436 13.6605L39.6088 13.6083L39.6038 13.4233L39.6997 13.2756L39.6565 13.0576L39.5467 12.8253L39.4126 12.7445L39.2139 12.8061L39.0465 12.8676L38.9605 12.7539L39.0465 12.5831L38.965 12.37L38.7832 12.2799L38.7162 12.024L38.8453 11.9196L38.7494 11.5751L39.0793 11.1725V10.7162L38.8642 10.574L38.582 10.6232L38.4961 10.1729L38.3471 10.0641L38.2944 9.9125L38.1797 9.75598L38.3088 9.4715L38.6436 9.21064L38.743 9.0305L39.3455 8.47138L39.4553 8.29124L39.4985 8.10175L39.5561 8.07812L39.7186 8.14457L39.7568 8.11602L39.8239 8.08748L39.8765 8.12045L39.9004 8.17262L39.9461 8.31044Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M273.508 51.7369L273.924 51.5331L273.986 51.3957L274.488 51.0402L274.675 50.7447L274.861 50.7305L275.115 50.9865L274.942 51.1003L274.744 51.119L274.318 51.3135L274.285 51.5316L274.524 51.4986L274.519 51.6503L274.194 51.7547H274.012L273.668 52.0993L273.529 52.1043L273.508 51.7369Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M274.499 50.3989L274.418 50.2612L274.59 49.9428L275.389 49.6768L275.518 49.7671L275.408 49.9645L275.283 50.1023V50.2212L275.044 50.2261L274.499 50.3989Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M275.846 49.1127L275.889 48.9797L275.832 48.7853L275.881 48.5765L275.981 48.4288L276.359 48.4238L276.296 48.7193V48.9753L276.115 49.1984L275.817 49.3313L275.773 49.2127L275.846 49.1127Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <path\n            d=\"M305.05 64.2284V64.418L304.969 64.4229L304.825 64.6174L304.701 64.8877L304.711 65.2147L304.485 65.3427V65.6603L304.227 65.3806L304.022 65.2383L303.993 65.0438L304.042 65.0345L304.033 64.9394L303.975 64.9015L303.961 64.707L304.023 64.3845L304.104 64.3796L304.186 64.4697L304.425 64.4505L304.483 64.3889L304.64 64.3702L304.698 64.446L304.832 64.4367L304.918 64.3086L304.922 64.1855L305.05 64.2284Z\"\n            fill=\"#E5E5E5\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-WI\"\n            (mouseenter)=\"onStateHover('WI', false, $event)\"\n            (mouseleave)=\"onStateHover('WI', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['WI'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M303.893 66.1241L303.97 66.252L303.946 66.4607L303.903 66.6172L303.788 66.6787L303.592 66.5271L303.462 66.6644L303.506 67.3042L303.655 67.4464L303.468 67.6644L303.592 67.8539L303.549 68.0148L303.319 68.3938L303.008 68.4174L302.965 68.9292L302.774 69.0242L302.64 69.3795V69.6875L302.783 69.8819L302.645 69.8913L302.42 70.1757L302.544 70.3465L302.511 70.4941L302.076 70.8352L302.1 70.9867L302.009 71.1713L301.741 71.4843L301.794 71.906L301.636 72.2426L301.45 72.7402L301.445 72.7451L301.268 73.2613L301.015 73.5458L300.833 74.1427L300.751 74.5975L300.627 76.1944L300.469 76.6373V76.6422L300.838 77.6757L300.862 77.8843L300.838 78.0787L300.794 78.2264L300.656 78.4631L300.488 78.6432L300.206 78.809L300.057 78.9276L299.871 79.1314L299.862 79.7711L299.665 80.0792L299.598 80.4203L299.632 80.7047L299.412 81.4921C299.532 81.9422 299.654 82.3923 299.775 82.8425L299.832 83.7145L299.813 83.8046L299.249 85.3543H299.244L299.301 85.8991L299.215 86.2544L299.081 86.5575L298.885 86.8941L298.827 87.027L298.775 87.1786L298.751 87.3016L298.775 87.8277L298.588 88.6239L298.617 88.7804L298.761 89.1879L298.799 89.2494L298.99 89.5004L298.885 89.7893L298.914 90.088L299.072 90.2632L299.201 90.5949L298.933 90.903L299.082 91.372L299.302 91.4763L299.498 91.7558L299.475 92.244L299.647 93.0068L299.9 93.3513L300.254 93.5314L300.196 94.4664L299.986 94.8931L300.196 96.8217L296.973 97.0447L296.136 97.1254L292.893 97.3955L292.338 97.4334H292.333L291.013 97.5186L287.579 97.708L287.292 97.7272L283.777 97.9073V97.9024L283.059 97.9452L279.027 98.1775L277.301 98.2627L277.329 98.2105L277.325 98.149L277.239 97.8744L276.727 96.9502L276.669 96.8931L276.573 96.8503L276.172 96.7553L275.128 96.5584L274.708 96.46L274.483 96.3616L273.832 95.9349L273.736 95.7263L272.999 94.115L272.818 93.2809C272.762 92.9335 272.706 92.586 272.65 92.2386L272.856 91.433L273.473 90.4094L273.502 90.2721L273.262 89.8882L273.076 89.6559L272.22 89.0654L272.229 88.5063V88.5014L272.09 87.6648L271.564 85.2337V85.2244L271.373 83.9163L270.225 82.4665L268.988 82.091L266.482 80.314L266.358 80.063L266.19 79.466L266.004 79.3051L266.054 79.1343L266.039 78.8927L265.599 78.4901L264.71 78.0778L263.528 77.6038L262.95 77.2013L262.906 76.6801L262.883 76.6309L262.806 76.5694L262.72 76.5266L262.582 76.498L261.53 76.4552L261.195 76.4173L261.071 76.3602L260.501 75.8012L260.482 75.6924L260.396 75.5881L259.588 74.9055L259.028 74.5832L259.301 73.2992L259.358 72.4794L259.191 71.7116L259 71.3091L258.976 70.9538L259.138 69.5178C259.178 69.2002 259.218 68.8828 259.258 68.5655L259.353 68.4804L259.363 68.471L259.568 68.22L259.86 67.4858L259.707 66.7136L259.325 66.003L258.717 65.6807L258.564 65.7043L258.196 65.6428L258.091 65.5621L258.067 65.349L258.043 65.0601V64.9892L258.052 64.8185L258.363 63.8707L259.138 62.3402L259.234 62.1694L259.33 62.0414L259.712 61.7147L261.31 60.6723L262.429 59.9804L262.415 59.5538L262.396 59.0798V59.0749H262.391L262.291 56.2506L262.192 53.5828L262.365 53.7014L262.575 53.7206L262.805 53.7064L262.843 53.6827L262.876 53.6498L262.981 53.3796L262.972 53.261L262.963 53.2516L262.924 53.2088V53.2034L262.9 53.1325L262.905 53.0518L262.949 52.9667L263.489 52.602L263.688 52.5878L264.128 53.0144L264.233 53.0636L264.271 53.0351L264.487 53.1773L264.601 53.2388L264.687 53.2767L264.836 53.3003L265.759 53.1488L265.984 53.0873L267.767 52.3491L267.877 52.3584L268.073 52.3156L268.896 51.9081L269.078 51.8939L269.326 51.5292L269.919 51.3919L270.13 51.0474L270.329 51.0523L270.534 51.2797L270.769 50.9052L270.84 51.0661L271.084 51.0804L271.151 51.0376L271.132 50.8196L271.29 50.8338L271.419 50.9003L271.563 50.7152L271.553 50.5966L271.692 50.4638L271.812 50.4116L272.032 50.1227L272.4 50.2556L272.797 49.8717L272.912 49.8525L273.051 49.9018L273.462 50.2192L273.715 50.508L273.749 50.5651V50.6173L273.6 50.7782L273.423 51.3422L273.193 51.6168L273.136 51.7777L272.939 51.792L272.944 52.0007L272.835 52.1094L272.84 52.3063L273.074 52.6616L273.055 52.8323L272.844 53.041L272.677 53.1168L272.672 53.1217L272.581 53.259L272.59 53.444L272.491 53.7851L272.4 53.8136V53.8515L272.481 53.9367L272.591 53.9696V53.9603L272.663 53.9795H272.725L272.758 53.9746L273.571 53.4824L273.753 53.3496L273.82 53.231L273.806 53.0459L273.944 52.7472L274.838 53.4199L275.46 53.8181L275.738 53.761L276.221 53.9883L276.47 53.9554L277.335 54.4199L278.885 56.3013L279.588 56.4529L280.368 56.6094L285.878 57.7324L286.294 57.8175L286.619 57.884L287.14 58.0592L287.681 58.3244L288.15 58.5474L290.101 59.0395V59.0252L290.111 59.0538L290.26 59.3146L291.604 59.1724L293.842 59.4519H293.857L294.048 59.4804L294.339 59.6227L294.521 59.7413L294.641 59.817L294.866 60.1345L294.89 60.1674L294.904 60.2053L294.794 60.3904L294.67 60.5611L294.618 60.6039L294.484 60.7747L294.479 60.7841L294.469 60.822L294.519 60.9169H294.528L294.82 61.1536L294.887 61.1679L294.986 61.1965H294.996L295.101 61.1822V61.1965L296.914 61.6797L297.057 61.7983L297.071 61.8077L297.091 61.8264L297.32 62.1059L297.397 64.0744L296.641 65.69L297.737 65.695L298.129 65.2924L298.576 65.6812L298.079 67.316L298.084 67.3209L298.156 67.5483L298.189 67.6054L298.797 68.2402H298.802L299 68.2732L299.348 68.3254L299.166 68.7092L299.104 68.9061L299.147 69.688L298.808 69.7545L298.157 69.8967H298.152L298.102 69.906L297.758 70.0045L297.708 70.0424L297.574 70.2653L297.517 70.5114L297.722 70.72L297.703 70.9095L297.507 71.1039L297.473 71.3312L297.296 71.3741L297.2 71.5635L296.98 72.2554L296.65 72.658L296.626 73.0276L296.631 73.2171L296.545 73.3593L296.516 73.7338L296.655 73.8322L296.593 73.998L296.44 74.2933L296.334 74.3076L296.329 74.374L296.645 74.6486L296.927 74.7195L297.138 74.7102L297.248 74.6344L297.329 74.4971L297.435 74.2604L297.444 74.2033L297.406 74.1275L297.42 74.0896L297.664 73.8051L298.09 73.4641L298.443 73.3455L298.616 72.9808V72.9759L298.687 72.4454L299.257 71.4218L299.438 71.1329L299.897 71.0242L300.165 70.7633L300.509 70.7683L300.777 70.4129L300.892 70.4936L300.921 70.6974L301.026 70.7874L301.16 70.6595L301.155 70.4557L300.997 70.3421L301.016 70.0247L301.236 69.4228L301.484 68.8066L301.9 68.3706L301.866 67.8874L301.986 67.7215L301.957 67.3091L302.12 67.224L302.182 67.3377L302.381 67.347L302.577 67.0675L302.859 66.9489L302.902 66.2333L303.146 66.1433L303.222 65.8825L303.313 65.8775L303.567 65.7117H303.749L303.916 65.7826L303.954 65.9105L303.893 66.1241Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['WI']['color']\"\n            />\n\n            <path\n                d=\"M277.187 80L275.144 73.7H276.98L278.699 79.154H277.772L279.581 73.7H281.219L282.929 79.154H282.038L283.811 73.7H285.512L283.469 80H281.561L280.103 75.365H280.616L279.095 80H277.187ZM286.151 80V73.7H287.933V80H286.151Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['WI']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-WV\"\n            (mouseenter)=\"onStateHover('WV', false, $event)\"\n            (mouseleave)=\"onStateHover('WV', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['WV'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M387.547 119.756L387.04 121.964L385.05 120.926L383.162 119.912L382.062 119.348L382.033 119.334L382.024 120.012L382.186 120.196L382.105 120.556L382.311 120.575L382.22 120.982L381.985 121.39L381.923 121.651L381.847 121.731L382.045 121.784L381.847 122.325L381.952 122.391L381.966 122.486L382.165 122.624L381.94 122.932L381.911 123.15L381.734 123.339L381.476 123.505L381.237 123.965L381.075 124.32L381.218 124.391L380.945 125.049L380.747 124.926L380.541 125.222L380.436 125.591L380.111 125.918L380.067 125.657L379.842 125.747L379.761 126.022L379.579 126.202L379.115 127.572L377.934 126.966L377.533 127.868L377.538 127.873L376.672 131.175L376.076 132.028L374.603 131.782L374.081 131.014L373.919 130.853L373.746 130.778L372.895 130.581L372.881 131.481L372.837 132.253L372.612 133.054L372.086 133.864L372.081 133.902V133.916L372.287 134.329L371.981 134.779L371.345 135.537L371.498 136.296L371.263 136.746H371.268L370.672 138.087L369.715 139.57L369.089 141.244H369.094L369.849 141.832L369.352 142.422L369.061 142.697L369.157 142.943L368.999 143.062L369.233 143.128L369.367 142.967L369.463 143.024L369.382 143.27L369.209 143.445L368.87 143.626L368.831 143.758L368.463 144.029L368.047 144.408L367.636 143.82L366.77 144.498L366.684 144.564L365.617 145.36L364.757 144.877C364.766 144.972 364.771 145.071 364.78 145.166L364.637 145.417L365.014 145.749L364.574 146.203L363.957 146.506L362.957 146.862L361.953 147.464L360.509 146.487L360.161 147.188L359.53 147.852L359.525 147.861L359.147 148.202L359.118 148.216L358.113 148.413L357.535 148.072L356.559 147.728L356.46 147.676H356.455L355.732 147.055L355.612 146.363L354.99 146.012L354.928 145.851L354.952 145.776L355.339 145.431L355.368 145.26L355.076 145.152L354.847 145.047L354.335 145.222L353.775 145.099H353.77L353.216 144.626L352.952 144.128L352.654 144.303L352.023 143.934L351.698 143.445L351.683 143.388L351.688 143.379C351.353 142.976 351.019 142.569 350.684 142.166L349.904 141.375L350.124 140.991V140.929L350.119 140.92L350.114 140.904L349.53 140.695L349.099 140.012L348.841 139.903L348.683 139.608V139.599L348.295 139.39L348.305 139.148L348.52 138.22L348.64 137.841L348.62 137.395L348.329 137.064L348.262 136.481L348.563 136.576L349.056 136.367L349.768 135.979L350.066 135.993L350.458 135.845L350.607 135.618L350.622 135.547L350.641 135.466L350.679 134.684V134.661L350.684 134.187L350.808 134.073L351.262 134.106L351.492 133.969L351.568 133.656L351.291 133.054L351.353 132.69L351.2 132.486L351.109 132.216L350.904 132.003L350.923 131.785L351.171 131.61L351.429 131.33L351.468 131.027L351.372 130.69H351.367L351.491 130.525L351.664 129.885L351.688 129.733L351.927 129.497L352.08 129.075L352.242 129.103L352.5 129.459L352.816 129.402L353.199 129.956L352.988 130.34L353.022 130.425L353.304 130.61L353.735 130.435L353.831 129.928L353.907 129.762L354.251 129.947L354.533 129.852L354.505 129.596L354.306 129.454L354.449 128.98L354.292 128.729L354 128.539L353.909 128.416L353.866 128.269L354.167 128.231L354.392 128.041L354.354 127.487L354.23 127.037L354.402 126.662L354.579 126.592L354.584 126.397L354.637 126.094L354.809 125.98L355.579 125.928L355.555 125.108L356.002 124.71L356.222 124.312L356.384 124.263L356.48 124.272L356.633 124.424L356.872 124.867L357.12 124.933L357.943 124.213L358.307 124.227L358.388 123.886L358.584 123.591L358.919 123.434L359.029 123.23L359.55 122.207L360.225 121.363L360.656 121.297L360.828 120.942L360.795 120.321L361.01 120.223L360.986 119.981H360.981L360.627 119.611L360.929 119.081L360.852 118.721L360.929 118.546L361.091 118.349L360.893 117.927L361.184 117.965L361.337 117.842L361.179 117.472L361.337 117.177L361.194 116.727L361.232 116.466C361.237 116.376 361.237 116.286 361.241 116.196L361.142 116.044L361.371 115.679L361.257 115.078L361.419 114.737L361.477 114.4L361.548 114.092L361.859 113.797L361.802 113.612L361.901 113.228L361.715 112.887V112.626L361.442 112.429L361.548 112.263L361.495 112.022L361.572 111.709L361.528 111.443L361.318 111.202L361.208 110.941L361.05 110.756L360.806 110.553L360.787 110.425L361.002 110.117L361.294 109.937L361.476 109.97L361.629 109.818L361.906 109.621L362.197 111.365L362.341 112.217L362.767 114.809C362.853 115.331 362.934 115.847 363.02 116.368L363.546 119.557H363.551L364.364 119.429L368.549 118.737L369.807 118.524V118.519L372.191 118.107L373.095 123.694L373.349 123.599L374.028 122.864L374.468 122.059C374.989 121.433 375.515 120.813 376.036 120.189L376.94 120.386L378.323 118.504L379.337 118.907L380.939 118.817L381.819 117.329L382.266 117.414L382.366 117.4L382.664 116.859L382.884 116.518L382.941 116.451L382.991 116.432L383.278 116.441L383.589 116.474L383.895 116.588L384.278 116.863L384.421 117.019L384.656 117.28L385.057 117.132L385.378 117.118L385.789 116.966L386.091 116.924L386.133 117.212L385.765 117.364L386.133 117.937L386.377 118.07L386.616 118.075L386.721 118.666L387.271 118.736L387.238 119.58L387.547 119.756Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['WV']['color']\"\n            />\n            <path\n                d=\"M355.187 139L353.144 132.7H354.98L356.699 138.154H355.772L357.581 132.7H359.219L360.929 138.154H360.038L361.811 132.7H363.512L361.469 139H359.561L358.103 134.365H358.616L357.095 139H355.187ZM366.217 139L363.526 132.7H365.452L367.72 138.154H366.586L368.908 132.7H370.672L367.972 139H366.217Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['WV']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <g\n            class=\"zoomable-state state-WY\"\n            (mouseenter)=\"onStateHover('WY', false, $event)\"\n            (mouseleave)=\"onStateHover('WY', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['WY'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M168.17 107.038L168.012 108.914L167.639 113.193L160.322 112.577L157.581 112.316H157.576L150.075 111.554L149.009 111.43V111.426L144.613 110.899L140.838 110.457L135.917 109.869L133.195 109.547L126.662 108.675L125.37 108.485L121.539 107.978L121.219 107.929L120.071 107.773L118.894 107.602H118.884L118.497 107.545V107.55L114.8 107.024L110.352 106.299L110.799 103.55L111.372 99.996L112.104 95.4232L112.998 89.8888L113.902 84.4159L114.443 81.0941L115.547 74.0006L116.392 68.7122L116.755 66.4805V66.4755L117.344 63.04L118.639 63.2369L119.596 63.4264L119.936 63.545L121.093 63.7251H121.113L123.667 64.0661L124.537 64.1089L125.183 64.2074L126.933 64.4775V64.4726L131.018 65.0174L132.448 65.2782L132.606 65.3018L133.625 65.4391L136.009 65.7516L138.879 66.1355L141.634 66.4721L143.839 66.7467L147.502 67.1921L147.913 67.2728L149.396 67.4529L154.232 68.012L155.982 68.197V68.2019L157.46 68.2777L163.185 68.8461L163.735 68.8983L171.34 69.6089L170.599 78.4937L170.561 78.9203L170.288 82.0527L169.968 85.8721L169.509 91.3499L169.15 95.5954H169.145L168.576 102.253L168.289 105.57L168.17 107.038Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['WY']['color']\"\n            />\n            <path\n                d=\"M135.187 93L133.144 86.7H134.98L136.699 92.154H135.772L137.581 86.7H139.219L140.929 92.154H140.038L141.811 86.7H143.512L141.469 93H139.561L138.103 88.365H138.616L137.095 93H135.187ZM145.629 93V90.336L146.043 91.407L143.226 86.7H145.107L147.141 90.111H146.052L148.095 86.7H149.823L147.015 91.407L147.411 90.336V93H145.629Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['WY']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M393.34 122.949L393.809 122.19L394.247 122.415L395.204 122.985L394.331 124.351L394.27 123.809L394.044 123.374L393.659 123.206L393.34 122.947\"\n            fill=\"#E5E5E5\"\n        />\n        <path\n            d=\"M393.34 122.949L393.809 122.19L394.247 122.415L395.204 122.985L394.331 124.351L394.27 123.809L394.044 123.374L393.659 123.206L393.34 122.947\"\n            stroke=\"white\"\n            stroke-linejoin=\"round\"\n        />\n        <g\n            class=\"zoomable-state state-KS\"\n            (mouseenter)=\"onStateHover('KS', false, $event)\"\n            (mouseleave)=\"onStateHover('KS', true, $event)\"\n            [ngbPopover]=\"countryPopoverTemplate\"\n            [disablePopover]=\"\n                currentlyHoveredState?.state !== usaStates['KS'].state\n            \"\n            [placement]=\"[ePlacement.RIGHT, ePlacement.LEFT]\"\n            triggers=\"mouseenter:mouseleave\"\n            autoClose=\"false\"\n            container=\"body\"\n        >\n            <path\n                d=\"M246.078 159.662L242.689 159.69H242.116V159.685L239.204 159.713H238.206V159.718L235.905 159.733H234.363V159.737H234.043L229.474 159.723V159.718L227.52 159.709L224.064 159.676V159.671L221.322 159.64L218.367 159.591L215.665 159.542L213.621 159.499V159.494L211.901 159.444L207.934 159.322L203.976 159.185L203.237 159.157L199.22 158.983L198.466 158.95V158.945L193.735 158.752L191.023 158.639L189.968 158.587L185.723 158.38H185.718L181.612 158.154L181.488 158.149L181.77 153.836V153.831L181.951 151.058L182.013 150.031L182.357 144.324H182.362L182.6 140.481L182.662 139.587L182.896 135.777L182.949 134.84L183.236 130.097L183.241 130.031L183.527 125.359L188.87 125.684V125.689L189.591 125.727L194.308 125.976L194.475 125.99V125.985L199.025 126.197L199.154 126.206V126.211L203.742 126.39H203.761L207.495 126.522L208.431 126.551L211.271 126.635L213.129 126.687L215.053 126.73L217.913 126.796L218.834 126.814V126.819L222.61 126.876V126.881L226.397 126.93L227.323 126.939L230.178 126.962L232.054 126.972V126.977H235.823L239.566 126.962H239.829L239.834 127.06L239.891 127.136L240.903 128.04L241.314 128.303L241.519 128.379L241.681 128.44L241.71 128.449H241.748L242.068 128.421L242.13 128.397L242.18 128.348L242.189 128.339L242.476 128.014L243.177 128.885L243.249 129.206L243.311 129.507L243.134 129.893L242.958 129.922L242.351 130.449L242.318 130.486L242.031 130.905L241.932 131.042L241.598 132.04L242.738 133.274L244.247 135.628L245.871 136.056V136.061L245.832 136.57L245.842 137.324C245.851 138.042 245.861 138.761 245.871 139.48L245.876 140.667L245.89 143.511L245.899 144.481L245.949 148.064L245.954 148.318H245.949L245.978 152.283V152.287L246.03 155.654L246.035 155.942C246.048 157.183 246.062 158.423 246.078 159.662Z\"\n                fill=\"#E5E5E5\"\n                stroke=\"white\"\n                stroke-linejoin=\"round\"\n                [attr.fill]=\"usaStates['KS']['color']\"\n            />\n            <path\n                d=\"M211.223 144.605L211.124 142.607L213.833 139.7H215.795L213.095 142.625L212.105 143.66L211.223 144.605ZM209.63 146V139.7H211.394V146H209.63ZM213.86 146L211.808 143.399L212.969 142.157L215.93 146H213.86ZM218.48 146.126C217.964 146.126 217.466 146.063 216.986 145.937C216.512 145.805 216.125 145.637 215.825 145.433L216.41 144.119C216.692 144.299 217.016 144.449 217.382 144.569C217.754 144.683 218.123 144.74 218.489 144.74C218.735 144.74 218.933 144.719 219.083 144.677C219.233 144.629 219.341 144.569 219.407 144.497C219.479 144.419 219.515 144.329 219.515 144.227C219.515 144.083 219.449 143.969 219.317 143.885C219.185 143.801 219.014 143.732 218.804 143.678C218.594 143.624 218.36 143.57 218.102 143.516C217.85 143.462 217.595 143.393 217.337 143.309C217.085 143.225 216.854 143.117 216.644 142.985C216.434 142.847 216.263 142.67 216.131 142.454C215.999 142.232 215.933 141.953 215.933 141.617C215.933 141.239 216.035 140.897 216.239 140.591C216.449 140.285 216.761 140.039 217.175 139.853C217.589 139.667 218.105 139.574 218.723 139.574C219.137 139.574 219.542 139.622 219.938 139.718C220.34 139.808 220.697 139.943 221.009 140.123L220.46 141.446C220.16 141.284 219.863 141.164 219.569 141.086C219.275 141.002 218.99 140.96 218.714 140.96C218.468 140.96 218.27 140.987 218.12 141.041C217.97 141.089 217.862 141.155 217.796 141.239C217.73 141.323 217.697 141.419 217.697 141.527C217.697 141.665 217.76 141.776 217.886 141.86C218.018 141.938 218.189 142.004 218.399 142.058C218.615 142.106 218.849 142.157 219.101 142.211C219.359 142.265 219.614 142.334 219.866 142.418C220.124 142.496 220.358 142.604 220.568 142.742C220.778 142.874 220.946 143.051 221.072 143.273C221.204 143.489 221.27 143.762 221.27 144.092C221.27 144.458 221.165 144.797 220.955 145.109C220.751 145.415 220.442 145.661 220.028 145.847C219.62 146.033 219.104 146.126 218.48 146.126Z\"\n                fill=\"white\"\n                [attr.fill]=\"\n                    usaStates['KS']['color'] === lowestBlue\n                        ? blueText\n                        : whiteText\n                \"\n            />\n        </g>\n        <path\n            d=\"M111.856 248.812V277.627L130.9 294.685M1 213.184H76.4136L111.857 248.81H157.351L185.386 277.101V294.683\"\n            stroke=\"#E5E5E5\"\n        />\n    </svg>\n</div>\n\n<ng-template #countryPopoverTemplate>\n    @let stateName = currentlyHoveredState?.state;\n    @let revenue = currentlyHoveredState?.value;\n    @let percent = currentlyHoveredState?.percent + '%';\n\n    <div class=\"p-4 br-3 background-black-2 d-flex flex-column\">\n        <div\n            class=\"ca-font-extra-bold text-size-11 text-uppercase text-color-white m-b-6 p-t-2 p-x-4\"\n        >\n            {{ stateName ?? '' }}\n        </div>\n\n        <div class=\"h-1 w-100 background-black m-b-8\"></div>\n\n        <div\n            class=\"d-flex flex-column align-items-start p-x-4 p-b-4\"\n        >\n            <div class=\"ca-font-semi-bold text-size-11 text-color-white\">\n                {{ revenue ?? '' }}\n            </div>\n\n            <div class=\"ca-font-regular text-size-11 text-color-white\">\n                {{ percent ?? '' }}\n            </div>\n        </div>\n    </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CaProfileImageComponent } from './components/ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from './components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaDetailsDropdownComponent } from './components/ca-details-dropdown/ca-details-dropdown.component';\nimport { CaFilterComponent } from './components/ca-filters/ca-filter.component';\nimport { CaInputComponent } from './components/ca-input/ca-input.component';\nimport { CaInputDatetimePickerComponent } from './components/ca-input-datetime-picker/ca-input-datetime-picker.component';\nimport { CaInputRadiobuttonsComponent } from './components/ca-input-radiobuttons/ca-input-radiobuttons.component';\nimport { CaMapComponent } from './components/ca-map/ca-map.component';\nimport { CaMapDropdownComponent } from './components/ca-map-dropdown/ca-map-dropdown.component';\nimport { CaNoteComponent } from './components/ca-note/ca-note.component';\nimport { CaNoteContainerComponent } from './components/ca-note-container/ca-note-container.component';\nimport { CaPayrollListSummaryOverviewComponent } from './components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nimport { CaPayrollListSummaryOverviewTableComponent } from './components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\nimport { PickupDeliveryBlockComponent } from './components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nimport { ProgressBarComponent } from './components/ca-progress-bar/ca-progress-bar.component';\nimport { CaSearchMultipleStatesComponent } from './components/ca-search-multiple-states/ca-search-multiple-states.component';\nimport { CaSpinnerComponent } from './components/ca-spinner/ca-spinner.component';\nimport { CaTruckTrailerProgresBarComponent } from './components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nimport { CaInputNoteComponent } from './components/ca-input-note/ca-input-note.component';\nimport { CaPeriodContentComponent } from './components/ca-period-content/ca-period-content.component';\nimport { CaInputAddressDropdownComponent } from './components/ca-input-address-dropdown/ca-input-address-dropdown.component';\nimport { CaSearchMultipleStatesService } from './components/ca-search-multiple-states/utils/services/search-multiple-states.service';\nimport { CaRatingReviewComponent } from './components/ca-rating-review/ca-rating-review.component';\nimport { CaTodoComponent } from './components/ca-todo/ca-todo.component';\nimport { CaMainTableComponent } from './components/ca-main-table/ca-main-table.component';\nimport { CaActivityLogListComponent } from './components/ca-activity-log-list/ca-activity-log-list.component';\nimport { CaRightSidePanelMenuComponent } from './components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component';\nimport { CaRightSidePanelTopBarComponent } from './components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component';\nimport { CaRightSidePanelComponent } from './components/ca-right-side-panel/ca-right-side-panel.component';\nimport { CaInputDropdownComponent } from './components/ca-input-dropdown/ca-input-dropdown.component';\nimport { CaChartComponent } from './components/ca-chart/ca-chart.component';\nimport { CaDropdownMenuComponent } from './components/ca-dropdown-menu/ca-dropdown-menu.component';\nimport { CaChartManagerComponent } from './components/ca-chart-manager/ca-chart-manager.component';\nimport { CaTooltipListComponent } from './components/ca-tooltip-list/ca-tooltip-list.component';\nimport { CaUploadFilesComponent } from './components/ca-upload-files/ca-upload-files.component';\nimport { CaRightSidePanelCompanyComponent } from './components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component';\nimport { CaFilterDropdownComponent } from './components/ca-new-filter/ca-filter-dropdown.component';\nimport { CaFilterStateDropdownComponent } from './components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component';\nimport { CaFilterListDropdownComponent } from './components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component';\nimport { CaCheckboxComponent } from './components/ca-checkbox/ca-checkbox.component';\n\nimport { CaVehicleListComponent } from './components/ca-vehicle-list/ca-vehicle-list.component';\nimport { CaLastFuelPriceProgressComponent } from './components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component';\nimport { InputTestComponent } from './components/ca-input-test/input-test.component';\nimport { CaLoadStatusComponent } from './components/ca-load-status/ca-load-status.component';\nimport { CaSearchMultipleStates2Component } from './components/ca-search-multiple-states-2/ca-search-multiple-states-2.component';\nimport { CaCheckboxSelectedCountComponent } from './components/ca-checkbox-selected-count/ca-checkbox-selected-count.component';\nimport { CaTableCardViewComponent } from './components/ca-table-card-view/ca-table-card-view.component';\nimport { CaDetailsTitleCardComponent } from './components/ca-details-title-card/ca-details-title-card.component';\nimport { CaCustomCardComponent } from './components/ca-custom-card/ca-custom-card.component';\nimport { CaLoadStatusLogComponent } from './components/ca-load-status-log/ca-load-status-log.component';\nimport { CaStatusChangeDropdownComponent } from './components/ca-status-change-dropdown/ca-status-change-dropdown.component';\nimport { CaToolbarDropdownComponent } from './components/ca-toolbar-dropdown/ca-toolbar-dropdown.component';\nimport { CaDeleteModalComponent } from './components/ca-confirmation-modals/components/ca-delete-modal/ca-delete-modal.component';\nimport { CaShowMoreComponent } from './components/ca-show-more/ca-show-more.component';\nimport { CaCommentsComponent } from './components/ca-comments/ca-comments.component';\nimport { CaSortingCardDropdownComponent } from './components/ca-sorting-card-dropdown/ca-sorting-card-dropdown.component';\nimport { CaActivateModalComponent } from './components/ca-confirmation-modals/components/ca-activate-modal/ca-active-modal.component';\nimport { CaDeactivateModalComponent } from './components/ca-confirmation-modals/components/ca-deactive-modal/ca-deactive-modal.component';\nimport { CaMoveModalComponent } from './components/ca-confirmation-modals/components/ca-move-modal/ca-move-modal.component';\nimport { CaResetTableModalComponent } from './components/ca-confirmation-modals/components/ca-reset-table-modal/ca-reset-table-modal.component';\nimport { CaVoidModalComponent } from './components/ca-confirmation-modals/components/ca-void-modal/ca-void-modal.component';\nimport { CaFilesCountComponent } from './components/ca-files-count/ca-files-count.component';\nimport { CaItemsDropdownComponent } from './components/ca-items-dropdown/ca-items-dropdown.component';\nimport { CaToastMessagesComponent } from './components/ca-toast-messages/ca-toast-messages.component';\nimport { CaFleetFilterComponent } from './components/ca-fleet-filter/ca-fleet-filter.component';\nimport { CaCustomHorizontalScrollbarComponent } from './components/ca-custom-horizontal-scrollbar/ca-custom-horizontal-scrollbar.component';\nimport { CaModalItemsComponent } from './components/ca-modal-items/ca-modal-items.component';\nimport { CaProgressBarV2Component } from './components/ca-progress-bar-v2/ca-progress-bar-v2.component';\nimport { CaRangeSliderComponent } from './components/ca-range-slider/ca-range-slider.component';\nimport { CaFuelPricesRangeComponent } from './components/ca-fuel-prices-range/ca-fuel-prices-range.component';\nimport { CaHeatmapUsaComponent } from './components/ca-heatmap-usa/ca-heatmap-usa.component';\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule,\n        CaProfileImageComponent,\n        CaProgressBarV2Component,\n        CaRatingReviewComponent,\n        CaAppTooltipV2Component,\n        CaDetailsDropdownComponent,\n        CaFilterComponent,\n        CaFilterDropdownComponent,\n        CaFilterStateDropdownComponent,\n        CaFilterListDropdownComponent,\n        CaInputComponent,\n        CaInputDatetimePickerComponent,\n        CaInputRadiobuttonsComponent,\n        CaInputDropdownComponent,\n        CaMapComponent,\n        CaMapDropdownComponent,\n        CaNoteComponent,\n        CaNoteContainerComponent,\n        CaPayrollListSummaryOverviewComponent,\n        CaPayrollListSummaryOverviewTableComponent,\n        PickupDeliveryBlockComponent,\n        ProgressBarComponent,\n        CaSearchMultipleStatesComponent,\n        CaSearchMultipleStates2Component,\n        CaTableCardViewComponent,\n        CaSpinnerComponent,\n        CaTodoComponent,\n        CaTruckTrailerProgresBarComponent,\n        CaPeriodContentComponent,\n        CaInputNoteComponent,\n        CaInputAddressDropdownComponent,\n        CaMainTableComponent,\n        CaActivityLogListComponent,\n        CaRightSidePanelMenuComponent,\n        CaRightSidePanelTopBarComponent,\n        CaRightSidePanelComponent,\n        CaChartComponent,\n        CaChartManagerComponent,\n        CaDropdownMenuComponent,\n        CaUploadFilesComponent,\n        CaRightSidePanelCompanyComponent,\n        CaTooltipListComponent,\n        InputTestComponent,\n        CaVehicleListComponent,\n        CaLastFuelPriceProgressComponent,\n        CaCheckboxComponent,\n        CaLoadStatusComponent,\n        CaCheckboxSelectedCountComponent,\n        CaDetailsTitleCardComponent,\n        CaCustomCardComponent,\n        CaLoadStatusLogComponent,\n        CaStatusChangeDropdownComponent,\n        CaToolbarDropdownComponent,\n        CaDeleteModalComponent,\n        CaShowMoreComponent,\n        CaCommentsComponent,\n        CaSortingCardDropdownComponent,\n        CaActivateModalComponent,\n        CaDeactivateModalComponent,\n        CaVoidModalComponent,\n        CaMoveModalComponent,\n        CaResetTableModalComponent,\n        CaFilesCountComponent,\n        CaItemsDropdownComponent,\n        CaToastMessagesComponent,\n        CaFleetFilterComponent,\n        CaCustomHorizontalScrollbarComponent,\n        CaModalItemsComponent,\n        CaRangeSliderComponent,\n        CaFuelPricesRangeComponent,\n        CaHeatmapUsaComponent,\n    ],\n    providers: [CaSearchMultipleStatesService],\n    exports: [\n        CaProgressBarV2Component,\n        CaProfileImageComponent,\n        CaAppTooltipV2Component,\n        CaDetailsDropdownComponent,\n        CaRatingReviewComponent,\n        CaFilterComponent,\n        CaFilterDropdownComponent,\n        CaFilterStateDropdownComponent,\n        CaFilterListDropdownComponent,\n        CaInputComponent,\n        CaInputDatetimePickerComponent,\n        CaInputRadiobuttonsComponent,\n        CaInputDropdownComponent,\n        CaMapComponent,\n        CaMapDropdownComponent,\n        CaNoteComponent,\n        CaNoteContainerComponent,\n        CaPayrollListSummaryOverviewComponent,\n        CaPayrollListSummaryOverviewTableComponent,\n        PickupDeliveryBlockComponent,\n        ProgressBarComponent,\n        CaSearchMultipleStatesComponent,\n        CaSearchMultipleStates2Component,\n        CaSpinnerComponent,\n        CaTruckTrailerProgresBarComponent,\n        CaPeriodContentComponent,\n        CaInputNoteComponent,\n        CaMainTableComponent,\n        CaActivityLogListComponent,\n        CaRightSidePanelMenuComponent,\n        CaRightSidePanelTopBarComponent,\n        CaRightSidePanelComponent,\n        CaChartComponent,\n        CaChartManagerComponent,\n        CaDropdownMenuComponent,\n        CaUploadFilesComponent,\n        CaRightSidePanelCompanyComponent,\n        CaTooltipListComponent,\n        CaInputAddressDropdownComponent,\n        InputTestComponent,\n        CaVehicleListComponent,\n        CaLastFuelPriceProgressComponent,\n        CaCheckboxComponent,\n        CaLoadStatusComponent,\n        CaCheckboxSelectedCountComponent,\n        CaDetailsTitleCardComponent,\n        CaCustomCardComponent,\n        CaLoadStatusLogComponent,\n        CaStatusChangeDropdownComponent,\n        CaToolbarDropdownComponent,\n        CaDeleteModalComponent,\n        CaCommentsComponent,\n        CaShowMoreComponent,\n        CaSortingCardDropdownComponent,\n        CaActivateModalComponent,\n        CaDeactivateModalComponent,\n        CaVoidModalComponent,\n        CaMoveModalComponent,\n        CaResetTableModalComponent,\n        CaFilesCountComponent,\n        CaItemsDropdownComponent,\n        CaToastMessagesComponent,\n        CaFleetFilterComponent,\n        CaModalItemsComponent,\n        CaRangeSliderComponent,\n        CaFuelPricesRangeComponent,\n        CaHeatmapUsaComponent,\n    ],\n})\nexport class CaComponentsLibModule {}\n","import {\n    animate,\n    state,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\nexport const inputDropdownAnimation = (type: string) =>\n    trigger(type, [\n        state(\n            'true',\n            style({\n                height: '*',\n                overflow: 'hidden',\n                opacity: '1',\n            })\n        ),\n        state(\n            'false',\n            style({ height: '0px', overflow: 'hidden', opacity: '0' })\n        ),\n        transition('false <=> true', [animate('0.15s ease-in-out')]),\n    ]);\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'caDropdownCount',\n  standalone: true,\n})\nexport class DropdownCountPipe implements PipeTransform {\n  transform(options: any, template: string): any {\n    if (template === 'groups') {\n      let groups: number = 0;\n      options.forEach((item: any) => {\n        groups++;\n        if (item.groups) {\n          groups += item.groups.length;\n        }\n      });\n      return groups > 20;\n    } else if( template === \"load-broker-contact\" ){\n      return true;\n    } \n    else {\n      return options.length > 7;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// config\nimport { ICaInput } from '../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n  name: 'inputDropdownSvgtextTemplateIcon',\n  standalone: true,\n})\nexport class InputDropdownSvgtextTemplateIconPipe implements PipeTransform {\n  transform(\n    option: IOptionModel,\n    activeItem: IOptionModel | null,\n    inputConfig: ICaInput\n  ): { [key: string]: boolean | undefined } {\n    return {\n      active: option.id === activeItem?.id,\n      'no-svg': !option?.logoName,\n      'hazardous-svg': option?.logoName?.includes('hazardous'),\n      'truck-trailer-logo':\n        inputConfig.customClass === 'truck-trailer-dropdown',\n      'state-logo': inputConfig.customClass === 'state-dropdown',\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n    name: 'inputDropdownSvgtextTemplateContainer',\n    standalone: true,\n})\nexport class InputDropdownSvgtextTemplateContainerPipe\n    implements PipeTransform\n{\n    transform(\n        option: IOptionModel,\n        options: IOptionModel[],\n        activeItem: IOptionModel | null\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n            'all-assigned': option?.name?.toLowerCase() === 'all assigned',\n            trailerContainer: option?.name === 'Container',\n            lowboyrgn: option?.name === 'Low Boy / RGN',\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n    name: 'inputDropdownLoadBrokerContainer',\n    standalone: true,\n})\nexport class InputDropdownLoadBrokerContainerPipe implements PipeTransform {\n    transform(\n        option: IOptionModel,\n        options: IOptionModel[],\n        activeItem: IOptionModel | null\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled:\n                option?.disabled ||\n                option?.dnu ||\n                option?.ban ||\n                option?.availableCreditType?.name === 'Empty',\n            'no-result':\n                options.length === 1 && options[0].type === 'no-results',\n            'add-new': option.type === 'add-new',\n            active: option.id === activeItem?.id,\n        };\n    }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n// config\nimport { ICaInput } from '../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n\n@Pipe({\n  name: 'inputDropdownMultiselectClass',\n  standalone: true,\n})\nexport class InputDropdownMultiselectClassPipe implements PipeTransform {\n  transform(\n    inputConfig: ICaInput,\n    multiselectItems: IOptionModel[],\n    isMultiSelectInputFocus: boolean\n  ): { [key: string]: boolean | undefined } {\n    return {\n      'multiselect-dropdown':\n        inputConfig.multiselectDropdown && multiselectItems.length > 0,\n      'multiselect-focus-out':\n        !isMultiSelectInputFocus && !inputConfig.isDisabled,\n      'multiselect-focus-in':\n        isMultiSelectInputFocus && !inputConfig.isDisabled,\n      'multiselect-disabled': inputConfig.isDisabled,\n      'merge-dropdown-body-with-input': inputConfig.mergeDropdownBodyWithInput,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// config\nimport { ICaInput } from '../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n    name: 'inputDropdownDefaultTemplateClass',\n    standalone: true,\n})\nexport class InputDropdownDefaultTemplateClassPipe implements PipeTransform {\n    transform(\n        option: IOptionModel,\n        options: IOptionModel[],\n        activeItem: IOptionModel | null,\n        inputConfig: ICaInput,\n        label: keyof IOptionModel\n    ): { [key: string]: boolean | undefined } {\n        const isActive = label\n            ? option.id ===\n              (activeItem?.duplicateId\n                  ? activeItem?.duplicateId\n                  : activeItem?.id)\n            : option === activeItem;\n\n        return {\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: isActive,\n            'active-repair-truck-trailer': option?.status === 1,\n            routing_dropdown: inputConfig?.name === 'RoutingAddress',\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// config\nimport { ICaInput } from '../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n\n@Pipe({\n    name: 'inputDropdownLabelClass',\n    standalone: true,\n})\nexport class InputDropdownLabelClassPipe implements PipeTransform {\n    transform(\n        option: IOptionModel,\n        options: IOptionModel[],\n        activeItem: IOptionModel | null,\n        labelMode: string,\n        inputConfig: ICaInput\n    ): { [key: string]: boolean | undefined } {\n        return {\n            disabled: option?.disabled,\n            'add-new': option?.type === 'add-new',\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'active-label':\n                option.id === activeItem?.id &&\n                labelMode === 'Label' &&\n                inputConfig.customClass !== 'input-dropdown-table',\n            'active-dark':\n                option.id === activeItem?.id &&\n                labelMode === 'Label' &&\n                inputConfig.customClass === 'input-dropdown-table',\n        };\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n  name: 'inputDropdownFuelFranchiseClass',\n  standalone: true,\n})\nexport class InputDropdownFuelFranchiseClassPipe implements PipeTransform {\n  transform(\n    option: IOptionModel,\n    options: IOptionModel[]\n  ): { [key: string]: boolean | undefined } {\n    return {\n      disabled: option?.disabled,\n      'no-result': options.length === 1 && options[0]?.name === 'No Results',\n      'active-stores': option?.open,\n      'active-stores-header-hover': option?.hover && option?.open,\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// config\nimport { ICaInputWithDropdown } from '../../ca-input/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n    name: 'inputDropdownGetIcons',\n    standalone: true,\n})\nexport class InputDropdownGetIconsPipe implements PipeTransform {\n    transform(\n        option: ICaInputWithDropdown,\n        activeItem: IOptionModel | null\n    ): string {\n        const activeItemPath = getValueByPath(\n            activeItem,\n            option.activeItemIconKey\n        );\n        return `${option.iconsPath}${activeItemPath || ''}`;\n    }\n}\n\nfunction getValueByPath(obj: any, path: string | undefined): any {\n    return path?.split('.').reduce((acc, part) => acc?.[part], obj);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaLoadModalProgressBarComponent } from '../../../../ca-load-modal-progress-bar/ca-load-modal-progress-bar.component';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-broker-item',\n    templateUrl: './ca-input-dropdown-load-broker-item.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-item.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaLoadModalProgressBarComponent,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerComponentItem {\n    @Input() option!: IOptionModel;\n    @Input() searchText!: string;\n    @Input() isInOption: boolean = false;\n    @Input() label!: keyof IOptionModel;\n}\n","<div class=\"load-broker-template\" [class.in-option]=\"isInOption\">\n    <div class=\"load-broker-status-text\">\n        @if (option.type !== 'add-new' && option.logoName) {\n            <svg-icon\n                [ngClass]=\"{\n                    'dnu-status': option.dnu,\n                }\"\n                [src]=\"option.logoName\"\n                class=\"load-broker-status\"\n            ></svg-icon>\n        }\n        <div\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            [ngStyle]=\"{\n                overflow: 'hidden',\n                'text-overflow': 'ellipsis',\n                'white-space': 'nowrap',\n            }\"\n            class=\"load-broker-text\"\n        ></div>\n    </div>\n    <div\n        class=\"load-broker-progress-status\"\n        [ngStyle]=\"{\n            visibility:\n                (!['add-new', 'no-results'].includes(option.type!) &&\n                    option.availableCreditType?.name !== 'Unlimited') ||\n                option.dnu ||\n                option.ban\n                    ? 'visible'\n                    : 'hidden',\n        }\"\n    >\n        <ca-load-modal-progress-bar\n            [availableCredit]=\"option.availableCredit ?? 0\"\n            [disable]=\"option.dnu || option.ban || option.status === 0\"\n            [totalAmount]=\"option.creditLimit!\"\n        ></ca-load-modal-progress-bar>\n    </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownLoadBrokerContainerPipe } from '../../pipes';\n\n// component\nimport { CaLoadModalProgressBarComponent } from '../../../ca-load-modal-progress-bar/ca-load-modal-progress-bar.component';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CaInputDropdownLoadBrokerComponentItem } from './ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-broker',\n    templateUrl: './ca-input-dropdown-load-broker.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaLoadModalProgressBarComponent,\n        CaInputDropdownLoadBrokerComponentItem,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownLoadBrokerContainerPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option | inputDropdownLoadBrokerContainer: options : activeItem\n        \"\n        class=\"dropdown-option d-flex align-items-center \"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <app-ca-input-dropdown-load-broker-item\n            [option]=\"option\"\n            [searchText]=\"searchText\"\n            [label]=\"label\"\n        ></app-ca-input-dropdown-load-broker-item>\n    </div>\n}\n","export class InputDropdownSvgRoutes {\n  static trailersSvgRoute: string = 'assets/ca-components/svg/common/trailers/';\n  static trucksSvgRoute: string = 'assets/ca-components/svg/common/trucks/';\n  static repairPmSvgRoute: string = 'assets/ca-components/svg/common/repair-pm/';\n  static inputDropdownArrowSvg: string =\n    'assets/ca-components/svg/input/ic_arrow_input.svg';\n  static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n  static plusSvg: string = 'assets/ca-components/svg/common/ic_plus.svg';\n  static dynamicLabelSvg: string = 'assets/ca-components/svg/input/ic_dynamic_label.svg';\n  static ownerBadgeBlackSvg: string = 'assets/ca-components/svg/input/owner-badge-black.svg';\n  static arrowDownUpdatedSvg: string = 'assets/ca-components/svg/common/ic_arrow_down_updated.svg';\n  static specConfirmSvg: string = 'assets/ca-components/svg/common/ic_spec-confirm.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaProfileImageComponent } from '../../../../ca-profile-image/ca-profile-image.component';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\n\n// routes\nimport { InputDropdownSvgRoutes } from '../../../utils/svg-routes';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatches-ttd-item',\n    templateUrl: './ca-input-dropdown-load-dispatches-ttd-item.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatches-ttd-item.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadDispatchesTtdComponentItem {\n    @Input() option!: IOptionModel;\n    @Input() index: number = -1;\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n}\n","@let showNoResulst = ['add-new', 'no-results'].includes(option?.type!);\n\n<!-- No Results -->\n@if (showNoResulst) {\n<div\n    [innerHtml]=\"\n                    option?.[label]\n                        | caHighlight\n                            : [\n                                {\n                                    index: 45632,\n                                    text: searchText,\n                                },\n                            ]\n                \"\n></div>\n} @if (!showNoResulst) {\n<div class=\"load-dispatches-ttd-template\">\n    <!-- Truck -->\n    <div\n        class=\"load-dispatches-container  truck {{\n            option?.truck?.truckType?.name\n                ?.trim()\n                ?.replace(' ', '')\n                ?.toLowerCase()\n        }}\"\n    >\n        <svg-icon\n            class=\"load-dispatches-svg\"\n            [src]=\"\n                option.truck?.truckType?.logoName\n                    ? inputDropdownSvgRoutes.trucksSvgRoute +\n                    option.truck?.truckType?.logoName\n                    : ''\n            \"\n        ></svg-icon>\n        <div\n            [innerHtml]=\"\n                option?.truck?.truckNumber\n                    | caHighlight\n                        : [\n                            {\n                                index: 45632,\n                                text: searchText\n                            },\n                        ]\n            \"\n            class=\"load-dispatch-truck\"\n        ></div>\n        <!-- Percentage is driver owner -->\n        @if (option.driver?.owner && option?.payType) {\n        <span\n            [ngClass]=\"{\n                        'driver-owner': option.driver?.owner,\n                        active: index === activeItem?.itemIndex,\n                    }\"\n            class=\"load-dispatch-driver-rate\"\n        >\n            {{ option?.payType }}\n        </span>\n        }\n    </div>\n\n    <!-- Trailer -->\n    <div\n        class=\"load-dispatches-container  trailer {{\n        option?.trailer?.trailerType?.name\n            ?.trim()\n            ?.replace(' ', '')\n            ?.toLowerCase()\n    }}\"\n        [ngClass]=\"{\n        trailerContainer: option?.trailer?.logoType\n            ? option?.trailer?.logoType\n                  ?.trim()\n                  ?.replace(' ', '') === 'Container'\n            : false,\n        lowboyrgn: option?.trailer?.logoType\n            ? option?.trailer?.logoType\n                  ?.trim()\n                  ?.replace(' ', '') === 'Low Boy / RGN'\n            : false,\n    }\"\n    >\n        <svg-icon\n            class=\"load-dispatches-svg\"\n            [src]=\"\n            option?.trailer?.trailerType?.logoName\n                ? inputDropdownSvgRoutes.trailersSvgRoute +\n                option?.trailer?.trailerType?.logoName\n                : ''\n        \"\n        ></svg-icon>\n        <div\n            [innerHtml]=\"\n            option?.trailer?.trailerNumber\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n            class=\"load-dispatch-trailer\"\n        ></div>\n    </div>\n\n    <!-- Driver -->\n    <div class=\"load-dispatches-container\">\n        @if (option?.driver?.avatarFile) {\n        <img\n            [alt]=\"option?.driver?.firstName\"\n            [ngClass]=\"{\n                active:\n                    option.driver?.id === activeItem?.driver?.id,\n            }\"\n            [src]=\"option?.driver?.avatarFile?.url\"\n            class=\"svg-template-logo round\"\n        />\n        } @else {\n        <div class=\"no-profile-image\">\n            <app-ca-profile-image\n                [indx]=\"0\"\n                [name]=\"option.driver?.firstName! + '' + option.driver?.lastName!\"\n                [size]=\"'small'\"\n            >\n            </app-ca-profile-image>\n        </div>\n        } @if ( !showNoResulst && option.driver?.owner ) {\n        <img\n            alt=\"avatar\"\n            [src]=\"inputDropdownSvgRoutes.ownerBadgeBlackSvg\"\n            class=\"owner-avatar\"\n        />\n        }\n        <div\n            [innerHtml]=\"\n            (option.driver?.firstName! + ' ' + option.driver?.lastName!)\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n            class=\"load-dispatch-driver\"\n        ></div>\n    </div>\n\n    <!-- Percentage is not driver owner -->\n\n    @if (option?.payType) {\n    <span\n        [ngClass]=\"{\n            active: index === activeItem?.itemIndex,\n        }\"\n        class=\"load-dispatch-driver-rate\"\n    >\n        {{ option?.payType }}\n    </span>\n    }\n</div>\n\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\nimport { CaInputDropdownLoadDispatchesTtdComponentItem } from './ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatches-ttd',\n    templateUrl: './ca-input-dropdown-load-dispatches-ttd.component.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatches-ttd.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaInputDropdownLoadDispatchesTtdComponentItem,\n    ]\n})\nexport class CaInputDropdownLoadDispatchesTtdComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option dropdown-double-column\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <app-ca-input-dropdown-load-dispatches-ttd-item\n            [index]=\"i\"\n            [searchText]=\"searchText\"\n            [activeItem]=\"activeItem\"\n            [option]=\"option\"\n            [label]=\"label\"\n        >\n        </app-ca-input-dropdown-load-dispatches-ttd-item>\n    </div>\n}\n","import { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n// components\nimport { CaProfileImageComponent } from '../../../../ca-profile-image/ca-profile-image.component';\n\n// config\nimport { ICaInputWithDropdown } from '../../../../ca-input/config';\n\n// pipies\nimport { InputDropdownGetIconsPipe } from '../../../pipes';\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatcher-item',\n    templateUrl: './ca-input-dropdown-load-dispatcher-item.component.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatcher-item.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownGetIconsPipe,\n    ]\n})\nexport class CaInputDropdownLoadDispatcherItemComponent {\n    @Input() option!: IOptionModel;\n    @Input() hasNoResult: boolean = false;\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n    @Input() dropdownWithImage?: ICaInputWithDropdown | null;\n    @Input() isInOption: boolean = false;\n}\n","<div class=\"load-dispatcher-template\" [class.dropdown-option]=\"isInOption\">\n    @if (\n        option?.avatarFile && !['add-new', 'no-results'].includes(option?.type!)\n    ) {\n        <img\n            [alt]=\"option?.[label]\"\n            [ngClass]=\"{\n                active: option.id === activeItem?.id,\n            }\"\n            [src]=\"dropdownWithImage! | inputDropdownGetIcons: option\"\n            class=\"svg-template-logo round\"\n        />\n    }\n\n    @if (\n        !option?.avatarFile &&\n        !['add-new', 'no-results'].includes(option?.type!)\n    ) {\n        <div class=\"no-profile-image\">\n            <app-ca-profile-image\n                [indx]=\"0\"\n                [name]=\"option?.[label]!\"\n                [size]=\"'small'\"\n            >\n            </app-ca-profile-image>\n        </div>\n    }\n    <div\n        [innerHtml]=\"\n            option?.[label]\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n    ></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// component\n\nimport { CaInputDropdownLoadDispatcherItemComponent } from './ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// configs\nimport { ICaInput } from '../../../ca-input-test/config';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-dispatcher',\n    templateUrl: './ca-input-dropdown-load-dispatcher.component.html',\n    styleUrls: ['./ca-input-dropdown-load-dispatcher.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaInputDropdownLoadDispatcherItemComponent,\n    ]\n})\nexport class CaInputDropdownLoadDispatcherComponent {\n    @Input() inputConfig!: ICaInput;\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","<div class=\"scrollable-element pb-0\">\n    @for (option of options; track option.id; let i = $index) {\n        <div\n            #dropdownOption\n            (click)=\"onActiveItemEmit(option)\"\n            [ngClass]=\"{\n                disabled: option?.disabled,\n                'add-new': option?.type === 'add-new',\n                'no-result':\n                    options.length === 1 &&\n                    options[0]?.[label] === 'No Results',\n                active: option.id === activeItem?.id,\n            }\"\n            class=\"dropdown-option\"\n            [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n        >\n            <app-ca-input-dropdown-load-dispatcher-item\n                [option]=\"option\"\n                [searchText]=\"searchText\"\n                [dropdownWithImage]=\"inputConfig.dropdownImageInput\"\n                [activeItem]=\"activeItem\"\n                [hasNoResult]=\"\n                    options.length === 1 &&\n                    (options[0]?.[label] === 'No Results' ||\n                        options[0]?.[label] === 'ADD NEW')\n                \"\n                [label]=\"label\"\n            >\n            </app-ca-input-dropdown-load-dispatcher-item>\n        </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { ICaInputWithDropdown } from '../../../ca-input/config';\nimport { InputDropdownGetIconsPipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svg-template',\n    templateUrl: './ca-input-dropdown-svg-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svg-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownGetIconsPipe\n    ]\n})\nexport class CaInputDropdownSvgTemplateComponent {\n    @Input() dropdownWithImage?: ICaInputWithDropdown | null;\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        @if (option.logoName) {\n            <svg-icon\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n                [src]=\"dropdownWithImage! | inputDropdownGetIcons: option\"\n                class=\"svg-template-logo\"\n            ></svg-icon>\n        }\n\n        <div\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n        ></div>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// pipes\nimport {\n    InputDropdownSvgtextTemplateContainerPipe,\n    InputDropdownSvgtextTemplateIconPipe,\n} from '../../../pipes';\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../../pipes/ca-svg.pipe';\nimport { LoadStatusColorPipe } from '../../../../../pipes/load-status-color.pipe';\n\n// components\nimport { CaLoadStatusStringComponent } from '../../../../ca-load-status-string/ca-load-status-string.component';\nimport { CaProfileImageComponent } from '../../../../ca-profile-image/ca-profile-image.component';\n// configs\nimport { ICaInput } from '../../../../ca-input-test/config';\n\n// routes\nimport { InputDropdownSvgRoutes } from '../../../utils/svg-routes';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n\n@Component({\n    selector: 'ca-input-dropdown-svgtext-template-item',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        // Component\n        CaProfileImageComponent,\n        CaLoadStatusStringComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n        LoadStatusColorPipe,\n        InputDropdownSvgtextTemplateIconPipe,\n        InputDropdownSvgtextTemplateContainerPipe,\n    ],\n    templateUrl: './ca-input-dropdown-svgtext-template-item.component.html',\n    styleUrl: './ca-input-dropdown-svgtext-template-item.component.css'\n})\nexport class CaInputDropdownSvgtextTemplateItemComponent {\n    @Input() option!: IOptionModel;\n    @Input() inputConfig!: ICaInput;\n    @Input() label!: keyof IOptionModel;\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n}\n","<div\n    class=\"svg-text-template svg-text-template {{ option?.subFolder }} {{\n        option?.[label]?.trim()?.replace(' ', '')?.toLowerCase()\n    }} {{ inputConfig.customClass }}\"\n>\n    @if (!option?.isDriver) {\n        <svg-icon\n            [ngClass]=\"\n                option\n                    | inputDropdownSvgtextTemplateIcon: activeItem : inputConfig\n            \"\n            [src]=\"\n                option?.logoName\n                    | caSvg\n                        : inputConfig?.dropdownImageInput?.folder\n                        : inputConfig?.dropdownImageInput?.subFolder\n            \"\n            class=\"svgtext-template-logo {{\n                option?.[label]?.trim()?.replace(' ', '')?.toLowerCase()\n            }}\"\n        ></svg-icon>\n    }\n\n    @if (option.logoName && option?.isDriver) {\n        <img\n            [alt]=\"option?.[label]\"\n            [ngClass]=\"{\n                active: option.id === activeItem?.id,\n            }\"\n            [src]=\"option.logoName\"\n            [ngStyle]=\"{ 'margin-right': '6px' }\"\n            class=\"svg-template-logo\"\n        />\n    }\n\n    @if (!option.logoName && option?.isDriver) {\n        <div class=\"no-profile-image\" [ngStyle]=\"{ 'margin-right': '6px' }\">\n            <app-ca-profile-image\n                [indx]=\"0\"\n                [name]=\"option?.[label]!\"\n                [size]=\"'small'\"\n            >\n            </app-ca-profile-image>\n        </div>\n    }\n\n    <!-- Text -->\n    @if (inputConfig.statusStyle) {\n        <ca-load-status-string [status]=\"option\"></ca-load-status-string>\n    } @else {\n        <div\n            [innerHtml]=\"\n                option?.number\n                    ? (option.number\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: searchText,\n                                },\n                            ])\n                    : (option?.[label]\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: searchText,\n                                },\n                            ])\n            \"\n            [ngClass]=\"{\n                'truck-text': option?.subFolder === 'trucks',\n                'flex-1': option?.additionalText,\n            }\"\n            [ngStyle]=\"true ? (option?.[label]! | loadStatusColor) : {}\"\n            class=\"svgtext-template-text\"\n        ></div>\n    }\n\n    <!-- Additional Text -->\n    @if (option?.additionalText) {\n        <div\n            [innerHtml]=\"\n                option.additionalText\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            class=\"svgtext-template-text additional-text\"\n        ></div>\n    }\n\n    <!-- Plus Icon -->\n\n    @if (option?.[label] === 'ADD NEW') {\n        <svg-icon\n            class=\"plus-icon svg-size-14\"\n            [src]=\"inputDropdownSvgRoutes.plusSvg\"\n        ></svg-icon>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { LoadStatusColorPipe } from '../../../../pipes/load-status-color.pipe';\nimport {\n    InputDropdownSvgtextTemplateContainerPipe,\n    InputDropdownSvgtextTemplateIconPipe,\n} from '../../pipes';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\nimport { CaLoadStatusStringComponent } from '../../../ca-load-status-string/ca-load-status-string.component';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// configs\nimport { ICaInput } from '../../../ca-input-test/config';\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n// components\nimport { CaInputDropdownSvgtextTemplateItemComponent } from './ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svgtext-template',\n    templateUrl: './ca-input-dropdown-svgtext-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svgtext-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        CaLoadStatusStringComponent,\n        CaInputDropdownSvgtextTemplateItemComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n        LoadStatusColorPipe,\n        InputDropdownSvgtextTemplateIconPipe,\n        InputDropdownSvgtextTemplateContainerPipe,\n    ]\n})\nexport class CaInputDropdownSvgtextTemplateComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() inputConfig!: ICaInput;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option | inputDropdownSvgtextTemplateContainer: options : activeItem\n        \"\n        class=\"dropdown-option svg-text-template\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <ca-input-dropdown-svgtext-template-item\n            [activeItem]=\"activeItem\"\n            [option]=\"option\"\n            [inputConfig]=\"inputConfig\"\n            [searchText]=\"searchText\"\n            [label]=\"label\"\n        ></ca-input-dropdown-svgtext-template-item>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// component\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// models\nimport { ICaInput } from '../../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-svgtext-dispatch-template',\n    templateUrl: './ca-input-dropdown-svgtext-dispatch-template.component.html',\n    styleUrls: ['./ca-input-dropdown-svgtext-dispatch-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaProfileImageComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n    ]\n})\nexport class CaInputDropdownSvgtextDispatchTemplateComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() inputConfig!: ICaInput;\n    @Input() label!: keyof IOptionModel;\n\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result': option?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            active: option.id === activeItem?.id,\n            'all-assigned': option?.[label]?.toLowerCase() === 'all assigned',\n            trailerContainer: option?.[label] === 'Container',\n            lowboyrgn: option?.[label] === 'Low Boy / RGN',\n        }\"\n        class=\"dropdown-option svg-text-template {{ option?.subFolder }} {{\n            option?.[label]?.trim()?.replace(' ', '')?.toLowerCase()\n        }} {{ inputConfig.customClass }}\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        @if (!option?.isDriver) {\n            <svg-icon\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                    'no-svg': !option?.logoName,\n                    'hazardous-svg': option?.logoName?.includes('hazardous'),\n                    'truck-trailer-logo':\n                        inputConfig.customClass === 'truck-trailer-dropdown',\n                    blue: option.class === 'blue',\n                    yellow: option.class === 'yellow',\n                    green: option.class === 'green',\n                    red: option.class === 'red',\n                }\"\n                [src]=\"\n                    option?.logoName\n                        | caSvg\n                            : inputConfig?.dropdownImageInput?.folder \n                            : inputConfig?.dropdownImageInput?.subFolder\n                \"\n                class=\"icon svgtext-template-logo {{\n                    option?.[label]?.trim()?.replace(' ', '')?.toLowerCase()\n                }}\"\n            ></svg-icon>\n        }\n\n        @if (option.logoName && option?.isDriver) {\n            <img\n                [alt]=\"option?.[label]\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n                [src]=\"option.logoName\"\n                [ngStyle]=\"{ 'margin-right': '6px' }\"\n                class=\"svg-template-logo\"\n            />\n        }\n\n        @if (!option.logoName && option?.isDriver) {\n            <div class=\"no-profile-image\" [ngStyle]=\"{ 'margin-right': '6px' }\">\n                <app-ca-profile-image\n                    [indx]=\"0\"\n                    [name]=\"option?.[label]!\"\n                    [size]=\"'small'\"\n                >\n                </app-ca-profile-image>\n            </div>\n        }\n\n        <!-- Text -->\n\n        <div\n            [innerHtml]=\"\n                option?.number\n                    ? (option.number\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: searchText,\n                                },\n                            ])\n                    : (option?.[label]\n                      | caHighlight\n                          : [\n                                {\n                                    index: 45632,\n                                    text: searchText,\n                                },\n                            ])\n            \"\n            [ngClass]=\"{\n                'truck-text': option?.subFolder === 'trucks',\n                'flex-1': option?.additionalText,\n            }\"\n            class=\"svgtext-template-text\"\n        ></div>\n\n        <!-- Additional Text -->\n\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n\n        @if (option?.[label] === 'ADD NEW') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-groups',\n    templateUrl: './ca-input-dropdown-groups.component.html',\n    styleUrls: ['./ca-input-dropdown-groups.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownGroupsComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        [ngClass]=\"{ 'last-group': i === options.length - 1 }\"\n        class=\"dropdown-groups\"\n    >\n        @if (options.length !== 1 && options[0]?.[label] !== 'No Results') {\n            <p class=\"dropdown-group-header\">\n                {{ option.groupName }}\n            </p>\n        }\n\n        @for (item of option.items; track item.id) {\n            <div\n                (click)=\"onActiveItemEmit(item)\"\n                [ngClass]=\"{\n                    'no-result':\n                        options.length === 1 && item?.name === 'No Results',\n                }\"\n                class=\"dropdown-subgroup-options\"\n            >\n                <div\n                    [innerHtml]=\"\n                        item?.name\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: searchText,\n                                      },\n                                  ]\n                    \"\n                    [ngClass]=\"{\n                        active: item.id === activeItem?.id,\n                        'no-result':\n                            options.length === 1 && item?.name === 'No Results',\n                    }\"\n                    class=\"dropdown-subgroup-text\"\n                ></div>\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-multiselect',\n    templateUrl: './ca-input-dropdown-multiselect.component.html',\n    styleUrls: ['./ca-input-dropdown-multiselect.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownMultiselectComponent {\n    @Input() options!: IOptionModel[];\n    @Input() lastActiveMultiselectItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onMultiselectSelect = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onMultiselectSelectEmit(option: IOptionModel) {\n        this.onMultiselectSelect.emit(option);\n    }\n}\n","@for (option of options; track option.id; let indx = $index) {\n    <div\n        (click)=\"onMultiselectSelectEmit(option)\"\n        [innerHtml]=\"\n            option?.[label]\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            active: option?.active,\n            'last-active': lastActiveMultiselectItem?.id === option.id,\n        }\"\n        class=\"dropdown-option\"\n        [class.dropdown-option-hovered]=\"indx == inputHoveredItem\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownLabelClassPipe } from '../../pipes';\n\n// models\nimport { ICaInput } from '../../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n// directives\nimport { HoverSvgDirective } from '../../../../directives/hover-svg-directives';\n\n@Component({\n    selector: 'app-ca-input-dropdown-labels',\n    templateUrl: './ca-input-dropdown-labels.component.html',\n    styleUrls: ['./ca-input-dropdown-labels.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownLabelClassPipe,\n        // Directive\n        HoverSvgDirective\n    ]\n})\nexport class CaInputDropdownLabelsComponent {\n  @Input() options!: IOptionModel[];\n  @Input() activeItem!: IOptionModel | null;\n  @Input() searchText!: string;\n  @Input() inputConfig!: ICaInput;\n  @Input() labelMode!: 'Label' | 'Color';\n  @Input() canAddNew!: boolean;\n  @Input() label!: keyof IOptionModel;\n\n  @Output() onActiveItem = new EventEmitter<IOptionModel>();\n   @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n  \n      @Input() set inputHoveredItem(val: number) {\n          this._inputHoveredItem = val;\n          if (val > -1) {\n              this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                  behavior: 'smooth',\n                  block: 'nearest',\n              });\n          }\n      }\n  \n      _inputHoveredItem: number = -1;\n  \n      public get inputHoveredItem() {\n          return this._inputHoveredItem;\n      }\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n  \n  public onActiveItemEmit(option: IOptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; track option.id; let indx = $index) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"\n            option\n                | inputDropdownLabelClass\n                    : options\n                    : activeItem\n                    : labelMode\n                    : inputConfig\n        \"\n        class=\"dropdown-option labels-template\"\n        [class.dropdown-option-hovered]=\"indx == inputHoveredItem\"\n    >\n        @if (!['no-results', 'add-new'].includes(option?.type!)) {\n            <div class=\"labels-template-left-side\">\n                <svg-icon\n                    [fillHover]=\"option?.hoverCode ?? null\"\n                    [fill]=\"option?.code ? option?.code?.toString() : '#b7b7b7'\"\n                    appHoverSvg\n                    class=\"labels-template-logo\"\n                    [src]=\"inputDropdownSvgRoutes.dynamicLabelSvg\"\n                ></svg-icon>\n                <div class=\"labels-template-vertical-divider\"></div>\n            </div>\n        }\n        <div class=\"labels-template-right-side\">\n            <div\n                [innerHtml]=\"\n                    option?.[label]\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n                [ngClass]=\"{\n                    'add-new': option?.[label] === 'ADD NEW',\n                    'no-result':\n                        options.length === 1 &&\n                        options[0]?.[label] === 'No Results',\n                    'lable-text-wrap':\n                        inputConfig.customClass === 'input-dropdown-table',\n                }\"\n                class=\"labels-template-text\"\n            ></div>\n            @if (!['no-results', 'add-new'].includes(option?.type!)) {\n                <div\n                    [ngClass]=\"{\n                        'dont-show-counter':\n                            !canAddNew &&\n                            inputConfig.customClass === 'input-dropdown-table',\n                    }\"\n                    class=\"labels-template-counter\"\n                >\n                    {{ option.count }}\n                </div>\n            }\n        </div>\n    </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n@Component({\n    selector: 'ca-input-dropdown-load-broker-contact-item',\n    imports: [\n        // Module\n        CommonModule,\n        // Pipe\n        HighlightSearchPipe,\n    ],\n    templateUrl: './ca-input-dropdown-load-broker-contact-item.component.html',\n    styleUrl: './ca-input-dropdown-load-broker-contact-item.component.scss'\n})\nexport class CaInputDropdownLoadBrokerContactItemComponent {\n    @Input() item!: IOptionModel;\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() isShowNoresult: boolean = false;\n    @Input() isInOption: boolean = false;\n}\n","<div class=\"dropdown-subgroup-options\" [class.selected-option]=\"isInOption\">\n    <!-- Left Side -->\n    <div\n        [innerHtml]=\"\n            item?.fullName\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            'no-result': isShowNoresult,\n            active: item.id === activeItem?.id,\n        }\"\n        class=\"dropdown-subgroup-text\"\n    ></div>\n    <!-- Right Side -->\n    <div\n        [innerHtml]=\"\n            item.phone\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            active: item.id === activeItem?.id,\n        }\"\n        class=\"dropdown-subgroup-text dropdown-subgroup-additional-text\"\n    ></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// components\nimport { CaInputDropdownLoadBrokerContactItemComponent } from './ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-broker-contact',\n    templateUrl: './ca-input-dropdown-load-broker-contact.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-contact.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        // components\n        CaInputDropdownLoadBrokerContactItemComponent,\n    ]\n})\nexport class CaInputDropdownLoadBrokerContactComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track $index; let i = $index) {\n    @let optionIndex = (option?.contacts?.length ?? 1) - 1;\n    <div\n        [ngClass]=\"{ 'last-group': i === options.length - 1 }\"\n        class=\"load-broker-contact-groups\"\n    >\n        @if (options[0]?.name !== 'No Results') {\n            <p\n                (click)=\"onActiveItemEmit(option)\"\n                [ngClass]=\"{\n                    'add-new': option?.[label] === 'ADD NEW',\n                }\"\n                class=\"dropdown-group-header\"\n            >\n                {{\n                    option?.[label] === 'ADD NEW'\n                        ? option?.[label]\n                        : option?.department?.name\n                }}\n            </p>\n        }\n\n        @for (item of option?.contacts; track item.id; let indx = $index) {\n            @let optionContactIndex = optionIndex + indx;\n            <div\n                #dropdownOption\n                (click)=\"onActiveItemEmit(item)\"\n                [ngClass]=\"{\n                    'no-result':\n                        options.length === 1 && item?.name === 'No Results',\n                }\"\n                [class.dropdown-option-hovered]=\"\n                    optionContactIndex == inputHoveredItem\n                \"\n            >\n                <ca-input-dropdown-load-broker-contact-item\n                    [activeItem]=\"activeItem\"\n                    [item]=\"item\"\n                    [searchText]=\"searchText\"\n                    [isShowNoresult]=\"\n                        options.length === 1 && item?.name === 'No Results'\n                    \"\n                ></ca-input-dropdown-load-broker-contact-item>\n            </div>\n        }\n    </div>\n}\n","import { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../../interfaces/input-dropdown-option.interface';\n@Component({\n    selector: 'app-ca-input-dropdown-load-shipper-item',\n    templateUrl: './ca-input-dropdown-load-broker-shipper-item.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-shipper-item.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerShipperItemComponent {\n  @Input() option!: IOptionModel;\n  @Input() searchText!: string;\n  @Input() activeItem!: IOptionModel | null;\n  @Input() isInOption: boolean = false;\n  @Input() label!: keyof IOptionModel;\n}","<div class=\"load-shipper-template\">\n    <div class=\"load-shipper-status-text\" [class.dropdown-option]=\"isInOption\">\n        @if (option?.[label] !== 'ADD NEW' && option.logoName) {\n            <svg-icon\n                [src]=\"option.logoName\"\n                class=\"load-shipper-status\"\n            ></svg-icon>\n        }\n        <div\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            [ngStyle]=\"{\n                overflow: 'hidden',\n                'text-overflow': 'ellipsis',\n                'white-space': 'nowrap',\n            }\"\n            class=\"load-shipper-text\"\n        ></div>\n\n        @if (\n            !['ADD NEW', 'No Results'].includes(option?.[label]!) &&\n            option.loadsCount\n        ) {\n            <div\n                [ngClass]=\"{ active: option.id === activeItem?.id }\"\n                class=\"load-shipper-load-counter\"\n            >\n                {{ option.loadsCount }}\n            </div>\n        }\n    </div>\n\n    @if (!['ADD NEW', 'No Results'].includes(option?.[label]!)) {\n        <div\n            [innerHtml]=\"\n                option.address.address\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            [ngClass]=\"{ active: option.id === activeItem?.id }\"\n        ></div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CaInputDropdownLoadBrokerShipperItemComponent } from './ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component';\n\n@Component({\n    selector: 'app-ca-input-dropdown-load-shipper',\n    templateUrl: './ca-input-dropdown-load-broker-shipper.component.html',\n    styleUrls: ['./ca-input-dropdown-load-broker-shipper.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Components\n        CaInputDropdownLoadBrokerShipperItemComponent,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownLoadBrokerShipperComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled || option.status === 0,\n            'no-result':\n                options.length === 1 && options[0]?.type === 'no-results',\n            'add-new': option?.type === 'add-new',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <app-ca-input-dropdown-load-shipper-item\n            [activeItem]=\"activeItem\" \n            [searchText]=\"searchText\"\n            [option]=\"option\"\n            [label]=\"label\"\n        ></app-ca-input-dropdown-load-shipper-item>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-text-counter',\n    templateUrl: './ca-input-dropdown-text-counter.component.html',\n    styleUrls: ['./ca-input-dropdown-text-counter.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownTextCounterComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            active:\n                option.id ===\n                (activeItem?.duplicateId\n                    ? activeItem?.duplicateId\n                    : activeItem?.id),\n        }\"\n        class=\"dropdown-option dropdown-option-text-counter\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <span\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n        >\n        </span>\n        @if (\n            option?.[label] !== 'ADD NEW' && option?.[label] !== 'No Results'\n        ) {\n            <span [innerHtml]=\"option.count\" class=\"option-counter\"> </span>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-double-text-template',\n    templateUrl: './ca-input-dropdown-double-text-template.component.html',\n    styleUrls: ['./ca-input-dropdown-double-text-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownDoubleTextTemplateComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            'all-assigned': option?.[label]?.toLowerCase() === 'all assigned',\n        }\"\n        class=\"dropdown-option dropdown-double-text-option\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <!-- First Text -->\n        <div\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            class=\"svgtext-template-text\"\n        ></div>\n\n        <!-- Additional Text -->\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n        @if (option?.[label] === 'ADD NEW') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-triple-text-template',\n    templateUrl: './ca-input-dropdown-triple-text-template.component.html',\n    styleUrls: ['./ca-input-dropdown-triple-text-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownTripleTextTemplateComponent {\n  @Input() options!: IOptionModel[];\n  @Input() activeItem!: IOptionModel | null;\n  @Input() searchText!: string;\n  @Input() label!: keyof IOptionModel;\n\n   @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n  \n      @Input() set inputHoveredItem(val: number) {\n          this._inputHoveredItem = val;\n          if (val > -1) {\n              this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                  behavior: 'smooth',\n                  block: 'nearest',\n              });\n          }\n      }\n  \n      _inputHoveredItem: number = -1;\n  \n      public get inputHoveredItem() {\n          return this._inputHoveredItem;\n      }\n\n  @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n  public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n  constructor() {}\n\n  public onActiveItemEmit(option: IOptionModel): void {\n    this.onActiveItem.emit(option);\n  }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            'dropdown-triple-column-option-add-new':\n                option?.[label] === 'ADD NEW',\n        }\"\n        class=\"dropdown-option dropdown-triple-column-option\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <div\n            [innerHtml]=\"\n                option.number\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-option-text\"\n        ></div>\n\n        <div\n            [innerHtml]=\"\n                option.brand\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-text\"\n        ></div>\n\n        <div\n            [innerHtml]=\"\n                option.account\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            class=\"dropdown-triple-column-text\"\n        ></div>\n\n        <!-- Plus Icon -->\n        <svg-icon\n            class=\"plus-icon svg-size-14\"\n            [src]=\"inputDropdownSvgRoutes.plusSvg\"\n        ></svg-icon>\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { ICaInput } from '../../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { InputDropdownDefaultTemplateClassPipe } from '../../pipes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-default-template',\n    templateUrl: './ca-input-dropdown-default-template.component.html',\n    styleUrls: ['./ca-input-dropdown-default-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownDefaultTemplateClassPipe,\n    ]\n})\nexport class CaInputDropdownDefaultTemplateComponent {\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() inputConfig!: ICaInput;\n    @Input() label!: keyof IOptionModel;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track (option.id || $index); let i = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [innerHtml]=\"\n            (option?.[label] ?? option)\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n        [ngClass]=\"\n            option\n                | inputDropdownDefaultTemplateClass\n                    : options\n                    : activeItem\n                    : inputConfig\n                    : label\n        \"\n        class=\"dropdown-option\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { InputDropdownFuelFranchiseClassPipe } from '../../pipes';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-fuel-franchise',\n    templateUrl: './ca-input-dropdown-fuel-franchise.component.html',\n    styleUrls: ['./ca-input-dropdown-fuel-franchise.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n        InputDropdownFuelFranchiseClassPipe,\n    ]\n})\nexport class CaInputDropdownFuelFranchiseComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() toggleNestedList = new EventEmitter<IOptionModel>();\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n    @Output() onActiveItemGroup = new EventEmitter<{\n        option: IOptionModel;\n        group: any;\n    }>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemGroupEmit(option: IOptionModel, store: any): void {\n        this.onActiveItemGroup.emit({ option, group: store });\n    }\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n\n    public toggleNestedListEmit(option: IOptionModel): void {\n        this.toggleNestedList.emit(option);\n    }\n}\n","@for (option of options; track option.id; let i = $index) {\n    <div\n        #dropdownOption\n        [ngClass]=\"option | inputDropdownFuelFranchiseClass: options\"\n        class=\"dropdown-option dropdown-option-fuel-franchise\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <!-- Hover Container -->\n        <div class=\"helper-hover-container\"></div>\n\n        <!-- Franchise Header -->\n        <div\n            (click)=\"onActiveItemEmit(option); toggleNestedListEmit(option)\"\n            (mouseenter)=\"option.hover = true\"\n            (mouseleave)=\"option.hover = false\"\n            class=\"fuel-franchise-header\"\n        >\n            <span\n                [innerHtml]=\"\n                    option[label]\n                        | caHighlight: [{ index: 45632, text: searchText }]\n                \"\n                class=\"fuel-franchise-main-header\"\n            ></span>\n            @if (option.isFranchise) {\n                <div class=\"fuel-franchise-header-right-side\">\n                    @if (\n                        option?.[label] !== 'ADD NEW' &&\n                        option?.[label] !== 'No Results'\n                    ) {\n                        <span class=\"option-counter\">\n                            {{ option.count }}\n                        </span>\n                    }\n                    <svg-icon\n                        [ngClass]=\"{ rotate: option.open }\"\n                        class=\"header-arrow\"\n                        [src]=\"inputDropdownSvgRoutes.arrowDownUpdatedSvg\"\n                    ></svg-icon>\n                </div>\n            }\n        </div>\n\n        <!-- Franchise Stores -->\n        @if (option.isFranchise && option.open) {\n            <div\n                [ngClass]=\"{ scroll: option!.stores!.length > 7 }\"\n                class=\"fuel-franchise-stores\"\n            >\n                @for (store of option.stores; let indx = $index; track indx) {\n                    <div\n                        (click)=\"onActiveItemGroupEmit(option, store)\"\n                        [ngClass]=\"{ active: activeItem?.id === store?.id }\"\n                        class=\"fuel-franchise-single-store\"\n                    >\n                        <span\n                            [innerHtml]=\"\n                                store?.name\n                                    | caHighlight\n                                        : [{ index: 45632, text: searchText }]\n                            \"\n                            class=\"fuel-franchise-store-name\"\n                        ></span>\n                        <span\n                            [innerHtml]=\"\n                                store?.address\n                                    | caHighlight\n                                        : [{ index: 45632, text: searchText }]\n                            \"\n                            class=\"fuel-franchise-store-address\"\n                        ></span>\n                    </div>\n                }\n            </div>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n    selector: 'app-ca-input-dropdown-dispatch',\n    templateUrl: './ca-input-dropdown-dispatch.component.html',\n    styleUrls: ['./ca-input-dropdown-dispatch.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownDispatchComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    // For Dispatchboard hover options\n    public hoveredOption: number = -1;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}","@for (option of options; let indx = $index; track option.id;) {\n    <div\n        (click)=\"onActiveItemEmit(option)\"\n        (mouseleave)=\"hoveredOption = -1\"\n        (mouseover)=\"hoveredOption = indx\"\n        [innerHtml]=\"\n            option?.[label]\n                | caHighlight\n                    : [\n                          {\n                              index: 45632,\n                              text: searchText,\n                          },\n                      ]\n        \"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            active: option.id === activeItem?.id,\n            'active-repair-truck-trailer': option?.status === 1,\n        }\"\n        [ngStyle]=\"{\n            'background-color':\n                hoveredOption == indx ? '#' + option.colorD : 'inherit',\n            color: hoveredOption != indx ? '#' + option.colorD : '#fff',\n        }\"\n        class=\"dropdown-option\"\n        [class.dropdown-option-hovered]=\"indx == inputHoveredItem\"\n    ></div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\n\n// component\nimport { CaLoadStatusStringComponent } from '../../../ca-load-status-string/ca-load-status-string.component';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-details-template',\n    templateUrl: './ca-input-dropdown-details-template.component.html',\n    styleUrls: ['./ca-input-dropdown-details-template.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Component\n        CaLoadStatusStringComponent,\n        // Pipe\n        HighlightSearchPipe,\n        CaSvgPipe,\n    ]\n})\nexport class CaInputDropdownDetailsTemplateComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() sort!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    // For Dispatchboard hover options\n    public hoveringIndex!: number;\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; let i = $index; track option.id) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        (mouseenter)=\"hoveringIndex = i\"\n        (mouseleave)=\"hoveringIndex = -1\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0]?.[label] === 'No Results',\n            'add-new': option?.[label] === 'ADD NEW',\n            'all-assigned': option?.[label]?.toLowerCase() === 'all assigned',\n            'load-details-template': option?.status?.statusString,\n        }\"\n        class=\"dropdown-option details-template\"\n        [class.dropdown-option-hovered]=\"i == inputHoveredItem\"\n    >\n        <div\n            [innerHtml]=\"\n                option?.[label]\n                    | caHighlight\n                        : [\n                              {\n                                  index: 45632,\n                                  text: searchText,\n                              },\n                          ]\n            \"\n            [ngClass]=\"{\n                active: sort === 'active-drivers' && option?.status === 1,\n            }\"\n            class=\"details-template-text\"\n        ></div>\n\n        <!-- Svg -->\n\n        @if (option?.svg) {\n            <svg-icon\n                [src]=\"option?.svg | caSvg: option?.folder\"\n                class=\"details-template-logo\"\n            ></svg-icon>\n        }\n\n        @if (option?.status?.statusString) {\n            <p class=\"m-0 additional-text\">\n                @if (i === hoveringIndex) {\n                    ${{ option?.totalBill }}K\n                } @else {\n                    {{ option?.referenceNumber }}\n                }\n            </p>\n        }\n\n        <!-- Driver & Load Details Template -->\n\n        @if (option?.address?.address || option?.status?.statusString) {\n            <div\n                class=\"d-flex align-items-center driver-details-template-container\"\n            >\n                <div class=\"d-flex align-items-center left-box\">\n                    <p class=\"m-0\">\n                        @if (i === hoveringIndex) {\n                            @if (option?.address?.address) {\n                                {{ option?.totalMiles }} mi\n                            }\n                        } @else {\n                            @if (option?.address?.address) {\n                                {{ option?.address?.city }},\n                                {{ option?.address?.stateShortName }}\n                            }\n                        }\n                    </p>\n                </div>\n\n                <div class=\"d-flex align-items-center right-box\">\n                    <p class=\"m-0\">\n                        @if (i === hoveringIndex) {\n                            @if (option?.address?.address) {\n                                ${{ option?.totalEarnings }}K\n                            } @else {\n                                {{ option?.brokerName }}\n                            }\n                        } @else {\n                            @if (option?.address?.address) {\n                                {{ option?.hiredAt }}\n                            } @else {\n                                <ca-load-status-string\n                                    [isDropdownColor]=\"true\"\n                                    [status]=\"{\n                                        name: option?.status?.statusString,\n                                        valueForRequest:\n                                            option?.status?.statusValue?.name,\n                                    }\"\n                                    [statusOrder]=\"{\n                                        type: option.stopType!,\n                                        stopOrder:\n                                            option?.status?.statusCheckInNumber,\n                                    }\"\n                                ></ca-load-status-string>\n                            }\n                        }\n                    </p>\n                </div>\n            </div>\n        }\n\n        <!-- Additional Text -->\n        @if (option?.additionalText) {\n            <div\n                [innerHtml]=\"\n                    option.additionalText\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n            ></div>\n        }\n\n        <!-- Plus Icon -->\n\n        @if (option?.[label] === 'ADD NEW') {\n            <svg-icon\n                class=\"plus-icon svg-size-14\"\n                [src]=\"inputDropdownSvgRoutes.plusSvg\"\n            ></svg-icon>\n        }\n    </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    QueryList,\n    ViewChildren,\n} from '@angular/core';\n\n// pipes\nimport { HighlightSearchPipe } from '../../../../pipes/highlight-search.pipe';\n\n// interfaces\nimport { IOptionModel } from '../../interfaces/input-dropdown-option.interface';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from '../../utils/svg-routes/input-dropdown-svg-routes';\n\n@Component({\n    selector: 'app-ca-input-dropdown-payroll-trucks',\n    templateUrl: './ca-input-dropdown-payroll-trucks.component.html',\n    styleUrls: ['./ca-input-dropdown-payroll-trucks.component.scss'],\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        // Pipe\n        HighlightSearchPipe,\n    ]\n})\nexport class CaInputDropdownPayrollTrucksComponent {\n    @Input() options!: IOptionModel[];\n    @Input() activeItem!: IOptionModel | null;\n    @Input() searchText!: string;\n    @Input() label!: keyof IOptionModel;\n\n    @ViewChildren('dropdownOption') dropdownOption!: QueryList<ElementRef>;\n\n    @Input() set inputHoveredItem(val: number) {\n        this._inputHoveredItem = val;\n        if (val > -1) {\n            this.dropdownOption?.get(val)?.nativeElement.scrollIntoView({\n                behavior: 'smooth',\n                block: 'nearest',\n            });\n        }\n    }\n\n    _inputHoveredItem: number = -1;\n\n    public get inputHoveredItem() {\n        return this._inputHoveredItem;\n    }\n\n    @Output() onActiveItem = new EventEmitter<IOptionModel>();\n\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n\n    constructor() {}\n\n    public onActiveItemEmit(option: IOptionModel): void {\n        this.onActiveItem.emit(option);\n    }\n}\n","@for (option of options; track option.id; let indx = $index) {\n    <div\n        #dropdownOption\n        (click)=\"onActiveItemEmit(option)\"\n        [ngClass]=\"{\n            disabled: option?.disabled,\n            'no-result':\n                options.length === 1 && options[0].name === 'No Results',\n            active: option.id === activeItem?.id,\n        }\"\n        class=\"dropdown-option dropdown-double-text-option load-dispatches-ttd-template payroll-trucks\"\n        [class.dropdown-option-hovered]=\"indx == inputHoveredItem\"\n    >\n        <!-- No Results -->\n        @if (options.length === 1 && options[0].name === 'No Results') {\n            <div\n                [innerHtml]=\"\n                    option?.[label]\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n            ></div>\n        }\n\n        @if (options[0].name !== 'No Results') {\n            <!-- Truck -->\n            <div\n                class=\"load-dispatches-container d-flex {{\n                    option?.subFolder\n                }} {{\n                    option?.truckType?.name\n                        ?.trim()\n                        ?.replace(' ', '')\n                        ?.toLowerCase()\n                }}\"\n            >\n                <svg-icon\n                    class=\"load-dispatches-svg\"\n                    [src]=\"\n                        option?.logoName\n                            ? inputDropdownSvgRoutes.trucksSvgRoute +\n                              option?.logoName\n                            : ''\n                    \"\n                ></svg-icon>\n                <div\n                    [innerHtml]=\"\n                        option?.[label]\n                            | caHighlight\n                                : [\n                                      {\n                                          index: 45632,\n                                          text: searchText,\n                                      },\n                                  ]\n                    \"\n                    class=\"load-dispatch-truck\"\n                ></div>\n            </div>\n        }\n\n        @if (option?.suffix) {\n            <!-- Additional Text -->\n            <div\n                [innerHtml]=\"\n                    option?.suffix\n                        | caHighlight\n                            : [\n                                  {\n                                      index: 45632,\n                                      text: searchText,\n                                  },\n                              ]\n                \"\n                class=\"svgtext-template-text additional-text\"\n                [ngClass]=\"{\n                    active: option.id === activeItem?.id,\n                }\"\n            ></div>\n        }\n    </div>\n}\n","export enum DropdownTemplateTypeEnum {\n  SVG_TEMPLATE = 'svg-template',\n  SVGTEXT_TEMPLATE = 'svgtext-template',\n  SVGTEXT_DISPATCH_TEMPLATE = 'svgtext-dispatch-template',\n  DETAILS_TEMPLATE = 'details-template',\n  GROUPS = 'groups',\n  MULTISELECT = 'multiselect',\n  LABELS = 'labels',\n  DISPATCH = 'dispatch',\n  LOAD_DISPATCHER = 'load-dispatcher',\n  LOAD_DISPATCHES_TTD = 'load-dispatches-ttd',\n  LOAD_BROKER = 'load-broker',\n  LOAD_BROKER_CONTACT = 'load-broker-contact',\n  LOAD_SHIPPER = 'load-shipper',\n  TEXT_COUNTER = 'text-counter',\n  FUEL_FRANCHISE = 'fuel-franchise',\n  DOUBLE_TEXT_TEMPLATE = 'double-text-template',\n  DOUBLE_COLUMN_TEMPLATE = 'double-column-template',\n  TRIPLE_COLUMN_TEMPLATE = 'triple-column-template',\n  PAYROLL_TRUCKS = 'payroll-trucks'\n}\n","export enum DropdownStringEnum {\n  NO_RESULTS = 'No Results',\n  ADD_NEW = 'ADD NEW',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// enums\nimport { DropdownStringEnum, DropdownTemplateTypeEnum } from '../enums';\n\n// config\nimport { ICaInput } from '../../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from '../interfaces/input-dropdown-option.interface';\n\n@Pipe({\n    name: 'caDropdownOptionsPipe',\n    standalone: true,\n})\nexport class DropdownOptionsPipe implements PipeTransform {\n    transform(\n        searchText: string,\n        options: IOptionModel[],\n        inputConfig: ICaInput,\n        canAddNew: boolean,\n        label: string,\n        sort: string,\n        template: string\n    ): any {\n        let filteredOptions = options.map((option) =>\n            label ? { ...option } : option\n        );\n\n        filteredOptions = filteredOptions.filter((item) => {\n            let filterItem = inputConfig.searchinGroupIndex\n                ? item[inputConfig.searchinGroupIndex as keyof IOptionModel]\n                : item;\n\n            if (typeof filterItem?.length !== 'undefined') {\n                const filteredGroup = [\n                    ...(filterItem as IOptionModel[]),\n                ].filter((item) => {\n                    const value = this.getValue(label, item, template);\n\n                    return value\n                        .toLowerCase()\n                        .includes(searchText.toLowerCase());\n                });\n\n                item[inputConfig.searchinGroupIndex as keyof IOptionModel] =\n                    filteredGroup;\n\n                return filteredGroup.length;\n            } else {\n                const value = this.getValue(label, item, template);\n                if (value === DropdownStringEnum.ADD_NEW) return true;\n\n                return value.toLowerCase().includes(searchText.toLowerCase());\n            }\n        });\n\n        // Get sorted value if there is any\n        filteredOptions = this.getSortedOptions(sort, filteredOptions);\n\n        if (canAddNew) {\n            return [\n                {\n                    id: 7655,\n                    [label]: DropdownStringEnum.ADD_NEW,\n                    type: 'add-new',\n                },\n                ...filteredOptions,\n            ];\n        }\n\n        return filteredOptions.length\n            ? filteredOptions\n            : [\n                  {\n                      id: 7654,\n                      [label]: DropdownStringEnum.NO_RESULTS,\n                      type: 'no-results',\n                  },\n              ];\n    }\n\n    public getSortedOptions(sort: string, options: IOptionModel[]) {\n        // I added a switch for now, probably there will be more options later\n        switch (sort) {\n            case 'active-drivers': {\n                return options.sort(\n                    (x, y) => Number(y.status) - Number(x.status)\n                );\n            }\n        }\n\n        return options;\n    }\n\n    public getValue(label: string, item: IOptionModel, template: string) {\n        if (!label) return item.toString() as string;\n        switch (template) {\n            case DropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD:\n                return `${item.truck?.truckNumber} ${item.trailer?.trailerNumber} ${item.driver?.firstName} ${item.driver?.lastName}`;\n            default:\n                return label\n                    ? (item[label as keyof IOptionModel] as string)\n                    : (item as string);\n        }\n    }\n}\n","import { ChangeDetectorRef, Renderer2, ViewEncapsulation } from '@angular/core';\nimport {\n    AfterViewInit,\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Self,\n    ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n    debounceTime,\n    distinctUntilChanged,\n    skip,\n    Subject,\n    takeUntil,\n} from 'rxjs';\n\n// bootstrap\nimport {\n    NgbPopover,\n    NgbPopoverModule,\n    NgbModule,\n} from '@ng-bootstrap/ng-bootstrap';\n\n// animation\nimport { inputDropdownAnimation } from './animations';\n\n// components\nimport { CaInputDropdownLoadBrokerComponent } from './components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component';\nimport { CaInputDropdownLoadDispatchesTtdComponent } from './components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component';\nimport { CaInputDropdownLoadDispatcherComponent } from './components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component';\nimport { CaInputDropdownSvgTemplateComponent } from './components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component';\nimport { CaInputDropdownSvgtextTemplateComponent } from './components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component';\nimport { CaInputDropdownSvgtextDispatchTemplateComponent } from './components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component';\nimport { CaInputDropdownGroupsComponent } from './components/ca-input-dropdown-groups/ca-input-dropdown-groups.component';\nimport { CaInputDropdownMultiselectComponent } from './components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component';\nimport { CaInputDropdownLabelsComponent } from './components/ca-input-dropdown-labels/ca-input-dropdown-labels.component';\nimport { CaInputDropdownLoadBrokerContactComponent } from './components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component';\nimport { CaInputDropdownLoadBrokerShipperComponent } from './components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component';\nimport { CaInputDropdownTextCounterComponent } from './components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component';\nimport { CaInputDropdownDoubleTextTemplateComponent } from './components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component';\nimport { CaInputDropdownTripleTextTemplateComponent } from './components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component';\nimport { CaInputDropdownDefaultTemplateComponent } from './components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component';\nimport { CaInputDropdownFuelFranchiseComponent } from './components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component';\nimport { CaInputDropdownDispatchComponent } from './components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component';\nimport { CaInputDropdownDetailsTemplateComponent } from './components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component';\nimport { CaInputDropdownPayrollTrucksComponent } from './components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component';\nimport { CaInputDropdownLoadDispatchesTtdComponentItem } from './components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item';\nimport { CaInputDropdownLoadBrokerComponentItem } from './components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component';\nimport { CaInputDropdownLoadBrokerShipperItemComponent } from './components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component';\nimport { CaInputDropdownLoadDispatcherItemComponent } from './components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component';\n\n// pipes\nimport { FormControlPipe } from '../ca-input/pipes';\nimport {\n    DropdownCountPipe,\n    InputDropdownGetIconsPipe,\n    InputDropdownMultiselectClassPipe,\n} from './pipes';\nimport { DropdownOptionsPipe } from './pipes/dropdown-options.pipe';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// directives\nimport {\n    ControlValueAccessor,\n    FormControl,\n    FormsModule,\n    NgControl,\n    ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { CommandsEvent } from '../ca-input/models';\n\n// types\nimport {\n    AbstractControlWithNotFoundType,\n    FormControlWithNotFoundType,\n} from './types';\nimport { SelectDropdownValueType } from './types/select-dropdown-value.type';\n\n// svg routes\nimport { InputDropdownSvgRoutes } from './utils/svg-routes/input-dropdown-svg-routes';\n\n// enums\nimport { DropdownStringEnum, DropdownTemplateTypeEnum } from './enums';\n\n// helpers\nimport { uuidv4 } from '../../utils/helpers';\n\n// classes\nimport { EventInputManager } from '../ca-input/base-classes/ca-input-event-manager';\n\n// components\nimport { InputTestComponent } from '../ca-input-test/input-test.component';\nimport { CaInputDropdownLoadBrokerContactItemComponent } from './components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component';\n\n// config\nimport { ICaInput } from '../ca-input-test/config';\n\n// interfaces\nimport { IOptionModel } from './interfaces/input-dropdown-option.interface';\n@Component({\n    selector: 'ca-input-dropdown-test',\n    templateUrl: './ca-input-dropdown-test.component.html',\n    styleUrls: ['./ca-input-dropdown-test.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [FormControlPipe],\n    animations: [inputDropdownAnimation('showHideDropdownOptions')],\n    imports: [\n        // Module\n        CommonModule,\n        FormsModule,\n        NgbPopoverModule,\n        ReactiveFormsModule,\n        NgbModule,\n        AngularSvgIconModule,\n        // Component\n        CaInputDropdownSvgtextTemplateComponent,\n        CaInputDropdownSvgtextDispatchTemplateComponent,\n        CaInputDropdownGroupsComponent,\n        CaInputDropdownMultiselectComponent,\n        CaInputDropdownLabelsComponent,\n        CaInputDropdownLoadBrokerComponent,\n        CaInputDropdownLoadDispatchesTtdComponent,\n        CaInputDropdownLoadDispatcherComponent,\n        CaInputDropdownLoadBrokerContactComponent,\n        CaInputDropdownLoadBrokerShipperComponent,\n        CaInputDropdownTextCounterComponent,\n        CaInputDropdownDoubleTextTemplateComponent,\n        CaInputDropdownTripleTextTemplateComponent,\n        CaInputDropdownDefaultTemplateComponent,\n        CaInputDropdownFuelFranchiseComponent,\n        CaInputDropdownDispatchComponent,\n        CaInputDropdownDetailsTemplateComponent,\n        CaInputDropdownPayrollTrucksComponent,\n        CaInputDropdownSvgTemplateComponent,\n        InputTestComponent,\n        CaInputDropdownLoadDispatchesTtdComponentItem,\n        CaInputDropdownLoadBrokerComponentItem,\n        CaInputDropdownLoadBrokerShipperItemComponent,\n        CaInputDropdownLoadDispatcherItemComponent,\n        CaInputDropdownLoadBrokerContactItemComponent,\n        // Pipes\n        FormControlPipe,\n        DropdownCountPipe,\n        InputDropdownMultiselectClassPipe,\n        DropdownOptionsPipe,\n        InputDropdownGetIconsPipe,\n    ],\n})\nexport class CaInputDropdownTestComponent\n    implements\n        OnInit,\n        AfterViewInit,\n        OnDestroy,\n        ControlValueAccessor,\n        AfterViewInit\n{\n    @ViewChild('input') inputRef!: InputTestComponent;\n    @ViewChild('t2') public popoverRef!: NgbPopover;\n    @ViewChild('dropdownComponentRef', { static: false })\n    dropdownComponentRef: any;\n\n    // Label input - value that will be showed inside input\n    @Input() label!: keyof IOptionModel;\n\n    // optionValue input - key value from object - Emit this if you want to set whole object\n    @Input() optionValue!: string;\n\n    public inputHoveredItem: number = -1;\n    public isDropDownIsOpen: boolean = false;\n\n    // different templates for body rendering\n    public _template!: string;\n    _canAddNew: boolean = false;\n\n    @Input() set template(value: string) {\n        this._template = value;\n    }\n\n    @Input() multiselectTemplate!: string;\n    @Input() inputConfig!: ICaInput;\n    @Input() set canAddNew(value: boolean) {\n        this._canAddNew = value;\n    } // ADD NEW item in options\n\n    public get canAddNew() {\n        return this._canAddNew;\n    }\n\n    @Input() canOpenModal!: boolean; // open modal with ADD NEW button\n\n    // sort-template for different options\n    public _sort!: string;\n    @Input() set sort(value: string) {\n        this._sort = value;\n    }\n\n    public get sort() {\n        return this._sort;\n    }\n\n    // currently active item\n    public _activeItem!: IOptionModel | null;\n    @Input() set activeItem(value: IOptionModel | null) {\n        this._activeItem = value;\n    }\n\n    public get activeItem() {\n        return this._activeItem;\n    }\n\n    @Input() activeItemColor!: IOptionModel | null; // currently active color in dropdown\n    @Input() labelMode!: 'Label' | 'Color';\n\n    // when send SVG, please premmaped object: add 'folder' | 'subfolder'\n    public _options: IOptionModel[] = [];\n    @Input() set options(values: IOptionModel[]) {\n        this._options = values ? [...values] : [];\n        if (this.firstWriteValue) {\n            this.writeValueToFormControl(this.firstWriteValue);\n        }\n    }\n\n    // MultiSelect Selected Items From Backend\n    @Input() set preloadMultiselectItems(values: IOptionModel[]) {\n        if (this.inputConfig.multiselectDropdown) {\n            if (!values) {\n                this.deleteAllMultiSelectItems(this.inputConfig.label);\n                return;\n            }\n\n            if (values?.length) {\n                values.forEach((item) => {\n                    this.onMultiselectSelect(item);\n                });\n            }\n        }\n    }\n\n    @Input() isDetailsPages!: boolean; // only for details pages\n    @Input() isIncorrectValue!: boolean; // applicant review option\n    @Input() isAddressDropdown!: boolean; // only for address dropdown\n\n    @Output() selectedItem: EventEmitter<IOptionModel | null> =\n        new EventEmitter<IOptionModel | null>();\n    @Output() selectedItems: EventEmitter<IOptionModel[] | null> =\n        new EventEmitter<IOptionModel[] | null>();\n    @Output() selectedItemColor: EventEmitter<IOptionModel | null> =\n        new EventEmitter<IOptionModel | null>();\n    @Output() selectedLabelMode: EventEmitter<string> =\n        new EventEmitter<string>();\n    @Output() closeDropdown: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output() saveItem: EventEmitter<{\n        data: IOptionModel | null;\n        action: string;\n    }> = new EventEmitter<{ data: IOptionModel | null; action: string }>();\n    @Output() incorrectEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output() placeholderIconEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n    @Output('pagination') paginationEvent: EventEmitter<number> =\n        new EventEmitter<number>();\n    @Output('activeGroup') activeGroupEvent: EventEmitter<IOptionModel> =\n        new EventEmitter<IOptionModel>();\n    @Output('clearInputEvent') clearInputEvent: EventEmitter<boolean> =\n        new EventEmitter<boolean>();\n\n    @Output('searchInputEvent') searchInputEvent: EventEmitter<string> =\n        new EventEmitter<string>();\n    // events\n    public searchInputText = new EventInputManager<string>(\n        null,\n        this.searchInputEvent\n    );\n\n    // Copy of Options\n    public originalOptions: IOptionModel[] = [];\n\n    // Pagination\n    public paginationNumber: number = 0;\n\n    // Multiselect dropdown options\n    public multiselectItems: IOptionModel[] = [];\n    public isMultiSelectInputFocus: boolean = false;\n    public multiSelectLabel!: string | undefined;\n    public lastActiveMultiselectItem!: IOptionModel | null;\n\n    // Add mode\n    public isInAddMode: boolean = false;\n\n    // Dropdown navigation with keyboard\n    private dropdownPosition: number = -1;\n\n    // Dropdown Cleartimeout\n    public clearTimeoutDropdown:\n        | string\n        | number\n        | ReturnType<typeof setTimeout>\n        | undefined;\n\n    public hoveringIndex!: number;\n    public inputDropdownSvgRoutes = InputDropdownSvgRoutes;\n    public dropdownTemplateTypeEnum = DropdownTemplateTypeEnum;\n\n    // Destroy\n    private destroy$ = new Subject<void>();\n\n    constructor(\n        @Self() public superControl: NgControl,\n        private cdRef: ChangeDetectorRef,\n        private renderer: Renderer2\n    ) {\n        this.superControl.valueAccessor = this;\n    }\n\n    get getSuperControl() {\n        return this.superControl.control;\n    }\n\n    public inputFormControl: FormControl = new FormControl(null);\n\n    public lastValidOption!: IOptionModel;\n    public firstWriteValue: any;\n    writeValue(value: string | number): void {\n        if (value) this.firstWriteValue = value;\n        this.writeValueToFormControl(value);\n    }\n\n    public writeValueToFormControlTimer!: ReturnType<typeof setTimeout>;\n    public writeValueToFormControl(value: string | number): void {\n        clearTimeout(this.writeValueToFormControlTimer);\n        this.writeValueToFormControlTimer = setTimeout(() => {\n            const findInOptions = this.inputConfig.searchinGroupIndex\n                ? this.getMainGroup()\n                : this._options;\n\n            let findOption = findInOptions.find(\n                (option) =>\n                    option[this.optionValue as keyof IOptionModel] === value\n            );\n\n            let optionNotFound = false;\n            if (!findOption && value) {\n                if (this.optionValue) {\n                    findOption = {\n                        [this.optionValue]: this.firstWriteValue,\n                        [this.label]: this.firstWriteValue,\n                    };\n                } else {\n                    findOption = value as any;\n                }\n\n                optionNotFound = true;\n            }\n\n            if (findOption) {\n                this.setDropdownValue({\n                    option: findOption,\n                    setNotFoundError: optionNotFound,\n                });\n            } else {\n                this.setControlValue();\n                this._activeItem = null;\n            }\n        }, 100);\n    }\n\n    public setNotFoundInvalidFlag(value: boolean): void {\n        if (this.getSuperControl)\n            (\n                this.getSuperControl as AbstractControlWithNotFoundType\n            ).notFoundInvalid = value; // Attach dynamic values\n        (this.inputFormControl as FormControlWithNotFoundType).notFoundInvalid =\n            value; // Attach dynamic values\n    }\n\n    public onTouched = () => {};\n    public onChange(_: any): void {}\n\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: () => void): void {\n        this.onTouched = fn;\n    }\n\n    ngOnInit(): void {\n        // Multiselect\n        if (this.inputConfig.multiselectDropdown) {\n            this.multiSelectLabel = this.inputConfig.label;\n        }\n\n        this.inputFormControl.valueChanges\n            .pipe(\n                distinctUntilChanged(),\n                debounceTime(50),\n                skip(1),\n                takeUntil(this.destroy$)\n            )\n            .subscribe((searchText) => {\n                if (this.labelMode === 'Color') {\n                    return;\n                }\n\n                this.searchInputText.next('');\n\n                if (this.inputRef.inputElement.nativeElement.value) {\n                    this.searchInputText.next(searchText || '');\n                    this.cdRef.detectChanges();\n                }\n            });\n    }\n\n    ngAfterViewInit() {\n        if (this.inputConfig.autoFocus) {\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.popoverRef.open();\n            }, 450);\n        }\n    }\n\n    public onScrollDropdown(event: EventTarget | null) {\n        const target = event as HTMLElement;\n\n        if (target.scrollTop + target.offsetHeight === target.scrollHeight) {\n            this.paginationNumber += 1;\n\n            this.paginationEvent.emit(this.paginationNumber);\n        }\n    }\n\n    public onActiveItem(option: IOptionModel, group?: any): void {\n        if (\n            this.canOpenModal &&\n            option?.[this.label].toString()?.toLowerCase() === 'add new'\n        ) {\n            this.popoverRef?.close();\n\n            this.searchInputText.next('');\n            this.selectedItem.emit({\n                id: 7655,\n                name: DropdownStringEnum.ADD_NEW,\n                canOpenModal: true,\n            });\n        } else {\n            this.setDropdownValue({ option });\n        }\n    }\n\n    public onActiveItemGroup(event: { option: IOptionModel; group: any }) {\n        this.onActiveItem(event.option, event.group);\n    }\n\n    public onClearSearch(): void {\n        this._activeItem = null;\n        this.inputHoveredItem = -1;\n\n        this.setControlValue('');\n\n        this.selectedItem.emit(null);\n    }\n\n    public clearDropdownLabel() {\n        this._activeItem = null;\n        this.activeItemColor = null;\n        this.selectedItem.emit(null);\n        this.selectedItemColor.emit(null);\n        this.selectedLabelMode.emit('Label');\n    }\n\n    public commandEvent(event: CommandsEvent) {\n        if (event.action === 'Edit Input') {\n            this.selectedLabelMode.emit('Color');\n        }\n        if (event.action === 'Toggle Dropdown') {\n            this.popoverRef.toggle();\n        }\n        if (event.action === 'confirm' && event.mode === 'new') {\n            this.addNewItem();\n        }\n\n        if (event.action === 'confirm' && event.mode === 'edit') {\n            this.updateItem();\n        }\n\n        if (event.action === 'Placeholder Icon Event') {\n            this.placeholderIconEvent.emit(true);\n        }\n\n        if (event.action === 'cancel') {\n            this.saveItem.emit({\n                data: this._activeItem,\n                action: 'cancel',\n            });\n            this.selectedLabelMode.emit('Label');\n        }\n    }\n\n    public addNewItem(): void {\n        this._activeItem = {\n            id: parseInt(uuidv4()),\n            name: this.getSuperControl!.value,\n        };\n        //this.inputConfig.commands!.active = false;\n        this.inputRef.isVisibleCommands = false;\n        this.inputRef.isFocusInput = false;\n\n        this.saveItem.emit({ data: this._activeItem, action: 'new' });\n\n        if (this.inputConfig.dropdownLabel) {\n            this.selectedLabelMode.emit('Label');\n            this.inputRef.isTouchedInput = true;\n        }\n    }\n\n    public updateItem(): void {\n        if (this.inputConfig.dropdownLabel) {\n            this._activeItem = {\n                ...this._activeItem,\n                name: this.getSuperControl?.value,\n                colorId: this.activeItemColor\n                    ? this.activeItemColor.id\n                    : this._activeItem?.colorId,\n                color: this.activeItemColor\n                    ? this.activeItemColor.name\n                    : this._activeItem?.color,\n                code: this.activeItemColor\n                    ? this.activeItemColor.code\n                    : this._activeItem?.code,\n            };\n\n            this.selectedLabelMode.emit('Label');\n        } else {\n            this._activeItem = {\n                ...this._activeItem,\n                name: this.getSuperControl?.value,\n            };\n        }\n\n        this.saveItem.emit({\n            data: this._activeItem,\n            action: 'edit',\n        });\n    }\n\n    public addNewConfig() {\n        this.inputConfig = {\n            ...this.inputConfig,\n            commands: {\n                active: true,\n                type: 'confirm-cancel',\n                firstCommand: {\n                    popup: {\n                        name: 'Confirm',\n                        backgroundColor: '#3074d3',\n                    },\n                    name: 'confirm',\n                    svg: InputDropdownSvgRoutes.specConfirmSvg,\n                },\n                secondCommand: {\n                    popup: {\n                        name: 'Cancel',\n                        backgroundColor: '#2f2f2f',\n                    },\n                    name: 'cancel',\n                    svg: InputDropdownSvgRoutes.xClearSvg,\n                },\n            },\n            placeholder: '',\n        };\n\n        this.popoverRef?.close();\n\n        this.isInAddMode = true;\n        this.clearTimeoutDropdown = setTimeout(() => {\n            this.isInAddMode = false;\n        }, 200);\n    }\n\n    public onIncorrectInput(event: boolean) {\n        this.incorrectEvent.emit(event);\n    }\n\n    public identity(index: number, item: IOptionModel): number | undefined {\n        return item.id;\n    }\n\n    public toggleNestedList(option: IOptionModel): void {\n        if (option.open) {\n            option.open = false;\n            return;\n        }\n        this._options.filter((item) => (item.open = false));\n\n        option.open = !option.open;\n\n        if (option.open) {\n            this.activeGroupEvent.emit(option);\n        }\n    }\n\n    public onBlurInput(event: boolean) {\n        this.closeDropdown.emit(event);\n    }\n\n    public onClearInputEvent(event: boolean) {\n        this.clearInputEvent.emit(event);\n\n        if (event) {\n            this.popoverRef?.close();\n            // label dropdown\n\n            if (this.inputConfig.dropdownLabel) {\n                this.clearDropdownLabel();\n            }\n            // normal dropdown\n            else {\n                this.onClearSearch();\n            }\n        }\n    }\n\n    public handleHiddenDropdown() {\n        this.isDropDownIsOpen = false;\n        this.inputFormControl.patchValue(this.dropdownValue || '');\n        this.inputRef.inputElement.nativeElement.blur();\n        this.searchInputText.next('');\n        this.inputRef.inputElement.nativeElement.value = '';\n    }\n\n    public handleOpenDropdown() {\n        this.isDropDownIsOpen = true;\n        this.searchInputText.next('');\n        this.inputRef.inputElement.nativeElement.value = '';\n    }\n\n    public showHideDropdown(action: boolean) {\n        if (this.inputConfig.multiselectDropdown) {\n            this.isMultiSelectInputFocus = action;\n        }\n\n        if (this.labelMode !== 'Color') {\n            this.getSuperControl!.setValue(null);\n\n            this.popoverRef?.close();\n        }\n\n        // Details pages\n        if (\n            this.inputConfig.customClass?.includes('details-pages') &&\n            !action\n        ) {\n            this.selectedItem.emit(this._activeItem);\n        }\n    }\n\n    public getMainGroup() {\n        let mainGroup: IOptionModel[] = [];\n        this._options.map((groups) => {\n            mainGroup.push(\n                ...groups[\n                    this.inputConfig.searchinGroupIndex as keyof IOptionModel\n                ]\n            );\n        });\n\n        return mainGroup;\n    }\n\n    public dropDownKeyNavigation({\n        keyCode,\n        data,\n    }: {\n        keyCode: number;\n        data: any;\n    }) {\n        // Navigate down\n        if (keyCode === 40) {\n            this.dropdownNavigation(1);\n        }\n        // Navigate up\n        if (keyCode === 38) {\n            this.dropdownNavigation(-1);\n        }\n\n        // Press 'enter'\n        if (keyCode === 13) {\n            let selectedItem;\n            if (this.inputConfig.searchinGroupIndex) {\n                let mainGroup = this.getMainGroup();\n                selectedItem = mainGroup[this.inputHoveredItem];\n            } else {\n                selectedItem =\n                    this.inputHoveredItem > -1\n                        ? this.dropdownComponentRef.options[\n                              this.inputHoveredItem\n                          ]\n                        : { [this.label]: '' };\n            }\n\n            if (\n                this.canOpenModal &&\n                selectedItem?.[this.label].toString()?.toLowerCase() ===\n                    'add new'\n            ) {\n                this.selectedItem.emit({\n                    id: 7655,\n                    name: DropdownStringEnum.ADD_NEW,\n                    canOpenModal: true,\n                });\n            } else if( selectedItem[this.label] ){\n                \n                this.setDropdownValue({ option: selectedItem });\n            }\n        }\n\n        if (keyCode === 9) {\n            if (!this.popoverRef.isOpen()) this.popoverRef?.open();\n        }\n    }\n\n    public setDropdownValue({\n        option,\n        optionValue,\n        label,\n        setNotFoundError,\n    }: SelectDropdownValueType) {\n        this.setNotFoundInvalidFlag(setNotFoundError || false);\n        this.lastValidOption = option;\n        this.selectedItem.emit(option);\n        const optValue = optionValue ? optionValue : this.optionValue;\n        const lbel = label ? label : this.label;\n        const controlValue = optValue\n            ? option[optValue as keyof IOptionModel]\n            : option;\n\n        const inputValue = option[lbel as keyof IOptionModel] || controlValue;\n\n        this._activeItem = option;\n        this.setControlValue(controlValue, inputValue);\n\n        this.popoverRef?.close();\n        this.searchInputText.next('');\n    }\n\n    // ----------------------------------  Multiselect Dropdown ----------------------------------\n    public onMultiselectSelect(option: IOptionModel): void {\n        this.isMultiSelectInputFocus = false;\n        //this.inputConfig.label = undefined;\n\n        if (this.multiselectItems.some((item) => item.id === option.id)) {\n            return;\n        }\n\n        this._options = this._options.map((item) => {\n            if (item.id === option.id) {\n                return {\n                    ...item,\n                    active: true,\n                };\n            } else {\n                if (!item.active) {\n                    return {\n                        ...item,\n                        active: false,\n                    };\n                } else {\n                    return {\n                        ...item,\n                        active: true,\n                    };\n                }\n            }\n        });\n\n        this.multiselectItems = this._options.filter((item) => item.active);\n\n        this.selectedItems.emit(this.multiselectItems);\n\n        this._options = this._options.sort(\n            (x, y) => Number(y.active) - Number(x.active)\n        );\n        this.originalOptions = [...this._options];\n\n        this.lastActiveMultiselectItem = this._options\n            .filter((item) => item.active)\n            .slice(-1)[0];\n\n        if (this.inputRef) {\n            this.inputRef.isFocusInput = false;\n            this.inputRef.inputElement.nativeElement.blur();\n        }\n    }\n\n    public removeMultiSelectItem(index: number) {\n        this._options = this.originalOptions.map((item) => {\n            if (item.id === this.multiselectItems[index].id) {\n                return {\n                    ...this.multiselectItems[index],\n                    active: false,\n                };\n            }\n            return item;\n        });\n\n        this._options = this._options.sort(\n            (x, y) => Number(y.active) - Number(x.active)\n        );\n\n        this.originalOptions = this._options;\n        this.multiselectItems.splice(index, 1);\n\n        if (!this.multiselectItems.length) {\n            this.lastActiveMultiselectItem = null;\n        } else {\n            this.lastActiveMultiselectItem = this._options\n                .filter((item) => item.active)\n                .slice(-1)[0];\n        }\n\n        this.selectedItems.emit(\n            this.multiselectItems.map((item) => {\n                return { ...item };\n            })\n        );\n    }\n\n    public deleteAllMultiSelectItems(currentLabel?: string) {\n        this.multiselectItems = [];\n        this._options = this._options.map((item) => {\n            return {\n                ...item,\n                active: false,\n            };\n        });\n        this.originalOptions = this._options;\n        this.selectedItems.emit(null);\n\n        this.lastActiveMultiselectItem = null;\n    }\n\n    public toggleMultiselectDropdown() {\n        if (this.inputConfig.isDisabled) {\n            return;\n        }\n        this.isMultiSelectInputFocus = !this.isMultiSelectInputFocus;\n\n        if (this.isMultiSelectInputFocus) {\n            this.clearTimeoutDropdown = setTimeout(() => {\n                this.popoverRef.open();\n            }, 150);\n        } else {\n            this.inputRef.isFocusInput = false;\n            this.popoverRef?.close();\n        }\n    }\n    // ----------------------------------  End ----------------------------------\n\n    public dropdownValue: string | undefined = '';\n    public setControlValue(value?: string, dropdownInputValue?: string) {\n        this.onChange(value); // Notify Angular form about the change\n        if (value) this.onTouched(); // Mark as touched\n        this.dropdownValue = dropdownInputValue || value;\n        this.inputFormControl.patchValue(dropdownInputValue || value);\n    }\n\n    /**\n     * Navigate through dropdown with keyboard arrows\n     */\n    private dropdownNavigation(step: number) {\n        const nextStep = this.inputHoveredItem + step;\n\n        if (nextStep > this.dropdownComponentRef.dropdownOption.length - 1)\n            this.inputHoveredItem = 0;\n        else if (nextStep < 0)\n            this.inputHoveredItem =\n                this.dropdownComponentRef.dropdownOption.length - 1;\n        else this.inputHoveredItem = nextStep;\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next();\n        this.destroy$.complete();\n        clearTimeout(this.clearTimeoutDropdown as ReturnType<typeof setTimeout>);\n    }\n}\n","<div\n    class=\"application-dropdown\"\n    [ngClass]=\"\n        inputConfig\n            | inputDropdownMultiselectClass\n                : multiselectItems\n                : isMultiSelectInputFocus\n    \"\n>\n    @if (multiselectItems.length) {\n        <p class=\"multiselect-label\">\n            {{ multiSelectLabel }}\n        </p>\n    }\n\n    @if (inputConfig.multiSelectDropdownActive) {\n        <!-- Multiselect arrow -->\n        <svg-icon\n            class=\"multiselect-arrow\"\n            [src]=\"inputDropdownSvgRoutes.inputDropdownArrowSvg\"\n            (click)=\"toggleMultiselectDropdown()\"\n        ></svg-icon>\n    }\n\n    @if (\n        multiselectItems.length &&\n        !inputConfig.isDisabled &&\n        !getSuperControl?.disabled\n    ) {\n        <!-- Multiselect clear all -->\n        <div\n            class=\"input-clear multiselect-clear\"\n            mainTooltip=\"Clear All\"\n            ngbTooltip\n            position=\"top\"\n            tooltipBackground=\"#2f2f2f\"\n            (click)=\"deleteAllMultiSelectItems()\"\n        >\n            <svg-icon\n                class=\"input-clear-x\"\n                [src]=\"inputDropdownSvgRoutes.xClearSvg\"\n            ></svg-icon>\n        </div>\n    }\n\n    @if (\n        inputConfig.multiselectDropdown &&\n        multiselectItems.length &&\n        _template === 'multiselect'\n    ) {\n        <!-- Multiselect items -->\n        <div class=\"multiselect-items {{ multiselectTemplate }}\">\n            <ng-container> </ng-container>\n            @for (\n                multiSelect of multiselectItems;\n                track $index;\n                let ind = $index\n            ) {\n                <span class=\"multiselect-item\">\n                    {{ multiSelect?.name }}\n                    <!-- Active - Total Counter -->\n                    @if (\n                        inputConfig.multiSelectItemRange &&\n                        multiSelect?.totalCounter\n                    ) {\n                        <span>\n                            {{ multiSelect?.activeCounter }} of\n                            {{ multiSelect?.totalCounter }}\n                        </span>\n                    }\n\n                    @if (\n                        inputConfig.multiSelectItemRange &&\n                        !multiSelect?.totalCounter\n                    ) {\n                        <span>\n                            {{ multiSelect?.activeCounter }}\n                        </span>\n                    }\n\n                    @if (\n                        !inputConfig.isDisabled && !getSuperControl?.disabled\n                    ) {\n                        <!-- Active Counter -->\n                        <div\n                            (click)=\"removeMultiSelectItem(ind)\"\n                            class=\"multiselect-item-clear\"\n                            mainTooltip=\"Clear\"\n                            ngbTooltip\n                            position=\"top\"\n                            tooltipBackground=\"#2f2f2f\"\n                        >\n                            <svg-icon\n                                [src]=\"inputDropdownSvgRoutes.xClearSvg\"\n                            ></svg-icon>\n                        </div>\n                    }\n                </span>\n            }\n        </div>\n    }\n\n    <!-- Dropdown search -->\n\n    @if (!inputConfig.isIconInput) {\n        @if (!searchInputText.value) {\n            <!-- <div\n            (scroll)=\"onScrollDropdown($event.target)\"\n            [ngClass]=\"{\n                scroll: _options | caDropdownCount: _template,\n                'dropdown-options-groups':\n                    _template === 'groups' ||\n                    _template === 'load-broker-contact',\n                'dropdown-options-fuel-franchise':\n                    _template === 'fuel-franchise',\n                'merge-dropdown-body-with-input':\n                    inputConfig.mergeDropdownBodyWithInput,\n                'no-result-container': _options[0]?.name === 'No Results',\n                'svgtext-dispatch-template':\n                    _template == 'svgtext-dispatch-template',\n            }\"\n            class=\"dropdown-options  {{ inputConfig.dropdownWidthClass }}\"\n        > -->\n            <div\n                [class.open]=\"isDropDownIsOpen\"\n                [class.leftIcon]=\"inputConfig.placeholderIcon\"\n                [ngClass]=\"{\n                    scroll: _options | caDropdownCount: _template,\n                    'dropdown-options-groups':\n                        _template === 'groups' ||\n                        _template === 'load-broker-contact',\n                    'dropdown-options-fuel-franchise':\n                        _template === 'fuel-franchise',\n                    'merge-dropdown-body-with-input':\n                        inputConfig.mergeDropdownBodyWithInput,\n                    'svgtext-dispatch-template':\n                        _template == 'svgtext-dispatch-template',\n                    'dropdown-value-right-side':\n                        inputConfig.placeholderIconRightSide,\n                }\"\n                class=\"dropdown_value dropdown-options  {{\n                    inputConfig.dropdownWidthClass\n                }}\"\n            >\n                @switch (_template) {\n                    @case (dropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD) {\n                        @if (activeItem) {\n                            <div class=\"dropdown-option dropdown-double-column\">\n                                <app-ca-input-dropdown-load-dispatches-ttd-item\n                                    [index]=\"0\"\n                                    [searchText]=\"searchInputText.value || ''\"\n                                    [activeItem]=\"activeItem\"\n                                    [option]=\"activeItem!\"\n                                    [label]=\"label\"\n                                >\n                                </app-ca-input-dropdown-load-dispatches-ttd-item>\n                            </div>\n                        }\n                    }\n                    @case (dropdownTemplateTypeEnum.LOAD_BROKER) {\n                        @if (activeItem) {\n                            <app-ca-input-dropdown-load-broker-item\n                                [option]=\"activeItem\"\n                                [searchText]=\"searchInputText.value || ''\"\n                                [isInOption]=\"true\"\n                                [label]=\"label\"\n                            ></app-ca-input-dropdown-load-broker-item>\n                        }\n                    }\n\n                    @case (dropdownTemplateTypeEnum.LOAD_SHIPPER) {\n                        @if (activeItem) {\n                            <app-ca-input-dropdown-load-shipper-item\n                                [activeItem]=\"activeItem\"\n                                [searchText]=\"searchInputText.value || ''\"\n                                [option]=\"activeItem\"\n                                [isInOption]=\"true\"\n                                [label]=\"label\"\n                            ></app-ca-input-dropdown-load-shipper-item>\n                        }\n                    }\n\n                    @case (dropdownTemplateTypeEnum.LOAD_BROKER_CONTACT) {\n                        @if (activeItem) {\n                            <div class=\"load-broker-contact-groups\">\n                                <ca-input-dropdown-load-broker-contact-item\n                                    [activeItem]=\"activeItem\"\n                                    [item]=\"activeItem\"\n                                    [searchText]=\"searchInputText.value || ''\"\n                                    [isInOption]=\"true\"\n                                ></ca-input-dropdown-load-broker-contact-item>\n                            </div>\n                        }\n                    }\n\n                    @case (dropdownTemplateTypeEnum.LOAD_DISPATCHER) {\n                        @if (activeItem) {\n                            <app-ca-input-dropdown-load-dispatcher-item\n                                [option]=\"activeItem\"\n                                [searchText]=\"searchInputText.value || ''\"\n                                [activeItem]=\"activeItem\"\n                                [label]=\"label\"\n                                [dropdownWithImage]=\"\n                                    inputConfig.dropdownImageInput\n                                \"\n                                [isInOption]=\"true\"\n                            >\n                            </app-ca-input-dropdown-load-dispatcher-item>\n                        }\n                    }\n\n                    @default {\n                        <!-- Special Dropdown Selected SVG with or Without Text -->\n                        @if (inputConfig.dropdownImageInput && activeItem) {\n                            <svg-icon\n                                [src]=\"\n                                    inputConfig.dropdownImageInput!\n                                        | inputDropdownGetIcons: activeItem\n                                \"\n                                class=\"dropdown-selected-image {{\n                                    inputConfig.dropdownImageInput?.class\n                                }}\"\n                                [ngClass]=\"{\n                                    'unset-color':\n                                        inputConfig.dropdownImageInput?.class,\n                                }\"\n                                [svgStyle]=\"{\n                                    fill: inputConfig.dropdownImageInput\n                                        ? activeItem?.code\n                                        : '#ffffff',\n                                }\"\n                            >\n                            </svg-icon>\n                        }\n\n                        @if (\n                            inputConfig.dropdownImageInput?.withText ||\n                            !inputConfig.dropdownImageInput\n                        ) {\n                            {{ dropdownValue }}\n                        }\n                    }\n                }\n            </div>\n        }\n\n        <ca-input-test\n            #t2=\"ngbPopover\"\n            [ngbPopover]=\"caInputDropdownPopover\"\n            popoverClass=\"ca-input-dropdown\"\n            [autoClose]=\"'outside'\"\n            [container]=\"'body'\"\n            [placement]=\"\n                _template == 'svgtext-dispatch-template'\n                    ? ['bottom-left', 'top-left']\n                    : ['bottom-left']\n            \"\n            #input\n            [formControl]=\"inputFormControl | formControl\"\n            [parentControl]=\"getSuperControl\"\n            [incorrectValue]=\"isIncorrectValue\"\n            [inputConfig]=\"inputConfig\"\n            [selectedDropdownLabelColor]=\"\n                inputConfig.dropdownLabel\n                    ? activeItem\n                        ? activeItem\n                        : activeItemColor\n                    : null\n            \"\n            [template]=\"_template\"\n            (blurInput)=\"onBlurInput($event)\"\n            (clear)=\"onClearInputEvent($event)\"\n            (commandEvent)=\"commandEvent($event)\"\n            (showHideDropdown)=\"showHideDropdown($event)\"\n            (dropDownKeyNavigation)=\"dropDownKeyNavigation($event)\"\n            (incorrectEvent)=\"onIncorrectInput($event)\"\n            (hidden)=\"handleHiddenDropdown()\"\n            (shown)=\"handleOpenDropdown()\"\n        ></ca-input-test>\n    }\n\n    <!-- Dropdown icon instead of input -->\n    @if (inputConfig.isIconInput) {\n        <div\n            class=\"d-flex justify-content-center align-items-center input-icon-container\"\n            [ngClass]=\"{\n                valid:\n                    inputConfig.isValidIcon &&\n                    !inputConfig.inputIcon?.includes('custom'),\n                active: popoverRef?.isOpen(),\n            }\"\n        >\n            <svg-icon\n                #t2=\"ngbPopover\"\n                [ngbPopover]=\"caInputDropdownPopover\"\n                popoverClass=\"ca-input-dropdown\"\n                [autoClose]=\"'outside'\"\n                [container]=\"'body'\"\n                [placement]=\"['bottom-left']\"\n                class=\"input-icon\"\n                [src]=\"\n                    inputDropdownSvgRoutes.repairPmSvgRoute +\n                    inputConfig.inputIcon\n                \"\n            ></svg-icon>\n        </div>\n    }\n</div>\n<ng-template #caInputDropdownPopover>\n    <!--------------------------- Dropdown options --------------------------->\n    @if (inputConfig?.mergeDropdownBodyWithInput && _options?.length) {\n        <div\n            class=\"dropdown-options-divider {{\n                inputConfig.dropdownWidthClass\n            }}\"\n            [class.dispatch_dropdown]=\"_template == 'svgtext-dispatch-template'\"\n        ></div>\n    }\n\n    @if (\n        (inputConfig?.name != 'Address' &&\n            inputConfig?.name != 'RoutingAddress' &&\n            !inputConfig.isDisabled &&\n            !getSuperControl?.disabled) ||\n        ((inputConfig?.name == 'Address' ||\n            inputConfig?.name == 'RoutingAddress') &&\n            !inputConfig.isDisabled &&\n            !getSuperControl?.disabled &&\n            _options?.length)\n    ) {\n        <div\n            (scroll)=\"onScrollDropdown($event.target)\"\n            [ngClass]=\"{\n                scroll: _options | caDropdownCount: _template,\n                'dropdown-options-groups':\n                    _template === 'groups' ||\n                    _template === 'load-broker-contact',\n                'dropdown-options-fuel-franchise':\n                    _template === 'fuel-franchise',\n                'merge-dropdown-body-with-input':\n                    inputConfig.mergeDropdownBodyWithInput,\n                'no-result-container': _options[0]?.name === 'No Results',\n                'svgtext-dispatch-template':\n                    _template == 'svgtext-dispatch-template',\n            }\"\n            class=\"dropdown-options  {{ inputConfig.dropdownWidthClass }}\"\n        >\n            @switch (_template) {\n                <!--------------------------- SVG Template (Render svgs or text if svgs doesn't exist ) --------------------------->\n\n                @case (dropdownTemplateTypeEnum.SVG_TEMPLATE) {\n                    <app-ca-input-dropdown-svg-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [dropdownWithImage]=\"inputConfig.dropdownImageInput\"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-svg-template>\n                    <!-- <ng-container \n                        *ngTemplateOutlet=\"dropdownSvgTemplate\"\n                    ></ng-container> -->\n                }\n\n                <!--------------------------- Svg Text Template (display flex) --------------------------->\n\n                @case (dropdownTemplateTypeEnum.SVGTEXT_TEMPLATE) {\n                    <app-ca-input-dropdown-svgtext-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        [inputConfig]=\"inputConfig\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-svgtext-template>\n\n                    <!-- <ng-container\n                        *ngTemplateOutlet=\"svgTextTemplate\"\n                    ></ng-container> -->\n                }\n\n                <!-------------------------------------------Dispatch dropdown-------------------------------------------->\n\n                @case (dropdownTemplateTypeEnum.SVGTEXT_DISPATCH_TEMPLATE) {\n                    <app-ca-input-dropdown-svgtext-dispatch-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        [inputConfig]=\"inputConfig\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-svgtext-dispatch-template>\n\n                    <!-- <ng-container\n                        *ngTemplateOutlet=\"dispatchTemplate\"\n                    ></ng-container> -->\n                }\n\n                <!--------------------------- Details template (truck, trailer... details-pages)  --------------------------->\n\n                @case (dropdownTemplateTypeEnum.DETAILS_TEMPLATE) {\n                    <app-ca-input-dropdown-details-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        [sort]=\"_sort\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-details-template>\n\n                    <!-- <ng-container\n                        *ngTemplateOutlet=\"detailsTemplate\"\n                    ></ng-container> -->\n                }\n\n                <!--------------------------- Grouping template (can see on contact modal)  --------------------------->\n\n                @case (dropdownTemplateTypeEnum.GROUPS) {\n                    <app-ca-input-dropdown-groups\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-groups>\n                }\n\n                <!--------------------------- Multiselect Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.MULTISELECT) {\n                    <app-ca-input-dropdown-multiselect\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [lastActiveMultiselectItem]=\"lastActiveMultiselectItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onMultiselectSelect)=\"onMultiselectSelect($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-multiselect>\n                }\n                <!--------------------------- Labels Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LABELS) {\n                    <app-ca-input-dropdown-labels\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        [inputConfig]=\"inputConfig\"\n                        [labelMode]=\"labelMode\"\n                        [canAddNew]=\"_canAddNew\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-labels>\n                }\n\n                <!--------------------------- Dispatch Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.DISPATCH) {\n                    <app-ca-input-dropdown-dispatch\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-dispatch>\n                }\n\n                <!--------------------------- Load Dispatcher Template (user avatar + user name) --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LOAD_DISPATCHER) {\n                    <app-ca-input-dropdown-load-dispatcher\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                        [inputConfig]=\"inputConfig\"\n                    ></app-ca-input-dropdown-load-dispatcher>\n                }\n\n                <!--------------------------- Load Combine Truck-Trailer-Driver Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD) {\n                    <app-ca-input-dropdown-load-dispatches-ttd\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-load-dispatches-ttd>\n                }\n\n                <!--------------------------- Load Broker Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LOAD_BROKER) {\n                    <app-ca-input-dropdown-load-broker\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-load-broker>\n                }\n\n                <!--------------------------- Load Broker Contact Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LOAD_BROKER_CONTACT) {\n                    <app-ca-input-dropdown-load-broker-contact\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-load-broker-contact>\n                }\n\n                <!--------------------------- Load Shipper Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.LOAD_SHIPPER) {\n                    <app-ca-input-dropdown-load-shipper\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-load-shipper>\n                }\n\n                <!--------------------------- Template Text - Counter --------------------------->\n\n                @case (dropdownTemplateTypeEnum.TEXT_COUNTER) {\n                    <app-ca-input-dropdown-text-counter\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-text-counter>\n                }\n\n                <!--------------------------- Fuel Franchise Template --------------------------->\n\n                @case (dropdownTemplateTypeEnum.FUEL_FRANCHISE) {\n                    <app-ca-input-dropdown-fuel-franchise\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        (toggleNestedList)=\"toggleNestedList($event)\"\n                        (onActiveItemGroup)=\"onActiveItemGroup($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-fuel-franchise>\n                }\n\n                <!-- Double Text Template -->\n\n                @case (dropdownTemplateTypeEnum.DOUBLE_TEXT_TEMPLATE) {\n                    <app-ca-input-dropdown-double-text-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-double-text-template>\n                }\n\n                <!-- Double Column Template -->\n\n                @case (dropdownTemplateTypeEnum.DOUBLE_COLUMN_TEMPLATE) {\n                    <app-ca-input-dropdown-double-text-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-double-text-template>\n                }\n\n                <!-- Triple Column Template -->\n\n                @case (dropdownTemplateTypeEnum.TRIPLE_COLUMN_TEMPLATE) {\n                    <app-ca-input-dropdown-triple-text-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-triple-text-template>\n                }\n\n                <!-- PAYROLL TRUCKS Template -->\n\n                @case (dropdownTemplateTypeEnum.PAYROLL_TRUCKS) {\n                    <app-ca-input-dropdown-payroll-trucks\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-payroll-trucks>\n                }\n\n                <!--------------------------- Default Template - Render Only Text --------------------------->\n                @default {\n                    <app-ca-input-dropdown-default-template\n                        #dropdownComponentRef\n                        [options]=\"\n                            searchInputText.value || ''\n                                | caDropdownOptionsPipe\n                                    : _options\n                                    : inputConfig\n                                    : canAddNew\n                                    : label\n                                    : sort\n                                    : _template\n                        \"\n                        [activeItem]=\"activeItem\"\n                        [inputConfig]=\"inputConfig\"\n                        [searchText]=\"searchInputText.value || ''\"\n                        (onActiveItem)=\"onActiveItem($event)\"\n                        [inputHoveredItem]=\"inputHoveredItem\"\n                        [label]=\"label\"\n                    ></app-ca-input-dropdown-default-template>\n                }\n            }\n        </div>\n    }\n</ng-template>\n","import { CaiInputConfig } from 'carriera-intern-components';\n\nexport class MapListConstants {\n    static SEARCH_INPUT_CONFIG: CaiInputConfig = {\n        name: 'Find Title',\n        type: 'text',\n        icon: 'cai-search',\n        placeholderBehavior: 'fade',\n        placeholderColor: '#919191',\n    };\n}\n","import {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    Output,\n    Renderer2,\n    ViewChild,\n    AfterViewInit,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n} from '@angular/forms';\n\n// Components\nimport { CaSortDropdownComponent } from '../ca-sort-dropdown/ca-sort-dropdown.component';\nimport { InputComponent, CaiInputConfig } from 'carriera-intern-components';\n\n// Interfaces\nimport { SortColumn } from '../ca-sort-dropdown/models/sort-column.model';\n\n// Svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes/shared-svg.routes';\n\n// Constants\nimport { MapListConstants } from './utils/constants';\n\n// Enums\nimport { eGeneralActions, eStringPlaceholder } from '../../enums';\n\n@Component({\n    selector: 'app-ca-map-list',\n    imports: [\n        // Modules\n        CommonModule,\n        AngularSvgIconModule,\n        ReactiveFormsModule,\n\n        // Components\n        CaSortDropdownComponent,\n        InputComponent,\n    ],\n    templateUrl: './ca-map-list.component.html',\n    styleUrl: './ca-map-list.component.scss',\n})\nexport class CaMapListComponent<T> implements AfterViewInit {\n    @ViewChild('mapListContainer', { static: false })\n    mapListContainerRef!: ElementRef<HTMLElement>;\n    @ViewChild('mapList', { static: false })\n    mapListRef!: ElementRef<HTMLElement>;\n    @ViewChild('mapListBody', { static: false })\n    mapListBodyRef!: ElementRef<HTMLElement>;\n\n    @Input() sortColumns: SortColumn[] = [];\n    @Input() activeSortColumn: SortColumn | null = null;\n    @Input() set mapListData(values: T) {\n        setTimeout(() => this.checkResizeButton(), 0);\n    }\n\n    @Output() onSearchEvent: EventEmitter<string | number | null> =\n        new EventEmitter();\n    @Output() onCloseSearchEvent: EventEmitter<void> = new EventEmitter();\n    @Output() onSortEvent: EventEmitter<{\n        column: SortColumn;\n        sortName: string;\n    }> = new EventEmitter();\n    @Output() onMapListScrollEvent: EventEmitter<void> = new EventEmitter();\n\n    private fullContentHeight: number = 0;\n\n    public isHoveredList: boolean = false;\n    public isExpandButtonShown: boolean = false;\n    public isMapListExpanded: boolean = true;\n\n    public previousScrollTime: number = 0;\n\n    public searchForm!: UntypedFormGroup;\n    public searchInputConfig: CaiInputConfig =\n        MapListConstants.SEARCH_INPUT_CONFIG;\n\n    public eGeneralActions = eGeneralActions;\n\n    public svgRoutes = SharedSvgRoutes;\n\n    constructor(\n        private cdRef: ChangeDetectorRef,\n        private renderer: Renderer2,\n        private formBuilder: UntypedFormBuilder\n    ) {}\n\n    ngOnInit(): void {\n        this.createSearchForm();\n    }\n\n    ngAfterViewInit(): void {\n        this.checkResizeButton();\n    }\n\n    private createSearchForm(): void {\n        this.searchForm = this.formBuilder.group({\n            [eGeneralActions.SEARCH_LOWERCASE]: null,\n        });\n    }\n\n    public onHoverList(isHovered: boolean) {\n        this.isHoveredList = isHovered;\n    }\n\n    public onCloseSearch(): void {\n        this.onCloseSearchEvent.emit();\n    }\n\n    public onSearch(searchText: string | number | null): void {\n        this.onSearchEvent.emit(searchText);\n    }\n\n    public onSortChange(event: { column: SortColumn; sortName: string }): void {\n        this.onSortEvent.emit(event);\n    }\n\n    public mapListScroll(event: Event): void {\n        const element = event.target as HTMLElement;\n        const now = Date.now();\n\n        if (\n            Math.abs(\n                element.scrollHeight - element.scrollTop - element.clientHeight\n            ) <= 3 &&\n            now - this.previousScrollTime >= 200\n        ) {\n            this.previousScrollTime = now;\n            this.onMapListScrollEvent.emit();\n        }\n    }\n\n    public resizeMapList(): void {\n        const mapListBody = this.mapListBodyRef?.nativeElement;\n        const container = this.mapListContainerRef?.nativeElement;\n\n        if (!mapListBody || !container) return;\n\n        const halfHeight = container.clientHeight / 2 - 12;\n\n        const currentHeight = getComputedStyle(mapListBody).height;\n        this.renderer.setStyle(mapListBody, 'height', currentHeight);\n\n        requestAnimationFrame(() => {\n            const newHeight = this.isMapListExpanded\n                ? `${halfHeight}px`\n                : `${this.fullContentHeight}px`;\n\n            this.renderer.setStyle(mapListBody, 'height', newHeight);\n            this.isMapListExpanded = !this.isMapListExpanded;\n\n            this.cdRef.detectChanges();\n        });\n    }\n\n    public checkResizeButton(): void {\n        const container = this.mapListContainerRef?.nativeElement;\n        const body = this.mapListBodyRef?.nativeElement;\n        if (!container || !body) return;\n\n        this.fullContentHeight = body.scrollHeight;\n        const halfHeight = container.clientHeight / 2 - 12;\n\n        if (this.fullContentHeight > halfHeight + 1) {\n            this.isExpandButtonShown = true;\n            if (!this.isMapListExpanded) {\n                this.renderer.setStyle(body, 'height', `${halfHeight}px`);\n            }\n        } else {\n            this.isExpandButtonShown = false;\n            this.renderer.removeStyle(body, 'height');\n        }\n\n        this.cdRef.detectChanges();\n    }\n\n    public clearSearch(): void {\n        this.searchForm\n            .get(eGeneralActions.SEARCH_LOWERCASE)\n            ?.patchValue(eStringPlaceholder.EMPTY);\n\n        this.onSearch(eStringPlaceholder.EMPTY);\n    }\n}\n","<div\n    #mapListContainer\n    class=\"map-list-container position-fixed left-70 top-59 bottom-12 w-330 pe-none\"\n>\n    <div\n        #mapList\n        class=\"map-list position-relative w-100 background-white br-3 p-y-6 p-l-6 p-r-2 pe-auto\"\n        [ngClass]=\"isHoveredList ? 'opacity-100' : 'opacity-90'\"\n        (mouseenter)=\"onHoverList(true)\"\n        (mouseleave)=\"onHoverList(false)\"\n    >\n        <div class=\"d-flex flex-column\">\n            <div class=\"d-flex flex-column w-100 p-r-4\">\n                <form [formGroup]=\"searchForm\">\n                    <cai-input\n                        [formControlName]=\"eGeneralActions.SEARCH_LOWERCASE\"\n                        [id]=\"eGeneralActions.SEARCH_LOWERCASE\"\n                        [config]=\"searchInputConfig\"\n                        (onValueChange)=\"onSearch($event)\"\n                        (onClear)=\"onCloseSearch()\"\n                    >\n                    </cai-input>\n                </form>\n\n                <div\n                    class=\"d-flex align-items-center justify-content-between m-t-4\"\n                >\n                    <div\n                        class=\"text-size-11 text-color-muted ca-font-bold text-uppercase\"\n                    >\n                        Sort By\n                    </div>\n                    <div>\n                        <app-ca-sort-dropdown\n                            [sortColumns]=\"sortColumns\"\n                            [activeSortColumn]=\"activeSortColumn!\"\n                            [dropdownPosition]=\"'right-top'\"\n                            [isLargeVariation]=\"true\"\n                            [dropdownWidth]=\"167\"\n                            (onSortChange)=\"onSortChange($event)\"\n                        ></app-ca-sort-dropdown>\n                    </div>\n                </div>\n\n                <div class=\"w-100 h-1 background-bw-9 br-1 m-y-4\"></div>\n            </div>\n\n            <div\n                #mapListBody\n                class=\"map-list-body w-100 d-flex flex-column p-r-2\"\n                (scroll)=\"mapListScroll($event)\"\n            >\n                <ng-content></ng-content>\n            </div>\n        </div>\n\n        @if (isExpandButtonShown) {\n            <div\n                class=\"position-absolute top-100 start-50 translate-middle c-pointer\"\n            >\n                <div\n                    class=\"map-list-expand-button w-26 h-26 d-flex align-items-center justify-content-center background-white br-circle svg-hover-bw6-2\"\n                    (click)=\"resizeMapList()\"\n                >\n                    <svg-icon\n                        [src]=\"svgRoutes.ARROW_UP_FILLED_ICON\"\n                        class=\"d-flex svg-size-18 svg-fill-muted\"\n                        [ngClass]=\"{ 'rotate-180': !isMapListExpanded }\"\n                    ></svg-icon>\n                </div>\n            </div>\n        }\n    </div>\n</div>\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n    selector: 'app-ca-map-list-card',\n    imports: [CommonModule],\n    templateUrl: './ca-map-list-card.component.html',\n    styleUrl: './ca-map-list-card.component.scss',\n})\nexport class CaMapListCardComponent<T> {\n    @Input() cardData!: T;\n    @Input() cardTitleTemplate!: TemplateRef<any>;\n    @Input() cardMiddleContentTemplate!: TemplateRef<any>;\n    @Input() cardBottomContentTemplate!: TemplateRef<any>;\n    @Input() isSelected: boolean = false;\n\n    @Output() onCardClickEvent: EventEmitter<T> = new EventEmitter<T>();\n\n    public onCardClick(): void {\n        this.onCardClickEvent.emit(this.cardData);\n    }\n}\n","@let backgroundClass =\n    isSelected ? 'background-gray' : 'background-white background-hover-bw2';\n\n<div\n    class=\"w-100 c-pointer p-l-6 p-b-6 p-r-4 p-t-4 br-2\"\n    [ngClass]=\"backgroundClass\"\n    (click)=\"onCardClick()\"\n>\n    <div class=\"m-b-4\">\n        <ng-container\n            *ngTemplateOutlet=\"\n                cardTitleTemplate;\n                context: {\n                    data: cardData,\n                }\n            \"\n        ></ng-container>\n    </div>\n\n    <div class=\"m-b-4\">\n        <ng-container\n            *ngTemplateOutlet=\"\n                cardMiddleContentTemplate;\n                context: {\n                    data: cardData,\n                }\n            \"\n        ></ng-container>\n    </div>\n\n    <div>\n        <ng-container\n            *ngTemplateOutlet=\"\n                cardBottomContentTemplate;\n                context: {\n                    data: cardData,\n                }\n            \"\n        ></ng-container>\n    </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\n\n// Modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Enums\nimport {\n    eColor,\n    eDateTimeFormats,\n    eGpsHeadingDirection,\n    ePosition,\n    eSharedString,\n    eStringPlaceholder,\n    eThousandSeparatorFormat,\n    eUnit,\n} from '../../enums';\n\n// Interfaces\nimport {\n    LoadDelivery,\n    LoadListLoadStopResponse,\n    LoadPickup,\n    LoadStopLoadListResponse,\n} from './interfaces/load-pickup-delivery.interface';\n\n// Types\nimport { LoadType } from './types';\n\n// Svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\n\n// Pipes\nimport { FormatDurationPipe, DateWaitTimePipe } from '../../pipes';\nimport { SafeHtmlPipe } from '../../pipes';\n\n// Helpers\nimport { GpsLocationHelper } from '../../utils/helpers';\n\n@Component({\n    selector: 'app-ca-load-pickup-delivery',\n    templateUrl: './ca-load-pickup-delivery.component.html',\n    styleUrls: ['./ca-load-pickup-delivery.component.scss'],\n    imports: [\n        CommonModule,\n        NgbModule,\n        AngularSvgIconModule,\n        // Components\n        CaAppTooltipV2Component,\n        // Pipes\n        FormatDurationPipe,\n        DateWaitTimePipe,\n        SafeHtmlPipe,\n    ],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class CaLoadPickupDeliveryComponent {\n    @Input() pickup!: LoadPickup;\n    @Input() delivery!: LoadDelivery;\n    @Input() isHoveringRow!: boolean;\n    @Input() loadType!: LoadType;\n    @Input() set stopsData(value: LoadListLoadStopResponse) {\n        if (value) this.handleStopsData(value);\n    }\n    @Input() set columnWidth(value: number) {\n        if (value) this._columnWidth = value;\n    }\n    @Output() onPickupDeliveryClick: EventEmitter<number> =\n        new EventEmitter<number>();\n\n    public _stopsData: LoadListLoadStopResponse | null = null;\n    public _columnWidth: number | null = null;\n\n    public stopTypeCounts: Record<string, number> | null = null;\n\n    public isPopoverOpen: boolean = false;\n\n    public hoveredStopIndex: number = -1;\n\n    // current location\n    public gpsIcon: string | null = null;\n    public gpsLocationIcon: string | null = null;\n    public gpsTitle: string | null = null;\n    public gpsTitleClass: string | null = null;\n\n    // enums\n    public eColor = eColor;\n    public eSharedString = eSharedString;\n    public ePosition = ePosition;\n    public eDateTimeFormats = eDateTimeFormats;\n    public eThousandSeparatorFormat = eThousandSeparatorFormat;\n    public eUnit = eUnit;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n\n    constructor() {}\n\n    public openPopover(t2: NgbPopover): void {\n        t2.open();\n        this.isPopoverOpen = true;\n\n        this.onPickupDeliveryClick.emit();\n    }\n\n    public closePopover(t2: NgbPopover): void {\n        this.isPopoverOpen = false;\n        t2.close();\n    }\n\n    public onHoverStop(index: number): void {\n        this.hoveredStopIndex = this.hoveredStopIndex === index ? -1 : index;\n    }\n\n    private handleStopsData(stopsData: LoadListLoadStopResponse): void {\n        this._stopsData = stopsData;\n\n        this.stopTypeCounts =\n            stopsData.loadStops?.reduce(\n                (acc: Record<string, number>, stop) => {\n                    if (stop.stopType && stop.stopType.name) {\n                        const key = stop.stopType.name;\n                        acc[key] = (acc[key] || 0) + 1;\n                    }\n                    return acc;\n                },\n                {} as Record<string, number>\n            ) || {};\n\n        if (this._stopsData?.truckMovement?.truckInfo) {\n            const { motionStatus, headingString } =\n                this._stopsData?.truckMovement?.truckInfo;\n\n            if (motionStatus) {\n                this.gpsIcon = GpsLocationHelper.getGpsIcon(\n                    motionStatus,\n                    headingString as eGpsHeadingDirection\n                );\n                this.gpsTitle = GpsLocationHelper.getGpsTitle(\n                    motionStatus,\n                    headingString as eGpsHeadingDirection\n                );\n                this.gpsTitleClass = GpsLocationHelper.getGpsTitleColorClass(\n                    motionStatus,\n                    true\n                );\n                this.gpsLocationIcon =\n                    GpsLocationHelper.getGpsCurrentLocationIcon(motionStatus);\n            }\n        }\n    }\n}\n","@let completedPercentage = _stopsData?.completedPercentage ?? null;\n@let isPickupSplit = pickup?.stopType?.name === eSharedString.SPLIT_LOCATION;\n@let isDeliverySplit = delivery?.stopType?.name === eSharedString.SPLIT_LOCATION;\n\n<div class=\"d-flex align-items-center\">\n    <div\n        class=\"d-flex align-items-center w-100\"\n        #t2=\"ngbPopover\"\n        [ngClass]=\"{ popoverOpen: isPopoverOpen }\"\n        [ngbPopover]=\"pickupDeliveryPopoverTemplate\"\n        popoverClass=\"load-pickup-delivery-popover\"\n        triggers=\"manual\"\n        [autoClose]=\"'outside'\"\n        container=\"body\"\n        [placement]=\"ePosition.BOTTOM\"\n        (click)=\"openPopover(t2)\"\n        (hidden)=\"closePopover(t2)\"\n        (shown)=\"isPopoverOpen = true\"\n    >\n        <div\n            class=\"d-flex align-items-center p-x-4 w-100 background-hover-gray br-2 c-pointer pickup-delivery-container\"\n            ngbTooltip\n            [mainCaTooltip]=\"'Show Stops'\"\n            [tooltipMarginTop]=\"'-7px'\"\n            [tooltipBackground]=\"eColor.BLACK\"\n            [position]=\"ePosition.BOTTOM\"\n        >\n            <div class=\"d-flex align-items-center w-50\">\n                <div\n                    class=\"d-flex align-items-center justify-content-center br-1 m-r-4 user-select-none h-18 w-18 m-y-4\"\n                    [class]=\"\n                        isPickupSplit\n                            ? 'background-yellow-7'\n                            : 'background-dark-2'\n                    \"\n                >\n                    <div\n                        class=\"text-size-11 ca-font-bold\"\n                        [class]=\"\n                            isPickupSplit\n                                ? 'text-color-yellow-5'\n                                : 'text-color-bw6-2'\n                        \"\n                    >\n                        {{ isPickupSplit ? 'S' : pickup.count }}\n                    </div>\n                </div>\n                <div class=\"d-flex flex-column text-ellipsis\">\n                    <div\n                        class=\"text-size-11 text-color-black ca-font-semi-bold text-ellipsis\"\n                    >\n                        {{ pickup.location }}\n                    </div>\n\n                    @if (pickup.date) {\n                        <div\n                            class=\"text-size-11 text-color-muted ca-font-medium text-ellipsis m-t--2\"\n                        >\n                            {{ pickup.date | date: eDateTimeFormats.MM_DD_YY }}\n\n                            @if (pickup.time) {\n                                <span class=\"pickup-time\">{{\n                                    pickup.time\n                                }}</span>\n                            }\n                        </div>\n                    }\n                </div>\n            </div>\n            <div class=\"d-flex align-items-center w-50\">\n                <div\n                    class=\"d-flex align-items-center justify-content-center br-1 m-r-4 user-select-none h-18 w-18\"\n                    [class]=\"\n                        isDeliverySplit\n                            ? 'background-yellow-7'\n                            : 'background-dark-2'\n                    \"\n                >\n                    <div\n                        class=\"text-size-11 ca-font-bold\"\n                        [class]=\"\n                            isDeliverySplit\n                                ? 'text-color-yellow-5'\n                                : 'text-color-bw6-2'\n                        \"\n                    >\n                        {{ isDeliverySplit ? 'S' : delivery.count }}\n                    </div>\n                </div>\n                <div class=\"d-flex flex-column text-ellipsis\">\n                    <div\n                        class=\"text-size-11 text-color-black ca-font-semi-bold text-ellipsis\"\n                    >\n                        {{ delivery.location }}\n                    </div>\n\n                    @if (delivery.date) {\n                        <div\n                            class=\"text-size-11 text-color-muted ca-font-medium text-ellipsis m-t--2\"\n                        >\n                            {{\n                                delivery.date | date: eDateTimeFormats.MM_DD_YY\n                            }}\n\n                            @if (delivery.time) {\n                                <span class=\"pickup-time\">{{\n                                    delivery.time\n                                }}</span>\n                            }\n                        </div>\n                    }\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n<ng-template #pickupDeliveryPopoverTemplate>\n    <div\n        class=\"d-flex align-items-center flex-column\"\n        [ngStyle]=\"{\n            width: _columnWidth ? _columnWidth + 'px' : '306px',\n        }\"\n    >\n        <div\n            class=\"d-flex align-items-center w-100 position-relative m-b-4\"\n        >\n            <div\n                class=\"d-flex align-items-center p-l-6 p-r-10 p-y-6 w-100 background-black-2 br-2 text-size-11 text-color-muted ca-font-bold\"\n            >\n                <div class=\"d-flex align-items-center w-100 user-select-none\">\n                    <div class=\"w-22 m-r-6 text-center\">\n                        @if (gpsIcon) {\n                            <div\n                                class=\"d-flex\"\n                                [innerHTML]=\"gpsIcon | safeHtml\"\n                            ></div>\n                        } @else {\n                            {{ eStringPlaceholder.HASH_SIGN }}\n                        }\n                    </div>\n\n                    <div\n                        class=\"d-flex align-items-center justify-content-between flex-grow-1\"\n                    >\n                        <div\n                            class=\"text-uppercase\"\n                            [ngClass]=\"gpsIcon && gpsTitleClass\"\n                        >\n                            {{ gpsIcon ? gpsTitle : 'Stop Detail' }}\n                        </div>\n                        <div class=\"d-flex justify-content-end\">LEG mi</div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"w-100\">\n            <div\n                class=\"p-l-4 p-r-2 p-y-4 background-black-2 w-100 h-100 br-2\"\n            >\n                <div class=\"load-stops-scroll-container\">\n                    <div class=\"position-relative\">\n                        @if (completedPercentage) {\n                            <div\n                                class=\"progress-line position-absolute w-2 background-gray-7 br-2 left-12 top-20\"\n                            >\n                                @let progressPercentage =\n                                    completedPercentage + eUnit.PERCENTAGE_SIGN;\n\n                                <div\n                                    class=\"progress-inner-line w-2 background-light-grey-6 br-2\"\n                                    [ngStyle]=\"{ height: progressPercentage }\"\n                                ></div>\n\n                                @if (gpsLocationIcon) {\n                                    <div\n                                        class=\"position-absolute d-flex justify-content-center align-items-center h-11 translate-middle start-50\"\n                                        [ngStyle]=\"{ top: progressPercentage }\"\n                                        [innerHTML]=\"gpsLocationIcon | safeHtml\"\n                                    ></div>\n                                }\n                            </div>\n                        }\n\n                        @for (\n                            stop of _stopsData?.loadStops;\n                            let indx = $index;\n                            track indx\n                        ) {\n                            <ng-container\n                                *ngTemplateOutlet=\"\n                                    loadStopDetailsTemplate;\n                                    context: {\n                                        stop,\n                                        index: indx,\n                                        hideLine:\n                                            indx ===\n                                            (_stopsData?.loadStops)!.length - 1,\n                                    }\n                                \"\n                            ></ng-container>\n                        }\n                    </div>\n                </div>\n                <div class=\"m-t-4 p-r-2\">\n                    <div class=\"w-100 h-1 background-black br-1\"></div>\n                    <div\n                        class=\"d-flex align-items-center justify-content-between p-t-4 p-x-6\"\n                    >\n                        <div class=\"d-flex flex-column\">\n                            <div class=\"text-size-11 text-color-white\">\n                                Stop\n                            </div>\n                            <div\n                                class=\"text-size-11 text-color-white ca-font-bold\"\n                            >\n                                {{ stopTypeCounts?.[eSharedString.PICKUP] }}\n                                Pickup |\n                                {{ stopTypeCounts?.[eSharedString.DELIVERY] }}\n                                Delivery\n                            </div>\n                        </div>\n                        <div class=\"d-flex flex-column align-items-end\">\n                            <div class=\"text-size-11 text-color-white\">\n                                Total\n                            </div>\n                            <div\n                                class=\"text-size-11 text-color-white ca-font-bold\"\n                            >\n                                {{\n                                    _stopsData?.totalMiles\n                                        | number\n                                            : eThousandSeparatorFormat.DECIMAL_FORMAT\n                                }}\n                                mi\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template\n    #loadStopDetailsTemplate\n    let-stop=\"stop\"\n    let-index=\"index\"\n    let-hideLine=\"hideLine\"\n>\n    @let isDeadheadStop = stop.stopType.name === eSharedString.DEADHEAD;\n    @let isPickupStop = stop.stopType.name === eSharedString.PICKUP;\n    @let isDeliveryStop = stop.stopType.name === eSharedString.DELIVERY;\n    @let isSplitLocationStop =\n        stop.stopType.name === eSharedString.SPLIT_LOCATION;\n    @let isActiveOrClosedLoad =\n        [eSharedString.ACTIVE, eSharedString.CLOSED].includes(loadType);\n    @let isVisitedStop =\n        stop.depart || (isDeadheadStop && isActiveOrClosedLoad);\n    @let stopNumberColor =\n        isPickupStop\n            ? 'text-color-green-4'\n            : isDeliveryStop\n              ? 'text-color-orange-3'\n              : isSplitLocationStop\n                ? 'text-color-yellow-4'\n                : 'text-color-muted';\n    @let stopNumberBackground =\n        hoveredStopIndex === index ? 'background-black' : 'background-black-2';\n\n    <div\n        class=\"stop-container d-flex align-items-stretch w-100 background-hover-black br-2 p-l-2 p-r-6\"\n        (mouseenter)=\"onHoverStop(index)\"\n        (mouseleave)=\"onHoverStop(index)\"\n        [class.deadhead-stop]=\"isDeadheadStop\"\n    >\n        <div class=\"d-flex align-items-center flex-column m-r-6\">\n            <div\n                class=\"stop-number w-22 text-center text-size-14 ca-font-bold user-select-none p-t-2 m-b-2 position-relative z-2\"\n                [ngClass]=\"[stopNumberColor, stopNumberBackground]\"\n            >\n                {{ isSplitLocationStop ? 'S' : stop.stopLoadOrder }}\n            </div>\n\n            @if (!hideLine && !completedPercentage) {\n                <div class=\"background-bw-9 w-2 h-100 br-2 opacity-25\"></div>\n            }\n        </div>\n\n        <div\n            class=\"position-relative d-flex justify-content-between flex-grow-1 p-t-4 m-b-2\"\n        >\n            @let addressTextColor =\n                isVisitedStop ? 'text-color-muted' : 'text-color-white';\n\n            <div class=\"text-size-11\">\n                <div class=\"d-flex align-items-center\">\n                    <div class=\"ca-font-semi-bold\" [ngClass]=\"addressTextColor\">\n                        {{ stop.shipper.address.city }},\n                        {{ stop.shipper.address.stateShortName }}\n                    </div>\n\n                    @if (isVisitedStop) {\n                        <svg-icon\n                            class=\"d-flex svg-size-10 m-l-4\"\n                            [src]=\"sharedSvgRoutes.CHECKMARK_ICON\"\n                        ></svg-icon>\n                    }\n                </div>\n\n                @if (loadType !== eSharedString.TEMPLATE) {\n                    @if (stop.arrive) {\n                        <div [ngClass]=\"addressTextColor\">\n                            {{\n                                stop.arrive\n                                    | dateWaitTime\n                                        : stop.depart\n                                        : stop.timeFrom\n                                        : stop.timeTo\n                            }}\n\n                            @if (stop.wait) {\n                                •\n                                <span\n                                    [class]=\"\n                                        isSplitLocationStop\n                                            ? 'text-color-yellow-4'\n                                            : 'text-color-blue-19'\n                                    \"\n                                >\n                                    {{ stop.wait | formatDuration }}\n                                </span>\n                            }\n                        </div>\n                    } @else if (stop.dateFrom) {\n                        <div class=\"date-from\" [ngClass]=\"addressTextColor\">\n                            {{\n                                stop.dateFrom\n                                    | dateWaitTime\n                                        : stop.dateTo\n                                        : stop.timeFrom\n                                        : stop.timeTo\n                            }}\n                        </div>\n\n                        <div class=\"avg-wait-time\" [ngClass]=\"addressTextColor\">\n                            Avg. wait time - {{ stop.avgWaitTime ?? '0' }} min\n                        </div>\n                    }\n                }\n\n                <div\n                    [class.text-uppercase]=\"\n                        !isDeadheadStop && !isSplitLocationStop\n                    \"\n                    [ngClass]=\"addressTextColor\"\n                >\n                    @if (isDeadheadStop) {\n                        Deadhead\n                    } @else if (isSplitLocationStop) {\n                        Split Location\n                    } @else {\n                        {{ stop.shipper.businessName }}\n                    }\n                </div>\n            </div>\n            @if (stop.legMiles) {\n                <div\n                    class=\"position-absolute right-0 top-0 text-size-11\"\n                    [ngClass]=\"\n                        isVisitedStop ? 'text-color-muted' : 'text-color-white'\n                    \"\n                >\n                    +{{\n                        stop.legMiles\n                            | number: eThousandSeparatorFormat.DECIMAL_FORMAT\n                    }}\n                </div>\n            }\n        </div>\n    </div>\n</ng-template>\n","export class IconDropdownSvgRoutes {\n    static colorDrop: string = 'assets/ca-components/svg/common/check.svg';\n}\n","import {\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { NgbPopover, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Interfaces\nimport { IIconDropdownConfig, IIconDropdownItem } from './interfaces';\n\n// Enums\nimport { eStringPlaceholder } from '../../enums';\n\n// Svg-Routes\nimport { IconDropdownSvgRoutes } from './utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-icon-dropdown',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        NgbPopover,\n        NgbTooltip,\n        CaAppTooltipV2Component,\n    ],\n    templateUrl: './ca-icon-dropdown.component.html',\n    styleUrl: './ca-icon-dropdown.component.scss'\n})\nexport class CaIconDropdownComponent {\n    @ViewChild('popover') popover!: NgbPopover;\n\n    @Input() iconDropdownConfig!: IIconDropdownConfig;\n\n    @Output() selectedItem = new EventEmitter();\n\n    public isHovered: boolean = false;\n    public iconDropdownSvgRoutes = IconDropdownSvgRoutes;\n\n    /**\n     * Gets the icon color based on the dropdown state.\n     *\n     * Logic:\n     * - If the dropdown is open, returns `iconActiveColor`, regardless of hover state.\n     * - If hovered (and dropdown is closed), returns `iconHoverColor`.\n     * - Otherwise, returns `iconColor`.\n     *\n     * @returns {string} The computed icon color as a CSS string.\n     */\n    public get iconColor(): string {\n        if (this.popover && this.popover.isOpen())\n            return (\n                this.iconDropdownConfig?.iconActiveColor ??\n                eStringPlaceholder.EMPTY\n            );\n\n        return this.isHovered\n            ? (this.iconDropdownConfig?.iconHoverColor ??\n                  eStringPlaceholder.EMPTY)\n            : (this.iconDropdownConfig?.iconColor ?? eStringPlaceholder.EMPTY);\n    }\n\n    /**\n     * Gets the background color based on the dropdown state.\n     *\n     * Logic:\n     * - If the dropdown is open, returns `iconActiveBackgroundColor`.\n     * - If hovered, returns `iconHoverBackgroundColor`.\n     * - Otherwise, returns `iconBackgroundColor`.\n     *\n     * @returns {string} The computed background color as a CSS string.\n     */\n    public get backgroundColor(): string {\n        if (this.popover && this.popover.isOpen()) {\n            return (\n                this.iconDropdownConfig?.iconActiveBackgroundColor ??\n                eStringPlaceholder.EMPTY\n            );\n        }\n        return this.isHovered\n            ? (this.iconDropdownConfig?.iconHoverBackgroundColor ??\n                  eStringPlaceholder.EMPTY)\n            : (this.iconDropdownConfig?.iconBackgroundColor ??\n                  eStringPlaceholder.EMPTY);\n    }\n\n    /**\n     * Selects an item from the dropdown, marks it as selected, and closes the dropdown.\n     *\n     * @param {IIconDropdownItem} item - The dropdown item that was selected.\n     * @param {NgbPopover} popover - The popover instance to close after selection.\n     * @returns {void}\n     */\n    public selectItem(item: IIconDropdownItem, popover: NgbPopover): void {\n        this.iconDropdownConfig.dropdownItems.forEach(\n            (item) => (item.isSelected = false)\n        );\n        item.isSelected = true;\n        this.selectedItem.emit(item.value);\n        popover.close();\n    }\n\n    /**\n     * Updates the hover state of the icon.\n     *\n     * @param {boolean} isHovered - `true` if the icon is hovered, `false` otherwise.\n     * @returns {void}\n     */\n    public setHoveredIconState(isHovered: boolean): void {\n        this.isHovered = isHovered;\n    }\n}\n","@let tooltipLabel = !popover.isOpen() ? iconDropdownConfig?.tooltipLabel : null;\n<div\n    class=\"d-flex justify-content-center icon-container\"\n    [ngStyle]=\"{\n        '--icon-color': iconColor,\n        '--icon-background-color': backgroundColor,\n    }\"\n    [ngbTooltip]=\"tooltipLabel\"\n    [mainCaTooltip]=\"iconDropdownConfig?.tooltipLabel\"\n    position=\"bottom\"\n    [tooltipBackground]=\"'#424242'\"\n    tooltipTextAlign=\"center\"\n    [ngbPopover]=\"dropdown\"\n    #popover=\"ngbPopover\"\n    [autoClose]=\"'outside'\"\n    [popoverClass]=\"'dropdown-container-wrapper'\"\n    [placement]=\"iconDropdownConfig.placement\"\n    [container]=\"'body'\"\n    (mouseenter)=\"setHoveredIconState(true)\"\n    (mouseleave)=\"setHoveredIconState(false)\"\n>\n    <svg-icon class=\"icon\" [src]=\"iconDropdownConfig.icon\"> </svg-icon>\n</div>\n\n<ng-template #dropdown>\n    <div class=\"dropdown-container\">\n        <div [style.width.px]=\"iconDropdownConfig?.dropdownWidth\">\n            <div class=\"dropdown-content\">\n                @for (item of iconDropdownConfig?.dropdownItems; track $index) {\n                    @let fontWeightClass =\n                        item.isSelected ? 'ca-font-bold' : 'ca-font-regular';\n                    <div\n                        class=\"d-flex justify-content-between align-items-center list-item\"\n                        (click)=\"selectItem(item, popover)\"\n                    >\n                        <div\n                            class=\"label\"\n                            [style.width.px]=\"\n                                '(iconDropdownConfig?.dropdownWidth - 60)'\n                            \"\n                            [ngClass]=\"fontWeightClass\"\n                        >\n                            {{ item.label }}\n                        </div>\n                        @if (item.isSelected) {\n                            <div>\n                                <svg-icon\n                                    class=\"check-mark\"\n                                    [src]=\"iconDropdownSvgRoutes.colorDrop\"\n                                >\n                                </svg-icon>\n                            </div>\n                        }\n                    </div>\n                }\n            </div>\n        </div>\n    </div>\n</ng-template>\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { AbstractControlWithNotFoundType } from '../types/input-dropdown-forms.type';\n\nexport function emptyValueValidator(errorMessage: string): ValidatorFn {\n    return (control: AbstractControl): ValidationErrors | null => {\n        if ((control as AbstractControlWithNotFoundType).notFoundInvalid) {\n            return { customError: errorMessage };\n        }\n        return null;\n    };\n}","import { EnumValue } from '../../../models/enumValue';\nimport { ShipperShortResponse } from '../../ca-pickup-delivery-block/models';\n\nexport interface LoadDelivery {\n    count: string | number;\n    location: string;\n    date?: string;\n    time?: string;\n    stopType?: EnumValue;\n}\n\nexport interface LoadPickup extends LoadDelivery {\n    delivery?: boolean;\n}\n\nexport interface LoadListLoadStopResponse {\n    loadStops?: Array<LoadStopLoadListResponse> | null;\n    totalMiles?: number | null;\n    firstPickup?: { [key: string]: number } | null;\n    completedPercentage?: number | null;\n    truckMovement?: MovementResponse;\n}\n\nexport interface MovementResponse {\n    truckInfo?: LiveTrackingBaseResponse;\n}\n\nexport interface LiveTrackingBaseResponse {\n    id?: number;\n    deviceId?: string | null;\n    latitude?: number | null;\n    longitude?: number | null;\n    coordinates?: string | null;\n    altitude?: number | null;\n    speed?: number | null;\n    heading?: number | null;\n    headingString?: string | null;\n    location?: string | null;\n    motionStatus?: number | null;\n    motionStatusPeriod?: string | null;\n    type?: GpsType;\n    updateTime?: string | null;\n    startDate?: string | null;\n    stopDate?: string | null;\n    dateString?: string | null;\n    companyId?: number | null;\n    unitType?: number | null;\n}\n\nexport interface LoadStopLoadListResponse {\n    stopType?: EnumValue;\n    dateFrom?: string | null;\n    dateTo?: string | null;\n    timeFrom?: string | null;\n    timeTo?: string | null;\n    timeType?: EnumValue | null;\n    stopOrder?: number;\n    stopLoadOrder?: number;\n    arrive?: string | null;\n    depart?: string | null;\n    legMiles?: number | null;\n    wait?: { [key: string]: number } | null;\n    shipper?: ShipperShortResponse;\n    avgWaitTime?: number | null;\n    isVisited?: boolean | null;\n    isCheckedIn?: boolean | null;\n}\n\nexport type GpsType = 'DEVICE' | 'MOBILE';\n\nexport const GpsType = {\n    Device: 'DEVICE' as GpsType,\n    Mobile: 'MOBILE' as GpsType,\n};\n","import {\n    Component,\n    Input,\n    EventEmitter,\n    Output,\n    ElementRef,\n    ChangeDetectorRef,\n    AfterViewInit,\n    Renderer2,\n    ViewChild,\n} from '@angular/core';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// models\nimport { Tabs } from '../../models/tabs.model';\nimport { CustomPeriodRange } from '../../models/dashboard/custom-period-range.model';\nimport { DropdownListItem } from '../../models/dashboard/dropdown-list-item.model';\n\n@Component({\n    selector: 'app-ca-tab-switch',\n    templateUrl: './ca-tab-switch.component.html',\n    styleUrls: ['./ca-tab-switch.component.scss'],\n    imports: [CommonModule, NgbModule],\n})\nexport class CaTabSwitchComponent implements AfterViewInit {\n    @ViewChild('tabSwitchHolder') tabSwitchHolder!: ElementRef<HTMLElement>;\n\n    @Input() set tabs(tabs: Tabs[]) {\n        this._tabs = tabs;\n        this.setSwitchActive(tabs);\n    }\n    @Input() type!: string;\n    @Input() hasDashboardHeight?: boolean = false;\n    @Input() subPeriodDropdownList?: DropdownListItem[] = [];\n    @Input() selectedSubPeriod?: DropdownListItem;\n    @Input() isClearCustomPeriodRangeValue?: boolean = false;\n    @Input() isDisabled?: boolean = false;\n    @Input() isBold: boolean = false;\n    @Input() isMarginTopDisabled: boolean = false;\n\n    @Output() switchClicked = new EventEmitter<{ id: number; name?: string }>();\n    @Output() customPeriodRangeEmitter = new EventEmitter<CustomPeriodRange>();\n    @Output() customPeriodRangeSubperiodEmitter = new EventEmitter<number>();\n    @Output() popoverClosedEmitter = new EventEmitter();\n\n    public indexSwitch: number = -1;\n    private selectedItem: HTMLElement | null = null;\n    private isAnimating: boolean = false;\n\n    public _tabs!: Tabs[];\n\n    get tabs() {\n        return this._tabs;\n    }\n\n    constructor(\n        private renderer: Renderer2,\n        private cdRef: ChangeDetectorRef\n    ) {}\n\n    ngAfterViewInit() {\n        this.setSwitchActive(this.tabs);\n    }\n\n    private setSwitchActive(tabs: Tabs[]): void {\n        const selectedIndex = tabs?.findIndex(\n            (item: Tabs) => item.checked && !item.disabled\n        );\n        this.indexSwitch = selectedIndex;\n        if (selectedIndex === -1) return;\n\n        const tabSwitchHolder = this.tabSwitchHolder?.nativeElement;\n        if (!tabSwitchHolder) return;\n\n        const tabSwitchItem = tabSwitchHolder.children[this.indexSwitch] as\n            | HTMLElement\n            | undefined;\n        if (!tabSwitchItem) return;\n\n        if (this.selectedItem && this.selectedItem !== tabSwitchItem) {\n            this.isAnimating = true;\n            this.animateTabSwitch(tabSwitchItem);\n        } else {\n            this.selectedItem = tabSwitchItem;\n            this.renderer.removeClass(\n                tabSwitchItem.children[0] as HTMLElement,\n                'opacity-0'\n            );\n            this.renderer.addClass(\n                tabSwitchItem.children[0] as HTMLElement,\n                'opacity-100'\n            );\n            this.cdRef.detectChanges();\n        }\n    }\n\n    private animateTabSwitch(clickedElement: HTMLElement) {\n        const oldSelectedItem = this.selectedItem!;\n        if (!oldSelectedItem || !clickedElement) return;\n\n        const newSelectedItem = clickedElement;\n        const animatedIndicator = oldSelectedItem\n            .children[0] as HTMLElement | null;\n        if (!animatedIndicator) return;\n\n        const tabSwitchHolder = this.tabSwitchHolder?.nativeElement;\n\n        const oldPosition = oldSelectedItem.getBoundingClientRect().left;\n        const newPosition = newSelectedItem.getBoundingClientRect().left;\n        const translateX = newPosition - oldPosition;\n\n        this.renderer.setStyle(\n            animatedIndicator,\n            'width',\n            getComputedStyle(newSelectedItem).width\n        );\n        this.renderer.setStyle(\n            animatedIndicator,\n            'transform',\n            `translateX(${translateX}px)`\n        );\n\n        if (tabSwitchHolder) {\n            this.renderer.setStyle(tabSwitchHolder, 'pointerEvents', 'none');\n        }\n\n        animatedIndicator.addEventListener(\n            'transitionend',\n            () => {\n                tabSwitchHolder?.removeAttribute('style');\n                this.finalizeTabSwitch(animatedIndicator, newSelectedItem);\n            },\n            { once: true }\n        );\n\n        this.cdRef.detectChanges();\n    }\n\n    private finalizeTabSwitch(\n        animatedIndicator: HTMLElement,\n        newSelectedItem: HTMLElement\n    ) {\n        this.renderer.setStyle(animatedIndicator, 'transform', '');\n        this.renderer.setStyle(animatedIndicator, 'width', '');\n        this.renderer.setStyle(\n            newSelectedItem.children[0] as HTMLElement,\n            'transform',\n            ''\n        );\n\n        this.selectedItem = newSelectedItem;\n        this.renderer.removeClass(animatedIndicator, 'opacity-100');\n        this.renderer.addClass(animatedIndicator, 'opacity-0');\n        this.renderer.addClass(\n            newSelectedItem.children[0] as HTMLElement,\n            'opacity-100'\n        );\n        this.renderer.removeClass(\n            newSelectedItem.children[0] as HTMLElement,\n            'opacity-0'\n        );\n        this.isAnimating = false;\n        this.cdRef.detectChanges();\n    }\n\n    public switchTab(e: MouseEvent, indx: number, item: { id: number }): void {\n        e.stopPropagation();\n\n        if (this.isAnimating) {\n            return;\n        }\n\n        const clickedElement =\n            (e.currentTarget as HTMLElement) || (e.target as HTMLElement);\n\n        const currentTab = this.tabs.find((tab) => tab.id === item.id);\n        if (this.selectedItem === clickedElement || currentTab?.checked) {\n            return;\n        }\n\n        this.indexSwitch = indx;\n        this.tabs.map((tab) => {\n            if (tab.id === item.id) tab.checked = true;\n            else tab.checked = false;\n        });\n\n        if (this.selectedItem && this.selectedItem !== clickedElement) {\n            this.isAnimating = true;\n            this.animateTabSwitch(clickedElement);\n        }\n\n        this.switchClicked.emit(item);\n    }\n\n    public handleSetCustomPeriodRangeClick(\n        customPeriodRange: CustomPeriodRange\n    ): void {\n        this.customPeriodRangeEmitter.emit(customPeriodRange);\n    }\n\n    public handleCustomPeriodRangeSubperiodEmit(\n        selectedDaysRange: number\n    ): void {\n        this.customPeriodRangeSubperiodEmitter.emit(selectedDaysRange);\n    }\n\n    public handlePopoverClose(): void {\n        this.popoverClosedEmitter.emit();\n    }\n}\n","<div\n    #tabSwitchHolder\n    class=\"tab-switch-holder d-flex justify-content-start align-items-center {{\n        type\n    }}\"\n    [ngClass]=\"{ 'dashboard-height': hasDashboardHeight, disabled: isDisabled }\"\n    [ngStyle]=\"{ 'margin-top': isMarginTopDisabled ? 0 : '' }\"\n>\n    @for (item of tabs; let indx = $index; track indx) {\n        <div\n            class=\"tab-switch-items-holder d-flex justify-content-center align-items-center\"\n            [class.active]=\"item.checked && !item.disabled\"\n            [class.disabled]=\"item.disabled\"\n            (click)=\"switchTab($event, indx, item)\"\n            (closeFilter)=\"handlePopoverClose()\"\n        >\n            <div\n                class=\"switch-tab-indicator {{ type }} opacity-0 z-index-0\"\n            ></div>\n            <div\n                class=\"d-flex align-items-center tab-switch-text z-index-1\"\n                mainContent\n            >\n                <div\n                    class=\"tab-switch-name\"\n                    [ngClass]=\"{ 'ca-font-bold tab-switch-name-big': isBold }\"\n                >\n                    {{ item.name }}\n                </div>\n            </div>\n        </div>\n    }\n</div>\n","export enum eFactoringPdfFormat {\n    SINGLE = 'single',\n    MULTIPLE = 'multiple',\n}\n","export enum eFactoringPdfOrganize {\n    BY_LOAD = 'byLoad',\n    BY_TAG = 'byTag',\n}\n","export enum eFactoringFormControl {\n    SCHEDULE_NO = 'scheduleNo',\n    PDF_FORMAT = 'pdfFormat',\n    ORGANIZE_PDF = 'organizePdf',\n    INCLUDE_UNTAGGED = 'includeUntagged',\n}\n","// interfaces\nimport { IFactoringCheckboxItem } from '../../interfaces';\nimport { CaiInputConfig } from 'carriera-intern-components';\n\nexport class FactoringDropdownConstants {\n    static CHECKBOX_COLUMNS: IFactoringCheckboxItem[] = [\n        {\n            name: 'invoiceNo',\n            label: 'Invoice No.',\n            isChecked: true,\n        },\n        {\n            name: 'referenceNo',\n            label: 'Reference No.',\n            isChecked: true,\n        },\n        {\n            name: 'debtorName',\n            label: 'Debtor Name',\n            isChecked: true,\n        },\n        {\n            name: 'origin',\n            label: 'Origin',\n            isChecked: false,\n        },\n        {\n            name: 'destination',\n            label: 'Destination',\n            isChecked: false,\n        },\n        {\n            name: 'invoiceDate',\n            label: 'Invoice Date',\n            isChecked: true,\n        },\n        {\n            name: 'payTerm',\n            label: 'Pay Term',\n            isChecked: false,\n        },\n        {\n            name: 'invoiceAmount',\n            label: 'Invoice Amount',\n            isChecked: true,\n        },\n    ];\n\n    static SCHEDULE_NO_INPUT_CONFIG: CaiInputConfig = {\n        type: 'text',\n        name: 'Schedule No.',\n        required: true,\n        alignment: 'left',\n        icon: null,\n        inverse: true,\n    };\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport {\n    FormControl,\n    ReactiveFormsModule,\n    UntypedFormBuilder,\n    UntypedFormGroup,\n    Validators,\n} from '@angular/forms';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { map, Observable, startWith } from 'rxjs';\n\n// enums\nimport { ePosition, eSharedString, eStringPlaceholder } from '../../enums';\nimport {\n    eFactoringFormControl,\n    eFactoringPdfFormat,\n    eFactoringPdfOrganize,\n} from './enums';\n\n// interfaces\nimport { IFactoringCheckboxItem, IFactoringExportItem } from './interfaces';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaCheckboxComponent } from '../ca-checkbox/ca-checkbox.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\nimport { InputComponent, CaiInputConfig } from 'carriera-intern-components';\n\n// constants\nimport { FactoringDropdownConstants } from './utils/constants';\n\n// svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\nimport { CheckboxSvgRoutes } from '../ca-checkbox/utils/svg-routes';\n\n@Component({\n    selector: 'app-ca-factoring-dropdown',\n    templateUrl: './ca-factoring-dropdown.component.html',\n    styleUrl: './ca-factoring-dropdown.component.scss',\n    standalone: true,\n    imports: [\n        // modules\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n        ReactiveFormsModule,\n\n        // components\n        CaAppTooltipV2Component,\n        CaCheckboxComponent,\n        CaSpinnerComponent,\n        InputComponent,\n    ],\n})\nexport class CaFactoringDropdownComponent implements OnInit {\n    @Input() itemsCount: number = 0;\n    @Input() set isExportFinished(isExportFinished: boolean) {\n        if (isExportFinished) {\n            this.isInProgressUpload = false;\n            this.isInProgressExport = false;\n            this.isExportClicked = false;\n            this.onCLoseDropdown();\n        }\n    }\n\n    @Output() onFactoringExport: EventEmitter<IFactoringExportItem> =\n        new EventEmitter<IFactoringExportItem>();\n\n    @Output() onFactoringUploadToRts: EventEmitter<IFactoringExportItem> =\n        new EventEmitter<IFactoringExportItem>();\n\n    public checkBoxItems: IFactoringCheckboxItem[] =\n        FactoringDropdownConstants.CHECKBOX_COLUMNS;\n\n    public factoringDropdownPopover: NgbPopover | null = null;\n    public factoringDropdownForm!: UntypedFormGroup;\n    public isByTagDisabled: boolean = false;\n    public checkedCount$!: Observable<number>;\n\n    // svg routes\n    public sharedSvgRoutes = SharedSvgRoutes;\n    public checkboxSvgRputes = CheckboxSvgRoutes;\n\n    public scheduleNoInputConfig: CaiInputConfig =\n        FactoringDropdownConstants.SCHEDULE_NO_INPUT_CONFIG;\n\n    // enums\n    public eFactoringFormControl = eFactoringFormControl;\n    public eFactoringPdfFormat = eFactoringPdfFormat;\n    public eFactoringPdfOrganize = eFactoringPdfOrganize;\n    public eSharedString = eSharedString;\n    public ePosition = ePosition;\n\n    public isInProgressUpload = false;\n    public isInProgressExport = false;\n    public isExportClicked = false;\n\n    constructor(private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.createForm();\n    }\n\n    private createForm(): void {\n        this.factoringDropdownForm = this.formBuilder.group({\n            scheduleNo: [eStringPlaceholder.EMPTY, Validators.required],\n            pdfFormat: [null, Validators.required],\n            organizePdf: [null, Validators.required],\n            includeUntagged: false,\n        });\n\n        this.checkBoxItems.forEach((item) => {\n            this.factoringDropdownForm.addControl(\n                item.name,\n                new FormControl({\n                    value: item.isChecked,\n                    disabled: item.isChecked,\n                })\n            );\n        });\n\n        this.checkedCount$ = this.factoringDropdownForm.valueChanges.pipe(\n            startWith(this.factoringDropdownForm.getRawValue()),\n            map(() => {\n                const raw = this.factoringDropdownForm.getRawValue();\n                return this.checkBoxItems.filter((c) => !!raw[c.name]).length;\n            })\n        );\n    }\n\n    public onFactoringDropdownOpenCloseClick(\n        factoringDropdownPopover: NgbPopover,\n        event?: MouseEvent\n    ): void {\n        event?.stopPropagation();\n\n        if (factoringDropdownPopover.isOpen()) {\n            factoringDropdownPopover.close();\n            this.factoringDropdownPopover = null;\n        } else {\n            this.factoringDropdownPopover = factoringDropdownPopover;\n\n            this.factoringDropdownPopover?.open();\n        }\n    }\n\n    public onCLoseDropdown(): void {\n        this.isInProgressUpload = false;\n        this.isInProgressExport = false;\n        this.factoringDropdownPopover?.close();\n    }\n\n    public onCheckboxRowClick(name: string): void {\n        const control = this.factoringDropdownForm.get(name);\n\n        if (!control || control.disabled) {\n            return;\n        }\n\n        control.setValue(!control.value);\n        control.markAsTouched();\n    }\n\n    public onRadioPdfFormatClick(\n        value: eFactoringPdfFormat,\n        event: MouseEvent\n    ): void {\n        event.stopPropagation();\n        const pdfFormat = this.factoringDropdownForm.get(\n            eFactoringFormControl.PDF_FORMAT\n        );\n\n        if (pdfFormat && !pdfFormat.disabled && pdfFormat.value !== value) {\n            pdfFormat.setValue(value);\n            pdfFormat.markAsTouched();\n        }\n\n        const organizePdfCtrl = this.factoringDropdownForm.get(\n            eFactoringFormControl.ORGANIZE_PDF\n        );\n        if (value === eFactoringPdfFormat.MULTIPLE) {\n            organizePdfCtrl?.setValue(eFactoringPdfOrganize.BY_LOAD);\n            this.isByTagDisabled = true;\n        } else {\n            this.isByTagDisabled = false;\n        }\n    }\n\n    public onRadioOrganizePdfClick(\n        value: eFactoringPdfOrganize,\n        event: MouseEvent\n    ): void {\n        event.stopPropagation();\n        const organizePdf = this.factoringDropdownForm.get(\n            eFactoringFormControl.ORGANIZE_PDF\n        );\n\n        if (\n            organizePdf &&\n            !organizePdf.disabled &&\n            organizePdf.value !== value\n        ) {\n            organizePdf.setValue(value);\n            organizePdf.markAsTouched();\n        }\n    }\n\n    public onExportClick(event?: MouseEvent): void {\n        event?.stopPropagation();\n        this.isExportClicked = true;\n    }\n\n    public onExportBatch(isUpload: boolean, event?: MouseEvent): void {\n        event?.stopPropagation();\n        isUpload\n            ? (this.isInProgressUpload = true)\n            : (this.isInProgressExport = true);\n        const formValue = this.factoringDropdownForm.getRawValue();\n\n        const factoringExportItem: IFactoringExportItem = {\n            scheduleNumber: formValue.scheduleNo,\n            origin: formValue.origin,\n            destination: formValue.destination,\n            payTerm: formValue.payTerm,\n            pdfFormat: formValue.pdfFormat,\n            pdfOrganize: formValue.organizePdf,\n            includeUntagged: formValue.includeUntagged,\n        };\n\n        isUpload\n            ? this.onFactoringUploadToRts.emit(factoringExportItem)\n            : this.onFactoringExport.emit(factoringExportItem);\n    }\n}\n","<div class=\"w-26 h-26\">\n    <div\n        #factoringDropdownPopover=\"ngbPopover\"\n        triggers=\"'manual'\"\n        [ngbPopover]=\"factoringDropdown\"\n        [autoClose]=\"'outside'\"\n        [placement]=\"ePosition.BOTTOM_END\"\n        [popoverClass]=\"'factoring-dropdown-popover'\"\n        [container]=\"'body'\"\n        (click)=\"\n            onFactoringDropdownOpenCloseClick(factoringDropdownPopover, $event)\n        \"\n    >\n        <div\n            class=\"d-flex align-items-center justify-content-center br-2 w-26 h-26 c-pointer\"\n            [ngClass]=\"\n                factoringDropdownPopover.isOpen()\n                    ? 'background-blue-15'\n                    : 'background-hover-blue-16'\n            \"\n            ngbTooltip\n            [mainCaTooltip]=\"\n                'Create factoring schedule and Export batch documents (' +\n                itemsCount +\n                ')'\n            \"\n            [tooltipBackground]=\"'#424242'\"\n            [position]=\"'bottom'\"\n        >\n            <svg-icon\n                class=\"factoring-icon d-flex align-items-center justify-content-center\"\n                [ngClass]=\"\n                    factoringDropdownPopover.isOpen()\n                        ? 'svg-fill-white-4'\n                        : 'svg-fill-blue-9'\n                \"\n                [src]=\"sharedSvgRoutes.DOCUMENT_ICON\"\n            ></svg-icon>\n        </div>\n    </div>\n\n    <ng-template #factoringDropdown>\n        @let isFormValid = factoringDropdownForm.valid;\n        @let pdfFormat =\n            factoringDropdownForm.get(eFactoringFormControl.PDF_FORMAT)?.value;\n        @let organizePdf =\n            factoringDropdownForm.get(eFactoringFormControl.ORGANIZE_PDF)\n                ?.value;\n        <div\n            class=\"factoring-dropdown-container d-flex flex-column w-180 p-4 br-3 background-black-2\"\n            [formGroup]=\"factoringDropdownForm\"\n        >\n            <div\n                class=\"factoring-dropdown-title-container d-flex align-items-center justify-content-between\"\n            >\n                <div\n                    class=\"factoring-dropdown-title d-flex align-items-center p-l-6\"\n                >\n                    <p\n                        class=\"factoring-dropdown-title-text m-r-4 text-size-14 ca-font-extra-bold text-color-white\"\n                    >\n                        Export Batch\n                    </p>\n                    <div\n                        class=\"text-size-11 ca-font-bold min-w-16 p-x-4 p-y-1 br-60 fleet-filter-dropdown-list-badge text-center background-black text-color-white\"\n                    >\n                        {{ itemsCount }}\n                    </div>\n                </div>\n                <div\n                    class=\"factoring-dropdown-title-icon-container w-26 h-26 d-flex align-items-center justify-content-center c-pointer background-hover-dark-3 br-2\"\n                    ngbTooltip\n                    [mainCaTooltip]=\"eSharedString.CLOSE\"\n                    [tooltipBackground]=\"'#424242'\"\n                    [position]=\"'bottom'\"\n                    (click)=\"onCLoseDropdown()\"\n                >\n                    <svg-icon\n                        class=\"factoring-dropdown-title-icon svg-size-18 d-flex align-items-center justify-content-center\"\n                        [src]=\"sharedSvgRoutes.CLOSE_ICON_NORMAL\"\n                    ></svg-icon>\n                </div>\n            </div>\n\n            <div class=\"w-100 h-1 background-black m-y-4\"></div>\n            <div\n                class=\"factoring-dropdown-search-container p-x-2 p-t-18 p-14\"\n            >\n                <cai-input\n                    [id]=\"'test'\"\n                    [config]=\"scheduleNoInputConfig\"\n                    [formControlName]=\"eFactoringFormControl.SCHEDULE_NO\"\n                ></cai-input>\n            </div>\n            <div class=\"w-100 h-1 background-black m-t-4\"></div>\n            <div\n                class=\"factoring-dropdown-table-columns-container d-flex align-items-center p-t-6 p-b-2 p-l-6\"\n            >\n                <p\n                    class=\"factoring-dropdown-title-text m-r-4 text-size-11 ca-font-bold text-color-white\"\n                >\n                    TABLE COLUMN\n                </p>\n                <div\n                    class=\"text-size-11 ca-font-semi-bold p-x-4 p-y-1 br-60 fleet-filter-dropdown-list-badge text-center background-black text-color-white\"\n                >\n                    {{ checkedCount$ | async }} of 8\n                </div>\n            </div>\n\n            @for (\n                item of checkBoxItems;\n                let itemIndex = $index;\n                track itemIndex\n            ) {\n                <div\n                    class=\"factoring-dropdown-checkbox-item p-y-4 p-l-6 p-r-4 m-t-4 br-2 background-hover-black c-pointer h-26 d-flex align-items-center\"\n                    (click)=\"onCheckboxRowClick(item.name)\"\n                >\n                    <app-ca-checkbox\n                        [formControlName]=\"item.name\"\n                        [label]=\"item.label\"\n                        [name]=\"item.name\"\n                        [isRegularCheckbox]=\"true\"\n                        [customClass]=\"'dropdown-column'\"\n                        [disabled]=\"item.isChecked\"\n                        [isLabelDisabled]=\"true\"\n                        [isDarkBackgroundCheckbox]=\"true\"\n                    ></app-ca-checkbox>\n                </div>\n            }\n            <div class=\"w-100 h-1 background-black m-t-4\"></div>\n            <div\n                class=\"factoring-dropdown-table-columns-container d-flex align-items-center p-t-6 p-b-2 p-l-6\"\n            >\n                <p\n                    class=\"factoring-dropdown-title-text m-r-4 text-size-11 ca-font-bold text-color-white\"\n                >\n                    PDF FORMAT\n                </p>\n            </div>\n            <div\n                class=\"p-l-6 p-y-4 background-hover-black c-pointer d-flex align-items-center m-y-4\"\n                (click)=\"\n                    onRadioPdfFormatClick(eFactoringPdfFormat.SINGLE, $event)\n                \"\n            >\n                <label class=\"radio-row d-flex align-items-center c-pointer\">\n                    <input\n                        type=\"radio\"\n                        class=\"factoring-radio m-r-6 c-pointer h-14 w-14 br-circle background-bw5\"\n                        [formControlName]=\"eFactoringFormControl.PDF_FORMAT\"\n                        [value]=\"eFactoringPdfFormat.SINGLE\"\n                    />\n                    <span\n                        class=\"text-size-14 text-color-white\"\n                        [ngClass]=\"\n                            pdfFormat === eFactoringPdfFormat.SINGLE\n                                ? 'ca-font-bold'\n                                : 'ca-font-regular'\n                        \"\n                        >Single (All Loads)</span\n                    >\n                </label>\n            </div>\n\n            <div\n                class=\"p-l-6 p-y-4 background-hover-black c-pointer d-flex align-items-center\"\n                (click)=\"\n                    onRadioPdfFormatClick(eFactoringPdfFormat.MULTIPLE, $event)\n                \"\n            >\n                <label class=\"radio-row d-flex align-items-center c-pointer\">\n                    <input\n                        type=\"radio\"\n                        class=\"factoring-radio m-r-6 c-pointer h-14 w-14 br-circle background-bw5\"\n                        [formControlName]=\"eFactoringFormControl.PDF_FORMAT\"\n                        [value]=\"eFactoringPdfFormat.MULTIPLE\"\n                    />\n                    <span\n                        class=\"text-size-14 text-color-white\"\n                        [ngClass]=\"\n                            pdfFormat === eFactoringPdfFormat.MULTIPLE\n                                ? 'ca-font-bold'\n                                : 'ca-font-regular'\n                        \"\n                        >Multiple (Per Load)</span\n                    >\n                </label>\n            </div>\n\n            <div class=\"w-100 h-1 background-black m-t-4\"></div>\n            <div\n                class=\"factoring-dropdown-table-columns-container d-flex align-items-center p-t-6 p-b-2 p-l-6\"\n            >\n                <p\n                    class=\"factoring-dropdown-title-text m-r-4 text-size-11 ca-font-bold text-color-white\"\n                >\n                    ORGANIZE PDF\n                </p>\n            </div>\n            <div\n                class=\"p-l-6 p-y-4 background-hover-black c-pointer d-flex align-items-center m-y-4\"\n                (click)=\"\n                    onRadioOrganizePdfClick(\n                        eFactoringPdfOrganize.BY_LOAD,\n                        $event\n                    )\n                \"\n            >\n                <label class=\"radio-row d-flex align-items-center c-pointer\">\n                    <input\n                        type=\"radio\"\n                        class=\"factoring-radio m-r-6 c-pointer h-14 w-14 br-circle background-bw5\"\n                        [formControlName]=\"eFactoringFormControl.ORGANIZE_PDF\"\n                        [value]=\"eFactoringPdfOrganize.BY_LOAD\"\n                        (click)=\"$event.stopPropagation()\"\n                    />\n                    <span\n                        class=\"text-size-14 text-color-white\"\n                        [ngClass]=\"\n                            organizePdf === eFactoringPdfOrganize.BY_LOAD\n                                ? 'ca-font-bold'\n                                : 'ca-font-regular'\n                        \"\n                        >By Load</span\n                    >\n                </label>\n            </div>\n\n            <div\n                class=\"p-l-6 p-y-4 background-hover-black c-pointer d-flex align-items-center\"\n                (click)=\"\n                    !isByTagDisabled &&\n                        onRadioOrganizePdfClick(\n                            eFactoringPdfOrganize.BY_TAG,\n                            $event\n                        )\n                \"\n            >\n                <label class=\"radio-row d-flex align-items-center c-pointer\">\n                    @if (isByTagDisabled) {\n                        <svg-icon\n                            class=\"factoring-dropdown-title-icon svg-size-14 d-flex align-items-center justify-content-center m-r-6 svg-fill-grey-2\"\n                            [src]=\"checkboxSvgRputes.disabledIcon\"\n                        ></svg-icon>\n                    } @else {\n                        <input\n                            type=\"radio\"\n                            class=\"factoring-radio m-r-6 c-pointer h-14 w-14 br-circle background-bw5\"\n                            [formControlName]=\"\n                                eFactoringFormControl.ORGANIZE_PDF\n                            \"\n                            [value]=\"eFactoringPdfOrganize.BY_TAG\"\n                            (click)=\"$event.stopPropagation()\"\n                        />\n                    }\n\n                    <span\n                        class=\"text-size-14 text-color-white\"\n                        [ngClass]=\"{\n                            'text-color-bw6-2': isByTagDisabled,\n                            'text-color-white': !isByTagDisabled,\n\n                            'ca-font-bold':\n                                organizePdf === eFactoringPdfOrganize.BY_TAG &&\n                                !isByTagDisabled,\n                            'ca-font-regular':\n                                organizePdf !== eFactoringPdfOrganize.BY_TAG ||\n                                isByTagDisabled,\n                        }\"\n                        >By Tag</span\n                    >\n                </label>\n            </div>\n            <div\n                class=\"factoring-dropdown-checkbox-item p-y-4 p-l-6 p-r-4 m-t-4 br-2 background-hover-black c-pointer\"\n                (click)=\"\n                    onCheckboxRowClick(eFactoringFormControl.INCLUDE_UNTAGGED)\n                \"\n            >\n                <app-ca-checkbox\n                    #checkboxCmp\n                    [formControlName]=\"eFactoringFormControl.INCLUDE_UNTAGGED\"\n                    [label]=\"'Include Untagged'\"\n                    [name]=\"eFactoringFormControl.INCLUDE_UNTAGGED\"\n                    [isRegularCheckbox]=\"true\"\n                    [customClass]=\"'dropdown-column'\"\n                    [isLabelDisabled]=\"true\"\n                    [isDarkBackgroundCheckbox]=\"true\"\n                ></app-ca-checkbox>\n            </div>\n            <div class=\"w-100 h-1 background-black m-t-6 m-b-4\"></div>\n\n            @if (!isExportClicked) {\n                <button\n                    class=\"factoring-export-btn d-flex align-items-center justify-content-center ca-font-bold br-1 text-size-11 p-2\"\n                    [ngClass]=\"\n                        isFormValid &&\n                        !isInProgressUpload &&\n                        !isInProgressExport\n                            ? 'background-blue-13 text-color-white'\n                            : 'background-dark-2  text-color-grey'\n                    \"\n                    [disabled]=\"\n                        !isFormValid || isInProgressUpload || isInProgressExport\n                    \"\n                    (click)=\"onExportClick($event)\"\n                >\n                    <span>EXPORT</span>\n                </button>\n            } @else {\n                <button\n                    class=\"factoring-export-btn d-flex align-items-center justify-content-center ca-font-bold br-1 text-size-11 p-2\"\n                    [ngClass]=\"\n                        isFormValid &&\n                        !isInProgressUpload &&\n                        !isInProgressExport\n                            ? 'background-blue-13 text-color-white'\n                            : 'background-dark-2  text-color-grey'\n                    \"\n                    [disabled]=\"\n                        !isFormValid || isInProgressUpload || isInProgressExport\n                    \"\n                    (click)=\"onExportBatch(true, $event)\"\n                >\n                    @if (isInProgressUpload) {\n                        Preparing...\n                        <app-ca-spinner\n                            [size]=\"'extra-small'\"\n                            [color]=\"'gray'\"\n                        ></app-ca-spinner>\n                    } @else {\n                        <span>UPLOAD TO RTS</span>\n                    }\n                </button>\n\n                <button\n                    class=\"factoring-export-btn d-flex align-items-center justify-content-center ca-font-bold br-1 text-size-11 p-2 m-t-8\"\n                    [ngClass]=\"\n                        isFormValid &&\n                        !isInProgressExport &&\n                        !isInProgressUpload\n                            ? 'background-dark-2 text-color-blue-19'\n                            : 'background-dark-2  text-color-grey'\n                    \"\n                    [disabled]=\"\n                        !isFormValid || isInProgressExport || isInProgressUpload\n                    \"\n                    (click)=\"onExportBatch(false, $event)\"\n                >\n                    @if (isInProgressExport) {\n                        Preparing...\n                        <app-ca-spinner\n                            [size]=\"'extra-small'\"\n                            [color]=\"'gray'\"\n                        ></app-ca-spinner>\n                    } @else {\n                        <span>EXPORT TO PC</span>\n                    }\n                </button>\n            }\n        </div>\n    </ng-template>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n// Components\nimport { CaCustomCardComponent } from '../ca-custom-card/ca-custom-card.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Pipes\nimport { HighlightSearchPipe } from '../../pipes/highlight-search.pipe';\n\n// Svg routes\nimport { SharedSvgRoutes } from '../../utils/svg-routes';\nimport {\n    eColor,\n    eGeneralActions,\n    ePosition,\n    eStringPlaceholder,\n} from '../../enums';\n\n// Interfaces\nimport { IContactDepartment } from './interfaces';\n\n@Component({\n    selector: 'app-ca-contacts-card',\n    imports: [\n        CommonModule,\n        AngularSvgIconModule,\n        NgbModule,\n\n        // Components\n        CaCustomCardComponent,\n        CaAppTooltipV2Component,\n\n        //Pipes\n        HighlightSearchPipe,\n    ],\n    templateUrl: './ca-contacts-card.component.html',\n    styleUrl: './ca-contacts-card.component.scss',\n})\nexport class CaContactsCardComponent {\n    @Input() departmentContacts!: IContactDepartment[];\n    @Input() searchText: string = '';\n    @Output() onEditClick = new EventEmitter<number>();\n    @Output() onDeleteClick = new EventEmitter<number>();\n\n    public hoveredContactId: number | null = null;\n    public hoveredTextIndex: number = -1;\n    public copiedIndex: number = -1;\n\n    // Enums\n    public eGeneralActions = eGeneralActions;\n    public eColor = eColor;\n    public ePosition = ePosition;\n    public eStringPlaceholder = eStringPlaceholder;\n\n    // Svg routes\n    public svgRoutes = SharedSvgRoutes;\n\n    constructor(private clipboard: Clipboard) {}\n\n    public copyToClipboard(text: string, index: number): void {\n        this.clipboard.copy(text);\n\n        this.copiedIndex = index;\n    }\n\n    public onHoverContact(contactId?: number): void {\n        this.hoveredContactId = contactId ?? null;\n    }\n\n    public onHoverText(index?: number): void {\n        this.hoveredTextIndex = index ?? -1;\n        if (this.copiedIndex === index) this.copiedIndex = -1;\n    }\n\n    public onEditEvent(contactId: number): void {\n        this.onEditClick.emit(contactId);\n    }\n\n    public onDeleteEvent(contactId: number): void {\n        this.onDeleteClick.emit(contactId);\n    }\n}\n","@for (department of departmentContacts; let index = $index; track department) {\n    <div [ngStyle]=\"{ 'max-width': '312px' }\">\n        @if (index > 0) {\n            <div class=\"h-1 background-bw-9 br-1 m-x-2\"></div>\n        }\n\n        <app-ca-custom-card\n            customDividerClass=\"divider--dark divider--small\"\n            customNameClass=\"p-l-6\"\n            headerRightSideClass=\"p-r-6\"\n            [cardName]=\"department.name\"\n            [hasDivider]=\"false\"\n            [counter]=\"department.contacts.length\"\n            [isCardOpen]=\"!index\"\n            [animationMarginParams]=\"{\n                marginTop: '0',\n                marginBottom: '0',\n            }\"\n        >\n            <div origin>\n                @for (\n                    contact of department.contacts;\n                    let i = $index;\n                    let last = $last;\n                    track contact.id\n                ) {\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            contactItemTemplate;\n                            context: {\n                                contact,\n                                index: i,\n                                isLast: last,\n                            }\n                        \"\n                    ></ng-container>\n                }\n            </div>\n        </app-ca-custom-card>\n    </div>\n}\n\n<ng-template\n    #contactItemTemplate\n    let-contact=\"contact\"\n    let-index=\"index\"\n    let-isLast=\"isLast\"\n>\n    <div\n        class=\"p-x-6 p-y-4 background-hover-bw2 br-2\"\n        [ngClass]=\"{\n            'm-b-8': isLast,\n            'm-b-4': !isLast,\n        }\"\n        (mouseenter)=\"onHoverContact(contact.id)\"\n        (mouseleave)=\"onHoverContact()\"\n    >\n        <div class=\"d-flex align-items-center justify-content-between m-b-4\">\n            <div class=\"d-flex align-items-center text-truncate\">\n                <div\n                    class=\"text-size-14 text-color-black-2 ca-font-medium text-truncate\"\n                    [innerHTML]=\"\n                        contact.fullName\n                            | caHighlight: [{ index: 45632, text: searchText }]\n                    \"\n                ></div>\n            </div>\n\n            @if (hoveredContactId === contact.id) {\n                <div class=\"d-flex align-items-center\">\n                    <div\n                        class=\"w-18 h-18 d-flex align-items-center justify-content-center background-hover-dark-2 svg-hover-black br-1 c-pointer m-r-4\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"eGeneralActions.EDIT\"\n                        [tooltipMarginTop]=\"'0px'\"\n                        [tooltipBackground]=\"eColor.BLACK\"\n                        [position]=\"ePosition.TOP\"\n                        (click)=\"onEditEvent(contact.id)\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14 svg-fill-muted\"\n                            [src]=\"svgRoutes.EDIT_ICON\"\n                        ></svg-icon>\n                    </div>\n\n                    <div\n                        class=\"w-18 h-18 d-flex align-items-center justify-content-center background-hover-red-15 svg-hover-red-14 br-1 c-pointer\"\n                        ngbTooltip\n                        [mainCaTooltip]=\"eGeneralActions.DELETE\"\n                        [tooltipMarginTop]=\"'0px'\"\n                        [tooltipBackground]=\"eColor.RED\"\n                        [position]=\"ePosition.TOP\"\n                        (click)=\"onDeleteEvent(contact.id)\"\n                    >\n                        <svg-icon\n                            class=\"d-flex svg-size-14 svg-fill-muted\"\n                            [src]=\"svgRoutes.DELETE_ICON\"\n                        ></svg-icon>\n                    </div>\n                </div>\n            }\n        </div>\n\n        <ng-container\n            *ngTemplateOutlet=\"\n                contactSvgTextTemplate;\n                context: {\n                    svg: svgRoutes.PHONE_ICON,\n                    text: contact.phone,\n                    additionalText: contact.phoneExt,\n                    contactId: contact.id,\n                    index: 0,\n                }\n            \"\n        ></ng-container>\n\n        @if (contact.email) {\n            <ng-container\n                *ngTemplateOutlet=\"\n                    contactSvgTextTemplate;\n                    context: {\n                        svg: svgRoutes.EMAIL_ICON,\n                        text: contact.email,\n                        contactId: contact.id,\n                        index: 1,\n                    }\n                \"\n            ></ng-container>\n        }\n    </div>\n</ng-template>\n\n<ng-template\n    #contactSvgTextTemplate\n    let-svg=\"svg\"\n    let-text=\"text\"\n    let-additionalText=\"additionalText\"\n    let-contactId=\"contactId\"\n    let-index=\"index\"\n>\n    <div\n        class=\"d-flex align-items-center\"\n        [ngClass]=\"{ 'm-b-4': index !== 1 }\"\n        (mouseenter)=\"onHoverText(index)\"\n        (mouseleave)=\"onHoverText()\"\n    >\n        <div class=\"m-r-4\">\n            <svg-icon\n                class=\"d-flex svg-size-18 svg-fill-muted\"\n                [src]=\"svg\"\n            ></svg-icon>\n        </div>\n\n        <div class=\"d-flex align-items-center overflow-hidden\">\n            <div\n                class=\"text-size-14 text-color-black-2 text-truncate\"\n                [innerHTML]=\"\n                    text | caHighlight: [{ index: 45632, text: searchText }]\n                \"\n            ></div>\n\n            @if (additionalText) {\n                <div class=\"text-size-14 text-color-muted text-nowrap m-l-4\">\n                    {{ additionalText }}\n                </div>\n            }\n        </div>\n\n        @if (hoveredContactId === contactId && hoveredTextIndex === index) {\n            @let isCopied = copiedIndex === index;\n            @let copyText =\n                text +\n                (additionalText\n                    ? eStringPlaceholder.WHITESPACE + additionalText\n                    : eStringPlaceholder.EMPTY);\n\n            <div\n                class=\"m-l-4\"\n                ngbTooltip\n                [mainCaTooltip]=\"\n                    isCopied ? eGeneralActions.COPIED : eGeneralActions.COPY\n                \"\n                [tooltipMarginTop]=\"'0px'\"\n                [tooltipBackground]=\"isCopied ? eColor.BLUE : eColor.BLACK\"\n                [position]=\"ePosition.BOTTOM\"\n                (click)=\"copyToClipboard(copyText, index)\"\n            >\n                <svg-icon\n                    class=\"d-flex svg-size-12 c-pointer\"\n                    [ngClass]=\"\n                        isCopied\n                            ? 'svg-fill-blue-9'\n                            : 'svg-fill-muted svg-hover-black'\n                    \"\n                    [src]=\"svgRoutes.COPY_ICON\"\n                ></svg-icon>\n            </div>\n        }\n    </div>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n@Component({\n    selector: 'app-ca-modal-spinner',\n    templateUrl: './ca-modal-spinner.component.html',\n    styleUrl: './ca-modal-spinner.component.scss',\n    imports: [CaSpinnerComponent],\n})\nexport class CaModalSpinnerComponent {}\n","<div\n    class=\"h-100 w-100 min-h-100 min-w-100 d-flex align-items-center justify-content-center position-absolute z-3\"\n>\n    <div class=\"p-9 br-circle shadow-300 background-white spinner-background\">\n        <app-ca-spinner [size]=\"'small'\" [color]=\"'blueLight'\"></app-ca-spinner>\n    </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'toolbarTabsClassPipe',\n    standalone: true,\n})\nexport class ToolbarTabsClassPipe implements PipeTransform {\n    transform({\n        isLargeLayout,\n        isLargeAndActive,\n        isLargeAndInActive,\n        isSmallActive,\n        isSmallAndInActive,\n        isDisabled,\n    }: {\n        isLargeLayout: boolean;\n        isLargeAndActive: boolean;\n        isLargeAndInActive: boolean;\n        isSmallActive: boolean;\n        isSmallAndInActive: boolean;\n        isDisabled: boolean;\n    }): string {\n        const classMap: { [key: string]: boolean } = {\n            'd-flex align-items-center gap-1 p-8 text-size-16 line-height-20':\n                isLargeLayout,\n            'text-color-white h-36': isLargeAndActive,\n            'text-color-bw6-2': isLargeAndInActive,\n            'text-size-14 p-x-8 p-y-4': !isLargeLayout,\n            'text-color-black': isSmallActive,\n            'text-color-light-grey-2': isSmallAndInActive,\n            'pe-none opacity-50': isDisabled,\n        };\n\n        return Object.keys(classMap)\n            .filter((className) => classMap[className])\n            .join(' ');\n    }\n}\n","export enum eToolbarVariant {\n    Large = 1,\n    Small = 2,\n}","import {\n    Component,\n    Input,\n    Output,\n    Renderer2,\n    ViewChild,\n    ViewChildren,\n    QueryList,\n    ElementRef,\n    AfterViewInit,\n} from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n// Pipes\nimport { ToolbarTabsClassPipe } from './pipes/toolbar-tabs-class-pipe';\n\n// Enums\nimport { eToolbarVariant } from './enums';\n\n// Interfaces\nimport { IToolbarTabs } from './interfaces';\n\n// Types\nimport { ToolbarVariantType } from './types';\n\n@Component({\n    selector: 'ca-toolbar-tab-switch',\n    templateUrl: './ca-toolbar-tab-switch.component.html',\n    styleUrl: './ca-toolbar-tab-switch.component.scss',\n    imports: [NgClass, ToolbarTabsClassPipe],\n})\nexport class CaToolbarTabSwitchComponent implements AfterViewInit {\n    @ViewChild('tabSwitchIndicator') indicator!: ElementRef<HTMLDivElement>;\n    @ViewChildren('tabSwitchItems') tabItems!: QueryList<\n        ElementRef<HTMLDivElement>\n    >;\n\n    @Input() set selectedTab(value: string | undefined) {\n        this._selectedTab = value;\n        if (this.indicator && this.tabItems) {\n            this.animateIndicatorTransition();\n        }\n    }\n    @Input() set data(value: IToolbarTabs[] | undefined) {\n        this._data = value;\n        if (this.indicator && this.tabItems) {\n            requestAnimationFrame(() => this.updateIndicatorPosition());\n        }\n    }\n    @Input() variant: ToolbarVariantType = eToolbarVariant.Large;\n    @Output() tabSelected = new EventEmitter<string>();\n\n    get data(): IToolbarTabs[] | undefined {\n        return this._data;\n    }\n    get selectedTab(): string | undefined {\n        return this._selectedTab;\n    }\n\n    private _selectedTab?: string;\n    private _data?: IToolbarTabs[];\n    public isAnimating: boolean = false;\n    public toolbarVariant = eToolbarVariant;\n\n    constructor(private renderer: Renderer2) {}\n\n    ngAfterViewInit() {\n        if (this._selectedTab) {\n            requestAnimationFrame(() => this.updateIndicatorPosition());\n        }\n    }\n\n    private updateIndicatorPosition() {\n        if (!this.indicator || !this.tabItems || !this._selectedTab) {\n            return;\n        }\n\n        const isLargeLayout = this.variant === this.toolbarVariant.Large;\n        const tabItemsArray = this.tabItems.toArray();\n\n        tabItemsArray.forEach((tabItem) => {\n            this.renderer.removeClass(tabItem.nativeElement, 'active');\n        });\n\n        const activeTabIndex = this.data?.findIndex((item) => {\n            return isLargeLayout\n                ? item.title === this._selectedTab\n                : item.name === this._selectedTab;\n        });\n        if (activeTabIndex === undefined) {\n            return;\n        }\n\n        if (activeTabIndex === -1 || !tabItemsArray[activeTabIndex]) {\n            return;\n        }\n\n        const activeTabElement = tabItemsArray[activeTabIndex].nativeElement;\n        const left = activeTabElement.offsetLeft;\n        const width = activeTabElement.offsetWidth;\n\n        this.renderer.addClass(activeTabElement, 'active');\n\n        this.renderer.setStyle(\n            this.indicator.nativeElement,\n            'left',\n            `${left}px`\n        );\n        this.renderer.setStyle(\n            this.indicator.nativeElement,\n            'width',\n            `${width}px`\n        );\n    }\n\n    private animateIndicatorTransition(): void {\n        this.renderer.addClass(\n            this.indicator.nativeElement,\n            'transition-left-width'\n        );\n\n        requestAnimationFrame(() => {\n            this.updateIndicatorPosition();\n\n            const indicatorElement = this.indicator.nativeElement;\n            const handleTransitionEnd = () => {\n                this.renderer.removeClass(\n                    indicatorElement,\n                    'transition-left-width'\n                );\n                indicatorElement.removeEventListener(\n                    'transitionend',\n                    handleTransitionEnd\n                );\n            };\n\n            indicatorElement.addEventListener(\n                'transitionend',\n                handleTransitionEnd\n            );\n        });\n    }\n\n    public onTabClick(event: MouseEvent, tabName: string) {\n        event.stopPropagation();\n\n        if (tabName !== this.selectedTab) {\n            this.tabSelected.emit(tabName);\n        }\n    }\n}\n","@let isLargeLayout = variant === toolbarVariant.Large;\n\n<div\n    #tabSwitchHolder\n    class=\"d-flex gap-1 align-items-center position-relative prevent-text-selection\"\n>\n    <div\n        #tabSwitchIndicator\n        class=\"br-3 position-absolute h-100p\"\n        [ngClass]=\"isLargeLayout ? 'background-black' : 'background-bw2'\"\n    ></div>\n\n    @for (item of data; let index = $index; track index) {\n        @let name = item.name;\n        @let title = item.title;\n        @let isSmallActive = !isLargeLayout && selectedTab === name;\n        @let isSmallAndInActive = !isLargeLayout && selectedTab !== name;\n        @let isLargeAndActive = isLargeLayout && selectedTab === title;\n        @let isLargeAndInActive = isLargeLayout && selectedTab !== title;\n        @let isDisabled = item.isDisabled;\n        @let tabClasses =\n            {\n                isLargeLayout,\n                isLargeAndActive,\n                isLargeAndInActive,\n                isSmallActive,\n                isSmallAndInActive,\n                isDisabled: isDisabled ?? false,\n            } | toolbarTabsClassPipe;\n\n        <div\n            #tabSwitchItems\n            class=\"tab-switch-items-holder c-pointer ca-font-extra-bold z-index-1 {{\n                tabClasses\n            }}\"\n            (click)=\"onTabClick($event, isLargeLayout ? title! : name!)\"\n        >\n            <div\n                class=\"title transition-color\"\n                [ngClass]=\"\n                    isLargeLayout\n                        ? 'title-large line-height-100'\n                        : 'title-small'\n                \"\n                [attr.data-test-id]=\"\n                    isLargeLayout\n                        ? 'table-toolbar-main-tab'\n                        : 'table-toolbar-view-tab'\n                \"\n            >\n                {{ isLargeLayout ? title : name }}\n            </div>\n\n            @if (isLargeLayout) {\n                @let counterText = item.length;\n                @let counterClass =\n                    selectedTab === title\n                        ? 'background-white text-color-black'\n                        : 'background-muted text-color-white';\n                @let widthClass =\n                    counterText && counterText > 99\n                        ? 'w-20'\n                        : counterText && counterText > 9\n                          ? 'w-14'\n                          : 'w-8';\n\n                <div\n                    class=\"counter transition-background-color d-flex align-items-center justify-content-center h-18 min-w-18 br-50 text-center p-x-5\"\n                    [ngClass]=\"counterClass\"\n                >\n                    <div\n                        class=\"font-size-11 line-height-18\"\n                        [ngClass]=\"widthClass\"\n                    >\n                        {{ counterText }}\n                    </div>\n                </div>\n            }\n        </div>\n    }\n</div>\n","export type SortOrder = 'Ascending' | 'Descending';\n\nexport const SortOrder = {\n    Ascending: 'Ascending' as SortOrder,\n    Descending: 'Descending' as SortOrder\n};\n\n","/*\n * Public API Surface of ca-components\n */\n\nexport * from './lib/ca-components.module';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nexport * from './lib/components/ca-details-dropdown/ca-details-dropdown.component';\nexport * from './lib/components/ca-filters/ca-filter.component';\nexport * from './lib/components/ca-new-filter/ca-filter-dropdown.component';\nexport * from './lib/components/ca-input/ca-input.component';\nexport * from './lib/components/ca-input-dropdown/ca-input-dropdown.component';\nexport * from './lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component';\n\n// Input Radio Button\nexport * from './lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component';\n\n// Map\nexport * from './lib/components/ca-map/ca-map.component';\nexport * from './lib/components/ca-map-dropdown/ca-map-dropdown.component';\nexport * from './lib/components/ca-map-list/ca-map-list.component';\nexport * from './lib/components/ca-map-list-card/ca-map-list-card.component';\nexport * from './lib/components/ca-map-dropdown/utils/svg-routes';\nexport * from './lib/components/ca-map-dropdown/models';\nexport * from './lib/components/ca-map/enums';\n\n// Note\nexport * from './lib/components/ca-note/ca-note.component';\nexport * from './lib/components/ca-note-container/ca-note-container.component';\n\n// Payroll Summary\nexport * from './lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nexport * from './lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\n\nexport * from './lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nexport * from './lib/components/ca-load-pickup-delivery/ca-load-pickup-delivery.component';\nexport * from './lib/components/ca-profile-image/ca-profile-image.component';\nexport * from './lib/components/ca-progress-bar/ca-progress-bar.component';\nexport * from './lib/components/ca-search-multiple-states/ca-search-multiple-states.component';\nexport * from './lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component';\nexport * from './lib/components/ca-search-multiple-states-2/interfaces';\nexport * from './lib/components/ca-spinner/ca-spinner.component';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-period-content/ca-period-content.component';\nexport * from './lib/components/ca-input-note/ca-input-note.component';\nexport * from './lib/components/ca-search-multiple-states/utils/services/search-multiple-states.service';\nexport * from './lib/components/ca-rating-review/ca-rating-review.component';\nexport * from './lib/components/ca-map/models';\nexport * from './lib/components/ca-main-table/ca-main-table.component';\nexport * from './lib/components/ca-main-table/models/main-table.model';\nexport * from './lib/components/ca-upload-files/ca-upload-files.component';\nexport * from './lib/components/ca-upload-files/enums';\nexport * from './lib/components/ca-upload-files/interfaces';\nexport * from './lib/components/ca-upload-files/components/ca-upload-dropzone/enums';\nexport * from './lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces';\nexport * from './lib/components/ca-activity-log-list/ca-activity-log-list.component';\nexport * from './lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component';\nexport * from './lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component';\nexport * from './lib/components/ca-right-side-panel/ca-right-side-panel.component';\nexport * from './lib/components/ca-todo/ca-todo.component';\nexport * from './lib/components/ca-progress-expiration/ca-progress-expiration.component';\nexport * from './lib/components/ca-chart/ca-chart.component';\nexport * from './lib/components/ca-modal/ca-modal.component';\nexport * from './lib/components/ca-dropdown-menu/ca-dropdown-menu.component';\nexport * from './lib/components/ca-chart/enums';\nexport * from './lib/components/ca-chart/models';\nexport * from './lib/components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component';\nexport * from './lib/components/ca-map/utils/helpers';\nexport * from './lib/components/ca-tooltip-list/ca-tooltip-list.component';\nexport * from './lib/components/ca-icon-dropdown/ca-icon-dropdown.component';\nexport * from './lib/components/ca-icon-dropdown/interfaces';\nexport * from './lib/components/ca-icon-dropdown/enums';\nexport * from './lib/models';\nexport * from './lib/components/ca-period-content/enums';\nexport * from './lib/components/ca-map/utils/constants';\nexport * from './lib/components/ca-sort-dropdown/ca-sort-dropdown.component';\nexport * from './lib/components/ca-sort-dropdown/models';\nexport * from './lib/components/ca-sort-dropdown/enums';\nexport * from './lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component';\nexport * from './lib/components/ca-modal-button/ca-modal-button.component';\nexport * from './lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component';\nexport * from './lib/components/ca-new-filter/ca-filter-dropdown.component';\nexport * from './lib/components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component';\nexport * from './lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component';\nexport * from './lib/components/ca-new-filter/enums';\nexport * from './lib/components/ca-new-filter/interface';\n\nexport * from './lib/components/ca-toolbar-dropdown/ca-toolbar-dropdown.component';\nexport * from './lib/components/ca-toolbar-dropdown/interfaces';\nexport * from './lib/components/ca-toolbar-dropdown/pipes';\n\nexport * from './lib/components/ca-chart-manager/ca-chart-manager.component';\nexport * from './lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component';\nexport * from './lib/components/ca-map/utils/services';\nexport * from './lib/components/ca-input-test/input-test.component';\nexport * from './lib/components/ca-checkbox/ca-checkbox.component';\n\nexport * from './lib/components/ca-checkbox/interfaces';\nexport * from './lib/components/ca-dropdown-menu/interfaces'; \nexport * from './lib/components/ca-progress-bar-v2/ca-progress-bar-v2.component';\nexport * from './lib/components/ca-progress-bar-v2/interfaces';\nexport * from './lib/components/ca-sort-dropdown/interfaces';\nexport * from './lib/components/ca-sort-dropdown/models';\nexport * from './lib/components/ca-sort-dropdown/enums';\n\nexport * from './lib/components/ca-vehicle-list/interfaces';\nexport * from './lib/components/ca-vehicle-list/models';\nexport * from './lib/components/ca-vehicle-list/enums';\n\nexport * from './lib/components/ca-modal-button/enums';\nexport * from './lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component';\nexport * from './lib/components/ca-last-fuel-price-progress/utils/helpers';\n\nexport * from './lib/components/ca-vehicle-list/ca-vehicle-list.component';\nexport * from './lib/components/ca-vehicle-list/models';\nexport * from './lib/components/ca-vehicle-list/enums';\n\nexport * from './lib/pipes';\nexport * from './lib/enums';\n\nexport * from './lib/components/ca-input-test/config';\nexport * from './lib/components/ca-input-dropdown-test/validators';\n\nexport * from './lib/components/ca-checkbox-selected-count/ca-checkbox-selected-count.component';\n\nexport * from './lib/components/ca-show-more/ca-show-more.component';\n\nexport * from './lib/components/ca-map/models';\n\nexport * from './lib/components/ca-items-dropdown/interfaces';\n\nexport * from './lib/components/ca-input-address-dropdown/models';\n\nexport * from './lib/components/ca-load-pickup-delivery/interfaces';\nexport * from './lib/components/ca-load-pickup-delivery/types';\n\nexport * from './lib/components/ca-contacts-card/interfaces';\nexport * from './lib/components/ca-load-status/ca-load-status.component';\nexport * from './lib/components/ca-table-card-view/ca-table-card-view.component';\nexport * from './lib/components/ca-details-title-card/ca-details-title-card.component';\nexport * from './lib/components/ca-custom-card/ca-custom-card.component';\nexport * from './lib/components/ca-tab-switch/ca-tab-switch.component';\nexport * from './lib/components/ca-load-status-log/ca-load-status-log.component';\nexport * from './lib/components/ca-status-change-dropdown/ca-status-change-dropdown.component';\nexport * from './lib/components/ca-sorting-card-dropdown/ca-sorting-card-dropdown.component';\nexport * from './lib/components/ca-files-count/ca-files-count.component';\nexport * from './lib/components/ca-items-dropdown/ca-items-dropdown.component';\nexport * from './lib/components/ca-items-dropdown/pipes';\nexport * from './lib/components/ca-modal-items/ca-modal-items.component';\nexport * from './lib/components/ca-modal-items/enums';\nexport * from './lib/components/ca-fuel-prices-range/ca-fuel-prices-range.component';\nexport * from './lib/components/ca-fuel-prices-range/pipes';\nexport * from './lib/components/ca-fuel-prices-range/utils/constants';\nexport * from './lib/components/ca-range-slider/ca-range-slider.component';\nexport * from './lib/components/ca-range-slider/interfaces';\n\n// Modals\nexport * from './lib/components/ca-confirmation-modals/components/ca-delete-modal/ca-delete-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/ca-deactive-modal/ca-deactive-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/ca-activate-modal/ca-active-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/ca-reset-table-modal/ca-reset-table-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/ca-move-modal/ca-move-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/ca-void-modal/ca-void-modal.component';\nexport * from './lib/components/ca-confirmation-modals/components/interfaces/modal-data.interface';\nexport * from './lib/components/ca-confirmation-modals/interfaces/confirmation-modal-buttons.interface';\nexport * from './lib/components/ca-confirmation-modals/utils/constants/confirmation-modal-buttons.constants';\n// Comments\nexport * from './lib/components/ca-comments/ca-comments.component';\nexport * from './lib/components/ca-comments/models';\n\n// toast\nexport * from './lib/components/ca-toast-messages/ca-toast-messages.component';\nexport * from './lib/components/ca-toast-messages/enums';\n\n// Fleet Filter\nexport * from './lib/components/ca-fleet-filter/ca-fleet-filter.component';\nexport * from './lib/components/ca-fleet-filter/interfaces';\nexport * from './lib/components/ca-fleet-filter/enums';\n\n// Factoring dropdown\nexport * from './lib/components/ca-factoring-dropdown/ca-factoring-dropdown.component';\nexport * from './lib/components/ca-factoring-dropdown/interfaces';\n\nexport * from './lib/components/ca-contacts-card/ca-contacts-card.component';\n\nexport * from './lib/components/ca-progress-bar/interfaces';\n\nexport * from './lib/utils/helpers';\nexport * from './lib/utils/constants';\n\n// Modal spinner\nexport * from './lib/components/ca-modal-spinner/ca-modal-spinner.component';\n\nexport * from './lib/components/ca-progress-bar-v2/ca-progress-bar-v2.component';\n\n// Time filter\nexport * from './lib/components/ca-new-filter/utils/helpers/time-filter.helper';\n\n// Interactive Heatmap\nexport * from './lib/components/ca-heatmap-usa/ca-heatmap-usa.component';\n\n// Toolbar tab switch\nexport * from './lib/components/ca-toolbar-tab-switch/ca-toolbar-tab-switch.component';\n\nexport * from './lib/components/ca-modal-items/interfaces';\n\nexport * from './lib/interfaces/table/index';\n\nexport * from './lib/models/tabs.model';\n\nexport * from './lib/interfaces';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["eDropdownMenu","i1","showAnimation","i1.TruckassistTableService","i3","ColorFinderPipe","FormControlPipe","DropdownTemplateTypeEnum","DropdownStringEnum","InputClassPipe","InputClearClassPipe","InputContainerClassPipe","InputDatetimePickerClassPipe","InputDropdownArrowClassPipe","InputErrorPipe","InputPasswordEyeClassPipe","InputPlaceholderIconClassPipe","InputTypePipe","LabelClassPipe","ShowClearPipe","ShowDropdownArrowPipe","ShowInvalidDangerMarkPipe","ShowValidCheckPipe","InputPlaceholderIconRightClassPipe","InputPlaceholderTextClassPipe","InputCommandsAction","InputCommandsType","InputConfigNameStringEnum","InputStringEnum","ShowPlaceholderTextPipe","InputSvgRoutes","CaInputClearComponent","CaInputCommandsComponent","CaInputPasswordComponent","CaInputPlaceholderIconComponent","i1.ThousandSeparatorPipe","MinMaxValueDirective","CapsLockDirective","MaxValueDirective","PriceFormatDirective","InputPatternPipe","InputTransformStringEnum","RestrictionPipeMixin","RestrictInputDirective","EventInputManager","i2.ThousandSeparatorPipe","i3.CaInputValidationService","i4","i5","i6","i7","i2","CaTruckTypeFilterConfig","ToolbarFilterString","ThousandSeparator","CaSvg","SvgIconModule","i1.CalendarDateTimePickerService","factory","i3.ThousandSeparatorPipe","i2.CalendarDateTimePickerService","i1.MapMarkerIconService","i1.FormatCurrencyPipe","i1.CaSearchMultipleStatesService","inputDropdownAnimation","DropdownCountPipe","InputDropdownSvgtextTemplateIconPipe","InputDropdownSvgtextTemplateContainerPipe","InputDropdownLoadBrokerContainerPipe","InputDropdownMultiselectClassPipe","InputDropdownDefaultTemplateClassPipe","InputDropdownLabelClassPipe","InputDropdownFuelFranchiseClassPipe","CaInputDropdownLoadBrokerComponent","InputDropdownSvgRoutes","CaInputDropdownLoadDispatchesTtdComponent","CaInputDropdownLoadDispatcherComponent","CaInputDropdownSvgTemplateComponent","i1.ImageBase64Service","CaInputDropdownSvgtextTemplateComponent","CaInputDropdownSvgtextDispatchTemplateComponent","CaInputDropdownGroupsComponent","CaInputDropdownMultiselectComponent","CaInputDropdownLabelsComponent","CaInputDropdownLoadBrokerContactComponent","CaInputDropdownLoadBrokerShipperComponent","CaInputDropdownTextCounterComponent","CaInputDropdownDoubleTextTemplateComponent","CaInputDropdownTripleTextTemplateComponent","CaInputDropdownDefaultTemplateComponent","CaInputDropdownFuelFranchiseComponent","CaInputDropdownDispatchComponent","CaInputDropdownDetailsTemplateComponent","CaInputDropdownPayrollTrucksComponent","i2.ImageBase64Service","distinctUntilChanged","i1.ProgressExpirationWidthPipe","i1.ProgressExpirationAbsPipe","i1.AppModalService","i2.UrlExtensionPipe","i2.FileNamePipe","i3.DocumentService","i1.CaUploadFileService","i1.FileService","i1.ChartManagerService"],"mappings":"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"}