@import '../jnt-variables';
@import '../jnt-hosts';
@import '../jnt-functions';

@mixin badge-position($position, $wrapper) {
  #{$wrapper} [data-text][child-of=jnt-badge-host] {
    position: map-get($position, position);
    left: map-get($position, left);
    right: map-get($position, right);
    transform: map-get($position, transform);
  }
}
@mixin jnt-badge($passed: (), $context: null, $strategy: 'changes') {
  $defs: (
    size: 24px,
    color: $jnt-white-color,
    background: $jnt-primary-color,
    border: null,
    font-size: 12px,
    corner: $jnt-corner-small,
    positions: (
      rightTop: (
        position: absolute,
        right: 0,
        transform: translate(50%, -50%)
      ),
      leftTop: (
        position: absolute,
        left: 0,
        transform: translate(-50%, -50%)
      ),
      inline: (
        position: static
      )
    )
  );
  $vars: $passed;
  $declare: false;
  $wrapper: null;
  @if $jnt-ng-deep {
    $wrapper: '::ng-deep';
  }
  @if $passed == () or $strategy == 'merge' {
    $vars: recursive-map-merge($defs, $passed);
    $declare: true;
  }
  #{if($context, $context, $jnt-badge-host)} {
    @if $declare {
      display: inline-flex;
      position: relative;
      text-align: center;
    }
    border: map-get($vars, border);
    @if map-has-key($vars, positions) {
      @each $position, $map in map-get($vars, positions) {
        &[data-position='#{$position}'] {
          @include badge-position($map, $wrapper);
        }
      }
    }
  }
  #{$wrapper} #{$context} [data-text][child-of=jnt-badge-host] {
    @if $declare {
      top: 0;
      display: inline-block;
      text-align: center;
      padding: 0 3px;
      box-sizing: border-box;
      white-space: nowrap;
    }
    color: map-get($vars, color);
    background: map-get($vars, background);
    font-size: map-get($vars, font-size);
    line-height: map-get($vars, size);
    min-width: map-get($vars, size);
    min-height: map-get($vars, size);
    height: map-get($vars, size);
    border-radius: map-get($vars, corner);
  }
}
@if $jnt-debug {
  @debug 'badge compiled';
}
