Sha256: d0bf4cb03bbbf94f4496f6d1803a7c31b1f65a1054c44a25019e9b302bf887cf

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

class Avo::Configuration::Branding
  def initialize(colors: nil, chart_colors: nil, logo: nil, logomark: nil)
    @colors = colors
    @chart_colors = chart_colors
    @logo = logo
    @logomark = logomark

    @default_colors = {
      background: "#F6F6F7",
      100 => "206 231 248",
      400 => "57 158 229",
      500 => "8 134 222",
      600 => "6 107 178"
    }
    @default_chart_colors = ["#0B8AE2", "#34C683", "#2AB1EE", "#34C6A8"]
    @default_logo = "/avo-assets/logo.png"
    @default_logomark = "/avo-assets/logomark.png"
  end

  def css_colors
    rgb_colors.map do |color, value|
      if color == :background
        "--color-application-#{color}: #{value};"
      else
        "--color-primary-#{color}: #{value};"
      end
    end.join("\n")
  end

  def logo
    return @default_logo if Avo::App.license.lacks_with_trial(:branding)

    @logo || @default_logo
  end

  def logomark
    return @default_logomark if Avo::App.license.lacks_with_trial(:branding)

    @logomark || @default_logomark
  end

  def chart_colors
    return @default_chart_colors if Avo::App.license.lacks_with_trial(:branding)

    @chart_colors || @default_chart_colors
  end

  private

  def colors
    return @default_colors if Avo::App.license.lacks_with_trial(:branding)

    @default_colors.merge(@colors) || @default_colors
  end

  def rgb_colors
    colors.map do |key, value|
      rgb_value = is_hex?(value) ? hex_to_rgb(value) : value
      [key, rgb_value]
    end.to_h
  end

  def is_hex?(value)
    value.include? "#"
  end

  def hex_to_rgb(value)
    value.to_s.match(/^#(..)(..)(..)$/).captures.map(&:hex).join(" ")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
avo-2.15.0 lib/avo/configuration/branding.rb
avo-2.14.3.pre.1.branding lib/avo/configuration/branding.rb