@use 'sass:map';

@use '@css-styles/common' as mixins;

@mixin buildSlideToggleThemeVars($theme)
{
    $slideToggle: map.get($theme, 'slideToggle');

    .mat-mdc-slide-toggle.mat-accent
    {
        --mat-slide-toggle-selected-track-color: var(--slideToggle-selected-track-normal);
        --mat-slide-toggle-selected-handle-color: var(--slideToggle-selected-handle-normal);
        --mat-slide-toggle-selected-hover-track-color: var(--slideToggle-selected-track-hover);
        --mat-slide-toggle-selected-hover-handle-color: var(--slideToggle-selected-handle-hover);
        --mat-slide-toggle-selected-pressed-track-color: var(--slideToggle-selected-track-pressed);
        --mat-slide-toggle-selected-pressed-handle-color: var(--slideToggle-selected-handle-pressed);
        --mat-slide-toggle-selected-focus-track-color: var(--slideToggle-selected-track-focus);
        --mat-slide-toggle-selected-focus-handle-color: var(--slideToggle-selected-handle-focus);
        --mat-slide-toggle-selected-icon-color: var(--slideToggle-selected-icon);
        --mat-slide-toggle-selected-focus-state-layer-color: var(--slideToggle-selected-state-layer-focus);
        --mat-slide-toggle-selected-hover-state-layer-color: var(--slideToggle-selected-state-layer-hover);
        --mat-slide-toggle-selected-normal-state-layer-color: var(--slideToggle-selected-state-layer-normal);
        --mat-slide-toggle-selected-pressed-state-layer-color: var(--slideToggle-selected-state-layer-pressed);

        --mat-slide-toggle-unselected-track-color: var(--slideToggle-unselected-track-normal);
        --mat-slide-toggle-unselected-handle-color: var(--slideToggle-unselected-handle-normal);
        --mat-slide-toggle-unselected-hover-track-color: var(--slideToggle-unselected-track-hover);
        --mat-slide-toggle-unselected-hover-handle-color: var(--slideToggle-unselected-handle-hover);
        --mat-slide-toggle-unselected-pressed-track-color: var(--slideToggle-unselected-track-pressed);
        --mat-slide-toggle-unselected-pressed-handle-color: var(--slideToggle-unselected-handle-pressed);
        --mat-slide-toggle-unselected-focus-track-color: var(--slideToggle-unselected-track-focus);
        --mat-slide-toggle-unselected-focus-handle-color: var(--slideToggle-unselected-handle-focus);
        --mat-slide-toggle-unselected-icon-color: var(--slideToggle-unselected-icon);
        --mat-slide-toggle-unselected-focus-state-layer-color: var(--slideToggle-unselected-state-layer-focus);
        --mat-slide-toggle-unselected-hover-state-layer-color: var(--slideToggle-unselected-state-layer-hover);
        --mat-slide-toggle-unselected-normal-state-layer-color: var(--slideToggle-unselected-state-layer-normal);
        --mat-slide-toggle-unselected-pressed-state-layer-color: var(--slideToggle-unselected-state-layer-pressed);
    }

    .primary-block
    {
        .mat-mdc-slide-toggle.mat-accent
        {
            --mat-slide-toggle-selected-track-color: var(--slideToggle-onPrimary-selected-track-normal);
            --mat-slide-toggle-selected-handle-color: var(--slideToggle-onPrimary-selected-handle-normal);
            --mat-slide-toggle-selected-hover-track-color: var(--slideToggle-onPrimary-selected-track-hover);
            --mat-slide-toggle-selected-hover-handle-color: var(--slideToggle-onPrimary-selected-handle-hover);
            --mat-slide-toggle-selected-pressed-track-color: var(--slideToggle-onPrimary-selected-track-pressed);
            --mat-slide-toggle-selected-pressed-handle-color: var(--slideToggle-onPrimary-selected-handle-pressed);
            --mat-slide-toggle-selected-focus-track-color: var(--slideToggle-onPrimary-selected-track-focus);
            --mat-slide-toggle-selected-focus-handle-color: var(--slideToggle-onPrimary-selected-handle-focus);
            --mat-slide-toggle-selected-icon-color: var(--slideToggle-onPrimary-selected-icon);
            --mat-slide-toggle-selected-focus-state-layer-color: var(--slideToggle-onPrimary-selected-state-layer-focus);
            --mat-slide-toggle-selected-hover-state-layer-color: var(--slideToggle-onPrimary-selected-state-layer-hover);
            --mat-slide-toggle-selected-normal-state-layer-color: var(--slideToggle-onPrimary-selected-state-layer-normal);
            --mat-slide-toggle-selected-pressed-state-layer-color: var(--slideToggle-onPrimary-selected-state-layer-pressed);

            --mat-slide-toggle-unselected-track-color: var(--slideToggle-onPrimary-unselected-track-normal);
            --mat-slide-toggle-unselected-handle-color: var(--slideToggle-onPrimary-unselected-handle-normal);
            --mat-slide-toggle-unselected-hover-track-color: var(--slideToggle-onPrimary-unselected-track-hover);
            --mat-slide-toggle-unselected-hover-handle-color: var(--slideToggle-onPrimary-unselected-handle-hover);
            --mat-slide-toggle-unselected-pressed-track-color: var(--slideToggle-onPrimary-unselected-track-pressed);
            --mat-slide-toggle-unselected-pressed-handle-color: var(--slideToggle-onPrimary-unselected-handle-pressed);
            --mat-slide-toggle-unselected-focus-track-color: var(--slideToggle-onPrimary-unselected-track-focus);
            --mat-slide-toggle-unselected-focus-handle-color: var(--slideToggle-onPrimary-unselected-handle-focus);
            --mat-slide-toggle-unselected-icon-color: var(--slideToggle-onPrimary-unselected-icon);
            --mat-slide-toggle-unselected-focus-state-layer-color: var(--slideToggle-onPrimary-unselected-state-layer-focus);
            --mat-slide-toggle-unselected-hover-state-layer-color: var(--slideToggle-onPrimary-unselected-state-layer-hover);
            --mat-slide-toggle-unselected-normal-state-layer-color: var(--slideToggle-onPrimary-unselected-state-layer-normal);
            --mat-slide-toggle-unselected-pressed-state-layer-color: var(--slideToggle-onPrimary-unselected-state-layer-pressed);
        }
    }

    @include mixins.buildCssVars('--slideToggle', $slideToggle);
}

@mixin buildThemeVars($theme)
{
    @include buildSlideToggleThemeVars($theme);
}